Fix Stampa bilancio

This commit is contained in:
Pek5892 2023-03-22 12:48:41 +01:00
parent d8d967bdb1
commit f595acd3e2
2 changed files with 178 additions and 87 deletions

View File

@ -40,19 +40,15 @@ echo '
<tbody>'; <tbody>';
// Mostra le righe delle attività // Mostra le righe delle attività
foreach ($liv2_patrimoniale as $liv2_p) { foreach ($liv2_patrimoniale as $liv2_p) {
if ($liv2_p['totale'] > 0) { $livello3 = '';
$totale_attivita += $liv2_p['totale']; $totale_livello3 = 0;
echo ' foreach ($liv3_patrimoniale as $liv3_p) {
<tr> if ($liv3_p['totale'] > 0) {
<td><b>'.$liv2_p['numero'].'</b></td>
<td><b>'.$liv2_p['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat($liv2_p['totale'], 2).'</b></td>
</tr>';
foreach ($liv3_patrimoniale as $liv3_p) {
// Visualizzo solo i conti di livello 3 relativi al conto di livello 2 // Visualizzo solo i conti di livello 3 relativi al conto di livello 2
if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale'] != 0) { if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale'] != 0) {
echo ' $totale_attivita += $liv3_p['totale'];
$totale_livello3 += $liv3_p['totale'];
$livello3 .= '
<tr> <tr>
<td>'.$liv3_p['numero'].'</td> <td>'.$liv3_p['numero'].'</td>
<td>'.$liv3_p['descrizione'].'</td> <td>'.$liv3_p['descrizione'].'</td>
@ -60,25 +56,39 @@ echo '
</tr>'; </tr>';
} }
} }
}
if (empty(get('elenco_analitico'))) { if (empty(get('elenco_analitico'))) {
if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti')) { if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti') && $crediti_clienti > 0) {
echo ' $totale_attivita += $crediti_clienti;
<tr> $totale_livello3 += $crediti_clienti;
<td></td> $livello3 .= '
<td>Clienti</td>
<td class="text-right">'.numberFormat($crediti_clienti, 2).'</td>
</tr>';
} elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori')) {
echo '
<tr> <tr>
<td></td> <td></td>
<td>Fornitori</td> <td>Clienti</td>
<td class="text-right">'.numberFormat($debiti_fornitori, 2).'</td> <td class="text-right">'.numberFormat($crediti_clienti, 2).'</td>
</tr>'; </tr>';
} } 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 .= '
<tr>
<td></td>
<td>Fornitori</td>
<td class="text-right">'.numberFormat($debiti_fornitori, 2).'</td>
</tr>';
} }
} }
if ($totale_livello3 != 0) {
echo '
<tr>
<td><b>'.$liv2_p['numero'].'</b></td>
<td><b>'.$liv2_p['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat($totale_livello3, 2).'</b></td>
</tr>';
echo $livello3;
}
} }
echo ' echo '
<tr> <tr>
@ -119,43 +129,54 @@ echo '
$i = 0; $i = 0;
// Mostra le righe delle passività // Mostra le righe delle passività
foreach ($liv2_patrimoniale as $liv2_p) { foreach ($liv2_patrimoniale as $liv2_p) {
if ($liv2_p['totale'] < 0) { $livello3 = '';
$totale_passivita += $liv2_p['totale']; $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 .= '
<tr>
<td>'.$liv3_p['numero'].'</td>
<td>'.$liv3_p['descrizione'].'</td>
<td class="text-right">'.numberFormat(abs($liv3_p['totale']), 2).'</td>
</tr>';
}
}
}
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 .= '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat(abs($crediti_clienti), 2).'</td>
</tr>';
} 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 .= '
<tr>
<td></td>
<td>Fornitori</td>
<td class="text-right">'.numberFormat(abs($debiti_fornitori), 2).'</td>
</tr>';
}
}
if ($totale_livello3 != 0) {
echo ' echo '
<tr> <tr>
<td><b>'.$liv2_p['numero'].'</b></td> <td><b>'.$liv2_p['numero'].'</b></td>
<td><b>'.$liv2_p['descrizione'].'</b></td> <td><b>'.$liv2_p['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat(abs($liv2_p['totale']), 2).'</b></td> <td class="text-right"><b>'.numberFormat(abs($totale_livello3), 2).'</b></td>
</tr>'; </tr>';
echo $livello3;
foreach ($liv3_patrimoniale as $liv3_p) {
if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale'] != 0) {
echo '
<tr>
<td>'.$liv3_p['numero'].'</td>
<td>'.$liv3_p['descrizione'].'</td>
<td class="text-right">'.numberFormat(-$liv3_p['totale'], 2).'</td>
</tr>';
}
}
if (empty(get('elenco_analitico'))) {
if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti')) {
echo '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat(abs($crediti_clienti), 2).'</td>
</tr>';
} elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori')) {
echo '
<tr>
<td></td>
<td>Fornitori</td>
<td class="text-right">'.numberFormat(abs($debiti_fornitori), 2).'</td>
</tr>';
}
}
} }
} }
echo ' echo '
@ -205,29 +226,39 @@ echo '
<tbody>'; <tbody>';
// Mostra le righe dei costi // Mostra le righe dei costi
foreach ($liv2_economico as $liv2_e) { foreach ($liv2_economico as $liv2_e) {
if ($liv2_e['totale'] > 0) { $livello3 = '';
$totale_costi += $liv2_e['totale']; $totale_livello3 = 0;
echo ' $totale_reddito_livello3 = 0;
<tr> foreach ($liv3_economico as $liv3_e) {
<td><b>'.$liv2_e['numero'].'</b></td> if ($liv3_e['totale'] > 0) {
<td><b>'.$liv2_e['descrizione'].'</b></td> // Visualizzo solo i conti di livello 3 relativi al conto di livello 2
<td class="text-right"><b>'.numberFormat($liv2_e['totale'], 2).'</b></td>
<td class="text-right"><b>'.numberFormat($liv2_e['totale_reddito'], 2).'</b></td>
</tr>';
foreach ($liv3_economico as $liv3_e) {
if ($liv2_e['id'] == $liv3_e['idpianodeiconti2'] && $liv3_e['totale'] != 0) { 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 .= '
<tr> <tr>
<td>'.$liv3_e['numero'].'</td> <td>'.$liv3_e['numero'].'</td>
<td>'.$liv3_e['descrizione'].'</td> <td>'.$liv3_e['descrizione'].'</td>
<td class="text-right">'.numberFormat($liv3_e['totale'], 2).'</td> <td class="text-right">'.numberFormat(abs($liv3_e['totale']), 2).'</td>
<td class="text-right">'.numberFormat($liv3_e['totale_reddito'], 2).'</td> <td class="text-right">'.numberFormat(abs($liv3_e['totale_reddito']), 2).'</td>
</tr>'; </tr>';
} }
} }
} }
if ($totale_livello3 != 0) {
echo '
<tr>
<td><b>'.$liv2_e['numero'].'</b></td>
<td><b>'.$liv2_e['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat(abs($totale_livello3), 2).'</b></td>
<td class="text-right"><b>'.numberFormat(abs($totale_reddito_livello3), 2).'</b></td>
</tr>';
echo $livello3;
}
} }
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Totale costi</b></h6></td> <td colspan="2"><h6><b>Totale costi</b></h6></td>
@ -269,19 +300,17 @@ echo '
<tbody>'; <tbody>';
// Mostra le righe dei ricavi // Mostra le righe dei ricavi
foreach ($liv2_economico as $liv2_e) { foreach ($liv2_economico as $liv2_e) {
if ($liv2_e['totale'] < 0) { $livello3 = '';
$totale_ricavi += $liv2_e['totale']; $totale_livello3 = 0;
echo ' $totale_reddito_livello3 = 0;
<tr> foreach ($liv3_economico as $liv3_e) {
<td><b>'.$liv2_e['numero'].'</b></td> if ($liv3_e['totale'] < 0) {
<td><b>'.$liv2_e['descrizione'].'</b></td> // Visualizzo solo i conti di livello 3 relativi al conto di livello 2
<td class="text-right"><b>'.numberFormat(abs($liv2_e['totale']), 2).'</b></td>
<td class="text-right"><b>'.numberFormat(abs($liv2_e['totale_reddito']), 2).'</b></td>
</tr>';
foreach ($liv3_economico as $liv3_e) {
if ($liv2_e['id'] == $liv3_e['idpianodeiconti2'] && $liv3_e['totale'] != 0) { 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 .= '
<tr> <tr>
<td>'.$liv3_e['numero'].'</td> <td>'.$liv3_e['numero'].'</td>
<td>'.$liv3_e['descrizione'].'</td> <td>'.$liv3_e['descrizione'].'</td>
@ -291,6 +320,17 @@ echo '
} }
} }
} }
if ($totale_livello3 != 0) {
echo '
<tr>
<td><b>'.$liv2_e['numero'].'</b></td>
<td><b>'.$liv2_e['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat(abs($totale_livello3), 2).'</b></td>
<td class="text-right"><b>'.numberFormat(abs($totale_reddito_livello3), 2).'</b></td>
</tr>';
echo $livello3;
}
} }
echo ' echo '
<tr> <tr>

