RecuperaDati($qAnno) ; // print_r($dAnno) ; exit ; if ($nAnno > 0) { // Metto da parte il nome del fornitore $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) ; exit ; 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) ; 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)) { $pListino = $arrSingAnno['Ordinato'] / $arrSingAnno['Venduto'] ; $pMedio = $arrSingAnno['Ordinato'] / $arrSingAnno['Quantita'] ; $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 .= "" . $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 = "30,10,10,10,13,13" ; $setColType = "ro,ro,ro,ro,ro,ro" ; $setColAlign = "right,center,right,right,right,right" ; $titolo = "Confronto con periodo precedente l'Azienda: $nomeAzienda al $giorno $mesevis" ; ?> New Document
Non ci sono attualmente prodotti inseriti per questo fornitore