Aggiunta gestione fatture con più ritenute
This commit is contained in:
parent
686c9af24e
commit
7745e29c13
|
@ -87,9 +87,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
{
|
{
|
||||||
$linee = $this->getBody()['DatiBeniServizi']['DettaglioLinee'];
|
$linee = $this->getBody()['DatiBeniServizi']['DettaglioLinee'];
|
||||||
$linee = $this->forceArray($linee);
|
$linee = $this->forceArray($linee);
|
||||||
$ritenuta = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']['DatiRitenuta'];
|
|
||||||
$cassa_previdenziale = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']['DatiCassaPrevidenziale'];
|
$cassa_previdenziale = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']['DatiCassaPrevidenziale'];
|
||||||
$linee = $this->forceArray($linee);
|
|
||||||
|
|
||||||
$imponibile = [];
|
$imponibile = [];
|
||||||
$totale_imposta = [];
|
$totale_imposta = [];
|
||||||
|
@ -382,7 +380,8 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
// Arrotondamenti differenti nella fattura XML
|
// Arrotondamenti differenti nella fattura XML
|
||||||
$diff = round(abs($totale_righe) + $totale_arrotondamento - abs($fattura->totale_imponibile), 2);
|
$diff = round(abs($totale_righe) + $totale_arrotondamento - abs($fattura->totale_imponibile), 2);
|
||||||
// Aggiunta della riga di arrotondamento nel caso in cui ci sia una differenza tra i totali, o tra l'imponibile dell'XML e quello ricavato dalla somma delle righe
|
// Aggiunta della riga di arrotondamento nel caso in cui ci sia una differenza tra i totali, o tra l'imponibile dell'XML e quello ricavato dalla somma delle righe
|
||||||
if (($diff != 0 && $diff != $totale_arrotondamento) || $fattura->totale_imponibile + $fattura->rivalsa_inps != $totale_imp) {
|
|
||||||
|
if (($diff != 0 && $diff != $totale_arrotondamento) || (($fattura->totale_imponibile + $fattura->rivalsa_inps) != $totale_imp)) {
|
||||||
// Rimozione dell'IVA calcolata automaticamente dal gestionale
|
// Rimozione dell'IVA calcolata automaticamente dal gestionale
|
||||||
$iva_arrotondamento = database()->fetchOne('SELECT * FROM co_iva WHERE percentuale=0 AND deleted_at IS NULL');
|
$iva_arrotondamento = database()->fetchOne('SELECT * FROM co_iva WHERE percentuale=0 AND deleted_at IS NULL');
|
||||||
if ($diff != 0) {
|
if ($diff != 0) {
|
||||||
|
@ -501,6 +500,11 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
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']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -511,9 +515,6 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
$totale = sum($totali);
|
$totale = sum($totali);
|
||||||
}
|
}
|
||||||
|
|
||||||
$percentuale = floatval($ritenuta['AliquotaRitenuta']);
|
|
||||||
$importo = floatval($ritenuta['ImportoRitenuta']);
|
|
||||||
|
|
||||||
$totale_previsto = round($importo / $percentuale * 100, 2);
|
$totale_previsto = round($importo / $percentuale * 100, 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
|
||||||
|
|
Loading…
Reference in New Issue