errore nel calcolo

Emix

Utente Attivo
15 Feb 2010
596
0
16
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 :

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?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
non è per caso che qui lo chiami
$_SESSION['totale']=number_format(($_SESSION['totale'] - $scontosbt),2,'.', '');
mentre nel post scrivi
$sconto_sbt=$_POST['sconto_sbt'];
poi la riga scivila così
PHP:
$_SESSION['totale']-=number_format($scontosbt,2,'.', '');//$scontosbt o $sconto_sbt?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Il calcolo è esatto. L'unica cosa che non capisco è:
perchè sommi $_SESSION[$tot] a $_SESSION['totale']?
PHP:
$_SESSION['totale'] +=number_format($_SESSION[$tot],2,'.', '');
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
bho non capisco devo ancora risolverlo... ho un altro simil problema... se io volessi sottrarre al totale un importo passato dall'utente.. lo riporto in sessione dalla pagina precedente e lo sottraggo alla sessione di totale?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
bho non capisco devo ancora risolverlo... ho un altro simil problema... se io volessi sottrarre al totale un importo passato dall'utente.. lo riporto in sessione dalla pagina precedente e lo sottraggo alla sessione di totale?
Ti basta sottrarlo direttamente alla sessione di totale, senza salvarlo in un'altra variabile di sessione e poi sottrarlo.
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Errore Cannot read property 'childNodes' of undefined per mancanza nodo nel file xml XML 6
A [PHP] ERRORE QUANDO CAMBIO SLUG NEL CMS e REWRITE PHP 6
novello88 Joomla su VPS OVH: non funziona nulla ma nessun errore nel log Server Dedicati e VPS 1
M errore lettura data nel mysql con funzione Where PHP 1
R Errore nel CSS impossibile HTML e CSS 2
felino [Mod_rewrite] Errore nel rewrite Apache 2
L Errore nel passare più valori tra pagine php PHP 10
Shyson Stampa data nel db ma da errore PHP 7
felino Errore nel visualizzare il nome del mese PHP 2
Jam1 Errore nel creare miniature da immagini caricate su un mio form PHP 0
D Errore incomprensibile nel codice Javascript 2
valient13 Errore nel echo PHP 2
valient13 errore nel controllo di un numero PHP 20
asevenx errore con l'inserimento dei dati nel database, campi vuoti Classic ASP 1
T errore nel recupero di un campo da db ASP.NET 1
I Errore nel ridimensionamento di una <table> in un <div> HTML e CSS 5
I SQLDatasource errore nel server ASP.NET 0
T Errore nel link "Torna Indietro" [era:Funzione javascript] Javascript 0
T errore asp (inserimento dati nel db) Classic ASP 1
S errore nel compilare una drop down list ASP.NET 0
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A errore http://datatables.net/tn/7 PHP 4
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
A Errore durante il salvataggio Photoshop 0
M Errore configurazione motion detection nvr Hikvision DS-7616 IP Cam e Videosorveglianza 0
voldemort [c] Errore di segmentazione (core dump creato) C/C++ 1
T SSD - errore sistema Hardware 2
R Navigare sito con cURL, mi restituisce errore PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 2
A Errore visualizzazione selezione testo Photoshop 0
S Errore PHP - Notice: Undefined index ... PHP 14
U Campo vuoto data errore Fatal error: PHP 2
R Errore UPDATE tabella mysql PHP 1
R W10 Segnalazione di errore su terminale USB Windows e Software 0
G non riesco a capire quale sia l'errore [SQL] MySQL 2
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
W Errore di run-time di Microsoft VBScript error '800a0035' Impossibile trovare il file Classic ASP 0
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M errore dopo passaggio Php 7.2 PHP 6
S -> Errore PHP 8
S Errore "ftp_put(): Can't open that file: Permission denied" PHP 1
P Errore telecamere hdcvi dahua IP Cam e Videosorveglianza 16
L form multipla php sql,errore in inserimento MySQL 0
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
F [PHP]Errore registrazione PHP 8
MarcoGrazia [PHP] Download di file con errore all'interno. PHP 1
V [ORACLE] Errore ora-06512 at sys.utl_file Oracle 0
A [WordPress] Errore Plugin WordPress 0

Discussioni simili