368 lines
15 KiB
PHP
368 lines
15 KiB
PHP
|
<?php
|
||
|
$idconto = $html->form( 'idconto' );
|
||
|
$module_name = "Piano dei conti";
|
||
|
include_once( $docroot."/lib/permissions_check.php" );
|
||
|
|
||
|
//carica report html
|
||
|
$report = file_get_contents ($docroot."/templates/partitario_mastrino/partitario.html");
|
||
|
$body = file_get_contents ($docroot."/templates/partitario_mastrino/partitario_body.html");
|
||
|
include_once( "pdfgen_variables.php" );
|
||
|
|
||
|
|
||
|
//Calcolo il percorso piano dei conti
|
||
|
if( $html->form('lev') == '3' ){
|
||
|
$rs = $dbo->fetchArray("SELECT idpianodeiconti2, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti3 WHERE id=\"".$idconto."\"");
|
||
|
$percorso = $rs[0]['descrizione'];
|
||
|
$idpianodeiconti2 = $rs[0]['idpianodeiconti2'];
|
||
|
|
||
|
$rs = $dbo->fetchArray("SELECT idpianodeiconti1, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti2 WHERE id=\"".$idpianodeiconti2."\"");
|
||
|
$percorso = $rs[0]['descrizione']."<br> ".$percorso;
|
||
|
$idpianodeiconti1 = $rs[0]['idpianodeiconti1'];
|
||
|
|
||
|
$rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idpianodeiconti1."\"");
|
||
|
|
||
|
( $rs[0]['descrizione'] == '01 Patrimoniale' ) ? $descrizione="Stato patrimoniale" : $descrizione="Conto economico";
|
||
|
$percorso = $descrizione."<br> ".$percorso;
|
||
|
}
|
||
|
|
||
|
elseif( $html->form('lev') == '2' ){
|
||
|
$rs = $dbo->fetchArray("SELECT idpianodeiconti1, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti2 WHERE id=\"".$idconto."\"");
|
||
|
$percorso = $rs[0]['descrizione']."<br> ".$percorso;
|
||
|
$idpianodeiconti1 = $rs[0]['idpianodeiconti1'];
|
||
|
|
||
|
$rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idpianodeiconti1."\"");
|
||
|
|
||
|
( $rs[0]['descrizione'] == '01 Patrimoniale' ) ? $descrizione="Stato patrimoniale" : $descrizione="Conto economico";
|
||
|
$percorso = $descrizione."<br> ".$percorso;
|
||
|
}
|
||
|
|
||
|
elseif( $html->form('lev') == '1' ){
|
||
|
$rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idconto."\"");
|
||
|
|
||
|
( $rs[0]['descrizione'] == '01 Patrimoniale' ) ? $descrizione="Stato patrimoniale" : $descrizione="Conto economico";
|
||
|
$percorso = $descrizione."<br> <br> ";
|
||
|
}
|
||
|
|
||
|
|
||
|
$body = str_replace( "|percorso|", $percorso, $body );
|
||
|
$body = str_replace( "|info_fornitore|", $f_ragionesociale."<br>".$f_indirizzo."<br>".$f_citta, $body );
|
||
|
$body = str_replace( "|period_start|", date("d/m/Y", strtotime($_SESSION['period_start'])), $body );
|
||
|
$body = str_replace( "|period_end|", date("d/m/Y", strtotime($_SESSION['period_end'])), $body );
|
||
|
|
||
|
|
||
|
//Stampa da livello 3
|
||
|
if( $html->form('lev') == '3' ){
|
||
|
$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
|
||
|
<col width='80'><col width='452'><col width='80'><col width='80'>
|
||
|
<tbody>\n";
|
||
|
|
||
|
|
||
|
//Inizializzo saldo finale
|
||
|
$saldo_finale = 0;
|
||
|
|
||
|
|
||
|
//Calcolo saldo iniziale
|
||
|
$rs = $dbo->fetchArray("SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto=\"".$idconto."\" AND data < \"".$_SESSION['period_start']."\"");
|
||
|
$saldo_iniziale = $rs[0]['totale'];
|
||
|
$saldo_finale = $saldo_iniziale;
|
||
|
|
||
|
|
||
|
if( $saldo_iniziale < 0 ){
|
||
|
$dare = '';
|
||
|
$avere = abs($saldo_iniziale);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$dare = abs($saldo_iniziale);
|
||
|
$avere = '';
|
||
|
}
|
||
|
|
||
|
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO INIZIALE</b></td><td class='br bb padded text-right'><b>".number_format( abs($dare), get_var("Cifre decimali"), ",", "." )."</b></td><td class='bb padded text-right'><b>".number_format( abs($avere), get_var("Cifre decimali"), ",", "." )."</b></td></tr>\n";
|
||
|
|
||
|
$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$idconto."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
|
||
|
|
||
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
||
|
if( $rs[$i]['totale'] >= 0 ){
|
||
|
$dare = number_format( abs($rs[$i]['totale']), get_var("Cifre decimali"), ",", "." );
|
||
|
$avere = "";
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$dare = "";
|
||
|
$avere = number_format( abs($rs[$i]['totale']), get_var("Cifre decimali"), ",", "." );
|
||
|
}
|
||
|
|
||
|
$body .= " <tr><td class='br bb padded text-center'>".date( "d/m/Y", strtotime($rs[$i]['data']) )."</td><td class='br bb padded'>".$rs[$i]['descrizione']."</td><td class='br bb padded text-right'>".$dare."</td><td class='bb padded text-right'>".$avere."</td></tr>\n";
|
||
|
|
||
|
$saldo_finale += $rs[$i]['totale'];
|
||
|
}
|
||
|
|
||
|
|
||
|
if( $saldo_finale < 0 ){
|
||
|
$dare = '';
|
||
|
$avere = abs($saldo_finale);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$dare = abs($saldo_finale);
|
||
|
$avere = '';
|
||
|
}
|
||
|
|
||
|
|
||
|
//Mostro il saldo finale
|
||
|
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO FINALE</b></td><td class='br bb padded text-right'><b>".number_format( abs($dare), get_var("Cifre decimali"), ",", "." )."</b></td><td class='bb padded text-right'><b>".number_format( abs($avere), get_var("Cifre decimali"), ",", "." )."</b></td></tr>\n";
|
||
|
|
||
|
|
||
|
|
||
|
$body .=" </tbody>
|
||
|
</table>\n";
|
||
|
}
|
||
|
|
||
|
|
||
|
//Stampa da livello 2
|
||
|
elseif( $html->form('lev') == '2' ){
|
||
|
$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
|
||
|
<col width='80'><col width='452'><col width='80'><col width='80'>
|
||
|
<tbody>\n";
|
||
|
|
||
|
//Ciclo fra i sotto-conti di livello 2
|
||
|
$rs3 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2=\"".$idconto."\"");
|
||
|
|
||
|
for( $z=0; $z<sizeof($rs3); $z++ ){
|
||
|
//Inizializzo saldo finale
|
||
|
$saldo_finale = 0;
|
||
|
|
||
|
|
||
|
//Calcolo saldo iniziale
|
||
|
$rs = $dbo->fetchArray("SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data < \"".$_SESSION['period_start']."\"");
|
||
|
$saldo_iniziale = $rs[0]['totale'];
|
||
|
$saldo_finale = $saldo_iniziale;
|
||
|
|
||
|
|
||
|
if( $saldo_iniziale < 0 ){
|
||
|
$dare = '';
|
||
|
$avere = abs($saldo_iniziale);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$dare = abs($saldo_iniziale);
|
||
|
$avere = '';
|
||
|
}
|
||
|
|
||
|
$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
|
||
|
|
||
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
||
|
if( $rs[$i]['totale'] >= 0 ){
|
||
|
$dare += abs($rs[$i]['totale']);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$avere += abs($rs[$i]['totale']);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$totale = $dare - $avere;
|
||
|
|
||
|
|
||
|
if( $totale >= 0 ){
|
||
|
$dare = number_format( abs($totale), get_var("Cifre decimali"), ",", "." );
|
||
|
$avere = "";
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$dare = "";
|
||
|
$avere = number_format( abs($totale), get_var("Cifre decimali"), ",", "." );
|
||
|
}
|
||
|
|
||
|
|
||
|
//Mostro il saldo finale del conto di livello 3
|
||
|
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero']." ".$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".$dare."</td><td class='bb padded text-right'>".$avere."</td></tr>\n";
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
$body .=" </tbody>
|
||
|
</table>\n";
|
||
|
}
|
||
|
|
||
|
//Stampa completa bilancio
|
||
|
elseif( $html->form('lev') == '1' ){
|
||
|
$ricavi = 0;
|
||
|
$costi = 0;
|
||
|
$totale_attivita = 0;
|
||
|
$totale_passivita = 0;
|
||
|
|
||
|
$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
|
||
|
<col width='80'><col width='452'><col width='80'><col width='80'>
|
||
|
<tbody>\n";
|
||
|
|
||
|
//Ciclo fra il conto principale scelto (Economico o Patrimoniale)
|
||
|
$rs1 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti1 WHERE id=\"".$idconto."\" ORDER BY numero DESC");
|
||
|
|
||
|
for( $x=0; $x<sizeof($rs1); $x++ ){
|
||
|
//Ciclo fra i sotto-conti di livello 1
|
||
|
$rs2 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti2 WHERE idpianodeiconti1=\"".$rs1[$x]['id']."\"");
|
||
|
|
||
|
for( $y=0; $y<sizeof($rs2); $y++ ){
|
||
|
$body .= " <tr><th class='bb padded' colspan='4'><b>".$rs2[$y]['numero']." ".$rs2[$y]['descrizione']."</b></th></tr>\n";
|
||
|
|
||
|
//Ciclo fra i sotto-conti di livello 2
|
||
|
$rs3 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2=\"".$rs2[$y]['id']."\"");
|
||
|
|
||
|
for( $z=0; $z<sizeof($rs3); $z++ ){
|
||
|
$dare = 0;
|
||
|
$avere = 0;
|
||
|
|
||
|
$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
|
||
|
|
||
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
||
|
if( $rs[$i]['totale'] >= 0 ){
|
||
|
$dare += abs($rs[$i]['totale']);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$avere += abs($rs[$i]['totale']);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$totale = $dare - $avere;
|
||
|
|
||
|
|
||
|
if( $totale >= 0 ){
|
||
|
$dare = abs($totale);
|
||
|
$avere = 0;
|
||
|
$totale_attivita += $dare;
|
||
|
$costi += abs($dare);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$dare = 0;
|
||
|
$avere = abs($totale);
|
||
|
$totale_passivita += $avere;
|
||
|
$ricavi += abs($avere);
|
||
|
}
|
||
|
|
||
|
|
||
|
//Mostro il saldo finale del conto di livello 3
|
||
|
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero']." ".$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".number_format( abs($dare), get_var("Cifre decimali"), ",", "." )."</td><td class='bb padded text-right'>".number_format( abs($avere), get_var("Cifre decimali"), ",", "." )."</td></tr>\n";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
//Stampa "Costi/Ricavi" se conto economico
|
||
|
if( $rs1[0]['descrizione'] == 'Economico' ){
|
||
|
$body .= " <tr><th colspan='3' class='br bb padded'>RICAVI</th><th align='right' class='bb padded'>".number_format( $ricavi, 2, ",", "." )."</th></tr>\n";
|
||
|
$body .= " <tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".number_format( $costi, 2, ",", "." )."</th></tr>\n";
|
||
|
$body .= " <tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".number_format( $ricavi - $costi, 2, ",", "." )."</th></tr>\n";
|
||
|
}
|
||
|
|
||
|
//Stampa "Attività/Passività" se stato patrimoniale
|
||
|
else{
|
||
|
$costi = 0;
|
||
|
$ricavi = 0;
|
||
|
|
||
|
//Ciclo fra il conto economico per calcolare l'utile o la perdita
|
||
|
$rs1 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti1 WHERE NOT id=\"".$idconto."\" ORDER BY numero DESC");
|
||
|
|
||
|
for( $x=0; $x<sizeof($rs1); $x++ ){
|
||
|
//Ciclo fra i sotto-conti di livello 1
|
||
|
$rs2 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti2 WHERE idpianodeiconti1=\"".$rs1[$x]['id']."\"");
|
||
|
|
||
|
for( $y=0; $y<sizeof($rs2); $y++ ){
|
||
|
//Ciclo fra i sotto-conti di livello 2
|
||
|
$rs3 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2=\"".$rs2[$y]['id']."\"");
|
||
|
|
||
|
for( $z=0; $z<sizeof($rs3); $z++ ){
|
||
|
//Inizializzo saldo finale
|
||
|
$saldo_finale = 0;
|
||
|
|
||
|
|
||
|
//Calcolo saldo iniziale
|
||
|
$rs = $dbo->fetchArray("SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto=\"".$rs2[$y]['id']."\" AND data < \"".$_SESSION['period_start']."\"");
|
||
|
$dare = 0;
|
||
|
$avere = 0;
|
||
|
|
||
|
$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
|
||
|
|
||
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
||
|
if( $rs[$i]['totale'] >= 0 ){
|
||
|
$dare += abs($rs[$i]['totale']);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$avere += abs($rs[$i]['totale']);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$totale = $dare - $avere;
|
||
|
|
||
|
if( $totale >= 0 ){
|
||
|
$costi += abs($totale);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$ricavi += abs($totale);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$body .=" </tbody>\n";
|
||
|
$body .= " </table>\n";
|
||
|
|
||
|
//Tabella di riepilogo finale
|
||
|
$totale_attivita = abs($totale_attivita);
|
||
|
$totale_passivita = abs($totale_passivita);
|
||
|
$utile_perdita = abs($ricavi) - abs($costi);
|
||
|
|
||
|
if( $utile_perdita<0 ){
|
||
|
$pareggio1 = $totale_attivita + abs($utile_perdita);
|
||
|
$pareggio2 = abs($totale_passivita);
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
$pareggio1 = $totale_attivita;
|
||
|
$pareggio2 = abs($totale_passivita) + abs($utile_perdita);
|
||
|
}
|
||
|
|
||
|
|
||
|
$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
|
||
|
<col width='173'><col width='173'><col width='173'><col width='173'>
|
||
|
<tbody>\n";
|
||
|
|
||
|
//Attività
|
||
|
$body .= " <tr><th class='br bb padded'>TOTALE ATTIVITÀ</th><th align='right' class='bb br padded'>".number_format( $totale_attivita, get_var("Cifre decimali"), ",", "." )."</th>\n";
|
||
|
|
||
|
//Passività
|
||
|
$body .= " <th class='br bb padded'>PASSIVITÀ</th><th align='right' class='bb padded'>".number_format( $totale_passivita, get_var("Cifre decimali"), ",", "." )."</th></tr>\n";
|
||
|
|
||
|
if( $utile_perdita < 0 ){
|
||
|
//Perdita d'esercizio
|
||
|
$body .= " <tr><th class='br bb padded'>PERDITA D'ESERCIZIO</th><th align='right' class='bb br padded'>".number_format( abs($utile_perdita), get_var("Cifre decimali"), ",", "." )."</th>\n";
|
||
|
|
||
|
//Utile
|
||
|
$body .= " <th class='br bb padded'> </th><th align='right' class='bb padded'> </th></tr>\n";
|
||
|
} else {
|
||
|
//Perdita d'esercizio
|
||
|
$body .= " <tr><th class='br bb padded'> </th><th align='right' class='bb br padded'> </th>\n";
|
||
|
|
||
|
//Utile
|
||
|
$body .= " <th class='br bb padded'>UTILE</th><th align='right' class='bb padded'>".number_format( abs($utile_perdita), get_var("Cifre decimali"), ",", "." )."</th></tr>\n";
|
||
|
}
|
||
|
|
||
|
//PAREGGIO 1
|
||
|
$body .= " <tr><th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='br padded'>".number_format( $pareggio1, get_var("Cifre decimali"), ",", "." )."</th>\n";
|
||
|
|
||
|
//PAREGGIO 2
|
||
|
$body .= " <th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='padded'>".number_format( $pareggio2, get_var("Cifre decimali"), ",", "." )."</th></tr>\n";
|
||
|
}
|
||
|
|
||
|
|
||
|
$body .=" </tbody>
|
||
|
</table>\n";
|
||
|
}
|
||
|
|
||
|
$report_name = "mastrino.pdf";
|
||
|
?>
|