From 5b70653b447d84ff85b15c124fcd7e9b7829eea5 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Wed, 21 Nov 2018 17:45:06 +0100 Subject: [PATCH] Gestione prezzo vendita unitario (Eloquent) Miglioramento commit f0b2858a02fd872357a33b31e1b9040f86187a31 in previsione dell'implementazione del campo prezzo_unitario_acquisto. --- include/src/Row.php | 18 +++++++++--------- modules/fatture/actions.php | 12 ++++++------ modules/interventi/actions.php | 21 +++------------------ modules/interventi/src/Articolo.php | 18 ++++++------------ plugins/importPA/src/FatturaElettronica.php | 2 +- 5 files changed, 25 insertions(+), 46 deletions(-) diff --git a/include/src/Row.php b/include/src/Row.php index 4b176905e..05d98f495 100644 --- a/include/src/Row.php +++ b/include/src/Row.php @@ -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(); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 6f66ba54a..04f08c43c 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -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'); diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 97a4fc77a..3f92acc64 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -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 diff --git a/modules/interventi/src/Articolo.php b/modules/interventi/src/Articolo.php index fb30f843a..3f6abe2ab 100644 --- a/modules/interventi/src/Articolo.php +++ b/modules/interventi/src/Articolo.php @@ -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(); } diff --git a/plugins/importPA/src/FatturaElettronica.php b/plugins/importPA/src/FatturaElettronica.php index 193ff7f96..aa6c066cb 100644 --- a/plugins/importPA/src/FatturaElettronica.php +++ b/plugins/importPA/src/FatturaElettronica.php @@ -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'])) {