Fix calcolo ritenuta in import fe
This commit is contained in:
parent
6dffe7b481
commit
70c9e02126
|
@ -576,17 +576,21 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
if (!empty($ritenuta)) {
|
||||
$totali = [];
|
||||
$ritenuta_norighe = true;
|
||||
|
||||
foreach ($righe as $riga) {
|
||||
if (!empty($riga['Ritenuta'])) {
|
||||
$totali[] = $riga['PrezzoTotale'];
|
||||
$ritenuta_norighe = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($ritenuta)) {
|
||||
$ritenuta = $this->forceArray($ritenuta);
|
||||
foreach ($ritenuta as $rit) {
|
||||
$percentuale += floatval($rit['AliquotaRitenuta']);
|
||||
$importo += floatval($rit['ImportoRitenuta']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Calcolo la ritenuta su tutte le righe se non è specificata su nessuna riga
|
||||
if (empty($totali)) {
|
||||
|
@ -595,25 +599,24 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
$totale = sum($totali);
|
||||
}
|
||||
|
||||
$totale_previsto = round($importo / $percentuale * 100, 2);
|
||||
$totale_previsto = round($importo * 100 / $percentuale, 2);
|
||||
$percentuale_importo = round($totale_previsto / $totale * 100, 2);
|
||||
$percentuale_importo = min($percentuale_importo, 100); // Nota: Fix per la percentuale che superava il 100% nel caso di importi con Rivalsa compresa
|
||||
|
||||
$ritenuta_acconto = $database->fetchOne('SELECT * FROM`co_ritenutaacconto` WHERE `percentuale` = '.prepare($percentuale).' AND `percentuale_imponibile` = '.prepare($percentuale_importo));
|
||||
$ritenuta_acconto = $database->fetchOne("SELECT * FROM `co_ritenutaacconto` WHERE `percentuale` = ".prepare($percentuale)." AND `percentuale_imponibile` = ".prepare($percentuale_importo));
|
||||
|
||||
if (empty($ritenuta_acconto)) {
|
||||
$descrizione = tr('Ritenuta _PRC_% sul _TOT_%', [
|
||||
'_PRC_' => numberFormat($percentuale),
|
||||
'_TOT_' => numberFormat($percentuale_importo),
|
||||
]);
|
||||
|
||||
$database->query('INSERT INTO `co_ritenutaacconto` (`descrizione`, `percentuale`, `percentuale_imponibile`) VALUES ('.prepare($descrizione).', '.prepare($percentuale).', '.prepare($percentuale_importo).')');
|
||||
$database->query("INSERT INTO `co_ritenutaacconto` (`descrizione`, `percentuale`, `percentuale_imponibile`) VALUES (".prepare($descrizione).", ".prepare($percentuale).", ".prepare($percentuale_importo).")");
|
||||
$ritenuta_acconto = $database->fetchOne("SELECT * FROM `co_ritenutaacconto` WHERE `percentuale` = ".prepare($percentuale)." AND `percentuale_imponibile` = ".prepare($percentuale_importo));
|
||||
}
|
||||
|
||||
$ritenuta_acconto = $database->fetchOne('SELECT * FROM`co_ritenutaacconto` WHERE `percentuale` = '.prepare($percentuale).' AND `percentuale_imponibile` = '.prepare($percentuale_importo));
|
||||
|
||||
$id_ritenuta_acconto = $ritenuta_acconto['id'];
|
||||
}
|
||||
|
||||
return [
|
||||
'id_ritenuta_acconto' => $id_ritenuta_acconto,
|
||||
'id_rivalsa' => $id_rivalsa,
|
||||
|
|
Loading…
Reference in New Issue