diff --git a/templates/fatture/footer.php b/templates/fatture/footer.php
index a521e3b62..5ce08d1a7 100755
--- a/templates/fatture/footer.php
+++ b/templates/fatture/footer.php
@@ -26,8 +26,9 @@ $imponibile = abs($documento->imponibile);
$sconto = $documento->sconto;
$totale_imponibile = abs($documento->totale_imponibile);
$totale_iva = abs($documento->iva);
-$totale = abs($documento->totale);
-$netto_a_pagare = abs($documento->netto);
+$sconto_finale = $documento->getScontoFinale();
+$rivalsa = floatval($record['rivalsainps']);
+$totale = abs($documento->totale) - $rivalsa;
$show_sconto = $sconto > 0;
@@ -36,6 +37,17 @@ $peso_lordo = $documento->peso ?: $documento->peso_calcolato;
$width = round(100 / ($show_sconto ? 5 : 3), 2);
+$has_rivalsa = !empty($record['rivalsainps']);
+$has_ritenuta = !empty($record['ritenutaacconto']) || !empty($documento->totale_ritenuta_contributi) || !empty($record['spit_payment']);
+$has_split_payment = !empty($record['split_payment']);
+$has_sconto_finale = !empty($sconto_finale);
+
+$etichette = [
+ 'totale' => tr('Totale', [], ['upper' => true]),
+ 'totale_parziale' => tr('Totale parziale', [], ['upper' => true]),
+ 'totale_finale' => tr('Netto a pagare', [], ['upper' => true]),
+];
+
// SCADENZE | TOTALI
// TABELLA PRINCIPALE
echo "
@@ -137,7 +149,11 @@ echo '
echo '
';
-// TOTALI
+/*
+ * Riga di riepilogo dei totali.
+ * Se sconto: Imponibile | Sconto | Totale imponibile | Totale IVA | Totale
+ * Altrimenti: Imponibile | Totale IVA | Totale
+ */
echo "
@@ -161,7 +177,7 @@ echo "
|
- ".tr('Totale documento', [], ['upper' => true])."
+ ".(!$has_rivalsa && !$has_ritenuta && !$has_split_payment && !$has_sconto_finale ? $etichette['totale'] : $etichette['totale_parziale'])."
|
@@ -188,12 +204,15 @@ echo "
- ".moneyFormat($netto_a_pagare, 2).'
+ ".moneyFormat($totale, 2).'
|
';
-// Rivalsa INPS
-if (!empty($record['rivalsainps'])) {
+/*
+ * Riga di riepilogo della Rivalsa INPS.
+ * Rivalsa INPS | Totale (+ Rivalsa INPS)
+ */
+if ($has_rivalsa) {
$rs2 = $dbo->fetchArray('SELECT percentuale FROM co_rivalse WHERE id=(SELECT idrivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idrivalsainps!=0 LIMIT 0,1)');
$first_colspan = 3;
@@ -215,15 +234,16 @@ if (!empty($record['rivalsainps'])) {
echo '
- '.tr('Totale documento', [], ['upper' => true]).'
+ '.(!$has_ritenuta && !$has_split_payment && !$has_sconto_finale ? $etichette['totale_finale'] : $etichette['totale_parziale']).'
|
- '.moneyFormat($record['rivalsainps'], 2).'
+ '.moneyFormat($rivalsa, 2).'
| ';
+ $totale = $totale + $rivalsa;
echo '
@@ -232,8 +252,11 @@ if (!empty($record['rivalsainps'])) {
|
';
}
-// Ritenuta d'acconto ( + se no rivalsa inps)
-if (!empty($record['ritenutaacconto']) || !empty($documento->totale_ritenuta_contributi) || !empty($record['spit_payment'])) {
+/*
+ * Riga di riepilogo di Ritenuta d'acconto e Ritenuta contributi.
+ * Ritenuta | Totale (+ Rivalsa INPS - Ritenuta)
+ */
+if ($has_ritenuta) {
$rs2 = $dbo->fetchArray('SELECT percentuale FROM co_ritenutaacconto WHERE id=(SELECT idritenutaacconto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idritenutaacconto!=0 LIMIT 0,1)');
$first_colspan = 3;
@@ -250,6 +273,7 @@ if (!empty($record['ritenutaacconto']) || !empty($documento->totale_ritenuta_con
$acconto = tr('acconto: _PRC_%', [
'_PRC_' => Translator::numberToLocale($rs2[0]['percentuale'], 0),
]);
+ $ritenuta_totale = abs($documento->ritenuta_acconto) + abs($documento->totale_ritenuta_contributi);
echo '
@@ -261,13 +285,8 @@ if (!empty($record['ritenutaacconto']) || !empty($documento->totale_ritenuta_con
';
echo '
- ';
- if (empty($record['split_payment'])) {
- echo tr('Netto a pagare', [], ['upper' => true]);
- } else {
- echo tr('Totale', [], ['upper' => true]);
- }
- echo '
+ |
+ '.(!$has_split_payment && !$has_sconto_finale ? $etichette['totale_finale'] : $etichette['totale_parziale']).'
| ';
echo '
@@ -275,19 +294,23 @@ if (!empty($record['ritenutaacconto']) || !empty($documento->totale_ritenuta_con
- '.moneyFormat(abs($documento->ritenuta_acconto) + abs($documento->totale_ritenuta_contributi), 2).'
+ '.moneyFormat($ritenuta_totale, 2).'
| ';
+ $totale = $totale - $ritenuta_totale;
echo '
- '.moneyFormat($netto_a_pagare, 2).'
+ '.moneyFormat($totale, 2).'
|
';
}
-// Split payment
-if (!empty($record['split_payment'])) {
+/*
+ * Riga di riepilogo per lo Split payment.
+ * Totale IVA | Totale (+ Rivalsa INPS - Ritenuta - Totale IVA)
+ */
+if ($has_split_payment) {
$first_colspan = 1;
$second_colspan = 2;
@@ -298,10 +321,11 @@ if (!empty($record['split_payment'])) {
- '.tr('Netto a pagare', [], ['upper' => true]).'
+ '.(!$has_split_payment && !$has_sconto_finale ? $etichette['totale_finale'] : $etichette['totale_parziale']).'
|
';
+ $totale = $totale - $totale_iva;
echo '
@@ -309,7 +333,39 @@ if (!empty($record['split_payment'])) {
|
- '.moneyFormat($netto_a_pagare, 2).'
+ '.moneyFormat($totale, 2).'
+ |
+
';
+}
+
+/*
+ * Riga di riepilogo per lo Sconto finale sulla fattura.
+ * Sconto finale | Totale (+ Rivalsa INPS - Ritenuta - Totale IVA [se split payment] - Sconto finale)
+ */
+if ($has_sconto_finale) {
+ $first_colspan = 1;
+ $second_colspan = 2;
+
+ echo '
+
+
+ '.tr('Sconto in fattura', [], ['upper' => true]).($documento->sconto_finale_percentuale ? ' ('.numberFormat($documento->sconto_finale_percentuale, 2).'%)' : '').'
+ |
+
+
+ '.tr('Netto a pagare', [], ['upper' => true]).'
+ |
+
';
+
+ $totale = $totale - $sconto_finale;
+ echo '
+
+
+ '.moneyFormat($sconto_finale, 2).'
+ |
+
+
+ '.moneyFormat($totale, 2).'
|
';
}