diff --git a/include/src/Components/Row.php b/include/src/Components/Row.php index 7aff66504..1a3c05ce8 100644 --- a/include/src/Components/Row.php +++ b/include/src/Components/Row.php @@ -83,12 +83,12 @@ abstract class Row extends Description public function getRivalsaINPSAttribute() { - return ($this->imponibile_scontato) / 100 * $this->rivalsa->percentuale; + return $this->imponibile_scontato / 100 * $this->rivalsa->percentuale; } public function getIvaRivalsaINPSAttribute() { - return $this->getRivalsaINPSAttribute() / 100 * $this->aliquota->percentuale; + return $this->rivalsa_inps / 100 * $this->aliquota->percentuale; } public function getRitenutaAccontoAttribute() diff --git a/include/src/Document.php b/include/src/Document.php index b8f93d11a..d1a89fc2f 100644 --- a/include/src/Document.php +++ b/include/src/Document.php @@ -27,24 +27,20 @@ abstract class Document extends Model abstract public function scontoGlobale(); /** - * Calcola la somma degli attributi indicati come parametri. + * Calcola la somma degli attributi indicati come parametri. + * Il metodo **non** deve essere adattato per ulteriori funzionalità: deve esclusivamente calcolare la somma richiesta in modo esplicito dagli argomenti. * * @param mixed ...$args * * @return float */ - public function calcola(...$args) + protected function calcola(...$args) { $result = 0; foreach ($args as $arg) { $result += $this->getRigheContabili()->sum($arg); } - // Aggiunta eventuale iva rivalsa inps - if (in_array ('iva', $args) ) { - $result = sum($result, $this->iva_rivalsainps); - } - return $this->round($result); } @@ -85,7 +81,7 @@ abstract class Document extends Model */ public function getIvaAttribute() { - return $this->calcola('iva'); + return $this->calcola('iva', 'iva_rivalsa_inps'); } /** @@ -105,7 +101,7 @@ abstract class Document extends Model */ public function getIvaRivalsaINPSAttribute() { - return $this->calcola('iva_rivalsainps'); + return $this->calcola('iva_rivalsa_inps'); } /** diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 190c55802..b0baa2080 100644 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -622,17 +622,17 @@ class FatturaElettronica return $this->cliente; } - /** + /** * Restituisce le informazioni sull'anagrafica dell'intermediario. * * @return array */ public function getIntermediario() { - if (empty($this->intermediario)) { - $intermediario = static::getAnagrafica(setting('Terzo intermediario')); - $this->intermediario = $intermediario; - } + if (empty($this->intermediario)) { + $intermediario = static::getAnagrafica(setting('Terzo intermediario')); + $this->intermediario = $intermediario; + } return $this->intermediario; } @@ -957,12 +957,11 @@ class FatturaElettronica // Partita IVA (obbligatoria se presente) if (!empty($anagrafica['piva'])) { + if (!empty($anagrafica['nazione'])) { + $result['IdFiscaleIVA']['IdPaese'] = $anagrafica['nazione']; + } - if (!empty($anagrafica['nazione'])) - $result['IdFiscaleIVA']['IdPaese'] = $anagrafica['nazione']; - - $result['IdFiscaleIVA']['IdCodice'] = $anagrafica['piva']; - + $result['IdFiscaleIVA']['IdCodice'] = $anagrafica['piva']; } // Codice fiscale @@ -1079,21 +1078,21 @@ class FatturaElettronica } - /** - * Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5). - * - * @return array - */ - protected static function getTerzoIntermediarioOSoggettoEmittente($fattura) - { - $intermediario = $fattura->getIntermediario(); + /** + * Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5). + * + * @return array + */ + protected static function getTerzoIntermediarioOSoggettoEmittente($fattura) + { + $intermediario = $fattura->getIntermediario(); - $result = [ + $result = [ 'DatiAnagrafici' => static::getDatiAnagrafici($intermediario), ]; - return $result; - } + return $result; + } /** @@ -1164,7 +1163,7 @@ class FatturaElettronica 'TipoCassa' => setting('Tipo Cassa'), 'AlCassa' => $percentuale, 'ImportoContributoCassa' => $totale_rivalsainps, - 'ImponibileCassa' => $fattura->calcola('imponibile'), + 'ImponibileCassa' => $fattura->imponibile, 'AliquotaIVA' => $iva['percentuale'], ]; @@ -1198,7 +1197,7 @@ class FatturaElettronica // Importo Totale Documento (2.1.1.9) // Importo totale del documento al netto dell'eventuale sconto e comprensivo di imposta a debito del cessionario / committente $fattura = Modules\Fatture\Fattura::find($documento['id']); - $result['ImportoTotaleDocumento'] = $fattura->calcola('netto'); + $result['ImportoTotaleDocumento'] = $fattura->netto; return $result; } @@ -1458,10 +1457,10 @@ class FatturaElettronica } if (empty($percentuale)) { - //Controllo aggiuntivo codice_natura_fe per evitare che venga riportato il tag vuoto - if (!empty($iva['codice_natura_fe'])){ - $dettaglio['Natura'] = $iva['codice_natura_fe']; - } + //Controllo aggiuntivo codice_natura_fe per evitare che venga riportato il tag vuoto + if (!empty($iva['codice_natura_fe'])) { + $dettaglio['Natura'] = $iva['codice_natura_fe']; + } } if (!empty($riga['riferimento_amministrazione'])) { @@ -1657,11 +1656,11 @@ class FatturaElettronica 'CessionarioCommittente' => static::getCessionarioCommittente($fattura), ]; - //Terzo Intermediario o Soggetto Emittente - if (!empty(setting('Terzo intermediario'))){ - $result['TerzoIntermediarioOSoggettoEmittente'] = static::getTerzoIntermediarioOSoggettoEmittente($fattura); - $result['SoggettoEmittente'] = 'TZ'; - } + //Terzo Intermediario o Soggetto Emittente + if (!empty(setting('Terzo intermediario'))) { + $result['TerzoIntermediarioOSoggettoEmittente'] = static::getTerzoIntermediarioOSoggettoEmittente($fattura); + $result['SoggettoEmittente'] = 'TZ'; + } return $result; }