/********************************************************************************
* Confronta i dati di tutti o di un fornitore rispetto ai dati dell'anno precedente
*********************************************************************************/
include ("../common/public.php") ;
$nomemese = Array("", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre") ;
list($giorno, $mese) = explode("/", $gime) ;
$mesevis = $nomemese[ltrim($mese,"0")] ;
$where_for = $where_cli = "1=1" ;
/********************************************
* mi recupero gli id e i nomi dei fornitori
********************************************/
$idFor = $id_for ;
$nomiFor = $nomi_for ;
$id_for = substr($id_for, 0, -1);
$nomi_for = substr($nomi_for, 0, -1);
if ($id_for == 0) // HO SCELTO TUTTI
{
$where_for = "F.IdFornitori like ('%')" ;
}
else
{
$where_for = "F.IdFornitori IN (" . str_replace("£", ",", $id_for) . ")" ;
$in_nomi_for = str_replace("£", ", ", $nomi_for) ;
}
/******************************************************************************
* cerco di capire che tipo di operazione č stata richiesta
******************************************************************************/
if ($htipo == 1)
{
if ($id_for == 0) // TUTTI
{
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis
per Tutti i Fornitori" ;
}
else
{
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis
per il/i Fornitore/i $in_nomi_for" ;
}
}
elseif ($htipo == 2 )
{
list($id_cliente, $nome_cliente) = explode("^", stripslashes($cliente)) ;
$where_cli = "O.idcliente = $id_cliente" ;
if ($id_for == 0) // TUTTI
{
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis
per Tutti i Fornitori
verso il Cliente $nome_cliente" ;
}
else
{
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis
per il/i Fornitore/i $in_nomi_for
verso il Cliente $nome_cliente" ;
}
}
/*****************************************************************************
* Devo calcolare qui quanti sono ifornitori
******************************************************************************/
for ($an = ($anno - 1) ; $an <= $anno; $an ++)
{
/**************************************
* Mi ricavo gli id di tutti i fornitori
***************************************/
$qfor = "
select
F.*
from
fornitori F
where
$where_for
order by
nome
" ;
$db->query($qfor) ;
while ($db->next_record())
$fn[$db->f('IdFornitori')] = $db->f('Nome') ;
}
asort($fn) ;
/*********************************************************************************************
* cerco di eseguire la query una sola volta e di ricavarmi tutti i valori che mi servono
* A questo punto ho gią l'array dei fornitori
*********************************************************************************************/
unset($valori) ;
for ($an = ($anno - 1) ; $an <= $anno; $an ++)
{
$dataordine = MySqlDate("$gime/$an") ;
$dbt = new FC_SQL ;
$dbord = new FC_SQL ;
@reset($fn) ;
foreach($fn as $id_fn => $nome_fn)
{
$valori[$nome_fn]['ID_FOR'] = $id_fn ;
$valori[$nome_fn]['NUMORD'][$an] = 0 ;
$valori[$nome_fn]['VENDUTO'][$an] = 0 ;
$valori[$nome_fn]['FATT'][$an] = 0 ;
$totforn = 0 ;
$totfatt = 0 ;
$qord = "
select
O.*,
(TO_DAYS('$dataordine') - TO_DAYS(O.DataSpedFattura)) as DIFFGG
from
ordini O
where
O.Anno = $an and
O.idfornitore = $id_fn and
O.dataordine <= '$dataordine' and
$where_cli
" ;
debug (0, $qord) ;
$dbord->query($qord) ;
while ($dbord->next_record())
{
$valori[$nome_fn]['NUMORD'][$an] += 1 ;
$totordine = 0 ;
$impfatt = $dbord->f("ImportoFattura") ;
$datasf = $dbord->f("DataSpedFattura") ;
$diffgg = $dbord->f("DIFFGG") ;
$sco1 = $dbord->f("Sconto1") ;
$sco2 = $dbord->f("Sconto2") ;
$sco3 = $dbord->f("Sconto3") ;
$idordine = $dbord->f("IdOrdini") ;
$importoNC = $dbord->f("ImportoNC") ;
if ($importoNC > 0)
$valNC = ($importoNC / 1.2) ;
else
$valNC = 0 ;
if ($id_fn != $idsarzi)
$query = "
select
*
from
dettagli D,
prodotti P
where
P.Anno = $an and
D.Anno = $an and
D.idordine = $idordine and
P.idprodotti = D.idprodotto " ;
else
$query = "select * from dettagli_$an, sarzi_$an where dettagli_$an.idordine = $idordine and dettagli_$an.idprodotto = CONCAT('SA', idprodotti)" ;
debug (0, $query) ;
$dbt->query($query) ;
while ($dbt->next_record())
{
if ($dbt->f('PrezzoForzato') > 0)
$prezzoDaConsiderare = $dbt->f('PrezzoForzato') ;
else
$prezzoDaConsiderare = $dbt->f('PrezzoUnitario') ;
$impparz = $dbt->f("NumCartoni") * $dbt->f("ConfezioniDa") * $prezzoDaConsiderare ;
if ($dbt->f("ScontoPrd") != "")
$impparz = CalcolaScontoProdotto($impparz, $dbt->f("ScontoPrd")) ;
$totordine += $impparz ;
}
$sconto1 = ($totordine * $sco1 / 100) ;
$ammpro1 = $totordine - $sconto1 ;
$sconto2 = ($ammpro1 * $sco2 / 100) ;
$ammpro2 = $ammpro1 - $sconto2 - $valNC;
$sconto = $sconto1 + $sconto2 ;
$totordine = $totordine - $sconto - $valNC;
$totforn += $totordine ;
if ($impfatt > 0 and $diffgg >= 0 and $datasf != "0000-00-00")
$totfatt += $totordine ;
}
$valori[$nome_fn]['VENDUTO'][$an] += $totforn ;
if ($totfatt > 0)
$valori[$nome_fn]['FATT'][$an] += $totfatt ;
}
}
@reset($fn) ;
@reset($valori) ;
$i = 0 ;
$str = "