query($query) ; while($db->next_record()) $nomecliente = $db->f("Nome") ; ?> query($query) ; while($db->next_record()) { $idfornitore = $db->f("IdFornitori") ; $nomefornitore = $db->f("Nome") ; ?> RecuperaDati($qprog) ; if ($nprog > 0) { $proGiaDefinita = 1 ; $wEsa = " 1 " ; // Si utilizza nella query. In questo caso vengono visualizzati // anche i prodotti evetualmente esauriti } /************************************************************************************* * In ogni caso vado a controllare il consegnato per questa coppia cliente fornitore *************************************************************************************/ $numbott1 = 0 ; $numbott2 = 0 ; $qcons = "select D.IdProdotto as IdProdotto, case when O.DataSpedFattura < '$dataperiodo' then SUM(D.NumCartoni * D.ConfezioniDa) end as NumBottP1, case when O.DataSpedFattura >= '$dataperiodo' then SUM(D.NumCartoni * D.ConfezioniDa) end as NumBottP2, case when O.DataSpedFattura < '$dataperiodo' then SUM(SM.NumCartoni * SM.ConfezioniDa) end as NumBottSMP1, case when O.DataSpedFattura >= '$dataperiodo' then SUM(SM.NumCartoni * SM.ConfezioniDa) end as NumBottSMP2 from ordini O inner join dettagli D on O.Idordini = D.Idordine and O.Anno = D.Anno left join scontomerce SM on SM.IdOrdine = O.IdOrdini and SM.Anno = O.Anno where O.Anno = $anno and O.idcliente = $idcliente and O.idfornitore = $idforni group by D.IdProdotto" ; list($ncons, $dcons) = $db->RecuperaDati($qcons) ; for ($x=0; $x<$ncons; $x++) { $arrayCons[$dcons['IdProdotto'][$x]]['NumBottP1'] = $dcons['NumBottP1'][$x] ; $arrayCons[$dcons['IdProdotto'][$x]]['NumBottP2'] = $dcons['NumBottP2'][$x] ; $arrayCons[$dcons['IdProdotto'][$x]]['NumBottSMP1'] = $dcons['NumBottSMP1'][$x] ; $arrayCons[$dcons['IdProdotto'][$x]]['NumBottSMP2'] = $dcons['NumBottSMP2'][$x] ; } /****************************************************************************************** * Dalla versione 3.0 la tabella dei prodotti è unica e non si tiene più conto degli anni * NO, ritornano gli anni 18.10.22 * torna la UNION (14.11.22) ******************************************************************************************/ $qord = " SELECT T.* FROM ( SELECT P.IdProdotti AS IdProdotto, P.Nome AS NomeProdotto, O.Anno, SUM(D.NumCartoni * D.ConfezioniDa) AS NumBottiglie, 0 AS NumBottiglieSM FROM ordini O INNER JOIN dettagli D ON D.IdOrdine = O.IdOrdini AND O.Anno = D.Anno INNER JOIN Prodotti P ON D.IdProdotto = P.IdProdotti WHERE ((O.Anno = $anno3 AND D.Anno = $anno3 AND P.Anno = $anno3) OR (O.Anno = $anno2 AND D.Anno = $anno2 AND P.Anno = $anno2) OR (O.Anno = $anno1 AND D.Anno = $anno1 AND P.Anno = $anno1)) AND O.idcliente = $idcliente and O.idfornitore = $idforni GROUP BY P.Nome, O.Anno UNION SELECT P.IdProdotti AS IdProdotto, P.Nome AS NomeProdotto, O.Anno, 0 AS NumBottiglie, SUM(SM.NumCartoni * SM.ConfezioniDa) AS NumBottiglieSM FROM ordini O LEFT JOIN scontomerce SM ON SM.IdOrdine = O.IdOrdini AND SM.Anno = O.Anno inner join prodotti P on SM.idprodotto = P.idprodotti and SM.Anno = P.Anno WHERE ((O.Anno = $anno3 AND SM.Anno = $anno3 AND P.Anno = $anno3) OR (O.Anno = $anno2 AND SM.Anno = $anno2 AND P.Anno = $anno2) OR (O.Anno = $anno1 AND SM.Anno = $anno1 AND P.Anno = $anno1)) AND O.idcliente = $idcliente and O.idfornitore = $idforni GROUP BY P.Nome, O.Anno ) T order BY T.NomeProdotto ASC, T.Anno ASC " ; list($nord, $dord) = $db->RecuperaDati($qord) ; for ($j=0; $j<$nord; $j++) { $numBott = $dord['NumBottiglie'][$j] ; $numBottSM = $dord['NumBottiglieSM'][$j] ; $idProd = $dord['IdProdotto'][$j] ; $nomeProd = $dord['NomeProdotto'][$j] ; $annoOrd = $dord['Anno'][$j] ; if ($numBott != 0) { $arrayDati[$idProd]['Nome'] = $nomeProd ; $arrayDati[$idProd][$annoOrd]['Bott'] = $numBott ; } if ($numBottSM != 0) { $arrayDati[$idProd]['Nome'] = $nomeProd ; $arrayDati[$idProd][$annoOrd]['BottSM'] = $numBottSM ; } } $qpro = "select P.IdProdotti, CONCAT (P.Nome, ' ', P.Annata) as Nome from prodotti P where P.Anno = $anno and P.fornitore = $idforni and P.Attivo = 'Y' and $wEsa order by P.nome ASC, P.Annata ASC" ; @reset($arrayDati) ; list($nprod, $dbpro) = $db->RecuperaDati($qpro) ; for ($i=0; $i<$nprod; $i++) { $iPrd = $dbpro['IdProdotti'][$i] ; $nPrd = $dbpro['Nome'][$i] ; $codpro[$i] = $iPrd ; if ($arrCons[$iPrd]['NumBott'] > 0) $dper1 = $arrCons[$iPrd]['NumBott'] ; else $dper1 = "" ; if ($arrCons[$iPrd]['NumBottSM'] > 0) $dper2 = $arrCons[$iPrd]['NumBottSM'] ; else $dper2 = "" ; if ($proGiaDefinita) { if (($indice = array_search($iPrd, $dprog['IdProdotto'])) !== FALSE) { $dati1 = $dprog['Dato1'][$indice] ; $dati2 = $dprog['Dato2'][$indice] ; } else { debug (0, "INDICE NULL") ; $dati1 = 0 ; $dati2 = 0 ; } } else { $dati1 = 0 ; $dati2 = 0 ; } /************************************ * controllo l'eventuale consegnato ************************************/ if (@array_key_exists($iPrd, $arrayCons)) { $dper1 = $arrayCons[$iPrd]['NumBottP1'] ; $dper2 = $arrayCons[$iPrd]['NumBottP2'] ; $dper1sm = $arrayCons[$iPrd]['NumBottSMP1'] ; $dper2sm = $arrayCons[$iPrd]['NumBottSMP2'] ; if (($dper1sm > 0) or ($dper2sm > 0)) $sconto2 = "* Sconto Merce" ; } else { $dper1 = 0 ; $dper2 = 0 ; $dper1sm = 0 ; $dper2sm = 0 ; } if (@array_key_exists($iPrd, $arrayDati)) { $d3 = $arrayDati[$iPrd][$anno3]['Bott'] ; $d2 = $arrayDati[$iPrd][$anno2]['Bott'] ; $d1 = $arrayDati[$iPrd][$anno1]['Bott'] ; $d3SM = $arrayDati[$iPrd][$anno3]['BottSM'] ; $d2SM = $arrayDati[$iPrd][$anno2]['BottSM'] ; $d1SM = $arrayDati[$iPrd][$anno1]['BottSM'] ; if (($d1SM > 0) or ($d2SM > 0) or ($d3SM > 0)) $sconto1 = "* Sconto Merce" ; } else { $d3 = 0 ; $d2 = 0 ; $d1 = 0 ; $d3SM = 0 ; $d2SM = 0 ; $d1SM = 0 ; } ?>
PROGRAMMAZIONE
 
Programmazione Consegna
 
1º periodo 2º periodo