Salve a tutti,
ho uno script che calcola il totale di alcuni prodotti, con o senza sconto. Fin qui tutto ok, ma se aggiungo lo sconto sul subtotale, mi restituisce calcoli errati.
Il codice è questo :
Il pezzo di codice che ho aggiunto è questo :
Il valore di $sconto_sbt è prelevato da un form ed è correttamente inizializzato...
Cosa sbaglio?
ho uno script che calcola il totale di alcuni prodotti, con o senza sconto. Fin qui tutto ok, ma se aggiungo lo sconto sul subtotale, mi restituisce calcoli errati.
Il codice è questo :
PHP:
if(isset($_POST['calcola'])){
$_SESSION['contanti']=number_format($_POST['contanti'],2,'.', '');
$_SESSION['flag']="calcolo";
$bar_c=array();
$bar_c=$_POST['codice'];
$sconto_sbt=$_POST['sconto_sbt'];
$_SESSION['totale']=0;
for($j=0; $j < count($bar_c); $j++){
$kiave=trim($bar_c[$j]);
if($kiave !=""){
$pre="prezzo".$kiave.$j;
$_SESSION[$pre]=number_format($_POST['prezzo'][$j],2,'.', '');
$ds="Descrizione".$kiave.$j;
$_SESSION[$ds]=$_POST['descrizione'][$j];
//var_dump($_POST['elimina']); echo "<br>";
$q="qnt".$kiave.$j;
if($_POST['elimina'][$j]==$kiave){
$_SESSION[$q]=0;
}else{
$_SESSION[$q]=number_format($_POST['qnt'][$j],1,'.', '');
}
$sc="sconto".$kiave.$j;
$_SESSION[$sc]=number_format($_POST['sconto'][$j],1,'.', '');
$sc_v="scontov".$kiave.$j;
$_SESSION[$sc_v]=number_format($_POST['scontov'][$j],2,'.', '');
$tot="tot_code".$kiave.$j;
if($_SESSION[$sc]==0 && $_SESSION[$sc_v]==0){
$_SESSION[$tot]=number_format($_SESSION[$pre]*$_SESSION[$q],2,'.', '');
}elseif($_SESSION[$sc]==0 && $_SESSION[$sc_v]!=0){
$_SESSION[$tot]=number_format($_SESSION[$pre]*$_SESSION[$q]-$_SESSION[$sc_v],2,'.', '');
// $_SESSION[$sc]=number_format($_SESSION[$sc_v]/($_SESSION[$pre]*$_SESSION[$q])*100,1,'.', '');
}else{
$_SESSION[$tot]=number_format($_SESSION[$pre]*(1-$_SESSION[$sc]/100)*$_SESSION[$q],2,'.', '');
//$_SESSION[$sc_v]=number_format(($_SESSION[$pre]*$_SESSION[$q])-$_SESSION[$tot],2,'.', '');
}
$_SESSION['totale'] +=number_format($_SESSION[$tot],2,'.', '');
$scontosbt=number_format((($_SESSION['totale']/100)*$sconto_sbt),2,'.', '');
$_SESSION['totale']=number_format(($_SESSION['totale'] - $scontosbt),2,'.', '');
$_SESSION['scontosubt']=$sconto_sbt;
if($_POST['salva'][$j]==$kiave && $_POST['elimina'][$j]== NULL){
$q_c=mysql_query("SELECT Barcode FROM articoli WHERE Barcode LIKE '%$kiave'");
if(mysql_num_rows($q_c) ==0){
if($_SESSION[$ds]=="" || $_SESSION[$pre] ==""){
echo "dati incompleti per barcode $kiave<br>";
}else{
$q_i="INSERT INTO articoli(Fornitore, Descrizione, Barcode, Vendita) VALUES('pallino','{$_SESSION[$ds]}','$kiave','{$_SESSION[$pre]}')";
$ris=mysql_query($q_i);
}
}
}
}
}
}
Il pezzo di codice che ho aggiunto è questo :
PHP:
$_SESSION['totale'] +=number_format($_SESSION[$tot],2,'.', '');
$scontosbt=number_format((($_SESSION['totale']/100)*$sconto_sbt),2,'.', '');
$_SESSION['totale']=number_format(($_SESSION['totale'] - $scontosbt),2,'.', '');
$_SESSION['scontosubt']=$sconto_sbt;
Il valore di $sconto_sbt è prelevato da un form ed è correttamente inizializzato...
Cosa sbaglio?