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;
|
$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)
|
// 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.
|
// 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;
|
$qta = $riga['Quantita'] ?: 1;
|
||||||
|
|
||||||
// Prezzo e quantità
|
// Prezzo e quantità
|
||||||
|
@ -331,19 +345,6 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
$fattura->refresh();
|
$fattura->refresh();
|
||||||
|
|
||||||
// Arrotondamenti differenti nella fattura XML
|
// 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);
|
$diff = round(abs($totale_righe) - abs($fattura->totale_imponibile + $fattura->rivalsa_inps), 2);
|
||||||
if (!empty($diff)) {
|
if (!empty($diff)) {
|
||||||
// Rimozione dell'IVA calcolata automaticamente dal gestionale
|
// Rimozione dell'IVA calcolata automaticamente dal gestionale
|
||||||
|
|
Loading…
Reference in New Issue