/**************************************************************************************** * confronto il venduto dell'azienda (collegata ad un fornitore) calcolando il prezzo medio con l'anno precedente: * Nella variabile $idAzienda ho l'id dell'azienda 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 ; $arrVal = array() ; $arrTot = array() ; $sQua = $sOrd = $sMed = "+" ; /**************************************************************************** * dall'id del'azienda passato mi ricavo i dati per l'anno in corso *****************************************************************************/ $dataOrdine = MySqlDate("$gime/$anno") ; $qAnno = " select PP.NomeAzienda, PP.NomeProdotto, PP.Categoria, sum(PP.Venduto) as Venduto, sum(PP.SM) as ScontoMerce, PP.PrezzoUnitario from ( select TT.NomeAzienda as NomeAzienda, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, sum(TT.Venduto) as Venduto, 0 as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(A.nome) as NomeAzienda, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario 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 A.idaziende = $idAzienda and O.DataOrdine <= '$dataOrdine') as TT group by NomeAzienda, NomeProdotto, Categoria, SM, PrezzoUnitario union select TT.NomeAzienda as NomeAzienda, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, 0 as Venduto, sum(TT.Venduto) as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(A.nome) as NomeAzienda, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario 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 A.idaziende = $idAzienda and O.DataOrdine <= '$dataOrdine') as TT group by NomeAzienda, NomeProdotto, Categoria, Venduto, PrezzoUnitario)as PP group by NomeAzienda, NomeProdotto, Categoria, PrezzoUnitario " ; debug (0, $qAnno) ; list($nAnno, $dAnno) = $db->RecuperaDati($qAnno) ; // print_r($dAnno) ; if ($nAnno > 0) { // Metto da parte il nome del'azienda $nomeAzienda = $dAnno['NomeAzienda'][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) ; debug (0, "RET = $ret ; $nomeProdotto = $nomeProdotto ; For = $nomeFornitore ; Cat = $categoria") ; if ($ret) { /****************************************************************************** * dal nome dell'azienda, devo recuperare l'id che la stessa ha nella tabella * aziende_annoP, perchè non è detto che abbia lo stesso id dell'anno che ho * considerato nella query precedente *******************************************************************************/ $qid = " select * from aziende_$annoP where Nome = '$nomeAzienda' " ; list($nid, $did) = $db->RecuperaDati($qid) ; if ($nid > 0) { $idAziendaP = $did['IdAziende'][0] ; $dataOrdine = MySqlDate("$gime/$annoP") ; /******************************************************************************* * 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.NomeAzienda, PP.NomeProdotto, PP.Categoria, sum(PP.Venduto) as Venduto, sum(PP.SM) as ScontoMerce, PP.PrezzoUnitario from ( select TT.NomeAzienda as NomeAzienda, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, sum(TT.Venduto) as Venduto, 0 as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(A.nome) as NomeAzienda, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario 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 A.idaziende = $idAziendaP and O.DataOrdine <= '$dataOrdine') as TT group by NomeAzienda, NomeProdotto, Categoria, SM, PrezzoUnitario union select TT.NomeAzienda as NomeAzienda, TT.NomeProdotto as NomeProdotto, TT.Categoria as Categoria, 0 as Venduto, sum(TT.Venduto) as SM, TT.PrezzoUnitario as PrezzoUnitario from (select Trim(A.nome) as NomeAzienda, Trim(P.Nome) as NomeProdotto, P.Categoria as Categoria, (D.NumCartoni * D.ConfezioniDa) as Venduto, P.prezzounitario as PrezzoUnitario 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 A.idaziende = $idAziendaP and O.DataOrdine <= '$dataOrdine') as TT group by NomeAzienda, NomeProdotto, Categoria, Venduto, PrezzoUnitario)as PP group by NomeAzienda, 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'] ; } } $arrParGen = array() ; $arrParGen = RecuperaParametriGenerali($arrParGen, $tparametri) ; $nome = $arrParGen['NomeAgenzia'] ; $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 $nomeAzienda ?> | |||||||
| echo stripslashes($arrNP[0]) ?> | |||||
| 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']) ?> | ||