Fix per importazione fattura di acquisto con rivalsa non specificata nelle righe

This commit is contained in:
Pek5892 2024-02-06 10:23:55 +01:00
parent ff89f281e2
commit bf275837e0
1 changed files with 10 additions and 2 deletions

View File

@ -293,7 +293,7 @@ class FatturaOrdinaria extends FatturaElettronica
$obj->ritenuta_contributi = $ritenuta_contributi; $obj->ritenuta_contributi = $ritenuta_contributi;
// Inserisco la ritenuta se è specificata nella riga o se non è specificata nella riga ma è presente in Dati ritenuta (quindi comprende tutte le righe) // Inserisco la ritenuta se è specificata nella riga o se non è specificata nella riga ma è presente in Dati ritenuta (quindi comprende tutte le righe)
if (!empty($riga['Ritenuta']) || $info['ritenuta_norighe'] == true) { if (!empty($riga['Ritenuta']) || $info['ritenuta_norighe'] == true || $info['rivalsa_norighe'] == true ) {
$obj->id_ritenuta_acconto = $id_ritenuta_acconto; $obj->id_ritenuta_acconto = $id_ritenuta_acconto;
$obj->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto; $obj->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
$obj->id_rivalsa_inps = $id_rivalsa; $obj->id_rivalsa_inps = $id_rivalsa;
@ -536,11 +536,18 @@ class FatturaOrdinaria extends FatturaElettronica
$casse = $dati_generali['DatiCassaPrevidenziale']; $casse = $dati_generali['DatiCassaPrevidenziale'];
if (!empty($casse)) { if (!empty($casse)) {
$totale = 0; $totale = 0;
$rivalsa_norighe = true;
$totale_norighe = 0;
foreach ($righe as $riga) { foreach ($righe as $riga) {
if ($riga['Ritenuta']) { if ($riga['Ritenuta']) {
$totale += $riga['PrezzoTotale']; $totale += $riga['PrezzoTotale'];
$rivalsa_norighe = false;
} else {
$totale_norighe += $riga['PrezzoTotale'];
} }
} }
$casse = isset($casse[0]) ? $casse : [$casse]; $casse = isset($casse[0]) ? $casse : [$casse];
$importi = []; $importi = [];
@ -552,7 +559,7 @@ class FatturaOrdinaria extends FatturaElettronica
} }
$importo = sum($importi); $importo = sum($importi);
$percentuale = round($importo / $totale * 100, 2); $percentuale = round($importo / ($rivalsa_norighe ? $totale_norighe : $totale) * 100, 2);
$rivalsa = $database->fetchOne('SELECT * FROM`co_rivalse` WHERE `percentuale` = '.prepare($percentuale)); $rivalsa = $database->fetchOne('SELECT * FROM`co_rivalse` WHERE `percentuale` = '.prepare($percentuale));
if (empty($rivalsa)) { if (empty($rivalsa)) {
@ -619,6 +626,7 @@ class FatturaOrdinaria extends FatturaElettronica
return [ return [
'id_ritenuta_acconto' => $id_ritenuta_acconto, 'id_ritenuta_acconto' => $id_ritenuta_acconto,
'id_rivalsa' => $id_rivalsa, 'id_rivalsa' => $id_rivalsa,
'rivalsa_norighe' => $rivalsa_norighe,
'rivalsa_in_ritenuta' => $rivalsa_in_ritenuta, 'rivalsa_in_ritenuta' => $rivalsa_in_ritenuta,
'ritenuta_norighe' => $ritenuta_norighe, 'ritenuta_norighe' => $ritenuta_norighe,
]; ];