Skip to content

Commit 587b6c6

Browse files
committed
fix: registrazione fatture di acquisto con split payment
1 parent cd32ead commit 587b6c6

1 file changed

Lines changed: 33 additions & 7 deletions

File tree

modules/fatture/src/Gestori/Movimenti.php

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public function registra()
105105
$id_conto_controparte = $id_conto; // Salvataggio del conto dell'anagrafica per usi successivi
106106

107107
$importo_anagrafica = $totale;
108+
// Per le fatture con split payment, l'importo dell'anagrafica è sempre il totale senza IVA
108109
if ($split_payment) {
109110
$importo_anagrafica = sum($importo_anagrafica, -$iva_detraibile, 2);
110111
}
@@ -142,15 +143,40 @@ public function registra()
142143
}
143144

144145
/*
145-
* 3) IVA detraibile sul relativo conto (Split Payment disabilitato)
146+
* 3) IVA detraibile sul relativo conto
146147
* IVA detraibile -> AVERE per Vendita, DARE per Acquisto
147148
*/
148-
if (!empty($iva_detraibile) && empty($split_payment)) {
149-
$id_conto = $is_acquisto ? setting('Conto per Iva su acquisti') : setting('Conto per Iva su vendite');
150-
$movimenti[] = [
151-
'id_conto' => $id_conto,
152-
'avere' => $iva_detraibile,
153-
];
149+
if (!empty($iva_detraibile)) {
150+
// Caso 1: Fattura di acquisto con split payment - IVA su vendite
151+
if ($is_acquisto && $split_payment) {
152+
$id_conto = setting('Conto per Iva su vendite');
153+
$movimenti[] = [
154+
'id_conto' => $id_conto,
155+
'avere' => $iva_detraibile,
156+
];
157+
158+
// Aggiunta dell'IVA al conto di costo per fatture di acquisto con split payment
159+
foreach ($righe as $riga) {
160+
$id_conto = $riga->id_conto ?: $this->fattura->idconto;
161+
$iva_riga = $riga->iva;
162+
163+
if (!empty($iva_riga)) {
164+
$movimenti[] = [
165+
'id_conto' => $id_conto,
166+
'avere' => $iva_riga,
167+
];
168+
}
169+
}
170+
}
171+
// Caso 2: Fattura senza split payment - IVA normale (acquisti o vendite)
172+
else if (empty($split_payment)) {
173+
$id_conto = $is_acquisto ? setting('Conto per Iva su acquisti') : setting('Conto per Iva su vendite');
174+
$movimenti[] = [
175+
'id_conto' => $id_conto,
176+
'avere' => $iva_detraibile,
177+
];
178+
}
179+
// Caso 3: Fattura di vendita con split payment - Non si registra l'IVA
154180
}
155181

156182
/*

0 commit comments

Comments
 (0)