mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 19:40:44 +01:00
Separazione sconti da righe
This commit is contained in:
parent
dc12894410
commit
f0f755ebc6
@ -107,22 +107,22 @@ abstract class Description extends Model
|
||||
|
||||
public function isDescrizione()
|
||||
{
|
||||
return $this->is_descrizione == 1;
|
||||
return !$this->isArticolo() && !$this->isSconto() && !$this->isRiga() && $this instanceof Description;
|
||||
}
|
||||
|
||||
public function isSconto()
|
||||
{
|
||||
return $this->subtotale == 0;
|
||||
return $this instanceof Discount;
|
||||
}
|
||||
|
||||
public function isRiga()
|
||||
{
|
||||
return !$this->isDescrizione() && !$this->isSconto() && !$this->isArticolo();
|
||||
return !$this->isArticolo() && !$this->isSconto() && $this instanceof Row;
|
||||
}
|
||||
|
||||
public function isArticolo()
|
||||
{
|
||||
return !empty($this->idarticolo);
|
||||
return $this instanceof Article;
|
||||
}
|
||||
|
||||
/**
|
||||
|
40
include/src/Components/Discount.php
Normal file
40
include/src/Components/Discount.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Common\Components;
|
||||
|
||||
use Common\Document;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Modules\Iva\Aliquota;
|
||||
|
||||
abstract class Discount extends Row
|
||||
{
|
||||
|
||||
public function getIvaAttribute()
|
||||
{
|
||||
return $this->attributes['iva'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Effettua i conti per l'IVA.
|
||||
*/
|
||||
protected function fixIva()
|
||||
{
|
||||
$this->attributes['iva'] = parent::$iva;
|
||||
|
||||
$descrizione = $this->aliquota->descrizione;
|
||||
if (!empty($descrizione)) {
|
||||
$this->attributes['desc_iva'] = $descrizione;
|
||||
}
|
||||
|
||||
$this->fixIvaIndetraibile();
|
||||
}
|
||||
|
||||
protected static function boot($bypass = false)
|
||||
{
|
||||
parent::boot(true);
|
||||
|
||||
static::addGlobalScope('discounts', function (Builder $builder) {
|
||||
$builder->where('subtotale', '=', 0);
|
||||
});
|
||||
}
|
||||
}
|
@ -177,6 +177,10 @@ abstract class Row extends Description
|
||||
static::addGlobalScope('rows', function (Builder $builder) {
|
||||
$builder->whereNull('idarticolo')->orWhere('idarticolo', '=', 0);
|
||||
});
|
||||
|
||||
static::addGlobalScope('not_discounts', function (Builder $builder) {
|
||||
$builder->where('subtotale', '!=', 0);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,8 +14,9 @@ abstract class Document extends Model
|
||||
$descrizioni = $this->descrizioni;
|
||||
$righe = $this->righe;
|
||||
$articoli = $this->articoli;
|
||||
$sconti = $this->sconti;
|
||||
|
||||
return $descrizioni->merge($righe)->merge($articoli)->sortBy('order');
|
||||
return $descrizioni->merge($righe)->merge($articoli)->merge($sconti)->sortBy('order');
|
||||
}
|
||||
|
||||
abstract public function righe();
|
||||
@ -24,6 +25,8 @@ abstract class Document extends Model
|
||||
|
||||
abstract public function descrizioni();
|
||||
|
||||
abstract public function sconti();
|
||||
|
||||
/**
|
||||
* Calcola l'imponibile del documento.
|
||||
*
|
||||
|
@ -5,6 +5,7 @@ include_once __DIR__.'/../../core.php';
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Contratti\Components\Articolo;
|
||||
use Modules\Contratti\Components\Riga;
|
||||
use Modules\Contratti\Components\Sconto;
|
||||
use Modules\Contratti\Contratto;
|
||||
|
||||
switch (post('op')) {
|
||||
@ -128,9 +129,9 @@ switch (post('op')) {
|
||||
|
||||
case 'manage_sconto':
|
||||
if (post('idriga') != null) {
|
||||
$sconto = Riga::find(post('idriga'));
|
||||
$sconto = Sconto::find(post('idriga'));
|
||||
} else {
|
||||
$sconto = Riga::build($contratto);
|
||||
$sconto = Sconto::build($contratto);
|
||||
}
|
||||
|
||||
$sconto->qta = 1;
|
||||
|
@ -13,7 +13,7 @@ class Articolo extends Article
|
||||
protected $table = 'co_righe_contratti';
|
||||
|
||||
/**
|
||||
* Crea un nuovo articolo collegato ad una contratto.
|
||||
* Crea un nuovo articolo collegato ad un contratto.
|
||||
*
|
||||
* @param Contratto $contratto
|
||||
* @param Original $articolo
|
||||
|
@ -12,7 +12,7 @@ class Descrizione extends Description
|
||||
protected $table = 'co_righe_contratti';
|
||||
|
||||
/**
|
||||
* Crea una nuova riga collegata ad una contratto.
|
||||
* Crea una nuova riga collegata ad un contratto.
|
||||
*
|
||||
* @param Contratto $contratto
|
||||
*
|
||||
|
@ -12,7 +12,7 @@ class Riga extends Row
|
||||
protected $table = 'co_righe_contratti';
|
||||
|
||||
/**
|
||||
* Crea una nuova riga collegata ad una contratto.
|
||||
* Crea una nuova riga collegata ad un contratto.
|
||||
*
|
||||
* @param Contratto $contratto
|
||||
*
|
||||
|
27
modules/contratti/src/Components/Sconto.php
Normal file
27
modules/contratti/src/Components/Sconto.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Contratti\Components;
|
||||
|
||||
use Common\Components\Discount;
|
||||
use Modules\Contratti\Contratto;
|
||||
|
||||
class Sconto extends Discount
|
||||
{
|
||||
use RelationTrait;
|
||||
|
||||
protected $table = 'co_righe_contratti';
|
||||
|
||||
/**
|
||||
* Crea un nuovo sconto collegato ad un contratto.
|
||||
*
|
||||
* @param Contratto $contratto
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Contratto $contratto)
|
||||
{
|
||||
$model = parent::build($contratto);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
@ -122,6 +122,11 @@ class Contratto extends Document
|
||||
return $this->hasMany(Components\Riga::class, 'idcontratto');
|
||||
}
|
||||
|
||||
public function sconti()
|
||||
{
|
||||
return $this->hasMany(Components\Sconto::class, 'idcontratto');
|
||||
}
|
||||
|
||||
public function descrizioni()
|
||||
{
|
||||
return $this->hasMany(Components\Descrizione::class, 'idcontratto');
|
||||
|
@ -6,6 +6,7 @@ use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\DDT\Components\Articolo;
|
||||
use Modules\DDT\Components\Descrizione;
|
||||
use Modules\DDT\Components\Riga;
|
||||
use Modules\DDT\Components\Sconto;
|
||||
use Modules\DDT\DDT;
|
||||
use Modules\DDT\Tipo;
|
||||
|
||||
@ -182,9 +183,9 @@ switch (post('op')) {
|
||||
|
||||
case 'manage_sconto':
|
||||
if (post('idriga') != null) {
|
||||
$sconto = Riga::find(post('idriga'));
|
||||
$sconto = Sconto::find(post('idriga'));
|
||||
} else {
|
||||
$sconto = Riga::build($ddt);
|
||||
$sconto = Sconto::build($ddt);
|
||||
}
|
||||
|
||||
$sconto->qta = 1;
|
||||
|
27
modules/ddt/src/Components/Sconto.php
Normal file
27
modules/ddt/src/Components/Sconto.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\DDT\Components;
|
||||
|
||||
use Common\Components\Discount;
|
||||
use Modules\DDT\DDT;
|
||||
|
||||
class Sconto extends Discount
|
||||
{
|
||||
use RelationTrait;
|
||||
|
||||
protected $table = 'dt_righe_ddt';
|
||||
|
||||
/**
|
||||
* Crea un nuovo sconto collegato ad un ddt.
|
||||
*
|
||||
* @param DDT $ddt
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(DDT $ddt)
|
||||
{
|
||||
$model = parent::build($ddt);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
@ -110,6 +110,11 @@ class DDT extends Document
|
||||
return $this->hasMany(Components\Riga::class, 'idddt');
|
||||
}
|
||||
|
||||
public function sconti()
|
||||
{
|
||||
return $this->hasMany(Components\Sconto::class, 'idddt');
|
||||
}
|
||||
|
||||
public function descrizioni()
|
||||
{
|
||||
return $this->hasMany(Components\Descrizione::class, 'idddt');
|
||||
|
@ -6,6 +6,7 @@ use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Articoli\Articolo as ArticoloOriginale;
|
||||
use Modules\Fatture\Components\Articolo;
|
||||
use Modules\Fatture\Components\Descrizione;
|
||||
use Modules\Fatture\Components\Sconto;
|
||||
use Modules\Fatture\Components\Riga;
|
||||
use Modules\Fatture\Fattura;
|
||||
use Modules\Fatture\Tipo;
|
||||
@ -333,9 +334,9 @@ switch (post('op')) {
|
||||
|
||||
case 'manage_sconto':
|
||||
if (post('idriga') != null) {
|
||||
$sconto = Riga::find(post('idriga'));
|
||||
$sconto = Sconto::find(post('idriga'));
|
||||
} else {
|
||||
$sconto = Riga::build($fattura);
|
||||
$sconto = Sconto::build($fattura);
|
||||
}
|
||||
|
||||
$sconto->qta = 1;
|
||||
|
27
modules/fatture/src/Components/Sconto.php
Normal file
27
modules/fatture/src/Components/Sconto.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Fatture\Components;
|
||||
|
||||
use Common\Components\Discount;
|
||||
use Modules\Fatture\Fattura;
|
||||
|
||||
class Sconto extends Discount
|
||||
{
|
||||
use RelationTrait;
|
||||
|
||||
protected $table = 'co_righe_documenti';
|
||||
|
||||
/**
|
||||
* Crea un nuovo sconto collegato ad una fattura.
|
||||
*
|
||||
* @param Fattura $fattura
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Fattura $fattura)
|
||||
{
|
||||
$model = parent::build($fattura);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
@ -4,6 +4,7 @@ namespace Modules\Fatture;
|
||||
|
||||
use Common\Document;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Fatture\Components\Riga;
|
||||
use Modules\Pagamenti\Pagamento;
|
||||
use Modules\RitenuteContributi\RitenutaContributi;
|
||||
use Plugins\ExportFE\FatturaElettronica;
|
||||
@ -234,6 +235,11 @@ class Fattura extends Document
|
||||
return $this->hasMany(Components\Riga::class, 'iddocumento');
|
||||
}
|
||||
|
||||
public function sconti()
|
||||
{
|
||||
return $this->hasMany(Components\Sconto::class, 'iddocumento');
|
||||
}
|
||||
|
||||
public function descrizioni()
|
||||
{
|
||||
return $this->hasMany(Components\Descrizione::class, 'iddocumento');
|
||||
|
27
modules/interventi/src/Components/Sconto.php
Normal file
27
modules/interventi/src/Components/Sconto.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Interventi\Components;
|
||||
|
||||
use Common\Components\Discount;
|
||||
use Modules\Interventi\Intervento;
|
||||
|
||||
class Sconto extends Discount
|
||||
{
|
||||
use RelationTrait;
|
||||
|
||||
protected $table = 'in_righe_interventi';
|
||||
|
||||
/**
|
||||
* Crea un nuovo sconto collegata ad un intervento.
|
||||
*
|
||||
* @param Intervento $intervento
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Intervento $intervento)
|
||||
{
|
||||
$model = parent::build($intervento);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
@ -75,6 +75,11 @@ class Intervento extends Document
|
||||
return $this->hasMany(Riga::class, 'idintervento');
|
||||
}
|
||||
|
||||
public function sconti()
|
||||
{
|
||||
return $this->hasMany(Components\Sconto::class, 'idintervento');
|
||||
}
|
||||
|
||||
public function descrizioni()
|
||||
{
|
||||
return $this->righe()->where('prezzo_vendita', 0);
|
||||
|
@ -6,6 +6,7 @@ use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Ordini\Components\Articolo;
|
||||
use Modules\Ordini\Components\Descrizione;
|
||||
use Modules\Ordini\Components\Riga;
|
||||
use Modules\Ordini\Components\Sconto;
|
||||
use Modules\Ordini\Ordine;
|
||||
use Modules\Ordini\Tipo;
|
||||
|
||||
@ -223,9 +224,9 @@ switch (post('op')) {
|
||||
|
||||
case 'manage_sconto':
|
||||
if (post('idriga') != null) {
|
||||
$sconto = Riga::find(post('idriga'));
|
||||
$sconto = Sconto::find(post('idriga'));
|
||||
} else {
|
||||
$sconto = Riga::build($ordine);
|
||||
$sconto = Sconto::build($ordine);
|
||||
}
|
||||
|
||||
$sconto->qta = 1;
|
||||
|
27
modules/ordini/src/Components/Sconto.php
Normal file
27
modules/ordini/src/Components/Sconto.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Ordini\Components;
|
||||
|
||||
use Common\Components\Discount;
|
||||
use Modules\Ordini\Ordine;
|
||||
|
||||
class Sconto extends Discount
|
||||
{
|
||||
use RelationTrait;
|
||||
|
||||
protected $table = 'or_righe_ordini';
|
||||
|
||||
/**
|
||||
* Crea un nuovo sconto collegato ad un ordine.
|
||||
*
|
||||
* @param Ordine $ordine
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Ordine $ordine)
|
||||
{
|
||||
$model = parent::build($ordine);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
@ -110,6 +110,11 @@ class Ordine extends Document
|
||||
return $this->hasMany(Components\Riga::class, 'idordine');
|
||||
}
|
||||
|
||||
public function sconti()
|
||||
{
|
||||
return $this->hasMany(Components\Sconto::class, 'idordine');
|
||||
}
|
||||
|
||||
public function descrizioni()
|
||||
{
|
||||
return $this->hasMany(Components\Descrizione::class, 'idordine');
|
||||
|
@ -6,6 +6,7 @@ use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Interventi\TipoSessione;
|
||||
use Modules\Preventivi\Components\Articolo;
|
||||
use Modules\Preventivi\Components\Riga;
|
||||
use Modules\Preventivi\Components\Sconto;
|
||||
use Modules\Preventivi\Preventivo;
|
||||
|
||||
switch (post('op')) {
|
||||
@ -232,9 +233,9 @@ switch (post('op')) {
|
||||
|
||||
case 'manage_sconto':
|
||||
if (post('idriga') != null) {
|
||||
$sconto = Riga::find(post('idriga'));
|
||||
$sconto = Sconto::find(post('idriga'));
|
||||
} else {
|
||||
$sconto = Riga::build($preventivo);
|
||||
$sconto = Sconto::build($preventivo);
|
||||
}
|
||||
|
||||
$sconto->qta = 1;
|
||||
|
27
modules/preventivi/src/Components/Sconto.php
Normal file
27
modules/preventivi/src/Components/Sconto.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Preventivi\Components;
|
||||
|
||||
use Common\Components\Discount;
|
||||
use Modules\Preventivi\Preventivo;
|
||||
|
||||
class Sconto extends Discount
|
||||
{
|
||||
use RelationTrait;
|
||||
|
||||
protected $table = 'co_righe_preventivi';
|
||||
|
||||
/**
|
||||
* Crea un nuovo sconto collegato ad un preventivo.
|
||||
*
|
||||
* @param Preventivo $preventivo
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Preventivo $preventivo)
|
||||
{
|
||||
$model = parent::build($preventivo);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
@ -116,6 +116,11 @@ class Preventivo extends Document
|
||||
return $this->hasMany(Components\Riga::class, 'idpreventivo');
|
||||
}
|
||||
|
||||
public function sconti()
|
||||
{
|
||||
return $this->hasMany(Components\Sconto::class, 'idpreventivo');
|
||||
}
|
||||
|
||||
public function descrizioni()
|
||||
{
|
||||
return $this->hasMany(Components\Descrizione::class, 'idpreventivo');
|
||||
|
@ -82,12 +82,6 @@ $files = [
|
||||
'plugins/xml/SE_v1.0.xml',
|
||||
'plugins/exportFE/view.php',
|
||||
'plugins/exportFE/src/stylesheet-1.2.1.xsl',
|
||||
'modules/contratti/src/Components/Sconto.php',
|
||||
'modules/fatture/src/Components/Sconto.php',
|
||||
'modules/ordini/src/Components/Sconto.php',
|
||||
'modules/ddt/src/Components/Sconto.php',
|
||||
'modules/preventivi/src/Components/Sconto.php',
|
||||
'include/src/Components/Discount.php',
|
||||
];
|
||||
|
||||
foreach ($files as $key => $value) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user