Gestione prezzo vendita unitario (Eloquent)

Miglioramento commit f0b2858a02 in previsione dell'implementazione del campo prezzo_unitario_acquisto.
This commit is contained in:
Thomas Zilio 2018-11-21 17:45:06 +01:00
parent 6e38ca3a0d
commit 5b70653b44
5 changed files with 25 additions and 46 deletions

View File

@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Builder;
abstract class Row extends Description
{
protected $costo_unitario;
protected $prezzo_unitario_vendita;
protected static function boot($bypass = false)
{
@ -38,7 +38,7 @@ abstract class Row extends Description
{
return calcola_sconto([
'sconto' => $this->sconto_unitario,
'prezzo' => $this->costo_unitario,
'prezzo' => $this->prezzo_unitario_vendita,
'tipo' => $this->tipo_sconto,
'qta' => $this->qta,
]);
@ -209,9 +209,9 @@ abstract class Row extends Description
*
* @param float $value
*/
public function setCostoUnitarioAttribute($value)
public function setPrezzoUnitarioVenditaAttribute($value)
{
$this->costo_unitario = $value;
$this->prezzo_unitario_vendita = $value;
$this->fixSubtotale();
$this->fixSconto();
@ -220,13 +220,13 @@ abstract class Row extends Description
/**
* Restituisce il costo unitario della riga.
*/
public function getCostoUnitarioAttribute()
public function getPrezzoUnitarioVenditaAttribute()
{
if (empty($this->costo_unitario)) {
$this->costo_unitario = $this->subtotale / $this->qta;
if (empty($this->prezzo_unitario_vendita)) {
$this->prezzo_unitario_vendita = $this->subtotale / $this->qta;
}
return $this->costo_unitario;
return $this->prezzo_unitario_vendita;
}
/**
@ -234,7 +234,7 @@ abstract class Row extends Description
*/
protected function fixSubtotale()
{
$this->attributes['subtotale'] = $this->costo_unitario * $this->qta;
$this->attributes['subtotale'] = $this->prezzo_unitario_vendita * $this->qta;
$this->fixIva();
$this->fixRitenutaAcconto();

View File

@ -557,10 +557,10 @@ switch (post('op')) {
$articolo->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto');
$articolo->id_ritenuta_acconto = post('id_ritenuta_acconto');
$articolo->id_rivalsa_inps = post('id_rivalsa_inps');
$articolo->costo_unitario = post('prezzo');
$articolo->prezzo_unitario_vendita = post('prezzo');
$articolo->sconto_unitario = post('sconto');
$articolo->tipo_sconto = post('tipo_sconto');
@ -602,10 +602,10 @@ switch (post('op')) {
$riga->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto');
$riga->id_ritenuta_acconto = post('id_ritenuta_acconto');
$riga->id_rivalsa_inps = post('id_rivalsa_inps');
$riga->costo_unitario = post('prezzo');
$riga->prezzo_unitario_vendita = post('prezzo');
$riga->qta = $qta;
$riga->sconto_unitario = post('sconto');
$riga->tipo_sconto = post('tipo_sconto');

View File

@ -419,29 +419,14 @@ switch (post('op')) {
$articolo->qta = post('qta');
$articolo->descrizione = post('descrizione');
$articolo->prezzo_vendita = post('prezzo_vendita');
$articolo->prezzo_unitario_vendita = post('prezzo_vendita');
$articolo->prezzo_acquisto = post('prezzo_acquisto');
$articolo->um = post('um');
$articolo->sconto_unitario = post('sconto');
$articolo->tipo_sconto = post('tipo_sconto');
$sconto = calcola_sconto([
'sconto' => post('sconto'),
'prezzo' => post('prezzo_vendita'),
'tipo' => post('tipo_sconto'),
'qta' => post('qta'),
]);
$articolo->sconto = $sconto;
$articolo->id_iva = post('idiva');
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare(post('idiva')));
$desc_iva = $rs_iva[0]['descrizione'];
$iva = ((post('prezzo_vendita') * post('qta')) - $sconto) * $rs_iva[0]['percentuale'] / 100;
$articolo->iva = $iva;
$articolo->id_iva = post('idiva');
$articolo->save();
// Aggiorno l'automezzo dell'intervento

View File

@ -27,6 +27,7 @@ class Articolo extends Article
$model->prezzo_acquisto = $articolo->prezzo_acquisto;
$model->prezzo_vendita = $articolo->prezzo_vendita;
$model->desc_iva = '';
$model->save();
@ -86,27 +87,20 @@ class Articolo extends Article
return 'entrata';
}
/**
* Effettua i conti per l'IVA indetraibile.
*/
public function fixIvaIndetraibile()
{
}
public function setCostoUnitarioAttribute($value)
{
$this->prezzo_vendita = $value;
$this->fixSubtotale();
}
public function getCostoUnitarioAttribute($value)
{
return $this->prezzo_vendita;
}
/**
* Effettua i conti per il subtotale della riga.
*/
protected function fixSubtotale()
{
$this->prezzo_vendita = $this->prezzo_unitario_vendita;
$this->fixIva();
}

View File

@ -169,7 +169,7 @@ class FatturaElettronica
$obj->descrizione = $riga['Descrizione'];
$obj->id_iva = $iva[$key];
$obj->idconto = $conto[$key];
$obj->costo_unitario = $riga['PrezzoUnitario'];
$obj->prezzo_unitario_vendita = $riga['PrezzoUnitario'];
$obj->qta = $riga['Quantita'] ?: 1;
if (!empty($riga['UnitaMisura'])) {