From f595acd3e2826337f4e48afd7eadc3c5fcd435a2 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 22 Mar 2023 12:48:41 +0100 Subject: [PATCH] Fix Stampa bilancio --- templates/bilancio/body.php | 204 +++++++++++++++++++++--------------- templates/bilancio/init.php | 61 ++++++++++- 2 files changed, 178 insertions(+), 87 deletions(-) diff --git a/templates/bilancio/body.php b/templates/bilancio/body.php index a854c7c05..ff3ba5a51 100644 --- a/templates/bilancio/body.php +++ b/templates/bilancio/body.php @@ -40,19 +40,15 @@ echo ' '; // Mostra le righe delle attività foreach ($liv2_patrimoniale as $liv2_p) { - if ($liv2_p['totale'] > 0) { - $totale_attivita += $liv2_p['totale']; - echo ' - - '.$liv2_p['numero'].' - '.$liv2_p['descrizione'].' - '.numberFormat($liv2_p['totale'], 2).' - '; - - foreach ($liv3_patrimoniale as $liv3_p) { + $livello3 = ''; + $totale_livello3 = 0; + foreach ($liv3_patrimoniale as $liv3_p) { + if ($liv3_p['totale'] > 0) { // Visualizzo solo i conti di livello 3 relativi al conto di livello 2 if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale'] != 0) { - echo ' + $totale_attivita += $liv3_p['totale']; + $totale_livello3 += $liv3_p['totale']; + $livello3 .= ' '.$liv3_p['numero'].' '.$liv3_p['descrizione'].' @@ -60,25 +56,39 @@ echo ' '; } } + } - if (empty(get('elenco_analitico'))) { - if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti')) { - echo ' - - - Clienti - '.numberFormat($crediti_clienti, 2).' - '; - } elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori')) { - echo ' + if (empty(get('elenco_analitico'))) { + if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti') && $crediti_clienti > 0) { + $totale_attivita += $crediti_clienti; + $totale_livello3 += $crediti_clienti; + $livello3 .= ' - Fornitori - '.numberFormat($debiti_fornitori, 2).' + Clienti + '.numberFormat($crediti_clienti, 2).' '; - } + } elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori') && $debiti_fornitori > 0) { + $totale_attivita += $debiti_fornitori; + $totale_livello3 += $debiti_fornitori; + $livello3 .= ' + + + Fornitori + '.numberFormat($debiti_fornitori, 2).' + '; } } + + if ($totale_livello3 != 0) { + echo ' + + '.$liv2_p['numero'].' + '.$liv2_p['descrizione'].' + '.numberFormat($totale_livello3, 2).' + '; + echo $livello3; + } } echo ' @@ -119,43 +129,54 @@ echo ' $i = 0; // Mostra le righe delle passività foreach ($liv2_patrimoniale as $liv2_p) { - if ($liv2_p['totale'] < 0) { - $totale_passivita += $liv2_p['totale']; + $livello3 = ''; + $totale_livello3 = 0; + foreach ($liv3_patrimoniale as $liv3_p) { + if ($liv3_p['totale'] < 0) { + // Visualizzo solo i conti di livello 3 relativi al conto di livello 2 + if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale'] != 0) { + $totale_passivita += $liv3_p['totale']; + $totale_livello3 += $liv3_p['totale']; + $livello3 .= ' + + '.$liv3_p['numero'].' + '.$liv3_p['descrizione'].' + '.numberFormat(abs($liv3_p['totale']), 2).' + '; + } + } + } + + if (empty(get('elenco_analitico'))) { + if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti') && $crediti_clienti < 0) { + $totale_passivita += $crediti_clienti; + $totale_livello3 += $crediti_clienti; + $livello3 .= ' + + + Clienti + '.numberFormat(abs($crediti_clienti), 2).' + '; + } elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori') && $debiti_fornitori < 0) { + $totale_passivita += $debiti_fornitori; + $totale_livello3 += $debiti_fornitori; + $livello3 .= ' + + + Fornitori + '.numberFormat(abs($debiti_fornitori), 2).' + '; + } + } + + if ($totale_livello3 != 0) { echo ' '.$liv2_p['numero'].' '.$liv2_p['descrizione'].' - '.numberFormat(abs($liv2_p['totale']), 2).' + '.numberFormat(abs($totale_livello3), 2).' '; - - foreach ($liv3_patrimoniale as $liv3_p) { - if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale'] != 0) { - echo ' - - '.$liv3_p['numero'].' - '.$liv3_p['descrizione'].' - '.numberFormat(-$liv3_p['totale'], 2).' - '; - } - } - - if (empty(get('elenco_analitico'))) { - if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti')) { - echo ' - - - Clienti - '.numberFormat(abs($crediti_clienti), 2).' - '; - } elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori')) { - echo ' - - - Fornitori - '.numberFormat(abs($debiti_fornitori), 2).' - '; - } - } + echo $livello3; } } echo ' @@ -205,29 +226,39 @@ echo ' '; // Mostra le righe dei costi foreach ($liv2_economico as $liv2_e) { - if ($liv2_e['totale'] > 0) { - $totale_costi += $liv2_e['totale']; - echo ' - - '.$liv2_e['numero'].' - '.$liv2_e['descrizione'].' - '.numberFormat($liv2_e['totale'], 2).' - '.numberFormat($liv2_e['totale_reddito'], 2).' - '; - - foreach ($liv3_economico as $liv3_e) { + $livello3 = ''; + $totale_livello3 = 0; + $totale_reddito_livello3 = 0; + foreach ($liv3_economico as $liv3_e) { + if ($liv3_e['totale'] > 0) { + // Visualizzo solo i conti di livello 3 relativi al conto di livello 2 if ($liv2_e['id'] == $liv3_e['idpianodeiconti2'] && $liv3_e['totale'] != 0) { - echo ' + $totale_costi += $liv3_e['totale']; + $totale_livello3 += $liv3_e['totale']; + $totale_reddito_livello3 += $liv3_e['totale_reddito']; + $livello3 .= ' '.$liv3_e['numero'].' '.$liv3_e['descrizione'].' - '.numberFormat($liv3_e['totale'], 2).' - '.numberFormat($liv3_e['totale_reddito'], 2).' + '.numberFormat(abs($liv3_e['totale']), 2).' + '.numberFormat(abs($liv3_e['totale_reddito']), 2).' '; } } } + + if ($totale_livello3 != 0) { + echo ' + + '.$liv2_e['numero'].' + '.$liv2_e['descrizione'].' + '.numberFormat(abs($totale_livello3), 2).' + '.numberFormat(abs($totale_reddito_livello3), 2).' + '; + echo $livello3; + } } + echo '
Totale costi
@@ -269,19 +300,17 @@ echo ' '; // Mostra le righe dei ricavi foreach ($liv2_economico as $liv2_e) { - if ($liv2_e['totale'] < 0) { - $totale_ricavi += $liv2_e['totale']; - echo ' - - '.$liv2_e['numero'].' - '.$liv2_e['descrizione'].' - '.numberFormat(abs($liv2_e['totale']), 2).' - '.numberFormat(abs($liv2_e['totale_reddito']), 2).' - '; - - foreach ($liv3_economico as $liv3_e) { + $livello3 = ''; + $totale_livello3 = 0; + $totale_reddito_livello3 = 0; + foreach ($liv3_economico as $liv3_e) { + if ($liv3_e['totale'] < 0) { + // Visualizzo solo i conti di livello 3 relativi al conto di livello 2 if ($liv2_e['id'] == $liv3_e['idpianodeiconti2'] && $liv3_e['totale'] != 0) { - echo ' + $totale_ricavi += $liv3_e['totale']; + $totale_livello3 += $liv3_e['totale']; + $totale_reddito_livello3 += $liv3_e['totale_reddito']; + $livello3 .= ' '.$liv3_e['numero'].' '.$liv3_e['descrizione'].' @@ -291,6 +320,17 @@ echo ' } } } + + if ($totale_livello3 != 0) { + echo ' + + '.$liv2_e['numero'].' + '.$liv2_e['descrizione'].' + '.numberFormat(abs($totale_livello3), 2).' + '.numberFormat(abs($totale_reddito_livello3), 2).' + '; + echo $livello3; + } } echo ' diff --git a/templates/bilancio/init.php b/templates/bilancio/init.php index 8659fa2d9..0f0bb1e3e 100644 --- a/templates/bilancio/init.php +++ b/templates/bilancio/init.php @@ -37,7 +37,7 @@ $liv3_economico = $dbo->fetchArray('SELECT co_pianodeiconti3.numero AS numero, $utile_perdita = $dbo->fetchOne('SELECT SUM(totale) AS totale FROM `co_movimenti` WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 IN(SELECT id FROM co_pianodeiconti2 WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Economico")))AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end))['totale']; -$debiti_fornitori = $dbo->fetchArray(' +$debiti_fornitori_attivita = $dbo->fetchArray(' SELECT co_pianodeiconti3.numero AS numero, co_pianodeiconti3.descrizione AS descrizione, @@ -48,18 +48,19 @@ FROM INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE - co_pianodeiconti2.descrizione='.prepare(setting('Conto di secondo livello per i debiti fornitori')).' + co_pianodeiconti2.id='.prepare(setting('Conto di secondo livello per i debiti fornitori')).' AND co_pianodeiconti3.id IN (SELECT idconto_fornitore FROM an_anagrafiche) AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' + AND co_movimenti.totale > 0 GROUP BY idconto ORDER BY co_pianodeiconti2.numero'); -$debiti_fornitori = sum(array_column($debiti_fornitori, 'totale')); +$debiti_fornitori_attivita = sum(array_column($debiti_fornitori_attivita, 'totale')); -$crediti_clienti = $dbo->fetchArray(' +$crediti_clienti_attivita = $dbo->fetchArray(' SELECT co_pianodeiconti3.numero AS numero, co_pianodeiconti3.descrizione AS descrizione, @@ -74,9 +75,59 @@ WHERE AND co_pianodeiconti3.id IN (SELECT idconto_cliente FROM an_anagrafiche) AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' + AND co_movimenti.totale > 0 GROUP BY idconto ORDER BY co_pianodeiconti2.numero'); -$crediti_clienti = sum(array_column($crediti_clienti, 'totale')); +$crediti_clienti_attivita = sum(array_column($crediti_clienti_attivita, 'totale')); + +$debiti_fornitori_passivita = $dbo->fetchArray(' +SELECT + co_pianodeiconti3.numero AS numero, + co_pianodeiconti3.descrizione AS descrizione, + SUM(totale) AS totale, + co_pianodeiconti3.idpianodeiconti2 AS idpianodeiconti2 +FROM + `co_movimenti` + INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id + INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id +WHERE + co_pianodeiconti2.id='.prepare(setting('Conto di secondo livello per i debiti fornitori')).' + AND co_pianodeiconti3.id IN (SELECT idconto_fornitore FROM an_anagrafiche) + AND co_movimenti.data>='.prepare($date_start).' + AND co_movimenti.data<='.prepare($date_end).' + AND co_movimenti.totale < 0 +GROUP BY + idconto +ORDER BY + co_pianodeiconti2.numero'); + +$debiti_fornitori_passivita = sum(array_column($debiti_fornitori_passivita, 'totale')); + +$crediti_clienti_passivita = $dbo->fetchArray(' +SELECT + co_pianodeiconti3.numero AS numero, + co_pianodeiconti3.descrizione AS descrizione, + SUM(totale) AS totale, + co_pianodeiconti3.idpianodeiconti2 AS idpianodeiconti2 +FROM + `co_movimenti` + INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id + INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id +WHERE + co_pianodeiconti2.id='.prepare(setting('Conto di secondo livello per i crediti clienti')).' + AND co_pianodeiconti3.id IN (SELECT idconto_cliente FROM an_anagrafiche) + AND co_movimenti.data>='.prepare($date_start).' + AND co_movimenti.data<='.prepare($date_end).' + AND co_movimenti.totale < 0 +GROUP BY + idconto +ORDER BY + co_pianodeiconti2.numero'); + +$crediti_clienti_passivita = sum(array_column($crediti_clienti_passivita, 'totale')); + +$crediti_clienti = $crediti_clienti_attivita + $crediti_clienti_passivita; +$debiti_fornitori = $debiti_fornitori_attivita + $debiti_fornitori_passivita; \ No newline at end of file