Fix importazione fatture con importi negativi
This commit is contained in:
parent
f123d506f5
commit
ee7ddac7e9
|
@ -221,9 +221,23 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
$obj->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
|
||||
}
|
||||
|
||||
// Totale documento
|
||||
$totale_righe = 0;
|
||||
$dati_riepilogo = $this->getBody()['DatiBeniServizi']['DatiRiepilogo'];
|
||||
if (!empty($dati_riepilogo['ImponibileImporto'])) {
|
||||
$totale_righe = $dati_riepilogo['ImponibileImporto'];
|
||||
} elseif (is_array($dati_riepilogo)) {
|
||||
foreach ($dati_riepilogo as $dato) {
|
||||
$totale_righe += $dato['ImponibileImporto'];
|
||||
}
|
||||
} else {
|
||||
$totali_righe = array_column($righe, 'PrezzoTotale');
|
||||
$totale_righe = sum($totali_righe, null, 2);
|
||||
}
|
||||
|
||||
// Nel caso il prezzo sia negativo viene gestito attraverso l'inversione della quantità (come per le note di credito)
|
||||
// TODO: per migliorare la visualizzazione, sarebbe da lasciare negativo il prezzo e invertire gli sconti.
|
||||
$prezzo = $riga['PrezzoUnitario'];
|
||||
$prezzo = $totale_righe > 0 ? $riga['PrezzoUnitario'] : -$riga['PrezzoUnitario'];
|
||||
$qta = $riga['Quantita'] ?: 1;
|
||||
|
||||
// Prezzo e quantità
|
||||
|
@ -331,19 +345,6 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
$fattura->refresh();
|
||||
|
||||
// Arrotondamenti differenti nella fattura XML
|
||||
$totale_righe = 0;
|
||||
$dati_riepilogo = $this->getBody()['DatiBeniServizi']['DatiRiepilogo'];
|
||||
if (!empty($dati_riepilogo['ImponibileImporto'])) {
|
||||
$totale_righe = $dati_riepilogo['ImponibileImporto'];
|
||||
} elseif (is_array($dati_riepilogo)) {
|
||||
foreach ($dati_riepilogo as $dato) {
|
||||
$totale_righe += $dato['ImponibileImporto'];
|
||||
}
|
||||
} else {
|
||||
$totali_righe = array_column($righe, 'PrezzoTotale');
|
||||
$totale_righe = sum($totali_righe, null, 2);
|
||||
}
|
||||
|
||||
$diff = round(abs($totale_righe) - abs($fattura->totale_imponibile + $fattura->rivalsa_inps), 2);
|
||||
if (!empty($diff)) {
|
||||
// Rimozione dell'IVA calcolata automaticamente dal gestionale
|
||||
|
|
Loading…
Reference in New Issue