Skip to content

Commit 35a625f

Browse files
committed
fix: inizializzazione reverse charge e autofattura in fattura
1 parent b34667a commit 35a625f

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

modules/fatture/init.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
$is_fiscale = $fattura->isFiscale();
3939
}
4040

41-
$record = $dbo->fetchOne('SELECT
41+
$record = $dbo->fetchOne('SELECT
4242
`co_documenti`.*,
4343
`co_tipidocumento`.`reversed` AS is_reversed,
4444
`co_documenti`.`idagente` AS idagente_fattura,
@@ -65,7 +65,7 @@
6565
LEFT JOIN `dt_causalet` ON `co_documenti`.`idcausalet`=`dt_causalet`.`id`
6666
LEFT JOIN `dt_causalet_lang` ON (`dt_causalet_lang`.`id_record` = `dt_causalet`.`id` AND `dt_causalet_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
6767
INNER JOIN `zz_segments` ON `co_documenti`.`id_segment` = `zz_segments`.`id`
68-
WHERE
68+
WHERE
6969
`co_tipidocumento`.`dir` = '.prepare($dir).' AND `co_documenti`.`id`='.prepare($id_record));
7070

7171
// Note di credito collegate
@@ -82,10 +82,19 @@
8282
$fattura_acquisto_originale = null;
8383

8484
if (!empty($fattura)) {
85-
$reverse_charge = $fattura->getRighe()->first(fn ($item, $key) => $item->aliquota != null && $item->aliquota->codice_natura_fe !== null && str_starts_with($item->aliquota->codice_natura_fe, 'N6'))->id;
85+
$riga_reverse_charge = null;
86+
foreach ($fattura->getRighe() as $riga) {
87+
if ($riga->aliquota != null && $riga->aliquota->codice_natura_fe !== null && str_starts_with($riga->aliquota->codice_natura_fe, 'N6')) {
88+
$riga_reverse_charge = $riga;
89+
break;
90+
}
91+
}
92+
$reverse_charge = $riga_reverse_charge?->id;
8693
$autofattura_vendita = Fattura::find($fattura->id_autofattura);
8794

88-
$abilita_autofattura = (($fattura->anagrafica->nazione->iso2 != 'IT' && !empty($fattura->anagrafica->nazione->iso2)) || $reverse_charge) && $dir == 'uscita' && $fattura->id_autofattura == null;
95+
$is_fornitore_estero = !empty($fattura->anagrafica->nazione) && !empty($fattura->anagrafica->nazione->iso2) && $fattura->anagrafica->nazione->iso2 != 'IT';
96+
97+
$abilita_autofattura = $is_fornitore_estero && $dir == 'uscita' && $fattura->id_autofattura == null;
8998

9099
$fattura_acquisto_originale = Fattura::where('id_autofattura', '=', $fattura->id)->first();
91100
$autofattura_collegata = Fattura::where('id_autofattura', '=', $fattura->id)->where('id', '!=', $fattura_acquisto_originale->id)->orderBy('id', 'DESC')->first();

0 commit comments

Comments
 (0)