/**************************************************************************************** * confronto il venduto del fornitore calcolando il prezzo medio con l'anno precedente: * Nella variabile $prodotto ho l'id del prodotto secondo l'anno in corso ************************************************************************************/ include ("../common/public.php") ; include ("../common/calc.php") ; $now = new Date_Calc ; // print_r($_GET + $_POST) ; $nomemese = Array("", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre") ; list($giorno, $mese) = split("/", $gime) ; $mesevis = $nomemese[ltrim($mese,"0")] ; $annoP = $anno - 1 ; $arrNomiAziende = array() ; $arrIdAziende = array() ; $arrVal = array() ; $arrTot = array() ; $sQua = $sOrd = $sMed = "+" ; $sTQua = $sTOrd = $sTMed = "+" ; /********************************************************************************* * dall'id del fornitore passato mi ricavo gli id delle aziende a lui collegate **********************************************************************************/ $query = " select Trim(F.Nome) as NomeFornitore, A.* from fornitori_$anno F left join relfornitoriaziende RFA on RFA.idfornitore = F.idfornitori left join aziende_$anno A on A.idaziende = RFA.idazienda where F.idfornitori = $idFornitore and RFA.Anno = '$anno' order by A.Nome " ; list($n, $d) = $db->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) ; $dataOrdine = MySqlDate("$gime/$anno") ; 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 inner join ordini_$anno O on O.IdOrdini = D.IdOrdine where P.AziendaCollegata = $idAzienda and O.DataOrdine <= '$dataOrdine') 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 inner join ordini_$anno O on O.IdOrdini = D.IdOrdine where P.AziendaCollegata = $idAzienda and O.DataOrdine <= '$dataOrdine') 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) ; $arrNomiAziendeAnnoP = $d['Nome'] ; $arrIdAziendeAnnoP = $d['IdAziende'] ; $dataOrdine = MySqlDate("$gime/$annoP") ; 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 inner join ordini_$annoP O on O.IdOrdini = D.IdOrdine where P.AziendaCollegata = $idAzienda and O.DataOrdine <= '$dataOrdine') 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 inner join ordini_$annoP O on O.IdOrdini = D.IdOrdine where P.AziendaCollegata = $idAzienda and O.DataOrdine <= '$dataOrdine') as TT group by NomeAzienda, Quantita, Ordinato) as PP group by NomeAzienda " ; list($nAnnoP, $dAnnoP) = $db->RecuperaDati($qAnnoP) ; 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] ; } } } } // Fine if se esiste la tabella degli ordini dell'anno precedente $arrParGen = array() ; $arrParGen = RecuperaParametriGenerali($arrParGen, $tparametri) ; $sede = "Sede operativa: " . $arrParGen['IndirizzoAgenzia'] ; $datisede = "Telefono: " . $arrParGen['TelefonoAgenzia'] . " Fax: " . $arrParGen['FaxAgenzia'] . " -- P.I. " . $arrParGen['PartitaIvaAgenzia'] ; $emailsede = "Email: " . $arrParGen['MailAgenzia'] ; ?>
![]() |
echo $sede ?> echo $datisede ?> echo $emailsede ?> |
|||||||
| Venduto per Prodotto - Confronto con periodo precedente al echo $giorno . ' ' . $mesevis ?> | ||||||||
| Azienda: | echo $nomeFornitore ?> | |||||||
| echo stripslashes($nAzienda) ?> | |||||
| Anno | Quantitą | Ordinato | Prezzo Medio | incidenza % SM | |
| echo $an ?> | echo nfl($arrSingAnno['Quantita']) ?> | echo nfe($arrSingAnno['Ordinato']) ?> | echo nfe($pMedio) ?> | echo nfp($incSM) . " %" ?> | |
| echo $annoP ?> | echo "ND" ?> | echo "ND" ?> | echo "ND" ?> | echo "ND" ?> | |
| echo $sQua . nfp($pQua) ?> | echo $sOrd . nfp($pOrd) ?> | echo $sMed . nfp($pMed) ?> | |||
| TOTALI echo $anno ?>: | echo nfl($arrTot[$anno]['Quantita']) ?> | echo nfe($arrTot[$anno]['Ordinato']) ?> | echo nfe($arrTot[$anno]['PrezzoMedio']) ?> | ||
| TOTALI echo $annoP ?>: | echo nfl($arrTot[$annoP]['Quantita']) ?> | echo nfe($arrTot[$annoP]['Ordinato']) ?> | echo nfe($arrTot[$annoP]['PrezzoMedio']) ?> | ||
| Differenza %: | echo $sTQua . nfp($pTQua) . " %" ?> | echo $sTOrd . nfp($pTOrd) . " %" ?> | echo $sTMed . nfp($pTMed) . " %" ?> | ||