View File

@ -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']; $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 SELECT
co_pianodeiconti3.numero AS numero, co_pianodeiconti3.numero AS numero,
co_pianodeiconti3.descrizione AS descrizione, co_pianodeiconti3.descrizione AS descrizione,
@ -48,18 +48,19 @@ FROM
INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id
INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id
WHERE 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_pianodeiconti3.id IN (SELECT idconto_fornitore FROM an_anagrafiche)
AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data>='.prepare($date_start).'
AND co_movimenti.data<='.prepare($date_end).' AND co_movimenti.data<='.prepare($date_end).'
AND co_movimenti.totale > 0
GROUP BY GROUP BY
idconto idconto
ORDER BY ORDER BY
co_pianodeiconti2.numero'); 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 SELECT
co_pianodeiconti3.numero AS numero, co_pianodeiconti3.numero AS numero,
co_pianodeiconti3.descrizione AS descrizione, co_pianodeiconti3.descrizione AS descrizione,
@ -74,9 +75,59 @@ WHERE
AND co_pianodeiconti3.id IN (SELECT idconto_cliente FROM an_anagrafiche) AND co_pianodeiconti3.id IN (SELECT idconto_cliente FROM an_anagrafiche)
AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data>='.prepare($date_start).'
AND co_movimenti.data<='.prepare($date_end).' AND co_movimenti.data<='.prepare($date_end).'
AND co_movimenti.totale > 0
GROUP BY GROUP BY
idconto idconto
ORDER BY ORDER BY
co_pianodeiconti2.numero'); 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;