Bugfix codice articolo

This commit is contained in:
Thomas Zilio 2019-01-02 09:22:57 +01:00
parent f077e1defb
commit 455ab818b1
2 changed files with 39 additions and 38 deletions

View File

@ -4,6 +4,9 @@ namespace Common\Components;
use Common\Document;
use Illuminate\Database\Eloquent\Builder;
use Modules\Iva\Aliquota;
use Modules\Ritenute\RitenutaAcconto;
use Modules\Ritenute\RivalsaINPS;
abstract class Row extends Description
{
@ -80,26 +83,28 @@ abstract class Row extends Description
public function getRivalsaINPSAttribute()
{
return $this->attributes['rivalsainps'];
return ($this->imponibile_scontato) / 100 * $this->rivalsa->percentuale;
}
public function getRitenutaAccontoAttribute()
{
return $this->attributes['ritenutaacconto'];
$result = $this->imponibile_scontato;
if ($this->calcolo_ritenuta_acconto == 'IMP+RIV') {
$result += $this->rivalsainps;
}
return $result / 100 * $this->ritenuta->percentuale;
}
public function getIvaIndetraibileAttribute()
{
return $this->attributes['iva_indetraibile'];
return $this->iva / 100 * $this->aliquota->indetraibile;
}
public function getIvaAttribute()
{
$percentuale = database()->fetchOne('SELECT percentuale FROM co_iva WHERE id = :id', [
':id' => $this->idiva,
])['percentuale'];
return ($this->imponibile_scontato + $this->rivalsa_inps) * $percentuale / 100;
return ($this->imponibile_scontato + $this->rivalsa_inps) * $this->aliquota->percentuale / 100;
}
public function getIvaDetraibileAttribute()
@ -128,15 +133,14 @@ abstract class Row extends Description
}
/**
* Imposta l'identificatore della Rivalsa INPS, effettuando di conseguenza i conti.
* Imposta l'identificatore della Rivalsa INPS.
*
* @param int $value
*/
public function setIdRivalsaINPSAttribute($value)
{
$this->attributes['idrivalsainps'] = $value;
$this->fixRivalsaINPS();
$this->load('rivalsa');
}
/**
@ -147,16 +151,18 @@ abstract class Row extends Description
public function setIdRitenutaAccontoAttribute($value)
{
$this->attributes['idritenutaacconto'] = $value;
$this->load('ritenuta');
}
/**
* Imposta l'identificatore dell'IVA, effettuando di conseguenza i conti.
* Imposta l'identificatore dell'IVA.
*
* @param int $value
*/
public function setIdIvaAttribute($value)
{
$this->attributes['idiva'] = $value;
$this->load('aliquota');
}
/**
@ -225,9 +231,7 @@ abstract class Row extends Description
*/
protected function fixRivalsaINPS()
{
$rivalsa = database()->fetchOne('SELECT * FROM co_rivalsainps WHERE id = '.prepare($this->idrivalsainps));
$this->attributes['rivalsainps'] = ($this->imponibile_scontato) / 100 * $rivalsa['percentuale'];
$this->attributes['rivalsainps'] = $this->rivalsa_inps;
}
/**
@ -235,15 +239,7 @@ abstract class Row extends Description
*/
protected function fixRitenutaAcconto()
{
// Calcolo ritenuta d'acconto
$ritenuta = database()->fetchOne('SELECT * FROM co_ritenutaacconto WHERE id = '.prepare($this->idritenutaacconto));
$conto = $this->imponibile_scontato;
if ($this->calcolo_ritenuta_acconto == 'IMP+RIV') {
$conto += $this->rivalsainps;
}
$this->attributes['ritenutaacconto'] = $conto / 100 * $ritenuta['percentuale'];
$this->attributes['ritenutaacconto'] = $this->ritenuta_acconto;
}
/**
@ -251,19 +247,13 @@ abstract class Row extends Description
*/
protected function fixIva()
{
$iva = database()->fetchOne('SELECT * FROM co_iva WHERE id = :id_iva', [
':id_iva' => $this->idiva,
]);
$descrizione = $iva['descrizione'];
$valore = ($this->imponibile_scontato) * $iva['percentuale'] / 100;
$this->attributes['iva'] = $this->iva;
$descrizione = $this->aliquota->descrizione;
if (!empty($descrizione)) {
$this->attributes['desc_iva'] = $descrizione;
}
$this->attributes['iva'] = $valore;
$this->fixIvaIndetraibile();
}
@ -272,11 +262,7 @@ abstract class Row extends Description
*/
protected function fixIvaIndetraibile()
{
$iva = database()->fetchOne('SELECT * FROM co_iva WHERE id = :id_iva', [
':id_iva' => $this->idiva,
]);
$this->attributes['iva_indetraibile'] = $this->iva / 100 * $iva['indetraibile'];
$this->attributes['iva_indetraibile'] = $this->iva_indetraibile;
}
/**
@ -286,4 +272,19 @@ abstract class Row extends Description
{
$this->attributes['sconto'] = $this->sconto;
}
public function aliquota()
{
return $this->belongsTo(Aliquota::class, 'idiva');
}
public function rivalsa()
{
return $this->belongsTo(RivalsaINPS::class, 'idrivalsainps');
}
public function ritenuta()
{
return $this->belongsTo(RitenutaAcconto::class, 'idritenutaacconto');
}
}

View File

@ -55,7 +55,7 @@ foreach ($righe as $riga) {
$ref_modulo = Modules::get('Articoli')['id'];
$ref_id = $riga['idarticolo'];
$riga['descrizione'] = (!empty($riga['codice']) ? $riga['codice'].' - ' : '').$riga['descrizione'];
$riga['descrizione'] = (!empty($riga->articolo) ? $riga->articolo->codice.' - ' : '').$riga['descrizione'];
$delete = 'unlink_articolo';