/****************************************************************************************
* Siamo nel caso in cui un fornitore ha delle aziende collegate. Allora in questa pagina
* si visualizzano soltanto i totali delle singole aziende e poi il totale finale per
* tutto il fornitore
************************************************************************************/
include ("../common/public.php") ;
print_r($_GET + $_POST) ; // exit ;
$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 = $fornitore 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) ;
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 = "
") . "
") . "
") . "
") . "
") . "
") . "