Miglioramento struttura righe

This commit is contained in:
Thomas Zilio 2018-12-25 11:32:19 +01:00
parent 956c6f6762
commit 23b964112f
19 changed files with 177 additions and 105 deletions

View File

@ -65,10 +65,10 @@ if ($options['dir'] == 'entrata') {
aggiorna_guadagno();
$("#prezzo").change(aggiorna_guadagno();
$("#prezzo_acquisto").change(aggiorna_guadagno();
$("#sconto").change(aggiorna_guadagno());
$("#tipo_sconto").change(aggiorna_guadagno());
$("#prezzo").keyup(aggiorna_guadagno);
$("#prezzo_acquisto").keyup(aggiorna_guadagno);
$("#sconto").keyup(aggiorna_guadagno);
$("#tipo_sconto").change(aggiorna_guadagno);
</script>';
}

View File

@ -1,10 +1,11 @@
<?php
namespace Common;
namespace Common\Components;
use Modules\Articoli\Articolo as Original;
use Illuminate\Database\Eloquent\Builder;
use UnexpectedValueException;
use Common\Document;
abstract class Article extends Row
{
@ -19,9 +20,9 @@ abstract class Article extends Row
});
}
public static function make(Original $articolo)
public static function make(Document $document, Original $articolo)
{
$model = parent::make(true);
$model = parent::make($document,true);
$model->articolo()->associate($articolo);

View File

@ -1,8 +1,10 @@
<?php
namespace Common;
namespace Common\Components;
use Illuminate\Database\Eloquent\Builder;
use Common\Model;
use Common\Document;
abstract class Description extends Model
{
@ -25,7 +27,7 @@ abstract class Description extends Model
});
}
public static function make($bypass = false)
public static function make(Document $document, $bypass = false)
{
$model = parent::make();
@ -33,6 +35,23 @@ abstract class Description extends Model
$model->is_descrizione = 1;
}
$model->setParent($document);
return $model;
}
public function setParent(Document $document)
{
$this->parent()->associate($document);
// Ordine delle righe
if (empty($this->disableOrder)) {
$this->order = orderValue($this->table, $this->getParentID(), $document->id);
}
$this->save();
}
abstract public function parent();
abstract public function getParentID();
}

View File

@ -1,8 +1,10 @@
<?php
namespace Common;
namespace Common\Components;
use Illuminate\Database\Eloquent\Builder;
use Common\Model;
use Common\Document;
abstract class Discount extends Model
{

View File

@ -1,8 +1,9 @@
<?php
namespace Common;
namespace Common\Components;
use Illuminate\Database\Eloquent\Builder;
use Common\Document;
abstract class Row extends Description
{
@ -19,9 +20,9 @@ abstract class Row extends Description
}
}
public static function make($bypass = false)
public static function make(Document $document, $bypass = false)
{
return parent::make(true);
return parent::make($document,true);
}
public function getSubtotaleAttribute()

View File

@ -2,13 +2,13 @@
include_once __DIR__.'/../../core.php';
use Modules\Anagrafiche\Anagrafica;
use Modules\Fatture\Fattura;
use Modules\Fatture\Tipo;
use Modules\Fatture\Articolo;
use Modules\Fatture\Riga;
use Modules\Fatture\Descrizione;
use Modules\Fatture\Components\Articolo;
use Modules\Fatture\Components\Riga;
use Modules\Fatture\Components\Descrizione;
use Modules\Articoli\Articolo as ArticoloOriginale;
use Modules\Anagrafiche\Anagrafica;
// Necessaria per la funzione add_movimento_magazzino
include_once Modules::filepath('Articoli', 'modutil.php');

View File

@ -1,12 +1,15 @@
<?php
namespace Modules\Fatture;
namespace Modules\Fatture\Components;
use Common\Components\Article;
use Modules\Articoli\Articolo as Original;
use Common\Article;
use Modules\Fatture\Fattura;
class Articolo extends Article
{
use RelationTrait;
protected $table = 'co_righe_documenti';
/**
@ -19,11 +22,7 @@ class Articolo extends Article
*/
public static function make(Fattura $fattura, Original $articolo)
{
$model = parent::make($articolo);
$model->fattura()->associate($fattura);
$model->save();
$model = parent::make($fattura, $articolo);
return $model;
}
@ -61,9 +60,4 @@ class Articolo extends Article
{
return $this->fattura->tipo->dir;
}
public function fattura()
{
return $this->belongsTo(Fattura::class, 'iddocumento');
}
}

View File

