query($query) ; while($db->next_record()) $nomecliente = stripslashes($db->f("Nome")) ; */ for ($i=0; $iquery($query) ; while($db->next_record()) { $arrIdFornitori[] = $id ; $arrNomeFornitori[] = $db->f("Nome") ; } } @array_multisort($arrNomeFornitori, SORT_STRING, SORT_ASC, $arrIdFornitori) ; $nomeFornitore = stripslashes($arrNomeFornitori[0]) ; /************************************************************************* * Dopo aver eventualmente inserito le programmazioni non ancora definite * recupero tutti i dati di programmazione del cliente scelto rispetto alle * aziende scelte e le visualizzo ***************************************************************************/ $anno1 = $anno - 1 ; $anno2 = $anno - 2 ; $anno3 = $anno - 3 ; $tanno3 = false ; $tanno2 = false ; $tanno1 = false ; /********************************************************************** * PRIMA: * Controllo se esistono le tabelle degli anni precedenti * ADESSO (3.0): la tabella dei prodotti è unica *********************************************************************** $tables = mysql_list_tables($db_azienda); // db_azienda definito in ../common/public.php $num_tables = @mysql_numrows($tables); $i = 0 ; while($i < $num_tables) { $table = mysql_tablename($tables, $i) ; if ($table == "prodotti_$anno3") $tanno3 = true ; elseif ($table == "prodotti_$anno2") $tanno2 = true ; elseif ($table == "prodotti_$anno1") $tanno1 = true ; $i ++ ; } */ $tanno3 = true ; $tanno2 = true ; $tanno1 = true ; for ($j=0; $j < count($arrIdFornitori); $j++) { $idforni = $arrIdFornitori[$j] ; if ($idforni == $idsarzi) { if ($tanno3) { $query3 = " select 'Sarzi Amadè' as NomeFornitore, CONCAT('dt^', 'SA', P.idprodotti) as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno3 O inner join dettagli_$anno3 D on D.idordine = O.idordini inner join sarzi_$anno3 P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno3 F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select 'Sarzi Amadè' as NomeFornitore, CONCAT('sm^', 'SA', P.idprodotti) as IdProdotto, CONCAT(P.Nome, ' (Sconto Merce)') as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno3 O inner join scontomerce_$anno3 D on D.idordine = O.idordini inner join sarzi_$anno3 P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno3 F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese Union " ; } else $query3 = "" ; if ($tanno2) { $query2 = " select 'Sarzi Amadè' as NomeFornitore, CONCAT('dt^', 'SA', P.idprodotti) as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno2 O inner join dettagli_$anno2 D on D.idordine = O.idordini inner join sarzi_$anno2 P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno2 F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select 'Sarzi Amadè' as NomeFornitore, CONCAT('sm^', 'SA', P.idprodotti) as IdProdotto, CONCAT(P.Nome, ' (Sconto Merce)') as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno2 O inner join scontomerce_$anno2 D on D.idordine = O.idordini inner join sarzi_$anno2 P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno2 F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese Union " ; } else $query2 = "" ; if ($tanno1) { $query1 = " select 'Sarzi Amadè' as NomeFornitore, CONCAT('dt^', 'SA', P.idprodotti) as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno1 O inner join dettagli_$anno1 D on D.idordine = O.idordini inner join sarzi_$anno1 P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno1 F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select 'Sarzi Amadè' as NomeFornitore, CONCAT('sm^', 'SA', P.idprodotti) as IdProdotto, CONCAT(P.Nome, ' (Sconto Merce)') as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno1 O inner join scontomerce_$anno1 D on D.idordine = O.idordini inner join sarzi_$anno1 P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno1 F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese Union " ; } else $query1 = "" ; $query = " select 'Sarzi Amadè' as NomeFornitore, CONCAT('dt^', 'SA', P.idprodotti) as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno O inner join dettagli_$anno D on D.idordine = O.idordini inner join sarzi_$anno P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select 'Sarzi Amadè' as NomeFornitore, CONCAT('sm^', 'SA', P.idprodotti) as IdProdotto, CONCAT(P.Nome, ' (Sconto Merce)') as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini_$anno O inner join scontomerce_$anno D on D.idordine = O.idordini inner join sarzi_$anno P on CONCAT('SA', P.idprodotti) = D.idprodotto inner join fornitori_$anno F on F.idfornitori = O.idfornitore where O.idcliente = $idcliente group by F.nome, P.nome, Mese " ; } else { if ($tanno3) { $query3 = " select C.Nome as NomeCliente, 'dt' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join dettagli D on D.idordine = O.idordini and D.Anno = $anno3 inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno3 and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese Union select C.Nome as NomeCliente, 'sm' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join scontomerce D on D.idordine = O.idordini and D.Anno = $anno3 inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno3 and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese Union " ; } else $query3 = "" ; /************************************************************************** * mi calcolo i valori dell' anno2 se la tabella dei prodotti_$anno2 esiste **************************************************************************/ if ($tanno2) { $query2 = " select C.Nome as NomeCliente, 'dt' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join dettagli D on D.idordine = O.idordini and D.Anno = $anno2 inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno2 and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese Union select C.Nome as NomeCliente, 'sm' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join scontomerce D on D.idordine = O.idordini and D.Anno = $anno2 inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno2 and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese Union " ; } else $query2 = "" ; /*********************************************************************** * mi calcolo i valori dell' anno1 se la tabella prodotti_$anno1 esiste ************************************************************************/ if ($tanno1) { $query1 = " select C.Nome as NomeCliente, 'dt' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join dettagli D on D.idordine = O.idordini and D.Anno = $anno1 inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno1 and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese Union select C.Nome as NomeCliente, 'sm' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join scontomerce D on D.idordine = O.idordini and D.Anno = $anno1 inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno1 and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese Union " ; } else $query1 = "" ; /************************************ * sicuramente l'anno in corso esiste ************************************/ $query = " select C.Nome as NomeCliente, 'dt' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join dettagli D on D.idordine = O.idordini and D.Anno = $anno inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese Union select C.Nome as NomeCliente, 'sm' as IdProdotto, P.Nome as NomeProdotto, MONTH(O.dataOrdine) as Mese, YEAR(O.dataOrdine) as Anno, SUM((D.numcartoni * D.confezionida)) as NumBottiglie from ordini O inner join scontomerce D on D.idordine = O.idordini and D.Anno = $anno inner join prodotti P on P.idprodotti = D.idprodotto and P.fornitore = $idforni inner join clienti C on C.idclienti = O.idcliente where O.Anno = $anno and O.idfornitore = $idforni and O.idcliente = $IdCliente group by C.nome, P.nome, Mese " ; } $qfin = " $query3 $query2 $query1 $query order by NomeProdotto " ; debug (0, $qfin) ; list($n, $d) = $db->RecuperaDati($qfin) ; for($i=0; $i<$n; $i++) { $nf = $d['NomeCliente'][$i] ; $ip = $d['IdProdotto'][$i] ; $np = $d['NomeProdotto'][$i] ; $nb = $d['NumBottiglie'][$i] ; $me = $d['Mese'][$i] ; $an = $d['Anno'][$i] ; debug (0, "$nf ; $np ; $an ; $me ; $nb") ; if ($nf != "") { if (! array_key_exists($nf, $arrVal)) $arrVal[$nf] = array() ; if (! array_key_exists($np, $arrVal[$nf])) $arrVal[$nf][$np] = array() ; $arrVal[$nf][$np][$an][$ip]['totale'] += $nb ; if (! array_key_exists($me, $arrVal[$nf][$np])) $arrVal[$nf][$np][$me] = array() ; $arrVal[$nf][$np][$me][$an][$ip] = $nb ; } } } // print_r($arrVal) ; exit ; ?> <? echo TITLE ?>

Report Prodotti del Fornitore
$arrNf) { foreach($arrNf as $np => $arrPr) { ?> 0) or ($tot_anno1_sm > 0) or ($tot_anno_dt > 0) or ($tot_anno_sm > 0)) { ?>
Cliente Prodotto
 
0 or $tot_anno1_sm > 0) { ?> 0 or $tot_anno_sm > 0) { ?>
  GEN FEB MAR APR MAG GIU LUG AGO SET OTT NOV DIC TOT