Fatturato * what = 11 ==> Venduto * La differenza fra venduto e fatturato è solo nella query: nel caso di fatturato * si vanno a considerare gli ordini che hanno un importo fattura > 0, nel caso del venduto * si considerano, invece, tutti gli ordini ****************************************************************************************/ include ("../common/public.php") ; if ($what == 10) { $cond_fatt = "1=1 and" ; // $cond_fatt = "O.importofattura > 0 and" ; } else { // $cond_fatt = "O.importofattura > 0 and" ; $cond_fatt = "1=1 and" ; } $anno_partenza = $anno_i ; $anno_fine = $anno_f ; $nome_forni = $nn_ff ; for ($esame = $anno_partenza; $esame <= $anno_fine; $esame ++) { $arr_anni[] = $esame ; $tbl_for = "fornitori" ; $tbl_ord = "ordini" ; $tbl_det = "dettagli" ; $tbl_pro = "prodotti" ; $tbl_sar = "sarzi_$esame" ; $tbl_rel = "rel_societa_fornitore" ; $totale = 0 ; $totale_fat = 0 ; $DataOrdine = MySqlDate("$gime/$esame") ; /************************************************************ * La query non è così semplice, devo incasinarla un pò ************************************************************/ if ($fornitore != $idsarzi) { $query = " select distinct O.*, D.ScontoPrd, (O.importoNC / 1.2) as valNC, (D.NumCartoni * D.ConfezioniDa * P.PrezzoUnitario) as impparz from ordini O inner join fornitori F on F.IdFornitori = O.IdFornitore inner join dettagli D on D.IdOrdine = O.IdOrdini inner join prodotti P on P.IdProdotti = D.IdProdotto where O.Anno = $esame and D.Anno = $esame and P.Anno = $esame and O.DataOrdine <= '$DataOrdine' and ( F.IdFornitori = $fornitore or P.Nome like CONCAT('$nome_az_in_pro', '%')) order by IdOrdini " ; } else { $query = " select O.*, D.ScontoPrd, (O.importoNC / 1.2) as valNC, (D.NumCartoni * D.ConfezioniDa * P.PrezzoUnitario) as impparz from $tbl_ord O inner join $tbl_det D on D.IdOrdine = O.IdOrdini and O.IdFornitore = $fornitore and O.DataOrdine <= '$DataOrdine' inner join $tbl_sar P on P.IdProdotti = SUBSTRING(D.idProdotto, 3, 5) order by IdOrdini " ; } debug (1, $query) ; list($n, $d) = $db->RecuperaDati($query) ; print_r($d) ; for ($i=0; $i<$n; $i++) { $importo = 0 ; $impparz = $d["impparz"][$i] ; $idord = $d["IdOrdini"][$i]; $valNC = 0 ; $importofattura = $d["ImportoFattura"][$i] ; if ($vv[$idord] == 0) { $valNC = $d["valNC"][$i] ; $vv[$idord] = $d["valNC"][$i] ; } if ($d["ScontoPrd"][$i] != "") $impparz = CalcolaScontoProdotto($impparz, $d["ScontoPrd"][$i]) ; $importo += $impparz ; $sconto1 = ($importo * $d["Sconto1"][$i] / 100) ; $importo1 = $importo - $sconto1 ; $sconto2 = ($importo1 * $d["Sconto2"][$i] / 100) ; $importo2 = $importo1 - $sconto2 ; $importo2 = $importo2 - $valNC ; $sconti = $sconto1 + $sconto2 ; $importo = $importo - $sconti - $valNC ; $imp_ordini[$idord] += $importo ; $totale += $importo ; if ($importofattura > 0) $totale_fat += $importo ; } $venduto[] = $totale ; $fatturato[] = $totale_fat ; } // print_r($venduto) ; print_r($fatturato) ; exit ; /******************************************************************************** * Vediamo se riesco a calcolare la variazione peecentuale considerando l'anno di * partenza come zero *********************************************************************************/ $incremento_ven[0] = 0 ; $incremento_fat[0] = 0 ; for($i=1; $i 0) { $incremento_fat[$i] = @(($fatturato[$i] * 100) / $fatturato[$i-1]) - 100 ; if ($incremento_fat[$i] == -100) $incremento_fat[$i] = 100 ; } else $incremento_fat[$i] = 0 ; } for($i=1; $i 0) { $incremento_ven[$i] = @(($venduto[$i] * 100) / $venduto[$i-1]) - 100 ; if ($incremento_ven[$i] == -100) $incremento_ven[$i] = 100 ; } else $incremento_ven[$i] = 0 ; } $_SESSION['anni_esame'] = $arr_anni ; $_SESSION['fatturato'] = $fatturato ; $_SESSION['venduto'] = $venduto ; $_SESSION['incremento_fat'] = $incremento_fat ; $_SESSION['incremento_ven'] = $incremento_ven ; // exit () ; ?> <? echo TITLE ?> $nome_forni al $gime" ; ?>