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()
{
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()

View File

@ -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');
}
/**

View File

@ -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;
}