/****************************************************************************************
* confronto il venduto del fornitore calcolando il prezzo medio con l'anno precedente:
* Nella variabile $fornitore ho l'id del fornitore secondo l'anno in corso
************************************************************************************/
include ("../common/public.php") ;
// print_r($_GET + $_POST) ; // exit ;
$nomemese = Array("", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre") ;
list($giorno, $mese) = split("/", $gime) ;
$mesevis = $nomemese[ltrim($mese,"0")] ;
/************************************************************************************
* Primo controllo: questo fornitore ha delle aziende collegate? Se si allora rimando
* alla pagina confrontaAP_AziendeCollegate.php
*************************************************************************************/
$qa = "
select
RFA.*
from
relfornitoriaziende RFA
where
RFA.IdFornitore = $idFornitore and
RFA.Anno = '$anno'
" ;
list($na, $da) = $db->RecuperaDati($qa) ;
if ($na > 0)
header("Location: ./ConfrontaConPrezzoMedioAziendeCollegate.php?idFornitore=$idFornitore&gime=$gime") ;
$annoP = $anno - 1 ;
$arrVal = array() ;
$arrTot = array() ;
$sQua = $sOrd = $sMed = "+" ;
/****************************************************************************
* dall'id del fornitore passato mi ricavo i dati per l'anno in corso
*****************************************************************************/
$dataOrdine = MySqlDate("$gime/$anno") ;
$qAnno = "
select
PP.NomeFornitore,
PP.NomeProdotto,
PP.Categoria,
sum(PP.Venduto) as Venduto,
sum(PP.SM) as ScontoMerce,
PP.PrezzoUnitario
from
(
select
TT.NomeFornitore as NomeFornitore,
TT.NomeProdotto as NomeProdotto,
TT.Categoria as Categoria,
sum(TT.Venduto) as Venduto,
0 as SM,
TT.PrezzoUnitario as PrezzoUnitario
from
(select
Trim(F.nome) as NomeFornitore,
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 fornitori_$anno F on F.idfornitori = P.Fornitore
inner join ordini_$anno O on O.IdOrdini = D.IdOrdine
where
F.idfornitori = $idFornitore and
O.DataOrdine <= '$dataOrdine') as TT
group by
NomeFornitore,
NomeProdotto,
Categoria,
SM,
PrezzoUnitario
union
select
TT.NomeFornitore as NomeFornitore,
TT.NomeProdotto as NomeProdotto,
TT.Categoria as Categoria,
0 as Venduto,
sum(TT.Venduto) as SM,
TT.PrezzoUnitario as PrezzoUnitario
from
(select
Trim(F.nome) as NomeFornitore,
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 fornitori_$anno F on F.idfornitori = P.Fornitore
inner join ordini_$anno O on O.IdOrdini = D.IdOrdine
where
F.idfornitori = $idFornitore and
O.DataOrdine <= '$dataOrdine') as TT
group by
NomeFornitore,
NomeProdotto,
Categoria,
Venduto,
PrezzoUnitario)as PP
group by
NomeFornitore,
NomeProdotto,
Categoria,
PrezzoUnitario
" ;
debug (0, $qAnno) ;
list($nAnno, $dAnno) = $db->RecuperaDati($qAnno) ;
// print_r($dAnno) ;
if ($nAnno > 0)
{
// Metto da parte il nome del fornitore
$nomeFornitore = $dAnno['NomeFornitore'][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)
{
$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.NomeFornitore,
PP.NomeProdotto,
PP.Categoria,
sum(PP.Venduto) as Venduto,
sum(PP.SM) as ScontoMerce,
PP.PrezzoUnitario
from
(
select
TT.NomeFornitore as NomeFornitore,
TT.NomeProdotto as NomeProdotto,
TT.Categoria as Categoria,
sum(TT.Venduto) as Venduto,
0 as SM,
TT.PrezzoUnitario as PrezzoUnitario
from
(select
Trim(F.nome) as NomeFornitore,
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 fornitori_$annoP F on F.idfornitori = P.Fornitore
inner join ordini_$annoP O on O.IdOrdini = D.IdOrdine
where
F.idfornitori = $idFornitore and
O.DataOrdine <= '$dataOrdine') as TT
group by
NomeFornitore,
NomeProdotto,
Categoria,
SM,
PrezzoUnitario
union
select
TT.NomeFornitore as NomeFornitore,
TT.NomeProdotto as NomeProdotto,
TT.Categoria as Categoria,
0 as Venduto,
sum(TT.Venduto) as SM,
TT.PrezzoUnitario as PrezzoUnitario
from
(select
Trim(F.nome) as NomeFornitore,
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 fornitori_$annoP F on F.idfornitori = P.fornitore
inner join ordini_$annoP O on O.IdOrdini = D.IdOrdine
where
F.idfornitori = $idFornitore and
O.DataOrdine <= '$dataOrdine') as TT
group by
NomeFornitore,
NomeProdotto,
Categoria,
Venduto,
PrezzoUnitario)as PP
group by
NomeFornitore,
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'] ;
}
$str = "
") . "
") . "
") . "
") . "
") . "
") . "