Fix calcolo ritenuta in import fe
This commit is contained in:
parent
6dffe7b481
commit
70c9e02126
|
@ -576,44 +576,47 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
if (!empty($ritenuta)) {
|
if (!empty($ritenuta)) {
|
||||||
$totali = [];
|
$totali = [];
|
||||||
$ritenuta_norighe = true;
|
$ritenuta_norighe = true;
|
||||||
|
|
||||||
foreach ($righe as $riga) {
|
foreach ($righe as $riga) {
|
||||||
if (!empty($riga['Ritenuta'])) {
|
if (!empty($riga['Ritenuta'])) {
|
||||||
$totali[] = $riga['PrezzoTotale'];
|
$totali[] = $riga['PrezzoTotale'];
|
||||||
$ritenuta_norighe = false;
|
$ritenuta_norighe = false;
|
||||||
$ritenuta = $this->forceArray($ritenuta);
|
|
||||||
foreach ($ritenuta as $rit) {
|
|
||||||
$percentuale += floatval($rit['AliquotaRitenuta']);
|
|
||||||
$importo += floatval($rit['ImportoRitenuta']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
// Calcolo la ritenuta su tutte le righe se non è specificata su nessuna riga
|
||||||
if (empty($totali)) {
|
if (empty($totali)) {
|
||||||
$totale = array_sum(array_column($righe, 'PrezzoTotale'));
|
$totale = array_sum(array_column($righe, 'PrezzoTotale'));
|
||||||
} else {
|
} else {
|
||||||
$totale = sum($totali);
|
$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 = 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
|
$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)) {
|
if (empty($ritenuta_acconto)) {
|
||||||
$descrizione = tr('Ritenuta _PRC_% sul _TOT_%', [
|
$descrizione = tr('Ritenuta _PRC_% sul _TOT_%', [
|
||||||
'_PRC_' => numberFormat($percentuale),
|
'_PRC_' => numberFormat($percentuale),
|
||||||
'_TOT_' => numberFormat($percentuale_importo),
|
'_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'];
|
$id_ritenuta_acconto = $ritenuta_acconto['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id_ritenuta_acconto' => $id_ritenuta_acconto,
|
'id_ritenuta_acconto' => $id_ritenuta_acconto,
|
||||||
'id_rivalsa' => $id_rivalsa,
|
'id_rivalsa' => $id_rivalsa,
|
||||||
|
|
Loading…
Reference in New Issue