Fix #449 e miglioramenti vari
This commit is contained in:
parent
23723bd6e0
commit
3c5cdbb931
2
core.php
2
core.php
|
@ -111,7 +111,7 @@ Monolog\ErrorHandler::register($logger, [], Monolog\Logger::ERROR, Monolog\Logge
|
||||||
|
|
||||||
// Aggiunta di Monolog a Whoops
|
// Aggiunta di Monolog a Whoops
|
||||||
if (App::debug()) {
|
if (App::debug()) {
|
||||||
$whoops->pushHandler(function (\Whoops\Exception\ErrorException $exception, $inspector, $run) use ($logger) {
|
$whoops->pushHandler(function ($exception, $inspector, $run) use ($logger) {
|
||||||
$logger->addError($exception->getMessage(), [
|
$logger->addError($exception->getMessage(), [
|
||||||
'code' => $exception->getCode(),
|
'code' => $exception->getCode(),
|
||||||
'message' => $exception->getMessage(),
|
'message' => $exception->getMessage(),
|
||||||
|
|
|
@ -96,32 +96,6 @@ abstract class Article extends Row
|
||||||
return $this->belongsTo(Original::class, 'idarticolo');
|
return $this->belongsTo(Original::class, 'idarticolo');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function copiaIn(Document $document)
|
|
||||||
{
|
|
||||||
$class = get_class($document);
|
|
||||||
$namespace = implode('\\', explode('\\', $class, -1));
|
|
||||||
|
|
||||||
$current = get_class($this);
|
|
||||||
$pieces = explode('\\', $current);
|
|
||||||
$type = end($pieces);
|
|
||||||
|
|
||||||
$object = $namespace.'\\Components\\'.$type;
|
|
||||||
|
|
||||||
$attributes = $this->getAttributes();
|
|
||||||
unset($attributes['id']);
|
|
||||||
|
|
||||||
$model = $object::build($document, $this->articolo);
|
|
||||||
$model->save();
|
|
||||||
|
|
||||||
$model = $object::find($model->id);
|
|
||||||
$accepted = $model->getAttributes();
|
|
||||||
|
|
||||||
$attributes = array_intersect_key($attributes, $accepted);
|
|
||||||
$model->fill($attributes);
|
|
||||||
|
|
||||||
return $model;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static function boot()
|
protected static function boot()
|
||||||
{
|
{
|
||||||
parent::boot(true);
|
parent::boot(true);
|
||||||
|
@ -169,4 +143,9 @@ abstract class Article extends Row
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function customCopiaIn($original)
|
||||||
|
{
|
||||||
|
$this->articolo()->associate($original->articolo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,11 @@ abstract class Description extends Model
|
||||||
return $model;
|
return $model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Imposta il proprietario dell'oggetto e l'ordine relativo all'interno delle righe.
|
||||||
|
*
|
||||||
|
* @param Document $document
|
||||||
|
*/
|
||||||
public function setParent(Document $document)
|
public function setParent(Document $document)
|
||||||
{
|
{
|
||||||
$this->parent()->associate($document);
|
$this->parent()->associate($document);
|
||||||
|
@ -35,8 +40,17 @@ abstract class Description extends Model
|
||||||
$this->save();
|
$this->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function copiaIn(Document $document)
|
/**
|
||||||
|
* Copia l'oggetto (articolo, riga, descrizione) nel corrispettivo per il documento indicato.
|
||||||
|
*
|
||||||
|
* @param Document $document
|
||||||
|
* @param float|null $qta
|
||||||
|
*
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function copiaIn(Document $document, $qta = null)
|
||||||
{
|
{
|
||||||
|
// Individuazione classe di destinazione
|
||||||
$class = get_class($document);
|
$class = get_class($document);
|
||||||
$namespace = implode('\\', explode('\\', $class, -1));
|
$namespace = implode('\\', explode('\\', $class, -1));
|
||||||
|
|
||||||
|
@ -46,18 +60,34 @@ abstract class Description extends Model
|
||||||
|
|
||||||
$object = $namespace.'\\Components\\'.$type;
|
$object = $namespace.'\\Components\\'.$type;
|
||||||
|
|
||||||
|
// Attributi dell'oggetto da copiare
|
||||||
$attributes = $this->getAttributes();
|
$attributes = $this->getAttributes();
|
||||||
unset($attributes['id']);
|
unset($attributes['id']);
|
||||||
|
|
||||||
$model = $object::build($document);
|
if ($qta !== null) {
|
||||||
|
$attributes['qta'] = $qta;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Creazione del nuovo oggetto
|
||||||
|
$model = new $object();
|
||||||
|
$model->setParent($document);
|
||||||
|
|
||||||
|
$model->customCopiaIn($this);
|
||||||
|
|
||||||
$model->save();
|
$model->save();
|
||||||
|
|
||||||
|
// Impostazione degli attributi
|
||||||
$model = $object::find($model->id);
|
$model = $object::find($model->id);
|
||||||
$accepted = $model->getAttributes();
|
$accepted = $model->getAttributes();
|
||||||
|
|
||||||
$attributes = array_intersect_key($attributes, $accepted);
|
$attributes = array_intersect_key($attributes, $accepted);
|
||||||
$model->fill($attributes);
|
$model->fill($attributes);
|
||||||
|
|
||||||
|
$model->save();
|
||||||
|
|
||||||
|
// Rimozione quantità evasa
|
||||||
|
$this->qta_evasa = $this->qta_evasa + $attributes['qta'];
|
||||||
|
|
||||||
return $model;
|
return $model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,6 +95,15 @@ abstract class Description extends Model
|
||||||
|
|
||||||
abstract public function getParentID();
|
abstract public function getParentID();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Azione personalizzata per la copia dell'oggetto.
|
||||||
|
*
|
||||||
|
* @param $original
|
||||||
|
*/
|
||||||
|
protected function customCopiaIn($original)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
protected static function boot($bypass = false)
|
protected static function boot($bypass = false)
|
||||||
{
|
{
|
||||||
parent::boot();
|
parent::boot();
|
||||||
|
|
|
@ -444,7 +444,7 @@ switch (post('op')) {
|
||||||
|
|
||||||
if (!empty(post('import'))) {
|
if (!empty(post('import'))) {
|
||||||
// Replicazione delle righe del contratto sul documento
|
// Replicazione delle righe del contratto sul documento
|
||||||
$righe = $dbo->fetchArray('SELECT idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto, IFNULL( (SELECT mg_articoli.abilita_serial FROM mg_articoli WHERE mg_articoli.id=co_righe_contratti.idarticolo), 0 ) AS abilita_serial FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
|
$righe = $dbo->fetchArray('SELECT *, IFNULL( (SELECT mg_articoli.abilita_serial FROM mg_articoli WHERE mg_articoli.id=co_righe_contratti.idarticolo), 0 ) AS abilita_serial FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
|
||||||
|
|
||||||
foreach ($righe as $key => $riga) {
|
foreach ($righe as $key => $riga) {
|
||||||
$subtot = $riga['subtotale'];
|
$subtot = $riga['subtotale'];
|
||||||
|
|
Loading…
Reference in New Issue