/********************************************************************************
* Confronta i dati di tutti o di un agente rispetto ai dati dell'anno precedente
* Se il cliente passato è "0^Tutti" allora per il dato agente visualizzo tutti
* i clienti che hanno un qualche ordine o nell'anno $anno o nell'anno $anno-1
* VERIONE 3.0 READY
*********************************************************************************/
// print_r($_GET + $_POST) ; // exit ;
include ("../common/public.php") ;
$nomemese = Array("", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre") ;
list($giorno, $mese) = explode("/", $gime) ;
$mese = $nomemese[ltrim($mese,"0")] ;
list($idag, $nome_agente) = explode("^", $agente) ;
list($idcli, $nome_cliente) = explode("^", $cliente) ;
$bOrdiniTrovati = false ;
if ($idag == 0)
{
if ($profilo < 3)
$where_ag = "1" ;
else
$where_ag = " idagenti != 4
and idagenti != 5
" ;
if ($idcli == 0)
{
$where_cli = "1" ;
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mese per Tutti gli agenti verso Tutti i clienti" ;
}
else
{
$nome_cliente = stripslashes($nome_cliente) ;
$where_cli = "O.idcliente = $idcli" ;
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mese per Tutti gli agenti verso il cliente $nome_cliente" ;
}
}
else
{
$where_ag = "A.idagenti = $idag" ;
if ($idcli == 0)
{
$where_cli = "1" ;
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mese per l'agente $nome_agente verso Tutti i clienti" ;
}
else
{
$nome_cliente = stripslashes($nome_cliente) ;
$where_cli = "O.idcliente = $idcli" ;
$titolo = "Confronto Anno ". sprintf("%s", ($anno - 1)) . " - Anno $anno al $giorno $mese per l'agente $nome_agente verso il cliente $nome_cliente" ;
}
}
$arrAgenti = array() ;
$arrClienti = array() ;
$arrVal = array() ;
$arrValAllCli = array() ;
$annop = ($anno - 1) ;
$hdr_agente = "Agente" ;
/***********************
* partiamo dai totali
***********************/
for ($an = $anno ; $an >= $anno - 1; $an --)
{
$dataordine = MySqlDate("$gime/$an") ;
$query = "
select
A.idagenti,
A.nome,
count(O.idordini) as tot
from
agenti A
left join ordini O on O.idagente = A.idagenti and
O.Anno = $an and
$where_cli
where
O.dataordine <= '$dataordine' and
O.dataordine != '0000/00/00' and
$where_ag
group by
A.idagenti,
A.nome
order by
A.nome
" ;
debug (0, $query) ;
list($n, $d) = $db->RecuperaDati($query) ;
for ($i=0; $i<$n; $i++)
{
$idagente = $d['idagenti'][$i] ;
$nomeagente = $d['nome'][$i] ;
if (! array_key_exists($idagente, $arrAgenti))
{
$arrAgenti[$idagente] = $nomeagente ;
$arrVal[$idagente]['NUMORDINI'][$anno] = 0 ;
$arrVal[$idagente]['NUMORDINI'][($anno - 1)] = 0 ;
$arrVal[$idagente]['VENDUTO'][$anno] = 0 ;
$arrVal[$idagente]['VENDUTO'][($anno - 1)] = 0 ;
$arrVal[$idagente]['FATTURATO'][$anno] = 0 ;
$arrVal[$idagente]['FATTURATO'][($anno - 1)] = 0 ;
}
$arrVal[$idagente]['NUMORDINI'][$an] = $d['tot'][$i] ;
}
}
/**********************
* calcoliamo i totali
**********************/
for ($an = $anno ; $an >= $anno - 1; $an --)
{
$dataordine = MySqlDate("$gime/$an") ;
$dataspedfatt = str_replace("/", "-", $dataordine) ;
$dbt = new FC_SQL ;
$dbord = new FC_SQL ;
@reset($arrAgenti) ;
foreach($arrAgenti as $id_agente => $nome_agente)
{
$totforn = 0 ;
$totfornFatt = 0 ;
$totproforn = 0 ;
$qord = "
select
O.*,
C.nome as NomeCliente,
case
when (O.ImportoNC > 0) then (O.ImportoNC / 1.2)
else 0
end as valNC
from
ordini O
inner join clienti C on C.IdClienti = O.IdCliente
where
O.Anno = $an and
O.idagente = $id_agente and
$where_cli and
O.dataordine <= '$dataordine' and
O.dataordine != '0000/00/00'
" ;
list($n, $d) = $dbord->RecuperaDati($qord) ;
for ($i=0; $i<$n; $i++)
{
$idcliente = $d['IdCliente'][$i] ;
$nomecliente = $d['NomeCliente'][$i] ;
debug (0, $idcliente) ;
if (!array_key_exists($idcliente, $arrValAllCli))
{
$arrClienti[$idcliente] = $nomecliente ;
$arrValAllCli[$idcliente] = array('NUMORDINI' => array($anno => 0,
$annop => 0
)
) ;
}
$arrValAllCli[$idcliente]['NUMORDINI'][$an] ++ ;
$totordine = 0 ;
$sco1 = $d['Sconto1'][$i] ;
$sco2 = $d['Sconto2'][$i] ;
$sco3 = $d['Sconto3'][$i] ;
$idordine = $d['IdOrdini'][$i] ;
$valNC = $d['valNC'][$i] ;
$idfor = $d['IdFornitore'][$i] ;
$impFatt = $d['ImportoFattura'][$i] ;
$dataSpedFatt = $d['DataSpedFattura'][$i] ;
if ($idfor != $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)" ;
list($nn, $dd) = $dbt->RecuperaDati($query) ;
for ($ii=0; $ii<$nn; $ii++)
{
$prz = ($dd['PrezzoForzato'][$ii] > 0 ? $dd['PrezzoForzato'][$ii] : $dd['PrezzoUnitario'][$ii]) ;
$impparz = $dd['NumCartoni'][$ii] * $dd['ConfezioniDa'][$ii] * $prz ;
if ($dd['ScontoPrd'][$ii] != "")
$impparz = CalcolaScontoProdotto($impparz, $dd['ScontoPrd'][$ii]) ;
$totordine += $impparz ;
}
$sconto1 = ($totordine * $sco1 / 100) ;
$ammpro1 = $totordine - $sconto1 ;
$sconto2 = ($ammpro1 * $sco2 / 100) ;
$ammpro2 = $ammpro1 - $sconto2 - $valNC;
/****************************************************************************************************************
* Calcolo a questo punto l'ammontare delle provvigioni per questo ordine dopo aver sottratto dall'imponibile gli
* eventuali 2 sconti forniti dal fornitore e l'eventuale ammontare della nota di credito. Idem per il fatturato
*****************************************************************************************************************/
$provvigione = $arrProvv[$an][$idfor][$id_agente] ;
$totproordine = ($ammpro2 * $provvigione / 100) ;
$sconto = $sconto1 + $sconto2 ;
$totordine = $totordine - $sconto - $valNC;
$totforn += $totordine ;
$totproforn += $totproordine ;
if ($impFatt > 0 and $dataSpedFatt <= $dataspedfatt)
$totfornFatt += $totordine ;
$arrValAllCli[$idcliente]['VENDUTO'][$an] += $totordine ;
if ($impFatt > 0 and $dataSpedFatt <= $dataspedfatt)
$arrValAllCli[$idcliente]['FATTURATO'][$an] += $totordine ;
}
$arrVal[$id_agente]['FATTURATO'][$an] += $totfornFatt ;
$arrVal[$id_agente]['VENDUTO'][$an] += $totforn ;
}
}
if ($idag != 0 and $idcli == 0)
{
asort($arrClienti) ;
$arrAgenti = $arrClienti ;
$arrVal = $arrValAllCli ;
$hdr_agente = "Cliente" ;
}
$str = "