This commit is contained in:
Fabio Lovato 2018-02-10 19:42:52 +01:00
parent aadf7bc8c5
commit 2590a58e18
2 changed files with 91 additions and 90 deletions

56
modules/partitario/edit.php Normal file → Executable file
View File

@ -11,11 +11,11 @@ $n1 = sizeof($rs1);
// Livello 1
for ($x = 0; $x < $n1; ++$x) {
$totale_attivita = 0.00;
$totale_passivita = 0.00;
$totale_attivita = [];
$totale_passivita = [];
$costi = 0.00;
$ricavi = 0.00;
$costi = [];
$ricavi = [];
if ($rs1[$x]['descrizione'] == 'Economico') {
echo "<hr><h2 class=\"pull-left\">Conto economico</h2>\n";
@ -54,7 +54,7 @@ for ($x = 0; $x < $n1; ++$x) {
echo " <table class='table table-striped table-hover table-condensed' style='margin-bottom:0;'>\n";
for ($z = 0; $z < $n3; ++$z) {
$totale_conto_liv3 = 0.00;
$totale_conto_liv3 = [];
echo " <tr><td>\n";
@ -102,7 +102,7 @@ for ($x = 0; $x < $n1; ++$x) {
echo ' <div id="conto_'.$rs3[$z]['id']."\" style=\"display:none;\">\n";
if (sizeof($rs) > 0) {
$totale_conto_liv3 = 0.00;
$totale_conto_liv3 = [];
echo " <table class='table table-bordered table-hover table-condensed table-striped'>\n";
echo " <tr><th>Causale</th>\n";
@ -117,7 +117,7 @@ for ($x = 0; $x < $n1; ++$x) {
if ($rs[$i]['iddocumento'] != '') {
$module = ($rs[$i]['dir'] == 'entrata') ? Modules::get('Fatture di vendita')['id'] : Modules::get('Fatture di acquisto')['id'];
echo "<a data-toggle='modal' data-title='Dettagli movimento...' data-target='#bs-popup' class='clickable' data-href='".$rootdir.'/modules/partitario/dettagli_movimento.php?id_movimento='.$rs[$i]['id'].'&id_conto='.$rs[$i]['idconto'].'&id_module='.$module."' >".$rs[$i]['descrizione']."</a>\n";
// echo " <a href='".$rootdir.'/editor.php?id_module='.$module.'&id_record='.$rs[$i]['iddocumento']."'>".$rs[$i]['descrizione']."</a>\n";
// echo " <a href='".$rootdir.'/editor.php?id_module='.$module.'&id_record='.$rs[$i]['iddocumento']."'>".$rs[$i]['descrizione']."</a>\n";
} else {
echo ' <span>'.$rs[$i]['descrizione']."</span>\n";
}
@ -137,9 +137,9 @@ for ($x = 0; $x < $n1; ++$x) {
echo " <td></td></tr>\n";
if ($rs1[$x]['descrizione'] == 'Patrimoniale') {
$totale_conto_liv3 += $rs[$i]['totale'];
$totale_conto_liv3[] = $rs[$i]['totale'];
} else {
$totale_conto_liv3 -= $rs[$i]['totale'];
$totale_conto_liv3[] = -$rs[$i]['totale'];
}
}
@ -150,9 +150,9 @@ for ($x = 0; $x < $n1; ++$x) {
echo " </td>\n";
if ($rs1[$x]['descrizione'] == 'Patrimoniale') {
$totale_conto_liv3 += $rs[$i]['totale'];
$totale_conto_liv3[] = $rs[$i]['totale'];
} else {
$totale_conto_liv3 -= $rs[$i]['totale'];
$totale_conto_liv3[] = -$rs[$i]['totale'];
}
}
echo " </td></tr>\n";
@ -160,16 +160,16 @@ for ($x = 0; $x < $n1; ++$x) {
// Somma dei totali
if ($rs1[$x]['descrizione'] == 'Patrimoniale') {
if ($totale_conto_liv3 > 0) {
$totale_attivita += $totale_conto_liv3;
if (sum($totale_conto_liv3) > 0) {
$totale_attivita[] = abs(sum($totale_conto_liv3));
} else {
$totale_passivita += $totale_conto_liv3;
$totale_passivita[] = abs(sum($totale_conto_liv3));
}
} else {
if ($totale_conto_liv3 > 0) {
$totale_ricavi += $totale_conto_liv3;
if (sum($totale_conto_liv3) > 0) {
$totale_ricavi[] = abs(sum($totale_conto_liv3));
} else {
$totale_costi += $totale_conto_liv3;
$totale_costi[] = abs(sum($totale_conto_liv3));
}
}
echo " </table>\n";
@ -178,7 +178,7 @@ for ($x = 0; $x < $n1; ++$x) {
echo " </td>\n";
echo " <td width='100' align='right' valign='top'>\n";
echo Translator::numberToLocale($totale_conto_liv3)." &euro;\n";
echo Translator::numberToLocale(sum($totale_conto_liv3))." &euro;\n";
echo " </td></tr>\n";
} // Fine livello3
@ -193,9 +193,9 @@ for ($x = 0; $x < $n1; ++$x) {
if ($rs1[$x]['descrizione'] == 'Patrimoniale') {
// Riepilogo
$attivita = abs($totale_attivita);
$passivita = abs($totale_passivita);
$utile_perdita = abs($totale_ricavi) - abs($totale_costi);
$attivita = abs(sum($totale_attivita));
$passivita = abs(sum($totale_passivita));
$utile_perdita = abs(sum($totale_ricavi)) - abs(sum($totale_costi));
if ($utile_perdita < 0) {
$pareggio1 = $attivita + abs($utile_perdita);
$pareggio2 = abs($passivita);
@ -230,7 +230,7 @@ for ($x = 0; $x < $n1; ++$x) {
echo " <p align='right'><big>Perdita d'esercizio:</big></p>\n";
echo "</th>\n";
echo "<td align='right'>\n";
echo " <p align='right'><big>".Translator::numberToLocale($utile_perdita)." &euro;</big></p>\n";
echo " <p align='right'><big>".Translator::numberToLocale(sum($utile_perdita))." &euro;</big></p>\n";
echo "</td>\n";
echo "<td></td>\n";
echo "<td></td><td></td></tr>\n";
@ -239,7 +239,7 @@ for ($x = 0; $x < $n1; ++$x) {
echo " <p align='right'><big>Utile:</big></p>\n";
echo "</th>\n";
echo "<td align='right'>\n";
echo " <p align='right'><big>".Translator::numberToLocale($utile_perdita)." &euro;</big></p>\n";
echo " <p align='right'><big>".Translator::numberToLocale(sum($utile_perdita))." &euro;</big></p>\n";
echo "</td></tr>\n";
}
@ -248,7 +248,7 @@ for ($x = 0; $x < $n1; ++$x) {
echo " <p align='right'><big>Totale a pareggio:</big></p>\n";
echo "</th>\n";
echo "<td align='right'>\n";
echo " <p align='right'><big>".Translator::numberToLocale($pareggio1)." &euro;</big></p>\n";
echo " <p align='right'><big>".Translator::numberToLocale(sum($pareggio1))." &euro;</big></p>\n";
echo "</td>\n";
echo "<td></td>\n";
@ -257,13 +257,13 @@ for ($x = 0; $x < $n1; ++$x) {
echo " <p align='right'><big>Totale a pareggio:</big></p>\n";
echo "</th>\n";
echo "<td align='right'>\n";
echo " <p align='right'><big>".Translator::numberToLocale($pareggio2)." &euro;</big></p>\n";
echo " <p align='right'><big>".Translator::numberToLocale(sum($pareggio2))." &euro;</big></p>\n";
echo "</td></tr>\n";
echo '</table>';
} else {
echo "<p align='right'><big><b>RICAVI:</b> ".Translator::numberToLocale($totale_ricavi)." &euro;</big></p>\n";
echo "<p align='right'><big><b>COSTI:</b> ".Translator::numberToLocale(abs($totale_costi))." &euro;</big></p>\n";
echo "<p align='right'><big><b>UTILE/PERDITA:</b> ".Translator::numberToLocale($totale_ricavi - abs($totale_costi))." &euro;</big></p>\n";
echo "<p align='right'><big><b>RICAVI:</b> ".Translator::numberToLocale(sum($totale_ricavi))." &euro;</big></p>\n";
echo "<p align='right'><big><b>COSTI:</b> ".Translator::numberToLocale(sum(abs($totale_costi)))." &euro;</big></p>\n";
echo "<p align='right'><big><b>UTILE/PERDITA:</b> ".Translator::numberToLocale(sum($totale_ricavi) - sum(abs($totale_costi)))." &euro;</big></p>\n";
}
}

View File

@ -51,11 +51,11 @@ if (get('lev') == '3') {
<col width='80'><col width='452'><col width='80'><col width='80'>
<tbody>\n";
// Inizializzo saldo finale
$saldo_finale = 0;
// Inizializzo saldo finale
$saldo_finale = [];
// Calcolo saldo iniziale
$rs = $dbo->fetchArray('SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto="'.$idconto.'" AND data < "'.$_SESSION['period_start'].'"');
// 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;
@ -82,19 +82,19 @@ if (get('lev') == '3') {
$body .= " <tr><td class='br bb padded text-center'>".Translator::dateToLocale($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'];
$saldo_finale[] = $rs[$i]['totale'];
}
if ($saldo_finale < 0) {
if ( sum($saldo_finale) < 0) {
$dare = '';
$avere = abs($saldo_finale);
$avere = abs( sum($saldo_finale) );
} else {
$dare = abs($saldo_finale);
$dare = abs( sum($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>".Translator::numberToLocale(abs($dare))."</b></td><td class='bb padded text-right'><b>".Translator::numberToLocale(abs($avere))."</b></td></tr>\n";
// 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>".Translator::numberToLocale( abs( sum($dare) ) )."</b></td><td class='bb padded text-right'><b>".Translator::numberToLocale( abs( sum($avere) ) )."</b></td></tr>\n";
$body .= " </tbody>
</table>\n";
@ -106,37 +106,38 @@ elseif (get('lev') == '2') {
<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.'"');
// 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) {
$v_dare = [];
$v_avere = [];
// Inizializzo saldo finale
$saldo_finale = 0;
$saldo_finale = [];
// Calcolo saldo iniziale
$rs = $dbo->fetchArray('SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto="'.$rs3[$z]['id'].'" AND data < "'.$_SESSION['period_start'].'"');
// 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;
$saldo_finale[] = $saldo_iniziale;
if ($saldo_iniziale < 0) {
$dare = '';
$avere = abs($saldo_iniziale);
if ( $saldo_iniziale < 0) {
$v_avere[] = abs( $saldo_iniziale );
} else {
$dare = abs($saldo_iniziale);
$avere = '';
$v_dare[] = abs( $saldo_iniziale );
}
$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']);
$v_dare[] = abs($rs[$i]['totale']);
} else {
$avere += abs($rs[$i]['totale']);
$v_avere[] = abs($rs[$i]['totale']);
}
}
$totale = $dare - $avere;
$totale = sum($v_dare) - sum($v_avere);
if ($totale >= 0) {
$dare = Translator::numberToLocale(abs($totale));
@ -146,8 +147,8 @@ elseif (get('lev') == '2') {
$avere = Translator::numberToLocale(abs($totale));
}
// 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";
// 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>
@ -156,73 +157,73 @@ elseif (get('lev') == '2') {
// Stampa completa bilancio
elseif (get('lev') == '1') {
$ricavi = 0;
$costi = 0;
$totale_attivita = 0;
$totale_passivita = 0;
$ricavi = [];
$costi = [];
$totale_attivita = [];
$totale_passivita = [];
$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');
// 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'].'"');
$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'].'"');
// 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;
$v_dare = [];
$v_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']);
$v_dare[] = abs($rs[$i]['totale']);
} else {
$avere += abs($rs[$i]['totale']);
$v_avere[] = abs($rs[$i]['totale']);
}
}
$totale = $dare - $avere;
$totale = sum($v_dare) - sum($v_avere);
if ($totale >= 0) {
$dare = abs($totale);
$avere = 0;
$totale_attivita += $dare;
$costi += abs($dare);
$totale_attivita[] = $dare;
$costi[] = abs($dare);
} else {
$dare = 0;
$avere = abs($totale);
$totale_passivita += $avere;
$ricavi += abs($avere);
$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'>".Translator::numberToLocale(abs($dare))."</td><td class='bb padded text-right'>".Translator::numberToLocale(abs($avere))."</td></tr>\n";
// 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'>".Translator::numberToLocale(abs($dare))."</td><td class='bb padded text-right'>".Translator::numberToLocale(abs($avere))."</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'>".Translator::numberToLocale($ricavi)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".Translator::numberToLocale($costi)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".Translator::numberToLocale($ricavi - $costi)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br bb padded'>RICAVI</th><th align='right' class='bb padded'>".Translator::numberToLocale( sum($ricavi) )."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".Translator::numberToLocale( sum($costi) )."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".Translator::numberToLocale( sum($ricavi) - sum($costi) )."</th></tr>\n";
}
// Stampa "Attività/Passività" se stato patrimoniale
else {
$costi = 0;
$ricavi = 0;
$costi = [];
$ricavi = [];
// 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');
@ -237,29 +238,29 @@ elseif (get('lev') == '1') {
for ($z = 0; $z < sizeof($rs3); ++$z) {
// Inizializzo saldo finale
$saldo_finale = 0;
$saldo_finale = [];
// 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;
$dare = [];
$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']);
$dare[] = abs($rs[$i]['totale']);
} else {
$avere += abs($rs[$i]['totale']);
$avere[] = abs($rs[$i]['totale']);
}
}
$totale = $dare - $avere;
$totale = sum($dare) - sum($avere);
if ($totale >= 0) {
$costi += abs($totale);
$costi[] = abs($totale);
} else {
$ricavi += abs($totale);
$ricavi[] = abs($totale);
}
}
}
@ -269,9 +270,9 @@ elseif (get('lev') == '1') {
$body .= " </table>\n";
// Tabella di riepilogo finale
$totale_attivita = abs($totale_attivita);
$totale_passivita = abs($totale_passivita);
$utile_perdita = abs($ricavi) - abs($costi);
$totale_attivita = abs( sum($totale_attivita) );
$totale_passivita = abs( sum($totale_passivita) );
$utile_perdita = abs( sum($ricavi) ) - abs( sum($costi) );
if ($utile_perdita < 0) {
$pareggio1 = $totale_attivita + abs($utile_perdita);