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 O.*, D.ScontoPrd, (O.importoNC / 1.2) as valNC, (D.NumCartoni * D.ConfezioniDa * P.PrezzoUnitario) as impparz from $tbl_ord O inner join $tbl_for F on F.IdFornitori = O.IdFornitore inner join $tbl_det D on D.IdOrdine = O.IdOrdini inner join $tbl_pro P on P.IdProdotti = D.IdProdotto where O.Anno = $esame and D.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 (0, $query) ; $db->query($query) ; while ($db->next_record()) { $importo = 0 ; $impparz = $db->f("impparz") ; $idord = $db->f("IdOrdini") ; $valNC = 0 ; $importofattura = $db->f("ImportoFattura") ; if ($vv[$idord] == 0) { $valNC = $db->f("valNC") ; $vv[$idord] = $db->f("valNC") ; } if ($db->f("ScontoPrd") != "") $impparz = CalcolaScontoProdotto($impparz, $db->f("ScontoPrd")) ; $importo += $impparz ; $sconto1 = ($importo * $db->f("Sconto1") / 100) ; $importo1 = $importo - $sconto1 ; $sconto2 = ($importo1 * $db->f("Sconto2") / 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" ; ?>