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:
parent
b2f6e802fc
commit
1f289dd8c9
|
@ -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()
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue