Correzioni strutturali

@loviuz Ho corretto alcune modifiche degli ultimi commit.
Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi).
This commit is contained in:
Thomas Zilio 2019-01-05 17:47:03 +01:00
parent b2f6e802fc
commit 1f289dd8c9
3 changed files with 38 additions and 43 deletions

View File

@ -83,12 +83,12 @@ abstract class Row extends Description
public function getRivalsaINPSAttribute() public function getRivalsaINPSAttribute()
{ {
return ($this->imponibile_scontato) / 100 * $this->rivalsa->percentuale; return $this->imponibile_scontato / 100 * $this->rivalsa->percentuale;
} }
public function getIvaRivalsaINPSAttribute() public function getIvaRivalsaINPSAttribute()
{ {
return $this->getRivalsaINPSAttribute() / 100 * $this->aliquota->percentuale; return $this->rivalsa_inps / 100 * $this->aliquota->percentuale;
} }
public function getRitenutaAccontoAttribute() public function getRitenutaAccontoAttribute()

View File

@ -28,23 +28,19 @@ abstract class Document extends Model
/** /**
* 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 * @param mixed ...$args
* *
* @return float * @return float
*/ */
public function calcola(...$args) protected function calcola(...$args)
{ {
$result = 0; $result = 0;
foreach ($args as $arg) { foreach ($args as $arg) {
$result += $this->getRigheContabili()->sum($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); return $this->round($result);
} }
@ -85,7 +81,7 @@ abstract class Document extends Model
*/ */
public function getIvaAttribute() 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() public function getIvaRivalsaINPSAttribute()
{ {
return $this->calcola('iva_rivalsainps'); return $this->calcola('iva_rivalsa_inps');
} }
/** /**

View File

@ -957,12 +957,11 @@ class FatturaElettronica
// Partita IVA (obbligatoria se presente) // Partita IVA (obbligatoria se presente)
if (!empty($anagrafica['piva'])) { if (!empty($anagrafica['piva'])) {
if (!empty($anagrafica['nazione'])) {
if (!empty($anagrafica['nazione']))
$result['IdFiscaleIVA']['IdPaese'] = $anagrafica['nazione']; $result['IdFiscaleIVA']['IdPaese'] = $anagrafica['nazione'];
}
$result['IdFiscaleIVA']['IdCodice'] = $anagrafica['piva']; $result['IdFiscaleIVA']['IdCodice'] = $anagrafica['piva'];
} }
// Codice fiscale // Codice fiscale
@ -1164,7 +1163,7 @@ class FatturaElettronica
'TipoCassa' => setting('Tipo Cassa'), 'TipoCassa' => setting('Tipo Cassa'),
'AlCassa' => $percentuale, 'AlCassa' => $percentuale,
'ImportoContributoCassa' => $totale_rivalsainps, 'ImportoContributoCassa' => $totale_rivalsainps,
'ImponibileCassa' => $fattura->calcola('imponibile'), 'ImponibileCassa' => $fattura->imponibile,
'AliquotaIVA' => $iva['percentuale'], 'AliquotaIVA' => $iva['percentuale'],
]; ];
@ -1198,7 +1197,7 @@ class FatturaElettronica
// Importo Totale Documento (2.1.1.9) // 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 // 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']); $fattura = Modules\Fatture\Fattura::find($documento['id']);
$result['ImportoTotaleDocumento'] = $fattura->calcola('netto'); $result['ImportoTotaleDocumento'] = $fattura->netto;
return $result; return $result;
} }
@ -1459,7 +1458,7 @@ class FatturaElettronica
if (empty($percentuale)) { if (empty($percentuale)) {
//Controllo aggiuntivo codice_natura_fe per evitare che venga riportato il tag vuoto //Controllo aggiuntivo codice_natura_fe per evitare che venga riportato il tag vuoto
if (!empty($iva['codice_natura_fe'])){ if (!empty($iva['codice_natura_fe'])) {
$dettaglio['Natura'] = $iva['codice_natura_fe']; $dettaglio['Natura'] = $iva['codice_natura_fe'];
} }
} }
@ -1658,7 +1657,7 @@ class FatturaElettronica
]; ];
//Terzo Intermediario o Soggetto Emittente //Terzo Intermediario o Soggetto Emittente
if (!empty(setting('Terzo intermediario'))){ if (!empty(setting('Terzo intermediario'))) {
$result['TerzoIntermediarioOSoggettoEmittente'] = static::getTerzoIntermediarioOSoggettoEmittente($fattura); $result['TerzoIntermediarioOSoggettoEmittente'] = static::getTerzoIntermediarioOSoggettoEmittente($fattura);
$result['SoggettoEmittente'] = 'TZ'; $result['SoggettoEmittente'] = 'TZ';
} }