RecuperaDati($query) ; /*************************************************************** * Mi salvo alcuni dati che mi servono ****************************************************************/ $nomeFornitore = $d['NomeFornitore'][0] ; $arrIdAziende = $d['IdAziende'] ; $arrNomiAziende = $d['Nome'] ; /*************************************************************** * Per ogni azienda vado a calcolare il totale per l'anno $anno ****************************************************************/ @reset($arrIdAziende) ; foreach($arrIdAziende as $idAzienda) { $qAnno = " select PP.NomeAzienda, sum(PP.Quantita) as QuantitaVend, sum(PP.Ordinato) as OrdinatoVend, sum(PP.SM) as QuantitaSM, sum(PP.OrdinatoSM) as OrdinatoSM, sum(PP.Quantita) + sum(PP.SM) as QuantitaTot, sum(PP.Ordinato) / (sum(PP.Quantita) + sum(PP.SM)) as PrezzoMedio from ( select TT.NomeAzienda as NomeAzienda, sum(TT.Venduto) as Quantita, sum(TT.Ordinato) as Ordinato, 0 as SM, 0 as OrdinatoSM from (select Trim(A.nome) as NomeAzienda, (D.NumCartoni * D.ConfezioniDa) as Venduto, (D.NumCartoni * D.ConfezioniDa * P.prezzounitario) as Ordinato from dettagli_$anno D inner join prodotti_$anno P on P.idprodotti = D.idprodotto inner join aziende_$anno A on A.idAziende = P.AziendaCollegata where P.AziendaCollegata = $idAzienda) as TT group by NomeAzienda, SM, OrdinatoSM union select TT.NomeAzienda as NomeAzienda, 0 as Quantita, 0 as Ordinato, sum(TT.Venduto) as SM, sum(TT.Ordinato) as OrdinatoSM from (select Trim(A.nome) as NomeAzienda, (D.NumCartoni * D.ConfezioniDa ) as Venduto, (D.NumCartoni * D.ConfezioniDa * P.prezzounitario) as Ordinato from scontomerce_$anno D inner join prodotti_$anno P on P.idprodotti = D.idprodotto inner join aziende_$anno A on A.idAziende = P.AziendaCollegata where P.AziendaCollegata = $idAzienda) as TT group by NomeAzienda, Quantita, Ordinato) as PP group by NomeAzienda " ; debug (0, $qAnno) ; list($nAnno, $dAnno) = $db->RecuperaDati($qAnno) ; if ($nAnno > 0) { // L'array arrNId contiene la corrispondenza fra Nome Azienda e Id per il primo anno scelto $arrNId[$dAnno['NomeAzienda'][0]] = $idAzienda ; $arrVal[$dAnno['NomeAzienda'][0]][$anno] = array('Ordinato' => $dAnno['OrdinatoVend'][0], 'PrezzoMedio' => $dAnno['PrezzoMedio'][0], 'Quantita' => $dAnno['QuantitaTot'][0], 'QuantitaV' => $dAnno['QuantitaVend'][0] ) ; $arrTot[$anno]['Ordinato'] += $dAnno['OrdinatoVend'][0] ; $arrTot[$anno]['PrezzoMedio'] += $dAnno['PrezzoMedio'][0] ; $arrTot[$anno]['Quantita'] += $dAnno['QuantitaTot'][0] ; $arrTot[$anno]['QuantitaV'] += $dAnno['QuantitaVend'][0] ; } } /**************************************************************************************** * 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) ; 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 controllare il nome del fornitore e i nomi delle eventuali * aziende collegate ********************************************************************************************/ $query = " select Trim(F.Nome) as NomeFornitore, A.* from fornitori_$annoP F left join relfornitoriaziende RFA on RFA.idfornitore = F.idfornitori left join aziende_$annoP A on A.idaziende = RFA.idazienda where F.Nome = '$nomeFornitore' and RFA.Anno = '$annoP' order by A.Nome " ; list($n, $d) = $db->RecuperaDati($query) ; // print_r($d) ; exit ; $arrNomiAziendeAnnoP = $d['Nome'] ; $arrIdAziendeAnnoP = $d['IdAziende'] ; foreach($arrIdAziendeAnnoP as $idAzienda) { $qAnnoP = " select PP.NomeAzienda, sum(PP.Quantita) as QuantitaVend, sum(PP.Ordinato) as OrdinatoVend, sum(PP.SM) as QuantitaSM, sum(PP.OrdinatoSM) as OrdinatoSM, sum(PP.Quantita) + sum(PP.SM) as QuantitaTot, sum(PP.Ordinato) / (sum(PP.Quantita) + sum(PP.SM)) as PrezzoMedio from ( select TT.NomeAzienda as NomeAzienda, sum(TT.Venduto) as Quantita, sum(TT.Ordinato) as Ordinato, 0 as SM, 0 as OrdinatoSM from (select Trim(A.nome) as NomeAzienda, (D.NumCartoni * D.ConfezioniDa) as Venduto, (D.NumCartoni * D.ConfezioniDa * P.prezzounitario) as Ordinato from dettagli_$annoP D inner join prodotti_$annoP P on P.idprodotti = D.idprodotto inner join aziende_$annoP A on A.idAziende = P.AziendaCollegata where P.AziendaCollegata = $idAzienda) as TT group by NomeAzienda, SM, OrdinatoSM union select TT.NomeAzienda as NomeAzienda, 0 as Quantita, 0 as Ordinato, sum(TT.Venduto) as SM, sum(TT.Ordinato) as OrdinatoSM from (select Trim(A.nome) as NomeAzienda, (D.NumCartoni * D.ConfezioniDa ) as Venduto, (D.NumCartoni * D.ConfezioniDa * P.prezzounitario) as Ordinato from scontomerce_$annoP D inner join prodotti_$annoP P on P.idprodotti = D.idprodotto inner join aziende_$annoP A on A.idAziende = P.AziendaCollegata where P.AziendaCollegata = $idAzienda) as TT group by NomeAzienda, Quantita, Ordinato) as PP group by NomeAzienda " ; debug (1, $qAnnoP) ; list($nAnnoP, $dAnnoP) = $db->RecuperaDati($qAnnoP) ; print_r ($dAnnoP) ; if ($nAnnoP > 0) { if (array_key_exists($dAnnoP['NomeAzienda'][0], $arrVal)) { $arrVal[$dAnnoP['NomeAzienda'][0]][$annoP] = array('Ordinato' => $dAnnoP['OrdinatoVend'][0], 'PrezzoMedio' => $dAnnoP['PrezzoMedio'][0], 'Quantita' => $dAnnoP['QuantitaTot'][0], 'QuantitaV' => $dAnnoP['QuantitaVend'][0] ) ; $arrTot[$annoP]['Ordinato'] += $dAnnoP['OrdinatoVend'][0] ; $arrTot[$annoP]['PrezzoMedio'] += $dAnnoP['PrezzoMedio'][0] ; $arrTot[$annoP]['Quantita'] += $dAnnoP['QuantitaTot'][0] ; $arrTot[$annoP]['QuantitaV'] += $dAnnoP['QuantitaVend'][0] ; } } } /* print_r($arrNId) ; print_r($arrVal) ; exit ; */ } // Fine if se esiste la tabella degli ordini dell'anno precedente exit ; // print_r($arrVal) ; print_r($arrTot) ; exit ; $str = "" ; @reset($arrVal) ; while(list($nAzienda, $arrAnni) = each($arrVal)) { $idRow = $arrNId[$nAzienda] ; $sQua = $sOrd = $sMed = "+" ; $qua0 = $qua1 = 0 ; if (! array_key_exists($annoP, $arrAnni)) $bAnnoP = false ; else $bAnnoP = true ; $str .= "" ; $str .= "" . htmlspecialchars("" . stripslashes($nAzienda) . "") . "" ; $str .= "" ; while (list($an, $arrSingAnno) = each($arrAnni)) { $pListino = $arrSingAnno['Ordinato'] / $arrSingAnno['QuantitaV'] ; $pMedio = $arrSingAnno['PrezzoMedio'] ; $incSM = 100 - (($pMedio * 100) / $pListino) ; 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 .= "" . nfl($arrSingAnno['Quantita']) . "" ; $str .= "" . nfe($arrSingAnno['Ordinato']) . "" ; $str .= "" . nfe($arrSingAnno['PrezzoMedio']) . "" ; $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 AZIENDA,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']) . "^" ; if ($arrTot[$annoP]['Quantita'] > 0) { $pTQua = (($arrTot[$anno]['Quantita'] - $arrTot[$annoP]['Quantita']) * 100) / $arrTot[$annoP]['Quantita'] ; if ($pTQua <= 0) $sTQua = "" ; } else $pTQua = 100 ; if ($arrTot[$annoP]['Ordinato'] > 0) { $pTOrd = (($arrTot[$anno]['Ordinato'] - $arrTot[$annoP]['Ordinato']) * 100) / $arrTot[$annoP]['Ordinato'] ; if ($pTOrd < 0) $sTOrd = "" ; } else $pTOrd = 100 ; if ($arrTot[$annoP]['PrezzoMedio'] > 0) { $pTMed = (($arrTot[$anno]['PrezzoMedio'] - $arrTot[$annoP]['PrezzoMedio']) * 100) / $arrTot[$annoP]['PrezzoMedio'] ; if ($pTMed < 0) $sTMed = "" ; } else $pTMed = 100 ; $footer2 = "Differenza %:^#cspan^" . $sTQua . nfp($pTQua) . " %^" . $sTOrd . nfp($pTOrd) . " %^" . $sTMed . nfp($pTMed) . " %^" ; $strSort = "na,na,na,na,na,na" ; $iniWP = "30,10,10,10,10,10" ; $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
(Per selezionare una azienda clicca sulla riga corrispondente)