Skip to content

Commit c062b47

Browse files
fix: gestione iva compensabile per la stampa liquidazione iva
1 parent 5deab37 commit c062b47

3 files changed

Lines changed: 71 additions & 28 deletions

File tree

modules/stampe_contabili/modutil.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,37 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
618618
data_competenza_iva BETWEEN '.prepare($periodo_precedente_start).' AND '.prepare($periodo_precedente_end).'
619619
ORDER BY `aliquota` desc');
620620

621+
$acconto_iva_periodo_corrente = $dbo->fetchOne('
622+
SELECT
623+
SUM(totale) AS totale
624+
FROM
625+
co_movimenti
626+
INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id
627+
WHERE
628+
co_pianodeiconti3.descrizione = "Erario c/to iva acconto"
629+
AND co_movimenti.data >= '.prepare($date_start).' AND co_movimenti.data <= '.prepare($date_end));
630+
631+
$acconto_iva_periodo_precedente = $dbo->fetchOne('
632+
SELECT
633+
SUM(totale) AS totale
634+
FROM
635+
co_movimenti
636+
INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id
637+
WHERE
638+
co_pianodeiconti3.descrizione = "Erario c/to iva acconto"
639+
AND co_movimenti.data >= '.prepare($periodo_precedente_start).' AND co_movimenti.data <= '.prepare($periodo_precedente_end));
640+
641+
$acconto_iva_periodo_precedente_utilizzato = $dbo->fetchOne('
642+
SELECT
643+
-SUM(totale) AS totale
644+
FROM
645+
co_movimenti
646+
INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id
647+
WHERE
648+
co_pianodeiconti3.descrizione = "Erario c/to iva acconto"
649+
AND co_movimenti.data >= '.prepare($date_start).' AND co_movimenti.data <= '.prepare($date_end).'
650+
AND co_movimenti.totale < 0');
651+
621652
// Calcolo totali
622653
$totale_iva_esigibile = sum(array_column($iva_vendite_esigibile, 'iva'), null, 2);
623654
$totale_iva_nonesigibile = sum(array_column($iva_vendite_nonesigibile, 'iva'), null, 2);
@@ -653,6 +684,9 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
653684
'iva_vendite_periodo_precedente' => $iva_vendite_periodo_precedente,
654685
'iva_acquisti_anno_precedente' => $iva_acquisti_anno_precedente,
655686
'iva_acquisti_periodo_precedente' => $iva_acquisti_periodo_precedente,
687+
'acconto_iva_periodo_corrente' => $acconto_iva_periodo_corrente,
688+
'acconto_iva_periodo_precedente' => $acconto_iva_periodo_precedente,
689+
'acconto_iva_periodo_precedente_utilizzato' => $acconto_iva_periodo_precedente_utilizzato,
656690
'totale_iva_esigibile' => $totale_iva_esigibile,
657691
'totale_iva_nonesigibile' => $totale_iva_nonesigibile,
658692
'totale_iva_detraibile' => $totale_iva_detraibile,

templates/liquidazione_iva/body.php

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@
4545

4646
$totale_iva = $totale_iva_esigibile - $totale_iva_detraibile;
4747

48+
$credito_iva_compensabile = $acconto_iva_periodo_precedente['totale'] - $acconto_iva_periodo_precedente_utilizzato['totale'];
49+
$credito_iva_compensabile = $credito_iva_compensabile > 0 ? $credito_iva_compensabile : 0;
50+
51+
// A fine anno considero anche l'acconto
52+
if (date('m', strtotime($date_end)) == 12) {
53+
$credito_iva_compensabile += + $acconto_iva_periodo_corrente['totale'];
54+
}
55+
56+
4857
if ($periodo == 'Trimestrale') {
4958
if ($totale_iva_periodo_precedente > 0) {
5059
$totale_iva += $totale_iva_periodo_precedente;
@@ -296,22 +305,6 @@
296305
</tr>
297306
</thead>
298307
<tbody>
299-
<tr>';
300-
if ($totale_iva_anno_precedente >= 0) {
301-
echo ' <td>DEBITO ANNO PRECEDENTE</td>';
302-
} else {
303-
echo ' <td>CREDITO ANNO PRECEDENTE</td>';
304-
}
305-
echo '<td class=text-right>'.moneyFormat(abs($totale_iva_anno_precedente), 2).'</td>
306-
</tr>
307-
<tr>';
308-
if ($totale_iva_periodo_precedente >= 0) {
309-
echo ' <td>DEBITO PERIODO PRECEDENTE</td>';
310-
} else {
311-
echo ' <td>CREDITO PERIODO PRECEDENTE</td>';
312-
}
313-
echo ' <td class=text-right>'.moneyFormat(abs($totale_iva_periodo_precedente), 2).'</td>
314-
</tr>
315308
<tr>
316309
<td>TOTALE IVA SU VENDITE ESIGIBILE</td>
317310
<td class=text-right>'.moneyFormat($totale_iva_esigibile, 2).'</td>
@@ -330,9 +323,7 @@
330323
</tr>
331324
<tr>
332325
<td>VARIAZIONE DI IMPOSTA RELATIVE A PERIODI PRECEDENTI</td>
333-
<td class=text-right>'.($totale_iva_periodo_precedente > 0 ? moneyFormat(abs($totale_iva_periodo_precedente), 2) : '').'</td>
334-
335-
326+
<td class=text-right>'.($totale_iva_periodo_precedente > 0 ? moneyFormat(abs($totale_iva_periodo_precedente), 2) : '').'</td>
336327
</tr>
337328
<tr>
338329
<td>DI CUI INTERESSI PER RAVVEDIMENTO</td>
@@ -344,7 +335,7 @@
344335
</tr>
345336
<tr>
346337
<td>CREDITO IVA COMPENSABILE</td>
347-
<td class=text-right></td>
338+
<td class=text-right>'.moneyFormat(abs($credito_iva_compensabile), 2).'</td>
348339
</tr>
349340
<tr>
350341
<td>'.($totale_iva >= 0 ? 'IVA A DEBITO' : 'IVA A CREDITO').'</td>
@@ -360,16 +351,30 @@
360351
</tr>
361352
<tr>
362353
<td>IVA A DEBITO CON MAGGIORAZIONE</td>
363-
<td class=text-right>'.($periodo == 'Trimestrale' ? moneyFormat($totale_iva_maggiorata, 2) : '').'</td>
364-
365-
354+
<td class=text-right>'.($periodo == 'Trimestrale' ? moneyFormat($totale_iva_maggiorata, 2) : '').'</td>
366355
</tr>
367356
<tr>
368-
<td>IMPORTO DA VERSARE</td>
369-
<td class=text-right>'.($periodo == 'Mensile' ? moneyFormat($totale_iva, 2) : moneyFormat($totale_iva_maggiorata, 2)).'</td>
370-
371-
372-
357+
<td>IMPORTO DA VERSARE</td>';
358+
if ($periodo == 'Mensile') {
359+
$importo_da_versare = $totale_iva;
360+
} else {
361+
$importo_da_versare = $totale_iva_maggiorata;
362+
}
363+
364+
$importo_da_versare -= $credito_iva_compensabile;
365+
$importo_da_versare = $importo_da_versare > 0 ? $importo_da_versare : 0;
366+
echo '
367+
<td class=text-right>'.moneyFormat($importo_da_versare, 2).'</td>
368+
</tr>
369+
<tr>
370+
<td>CREDITO UTILIZZABILE PER PROSSIMA LIQUIDAZIONE</td>';
371+
372+
if ($totale_iva < $credito_iva_compensabile) {
373+
echo '<td class="text-right">' . moneyFormat(abs($credito_iva_compensabile - $totale_iva), 2) . '</td>';
374+
} else {
375+
echo '<td class="text-right">0,00 €</td>';
376+
}
377+
echo '
373378
</tr>
374379
<tr>
375380
<td>CREDITO INFRANNUALE DI IMPOSTA CHIESTO A RIMBORSO</td>

templates/liquidazione_iva/init.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@
5050
$iva_acquisti_anno_precedente = $dati_liquidazione['iva_acquisti_anno_precedente'];
5151
$iva_acquisti_periodo_precedente = $dati_liquidazione['iva_acquisti_periodo_precedente'];
5252

53+
$acconto_iva_periodo_corrente = $dati_liquidazione['acconto_iva_periodo_corrente'];
54+
$acconto_iva_periodo_precedente = $dati_liquidazione['acconto_iva_periodo_precedente'];
55+
$acconto_iva_periodo_precedente_utilizzato = $dati_liquidazione['acconto_iva_periodo_precedente_utilizzato'];
56+
5357
// Estrae i totali dei periodi precedenti
5458
$totale_iva_vendite_periodo_precedente = $dati_liquidazione['totale_iva_vendite_periodo_precedente'];
5559
$totale_iva_acquisti_periodo_precedente = $dati_liquidazione['totale_iva_acquisti_periodo_precedente'];

0 commit comments

Comments
 (0)