RecuperaDati($qa) ; if ($na > 0) header("Location: ./confrontaAP_aziendeCollegate.php?fornitore=$fornitore") ; $annoP = $anno - 1 ; $idFornitore = $fornitore ; $arrVal = array() ; $arrTot = array() ; $sQua = $sOrd = $sMed = "+" ; /**************************************************************************** * dall'id del fornitore passato mi ricavo i dati per l'anno in corso *****************************************************************************/ $qAnno = " select PP.NomeFornitore, PP.NomeProdotto, PP.Categoria, sum(PP.Venduto) as Venduto, sum(PP.SM) as ScontoMerce, PP.PrezzoUnitario from ( select TT.NomeFornitore as NomeFornitore, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, sum(TT.Venduto) as Venduto, 0 as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(F.nome) as NomeFornitore, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario from dettagli D inner join prodotti P on P.idprodotti = D.idprodotto inner join fornitori F on F.idfornitori = P.fornitore where P.Anno = $anno and D.Anno = $anno and F.idfornitori = $idFornitore) as TT group by NomeFornitore, NomeProdotto, Categoria, SM, PrezzoUnitario union select TT.NomeFornitore as NomeFornitore, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, 0 as Venduto, sum(TT.Venduto) as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(F.nome) as NomeFornitore, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario from scontomerce D inner join prodotti P on P.idprodotti = D.idprodotto inner join fornitori F on F.idfornitori = P.fornitore where P.Anno = $anno and D.Anno = $anno and F.idfornitori = $idFornitore) as TT group by NomeFornitore, NomeProdotto, Categoria, Venduto, PrezzoUnitario)as PP group by NomeFornitore, NomeProdotto, Categoria, PrezzoUnitario " ; debug (0, $qAnno) ; list($nAnno, $dAnno) = $db->RecuperaDati($qAnno) ; // print_r($dAnno) ; if ($nAnno > 0) { // Metto da parte il nome del fornitore $nomeFornitore = $dAnno['NomeFornitore'][0] ; for ($i=0; $i<$nAnno; $i++) { $nomeProdotto = addslashes($dAnno['NomeProdotto'][$i]) . "^" . $dAnno['Categoria'][$i]; if (!array_key_exists($nomeProdotto, $arrVal)) $arrVal[$nomeProdotto][$anno] = array() ; $arrVal[$nomeProdotto][$anno]['Venduto'] += $dAnno['Venduto'][$i] ; $arrTot[$anno]['Venduto'] += $dAnno['Venduto'][$i] ; $arrVal[$nomeProdotto][$anno]['ScontoMerce'] += $dAnno['ScontoMerce'][$i] ; $arrTot[$anno]['ScontoMerce'] += $dAnno['ScontoMerce'][$i] ; $arrVal[$nomeProdotto][$anno]['Ordinato'] += $dAnno['Venduto'][$i] * $dAnno['PrezzoUnitario'][$i] ; $arrTot[$anno]['Ordinato'] += $dAnno['Venduto'][$i] * $dAnno['PrezzoUnitario'][$i] ; $arrVal[$nomeProdotto][$anno]['Quantita'] += $dAnno['Venduto'][$i] + $dAnno['ScontoMerce'][$i] ; $arrTot[$anno]['Quantita'] += $dAnno['Venduto'][$i] + $dAnno['ScontoMerce'][$i] ; } $arrTot[$anno]['PrezzoMedio'] = $arrTot[$anno]['Ordinato'] / $arrTot[$anno]['Quantita'] ; } // print_r($arrVal) ; debug (0, "PM = $prezzoMedio" ) ; // print_r($dAnno) ; /**************************************************************************************** * se esiste la tabella dell'anno precedente, allora mi ricavo i dati dell'anno precedente. * In questo caso faccio una ricerca generica e poi in base ai risultati ottenuti, carico * i valori trovati nell'array di visualizzazione. Da ricordare che due prodotti vengono * ritenuti uguali se hanno uguale nome e uguale categoria (per consentire la distinzione * fra due o pił prodotti che hanno o stesso nome ma appartengono a due categoria diverse) *****************************************************************************************/ // $table = "ordini_$annoP" ; // $ret = $db->checkTable($table) ; $ret = 1 ; debug (0, "RET = $ret ; $nomeProdotto = $nomeProdotto ; For = $nomeFornitore ; Cat = $categoria") ; if ($ret) { /******************************************************************************* * la tabella ordini dell'anno precedente esiste quindi posso fare il confronto. * Per il confronto devo considerare: il nome, la tipologia e il produttore *******************************************************************************/ $qAnnoP = " select PP.NomeFornitore, PP.NomeProdotto, PP.Categoria, sum(PP.Venduto) as Venduto, sum(PP.SM) as ScontoMerce, PP.PrezzoUnitario from ( select TT.NomeFornitore as NomeFornitore, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, sum(TT.Venduto) as Venduto, 0 as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(F.nome) as NomeFornitore, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario from dettagli D inner join prodotti P on P.idprodotti = D.idprodotto inner join fornitori F on F.idfornitori = P.fornitore where P.Anno = $annoP and D.Anno = $annoP and F.idfornitori = $idFornitore) as TT group by NomeFornitore, NomeProdotto, Categoria, SM, PrezzoUnitario union select TT.NomeFornitore as NomeFornitore, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, 0 as Venduto, sum(TT.Venduto) as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(F.nome) as NomeFornitore, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario from scontomerce D inner join prodotti P on P.idprodotti = D.idprodotto inner join fornitori F on F.idfornitori = P.fornitore where P.Anno = $annoP and D.Anno = $annoP and F.idfornitori = $idFornitore) as TT group by NomeFornitore, NomeProdotto, Categoria, Venduto, PrezzoUnitario)as PP group by NomeFornitore, NomeProdotto, Categoria, PrezzoUnitario " ; debug (0, $qAnnoP) ; list($nAnnoP, $dAnnoP) = $db->RecuperaDati($qAnnoP) ; // print_r($dAnnoP) ; for ($i=0; $i<$nAnnoP; $i++) { $nomeProdotto = addslashes($dAnnoP['NomeProdotto'][$i]) . "^" . $dAnnoP['Categoria'][$i]; if (array_key_exists($nomeProdotto, $arrVal)) { $arrVal[$nomeProdotto][$annoP]['Venduto'] += $dAnnoP['Venduto'][$i] ; $arrVal[$nomeProdotto][$annoP]['ScontoMerce'] += $dAnnoP['ScontoMerce'][$i] ; $arrVal[$nomeProdotto][$annoP]['Ordinato'] += $dAnnoP['Venduto'][$i] * $dAnnoP['PrezzoUnitario'][$i] ; $arrVal[$nomeProdotto][$annoP]['Quantita'] += $dAnnoP['Venduto'][$i] + $dAnnoP['ScontoMerce'][$i] ; } /***************************************************************************************** * In ogni caso devo inserire i valori di questo prodotto nell'array che calcola il totale ******************************************************************************************/ $arrTot[$annoP]['Venduto'] += $dAnnoP['Venduto'][$i] ; $arrTot[$annoP]['ScontoMerce'] += $dAnnoP['ScontoMerce'][$i] ; $arrTot[$annoP]['Ordinato'] += $dAnnoP['Venduto'][$i] * $dAnnoP['PrezzoUnitario'][$i] ; $arrTot[$annoP]['Quantita'] += $dAnnoP['Venduto'][$i] + $dAnnoP['ScontoMerce'][$i] ; } @$arrTot[$annoP]['PrezzoMedio'] = $arrTot[$annoP]['Ordinato'] / $arrTot[$annoP]['Quantita'] ; } $str = "" ; @reset($arrVal) ; foreach($arrVal as $nProdotto => $arrAnni) // while(list($nProdotto, $arrAnni) = each($arrVal)) { $sQua = $sOrd = $sMed = "+" ; $qua0 = $qua1 = 0 ; if (! array_key_exists($annoP, $arrAnni)) $bAnnoP = false ; else $bAnnoP = true ; $arrNP = explode("^", $nProdotto) ; $str .= "" ; $str .= "" . htmlspecialchars("" . stripslashes($arrNP[0]) . "") . "" ; $str .= "" ; // while (list($an, $arrSingAnno) = each($arrAnni)) foreach($arrAnni as $an => $arrSingAnno) { if ($arrSingAnno['Venduto'] > 0) { @$pListino = $arrSingAnno['Ordinato'] / $arrSingAnno['Venduto'] ; @$pMedio = $arrSingAnno['Ordinato'] / $arrSingAnno['Quantita'] ; @$incSM = 100 - (($pMedio * 100) / $pListino) ; } else { @$pListino = 0 ; @$pMedio = 0 ; @$incSM = 0 ; } if ($an == $anno) { $qua0 = $arrSingAnno['Quantita'] ; $ord0 = $arrSingAnno['Ordinato'] ; $pm0 = $pMedio ; } else { $qua1 = $arrSingAnno['Quantita'] ; $ord1 = $arrSingAnno['Ordinato'] ; $pm1 = $pMedio ; } $str .= "" ; $str .= "" ; $str .= "$an" ; $str .= "" . $arrSingAnno['Quantita'] . "" ; $str .= "" . nfe($arrSingAnno['Ordinato']) . "" ; $str .= "" . nfe($pMedio) . "" ; $str .= "" . nfp($incSM) . " %" ; $str .= "" ; if (! $bAnnoP) { $qua1 = $ord1 = $pm1 = 0 ; $str .= "" ; $str .= "" ; $str .= "$annoP" ; $str .= "ND" ; $str .= "ND" ; $str .= "ND" ; $str .= "ND" ; $str .= "" ; } } if ($qua1 > 0) { $pQua = (($qua0 - $qua1) * 100) / $qua1 ; if ($pQua <= 0) $sQua = "" ; } else $pQua = 100 ; if ($ord1 > 0) { $pOrd = (($ord0 - $ord1) * 100) / $ord1 ; if ($pOrd <= 0) $sOrd = "" ; } else $pOrd = 100 ; if ($pm1 > 0) { $pMed = (($pm0 - $pm1) * 100) / $pm1 ; if ($pMed <= 0) $sMed = "" ; } else $pMed = 100 ; $str .= "" ; $str .= "" ; $str .= "" ; $str .= "" . $sQua . nfp($pQua) . " %" ; $str .= "" . $sOrd . nfp($pOrd) . " %" ; $str .= "" . $sMed . nfp($pMed) . " %" ; $str .= "" ; $str .= "" ; $str .= "" ; $str .= "" . htmlspecialchars("
") . "
" ; $str .= "" . htmlspecialchars("
") . "
" ; $str .= "" . htmlspecialchars("
") . "
" ; $str .= "" . htmlspecialchars("
") . "
" ; $str .= "" . htmlspecialchars("
") . "
" ; $str .= "" . htmlspecialchars("
") . "
" ; $str .= "
" ; } $str .= "
" ; $header = "NOME PRODOTTO,Anno,Quantitą,Ordinato,Prezzo Medio,incidenza % SM" ; $footer = "TOTALI $anno:-#cspan-" . nfl($arrTot[$anno]['Quantita']) . "-" . nfe($arrTot[$anno]['Ordinato']) . "-" . nfe($arrTot[$anno]['PrezzoMedio']) . "-" ; $footer1 = "TOTALI $annoP:-#cspan-" . nfl($arrTot[$annoP]['Quantita']) . "-" . nfe($arrTot[$annoP]['Ordinato']) . "-" . nfe($arrTot[$annoP]['PrezzoMedio']) . "-" ; $strSort = "na,na,na,na,na,na" ; $iniWP = "44,10,10,10,13,13" ; $setColType = "ro,ro,ro,ro,ro,ro" ; $setColAlign = "right,center,right,right,right,right" ; $titolo = "Confronto con periodo precedente il Fornitore: $nomeFornitore" ; ?> New Document
Non ci sono attualmente prodotti inseriti per questo fornitore