query($query) ; while($db->next_record()) $nomecliente = $db->f("Nome") ; ?> query($query) ; while ($dbprocl->next_record()) { $idforni = $dbprocl->f("IdFornitore") ; $query = "select * from $tfornitori where idfornitori = $idforni and idfornitori <> $idsarzi" ; debug (0, $query) ; $db->query($query) ; while($db->next_record()) { $nomefornitore = $db->f("Nome") ; // $idforni = $db->f("IdFornitori") ; ?> query($qpro) ; while ($dbpro->next_record()) { $nomepro = strtoupper($dbpro->f("Nome") . " " . $dbpro->f("Annata")) ; $idprodotto = $dbpro->f("IdProdotti") ; $numbott = " " ; $qord = "select * from ordini_$anno3, dettagli_$anno3 where idcliente = $idcliente and idfornitore = $idforni and ordini_$anno3.idordini = dettagli_$anno3.idordine and dettagli_$anno3.idprodotto = $idprodotto" ; $dbord->query($qord) ; if (($nrec = $dbord->num_rows()) > 0) { if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; while ($dbord->next_record()) $numbott += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; $datianno3[$indice] += $numbott ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] += 0 ; $dati2[$indice] += 0 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } /************************** * sconto merce anno3 **************************/ $numbott = " " ; $qsm = "select * from ordini_$anno3, scontomerce_$anno3 where idcliente = $idcliente and idfornitore = $idforni and ordini_$anno3.idordini = scontomerce_$anno3.idordine and scontomerce_$anno3.idprodotto = $idprodotto" ; $dbord->query($qsm) ; if (($nrec = $dbord->num_rows()) > 0) { if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; while ($dbord->next_record()) $numbott += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += $numbott ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] += 0 ; $dati2[$indice] += 0 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } } // fine while del primo anno } /************************************************************ * mi calcolo i valori dell' anno2 se la * tabella dei prodotti_$anno2 esiste *****************************************************************/ if ($tanno2) { $qpro = "select * from prodotti_$anno2 where fornitore = $idforni order by nome, annata ASC" ; $dbpro->query($qpro) ; while ($dbpro->next_record()) { $nomepro = strtoupper($dbpro->f("Nome") . " " . $dbpro->f("Annata")) ; $idprodotto = $dbpro->f("IdProdotti") ; $numbott = " " ; $qord = "select * from ordini_$anno2, dettagli_$anno2 where idcliente = $idcliente and idfornitore = $idforni and ordini_$anno2.idordini = dettagli_$anno2.idordine and dettagli_$anno2.idprodotto = $idprodotto" ; $dbord->query($qord) ; if (($nrec = $dbord->num_rows()) > 0) { if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; while ($dbord->next_record()) $numbott += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; $datianno2[$indice] += $numbott ; $datianno3[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] += 0 ; $dati2[$indice] += 0 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } /************************** * sconto merce anno2 **************************/ $numbott = " " ; $qsm = "select * from ordini_$anno2, scontomerce_$anno2 where idcliente = $idcliente and idfornitore = $idforni and ordini_$anno2.idordini = scontomerce_$anno2.idordine and scontomerce_$anno2.idprodotto = $idprodotto" ; $dbord->query($qsm) ; if (($nrec = $dbord->num_rows()) > 0) { if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; while ($dbord->next_record()) $numbott += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += $numbott ; $datianno1sm[$indice] += 0 ; $dati1[$indice] += 0 ; $dati2[$indice] += 0 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } } // fine while dell' anno2 } /************************************************************ * mi calcolo i valori dell' anno1 se la tabella * prodotti_$anno1 esiste *************************************************************/ if ($tanno1) { $qpro = "select * from prodotti_$anno1 where fornitore = $idforni order by nome, annata ASC" ; $dbpro->query($qpro) ; while ($dbpro->next_record()) { $nomepro = strtoupper($dbpro->f("Nome") . " " . $dbpro->f("Annata")) ; $idprodotto = $dbpro->f("IdProdotti") ; $numbott = " " ; $qord = "select * from ordini_$anno1, dettagli_$anno1 where idcliente = $idcliente and idfornitore = $idforni and ordini_$anno1.idordini = dettagli_$anno1.idordine and dettagli_$anno1.idprodotto = $idprodotto" ; $dbord->query($qord) ; if (($nrec = $dbord->num_rows()) > 0) { if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; while ($dbord->next_record()) $numbott += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; $datianno1[$indice] += $numbott ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $dati1[$indice] += 0 ; $dati2[$indice] += 0 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } /************************** * sconto merce anno1 **************************/ $numbott = " " ; $qsm = "select * from ordini_$anno1, scontomerce_$anno1 where idcliente = $idcliente and idfornitore = $idforni and ordini_$anno1.idordini = scontomerce_$anno1.idordine and scontomerce_$anno1.idprodotto = $idprodotto" ; $dbord->query($qsm) ; if (($nrec = $dbord->num_rows()) > 0) { if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; while ($dbord->next_record()) $numbott += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += $numbott ; $dati1[$indice] += 0 ; $dati2[$indice] += 0 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } } // fine while dell' anno1 } /****************************************************************** * Per questo cliente la programmazione è stata già definita * per cui ricavo i valori dalla tabella programmazione *******************************************************************/ $qpro = "select *, $tprodotti.nome as NomeProdotto from $tprogrammazione, $tprogclienti, $tprodotti where $tprogclienti.idcliente = $idcliente and $tprogclienti.idfornitore = $idforni and $tprogrammazione.idcliente = $idcliente and $tprodotti.idprodotti = $tprogrammazione.idprodotto and attivo = 'Y' and $tprodotti.fornitore = $idforni order by $tprodotti.nome, $tprodotti.annata ASC" ; debug (0, $qpro) ; $db->query($qpro) ; while ($db->next_record()) { $idprodotto = $db->f("IdProdotti") ; /**************************************************************** * recupero i dati sul consegnato e li suddivido fra 1 periodo e * secondo periodo in base alla data di spedizione. Se la data è * anteriore al 15 luglio lo considero come primo periodo altrimenti * lo considero come secondo periodo *******************************************************************/ $numbott1 = 0 ; $numbott2 = 0 ; $qord = "select * from $tordini, $tdettagli where idcliente = $idcliente and idfornitore = $idforni and $tordini.idordini = $tdettagli.idordine and $tdettagli.idprodotto = $idprodotto" ; $dbord->query($qord) ; if (($nrec = $dbord->num_rows()) == 0) { if ($db->f("Dato1") > 0 || $db->f("Dato2") > 0) { $nomepro = strtoupper($db->f("NomeProdotto") . " " . $db->f("Annata")) ; if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] += $db->f("Dato1") ; $dati2[$indice] += $db->f("Dato2") ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } } else { while ($dbord->next_record()) { $idordine = $dbord->f("IdOrdini") ; $dataspedizione = $dbord->f("DataSpedizione") ; debug (0, "$idordine -- $dataordine -- $idcliente -- $idforni") ; if ($dataperiodo > $dataspedizione) { debug(0, "$dataperiodo > $dataordine") ; $numbott1 += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; } else { debug(0, "$dataperiodo <= $dataordine") ; $numbott2 += $dbord->f("NumCartoni") * $dbord->f("ConfezioniDa") ; } } $nomepro = strtoupper($db->f("NomeProdotto") . " " . $db->f("Annata")) ; if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] += $db->f("Dato1") ; $dati2[$indice] += $db->f("Dato2") ; $datiper1[$indice] += $numbott1 ; $datiper2[$indice] += $numbott2 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; } /****************************************************************** * Faccio la stessa cosa per i prodotti in sconto merce *******************************************************************/ $dbsm = new FC_SQL ; $numbott1 = 0 ; $numbott2 = 0 ; $qsc = " select * from $tordini, $tscontomerce where idcliente = $idcliente and idfornitore = $idforni and $tordini.idordini = $tscontomerce.idordine and $tscontomerce.idprodotto = $idprodotto " ; debug (0, $qsc) ; $dbsm->query($qsc) ; if (($nrec = $dbsm->num_rows()) > 0) { $nomepro = strtoupper($db->f("NomeProdotto") . " " . $db->f("Annata")) ; if (! @in_array($nomepro, $arr_pro)) { $arr_pro[++$key] = $nomepro ; $indice = $key ; } else $indice = array_search ($nomepro, $arr_pro) ; while ($dbsm->next_record()) { $idordine = $dbsm->f("IdOrdini") ; $dataspedizione = $dbsm->f("DataSpedizione") ; if ($dataperiodo > $dataspedizione) $numbott1 += $dbsm->f("NumCartoni") * $dbsm->f("ConfezioniDa") ; else $numbott2 += $dbsm->f("NumCartoni") * $dbsm->f("ConfezioniDa") ; } $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] += 0 ; $dati2[$indice] += 0 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datiper1sm[$indice] = $numbott1 ; $datiper2sm[$indice] = $numbott2 ; } } /******************************************************************** * Problema: se ho definito la programmazione quando il listino non è * completo, allora non riesco a visualizzare i prodotti inseriti in un * secondo tempo. A questo punto vado a controllare se eventualmente ci * sono nuovi prodotti da considerare. ***********************************************************************/ $qtmppro = "select * from $tprodotti where fornitore = $idforni and attivo = 'Y' order by nome, annata ASC" ; $db_tmp1->query($qtmppro) ; while ($db_tmp1->next_record()) { $nomepro = strtoupper($db_tmp1->f("Nome") . " " . $db_tmp1->f("Annata")) ; if (! @in_array($nomepro, $arr_pro)) { $idprodotto = $db_tmp1->f("IdProdotti") ; /**************************************************************** * Controllo se ho già del consegnato per questo nuovo vino *******************************************************************/ $numbott1 = 0 ; $numbott2 = 0 ; $qtmpord = "select * from $tordini, $tdettagli where idcliente = $idcliente and idfornitore = $idforni and $tordini.idordini = $tdettagli.idordine and $tdettagli.idprodotto = $idprodotto" ; $db_tmp2->query($qtmpord) ; // RIGA INCRIMINATA if (($nrec = $db_tmp2->num_rows()) > 0) { $arr_pro[++$key] = $nomepro ; $indice = $key ; while ($db_tmp2->next_record()) { $dataspedizione = $db_tmp2->f("DataSpedizione") ; if ($dataperiodo > $dataspedizione) $numbott1 += $db_tmp2->f("NumCartoni") * $db_tmp2->f("ConfezioniDa") ; else $numbott2 += $db_tmp2->f("NumCartoni") * $db_tmp2->f("ConfezioniDa") ; } $datiper1[$indice] = $numbott1 ; $datiper2[$indice] = $numbott2 ; $datiper1sm[$indice] += 0 ; $datiper2sm[$indice] += 0 ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] = 0 ; $dati2[$indice] = 0 ; } /******************************************************************************* * Controllo se ho già del consegnato come sconto merce per questo nuovo prodotto ********************************************************************************/ $numbott1 = 0 ; $numbott2 = 0 ; $qtmpord = "select * from $tordini, $tscontomerce where idcliente = $idcliente and idfornitore = $idforni and $tordini.idordini = $tscontomerce.idordine and $tscontomerce.idprodotto = $idprodotto" ; $db_tmp2->query($qtmpord) ; // RIGA INCRIMINATA if (($nrec = $db_tmp2->num_rows()) > 0) { $arr_pro[++$key] = $nomepro ; $indice = $key ; while ($db_tmp2->next_record()) { $dataspedizione = $db_tmp2->f("DataSpedizione") ; if ($dataperiodo > $dataspedizione) $numbott1 += $db_tmp2->f("NumCartoni") * $db_tmp2->f("ConfezioniDa") ; else $numbott2 += $db_tmp2->f("NumCartoni") * $db_tmp2->f("ConfezioniDa") ; } $datiper1sm[$indice] = $numbott1 ; $datiper2sm[$indice] = $numbott2 ; $datiper1[$indice] += 0 ; $datiper2[$indice] += 0 ; $datianno3[$indice] += 0 ; $datianno2[$indice] += 0 ; $datianno1[$indice] += 0 ; $datianno3sm[$indice] += 0 ; $datianno2sm[$indice] += 0 ; $datianno1sm[$indice] += 0 ; $dati1[$indice] = 0 ; $dati2[$indice] = 0 ; } } else $indice = array_search ($nomepro, $arr_pro) ; } /***************************************************************** * I valori calcolati sono negli array dati.... A questo punto prima * ordino gli array secondo il campo nome e poi li stampo. ******************************************************************/ @array_multisort($arr_pro, SORT_STRING, SORT_ASC, $datianno3, $datianno2, $datianno1, $datianno3sm, $datianno2sm, $datianno1sm, $dati1, $dati2, $datiper1, $datiper2, $datiper1sm, $datiper2sm) ; for ($i = 0; $i 0 ) $sconto1 = "* Sconto Merce" ; if ($b = @(array_sum($datiper1sm) + array_sum($datiper2sm)) > 0) $sconto2 = "* Sconto Merce" ; ?>
PROGRAMMAZIONE
 
Programmazione Consegnato
 
1º periodo 2º periodo