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