print_r($_GET + $_POST) ;
/********************************************************************************
* Confronta i dati di tutti o di un cliente rispetto ai dati dell'anno precedente
*********************************************************************************/
include ("../common/public.php") ;
$nomemese = Array("", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre") ;
$vis_bot_lis_anno = false ;
$vis_bot_lis_annop = false ;
list($giorno, $mese) = split("/", $gime) ;
$mesevis = $nomemese[ltrim($mese,"0")] ;
list($id_fn, $nome_fn) = split("\^", stripslashes($fornitore)) ;
/**************************************************************************************
* nei casi in cui ho definito un cliente e/o un fornitore, mi vado a recuperare i nomi
**************************************************************************************/
if ($cliente > 0)
{
$q = "select * from $tclienti where idclienti = $cliente" ;
list($n,$d) = $db->RecuperaDati($q) ;
$nome_cliente = $d['Nome'][0] ;
}
$where = $where_1 = "1=1" ;
/******************************************************************************
* cerco di capire che tipo di operazione è stata richiesta
******************************************************************************/
if ($cliente == 0 and $id_fn == 0)
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis per Tutti i Clienti" ;
elseif ($cliente > 0 and $id_fn == 0)
{
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis per il Cliente $nome_cliente" ;
$where = "A.IdClienti = $cliente" ;
}
elseif ($cliente == 0 and $id_fn > 0)
{
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis per Tutti i Clienti
verso il Fornitore $nome_fn" ;
$where_1 = "A.idfornitore = $id_fn" ;
}
else
{
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mesevis per il Cliente $nome_cliente
verso il Fornitore $nome_fn" ;
$where = "A.IdClienti = $cliente" ;
$where_1 = "A.idfornitore = $id_fn" ;
}
/*****************************************************************************
* Devo calcolare qui quanti sono i clienti
******************************************************************************/
for ($an = ($anno - 1) ; $an <= $anno; $an ++)
{
/**************************************
* Mi ricavo gli id di tutti i clienti
***************************************/
$db->query("
select
A.*
from
clienti_$an A
where
$where
order by
A.Nome
") ;
while ($db->next_record())
$cl[$db->f('IdClienti')] = $db->f('Nome') ;
}
asort($cl) ;
/***************************************************************************
* 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 clienti
***************************************************************************/
unset($valori) ;
for ($an = ($anno - 1) ; $an <= $anno; $an ++)
{
$dataordine = MySqlDate("$gime/$an") ;
$dbt = new FC_SQL ;
$dbord = new FC_SQL ;
@reset($cl) ;
while(list($id_cl, $nome_cl) = each($cl))
{
$valori[$nome_cl]['ID_CLI'] = $id_cl ;
$valori[$nome_cl]['NUMORD'][$an] = 0 ;
$valori[$nome_cl]['VENDUTO'][$an] = 0 ;
$valori[$nome_cl]['FATT'][$an] = 0 ;
$totforn = 0 ;
$totfatt = 0 ;
$qord = "
select
A.*,
(TO_DAYS('$dataordine') - TO_DAYS(A.DataSpedFattura)) as DIFFGG
from
ordini_$an A
where
A.idcliente = $id_cl and
A.dataordine <= '$dataordine' and
$where_1
order by
A.idordini
" ;
debug (0, $qord) ;
$dbord->query($qord) ;
while ($dbord->next_record())
{
$valori[$nome_cl]['NUMORD'][$an] += 1 ;
$totordine = 0 ;
$id_fn = $dbord->f("IdFornitore") ;
$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_$an, prodotti_$an where dettagli_$an.idordine = $idordine and prodotti_$an.idprodotti = dettagli_$an.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())
{
$impparz = $dbt->f("NumCartoni") * $dbt->f("ConfezioniDa") * $dbt->f("PrezzoUnitario") ;
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_cl]['VENDUTO'][$an] += $totforn ;
if ($totfatt > 0)
$valori[$nome_cl]['FATT'][$an] += $totfatt ;
}
}
@reset($cl) ;
@reset($valori) ;
// print_r($valori) ; exit ;
$i = 0 ;
$str = "
Il confronto fra due anni può essere effettuato solo a partire dal 2003. |