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) ; /************************************************************************* * 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 ; $anno_abb = substr($anno, 2, 2) ; $anno1_abb = substr($anno1, 2, 2) ; $tanno3 = true ; $tanno2 = true ; $tanno1 = true ; /********************************************************************** * Controllo se esistono le tabelle degli anni precedenti * Nella versione 3.0 non serve piů *********************************************************************** $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 ++ ; } */ 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, ' (*)') 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, ' (*)') 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, ' (*)') 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, ' (*)') 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 F.Nome as NomeFornitore, CONCAT('dt^', 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 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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno3 and O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select F.Nome as NomeFornitore, CONCAT('sm^', P.idprodotti) as IdProdotto, CONCAT(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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno3 and O.idcliente = $idcliente group by F.nome, P.nome, Mese Union " ; } else $query3 = "" ; /************************************************************************** * mi calcolo i valori dell' anno2 se la tabella dei prodotti_$anno2 esiste **************************************************************************/ if ($tanno2) { $query2 = " select F.Nome as NomeFornitore, CONCAT('dt^', 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 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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno2 and O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select F.Nome as NomeFornitore, CONCAT('sm^', P.idprodotti) as IdProdotto, CONCAT(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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno2 and O.idcliente = $idcliente group by F.nome, P.nome, Mese Union " ; } else $query2 = "" ; /*********************************************************************** * mi calcolo i valori dell' anno1 se la tabella prodotti_$anno1 esiste ************************************************************************/ if ($tanno1) { $query1 = " select F.Nome as NomeFornitore, CONCAT('dt^', 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 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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno1 and O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select F.Nome as NomeFornitore, CONCAT('sm^', P.idprodotti) as IdProdotto, CONCAT(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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno1 and O.idcliente = $idcliente group by F.nome, P.nome, Mese Union " ; } else $query1 = "" ; /************************************ * sicuramente l'anno in corso esiste ************************************/ $query = " select F.Nome as NomeFornitore, CONCAT('dt^', 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 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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno and O.idcliente = $idcliente group by F.nome, P.nome, Mese Union select F.Nome as NomeFornitore, CONCAT('sm^', P.idprodotti) as IdProdotto, CONCAT(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 fornitori F on F.idfornitori = O.idfornitore where O.Anno = $anno and O.idcliente = $idcliente group by F.nome, P.nome, Mese " ; } $qfin = " $query3 $query2 $query1 $query order by NomeProdotto " ; list($n, $d) = $db->RecuperaDati($qfin) ; // print_r($d) ; for($i=0; $i<$n; $i++) { $nf = $d['NomeFornitore'][$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() ; if ($an == $anno3 or $an == $anno2) $arrVal[$nf][$np][$an]['totale'] += $nb ; else { $arrVal[$nf][$np][$an]['id'] = $ip ; $arrVal[$nf][$np][$an]['totale'] += $nb ; if (! array_key_exists($me, $arrVal[$nf][$np])) $arrVal[$nf][$np][$me] = array() ; $arrVal[$nf][$np][$me][$an] = array('id' => $ip, 'numbott' => $nb) ; } } } } // print_r($arrVal) ; exit ; $str = "" ; @reset($arrVal) ; $i = 0 ; foreach($arrVal as $nf => $arrNf) { $str .= "" . htmlspecialchars($nf) . "" ; $i++ ; foreach($arrNf as $pr => $arrPr) { $id_anno1 = $arrPr[$anno1]['id'] ; $id_anno = $arrPr[$anno]['id'] ; $str .= "". htmlspecialchars($pr) . "" ; $i ++ ; // $str .= "$pr" ; for($ann = $anno3 ; $ann <= $anno1; $ann ++) { if (array_key_exists($ann, $arrPr)) { $str .= "{$arrPr[$ann]['totale']}" ; } else $str .= "" ; } for ($m = 1 ; $m < 13; $m ++) { if (array_key_exists($m, $arrPr)) { for ($y = $anno1 ; $y <= $anno ; $y++) { if (array_key_exists($y, $arrPr[$m])) $str .= "{$arrPr[$m][$y]['numbott']}" ; else $str .= "" ; } } else $str .= "" ; } $str .= "" ; // finisce la riga del prodotto } $str .= "" ; // finisce la riga del produttore } $str .= "" ; $header = "Fornitore/Prodotto,$anno3,$anno2,$anno1,GEN,#cspan,FEB,#cspan,MAR,#cspan,APR,#cspan,MAG,#cspan,GIU,#cspan,LUG,#cspan,AGO,#cspan,SET,#cspan,OTT,#cspan,NOV,#cspan,DIC,#cspan" ; $attachHeader = "#rspan,#rspan,#rspan,#rspan,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb,$anno1_abb,$anno_abb" ; $iniWP = "19,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3" ; $colTypes = "tree,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro" ; $colAlign = "left,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center,center" ; ?> <? echo TITLE ?>
Report Prodotti del cliente
(I prodotti asteriscati sono in sconto merce)