@ -1,11 +1,14 @@
<?php
namespace Modules\Fatture;
namespace Modules\Fatture\Components;
use Common\Description;
use Common\Components\Description;
use Modules\Fatture\Fattura;
class Descrizione extends Description
{
use RelationTrait;
protected $table = 'co_righe_documenti';
/**
@ -17,15 +20,8 @@ class Descrizione extends Description
*/
public static function make(Fattura $fattura)
{
$model = parent::make();
$model->fattura()->associate($fattura);
$model = parent::make($fattura);
return $model;
}
public function fattura()
{
return $this->belongsTo(Fattura::class, 'iddocumento');
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace Modules\Fatture\Components;
use Modules\Fatture\Fattura;
trait RelationTrait
{
public function getParentID()
{
return 'iddocumento';
}
public function parent()
{
return $this->belongsTo(Fattura::class, $this->getParentID());
}
public function fattura()
{
return $this->parent();
}
}

View File

@ -1,11 +1,14 @@
<?php
namespace Modules\Fatture;
namespace Modules\Fatture\Components;
use Common\Row;
use Common\Components\Row;
use Modules\Fatture\Fattura;
class Riga extends Row
{
use RelationTrait;
protected $table = 'co_righe_documenti';
/**
@ -17,15 +20,8 @@ class Riga extends Row
*/
public static function make(Fattura $fattura)
{
$model = parent::make();
$model->fattura()->associate($fattura);
$model = parent::make($fattura);
return $model;
}
public function fattura()
{
return $this->belongsTo(Fattura::class, 'iddocumento');
}
}

View File

@ -0,0 +1,33 @@
<?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 una nuovo sconto globale collegato alla fattura, oppure restituisce quello esistente.
*
* @param Fattura $fattura
*
* @return self
*/
public static function make(Fattura $fattura)
{
$model = $fattura->scontoGlobale;
if ($model == null) {
$model = parent::make();
$model->setFattura($fattura);
}
return $model;
}
}

View File

@ -253,21 +253,21 @@ class Fattura extends Document
public function articoli()
{
return $this->hasMany(Articolo::class, 'iddocumento');
return $this->hasMany(Components\Articolo::class, 'iddocumento');
}
public function righe()
{
return $this->hasMany(Riga::class, 'iddocumento');
return $this->hasMany(Components\Riga::class, 'iddocumento');
}
public function descrizioni()
{
return $this->hasMany(Descrizione::class, 'iddocumento');
return $this->hasMany(Components\Descrizione::class, 'iddocumento');
}
public function scontoGlobale()
{
return $this->hasOne(Sconto::class, 'iddocumento');
return $this->hasOne(Components\Sconto::class, 'iddocumento');
}
}

View File

@ -1,31 +0,0 @@
<?php
namespace Modules\Fatture;
use Common\Discount;
class Sconto extends Discount
{
protected $table = 'co_righe_documenti';
/**
* Crea una nuova riga collegata ad una fattura.
*
* @param Fattura $fattura
*
* @return self
*/
public static function make(Fattura $fattura)
{
$model = parent::make();
$model->fattura()->associate($fattura);
return $model;
}
public function fattura()
{
return $this->belongsTo(Fattura::class, 'iddocumento');
}
}

View File

@ -2,9 +2,9 @@
include_once __DIR__.'/../../core.php';
use Modules\Interventi\Articolo;
use Modules\Interventi\Intervento;
use Modules\Articoli\Articolo as ArticoloOriginale;
use Modules\Interventi\Components\Articolo;
include_once Modules::filepath('Interventi', 'modutil.php');
include_once Modules::filepath('Articoli', 'modutil.php');

View File

@ -1,14 +1,18 @@
<?php
namespace Modules\Interventi;
namespace Modules\Interventi\Components;
use Common\Components\Article;
use Modules\Interventi\Intervento;
use Modules\Articoli\Articolo as Original;
use Common\Article;
class Articolo extends Article
{
use RelationTrait;
protected $table = 'mg_articoli_interventi';
protected $serialRowID = 'intervento';
protected $disableOrder = true;
/**
* Crea una nuova riga collegata ad un intervento.
@ -21,9 +25,7 @@ class Articolo extends Article
*/
public static function make(Intervento $intervento, Original $articolo, $id_automezzo = null)
{
$model = parent::make($articolo);
$model->intervento()->associate($intervento);
$model = parent::make($intervento, $articolo);
$model->prezzo_acquisto = $articolo->prezzo_acquisto;
$model->prezzo_vendita = $articolo->prezzo_vendita;
@ -108,9 +110,4 @@ class Articolo extends Article
{
return $this->prezzo_vendita * $this->qta;
}
public function intervento()
{
return $this->belongsTo(Intervento::class, 'idintervento');
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace Modules\Interventi\Components;
use Modules\Interventi\Intervento;
trait RelationTrait
{
public function getParentID()
{
return 'idintervento';
}
public function parent()
{
return $this->belongsTo(Intervento::class, $this->getParentID());
}
public function intervento()
{
return $this->parent();
}
}

View File

@ -1,11 +1,14 @@
<?php
namespace Modules\Interventi;
namespace Modules\Interventi\Components;
use Common\Row;
use Common\Components\Row;
use Modules\Interventi\Intervento;
class Riga extends Row
{
use RelationTrait;
protected $table = 'in_righe_interventi';
/**
@ -17,15 +20,8 @@ class Riga extends Row
*/
public static function make(Intervento $intervento)
{
$model = parent::make();
$model->intervento()->associate($intervento);
$model = parent::make($intervento);
return $model;
}
public function intervento()
{
return $this->belongsTo(Intervento::class, 'idintervento');
}
}

View File

@ -4,6 +4,8 @@ namespace Modules\Interventi;
use Common\Document;
use Modules\Anagrafiche\Anagrafica;
use Modules\Interventi\Components\Riga;
use Modules\Interventi\Components\Articolo;
class Intervento extends Document
{
@ -28,4 +30,14 @@ class Intervento extends Document
{
return $this->hasMany(Riga::class, 'idintervento');
}
public function descrizioni(){
return null;
}
public function scontoGlobale(){
return null;
}
}

View File

@ -0,0 +1,10 @@
<?php
namespace Modules\Iva;
use Common\Model;
class Aliquota extends Model
{
protected $table = 'co_iva';
}