From 4f157aa5199ea1b404e95a841d31d2564911ae87 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Tue, 10 Sep 2019 09:44:16 +0200 Subject: [PATCH] Fix minori --- ajax_dataload.php | 4 +-- include/src/Document.php | 8 +++++ modules/preventivi/src/Preventivo.php | 51 +++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) diff --git a/ajax_dataload.php b/ajax_dataload.php index 7657881c3..4ff5e4205 100644 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -55,9 +55,7 @@ if (!empty($query)) { $results['recordsFiltered'] = $data['count']; // SOMME - if ($draw_numer == 1) { - $results['summable'] = Util\Query::getSums($structure, $search); - } + $results['summable'] = Util\Query::getSums($structure, $search); // Allineamento delle righe $align = []; diff --git a/include/src/Document.php b/include/src/Document.php index 16d957d41..ac0e0f95f 100644 --- a/include/src/Document.php +++ b/include/src/Document.php @@ -6,6 +6,14 @@ use Common\Components\Description; abstract class Document extends Model { + protected $appends = [ + 'iva', + 'imponibile', + 'sconto', + 'totale_imponibile', + 'totale', + ]; + /** * Restituisce la collezione di righe e articoli con valori rilevanti per i conti. * diff --git a/modules/preventivi/src/Preventivo.php b/modules/preventivi/src/Preventivo.php index b3430343c..75cdb846c 100644 --- a/modules/preventivi/src/Preventivo.php +++ b/modules/preventivi/src/Preventivo.php @@ -78,6 +78,57 @@ class Preventivo extends Document return $model; } + // Attributi Eloquent + + public function getOreProgrammateAttribute() + { + if (!isset($this->info['ore_programmate'])) { + $sessioni = collect(); + + $interventi = $this->interventi()->whereHas('stato', function ($query) { + $query->where('completato', '=', 0); + })->get(); + + foreach ($interventi as $intervento) { + $sessioni = $sessioni->merge($intervento->sessioni); + } + + $this->info['ore_programmate'] = $sessioni->sum('ore'); + } + + return $this->info['ore_programmate']; + } + + public function getOreCompletateAttribute() + { + if (!isset($this->info['ore_completate'])) { + $sessioni = collect(); + + $interventi = $this->interventi()->whereHas('stato', function ($query) { + $query->where('completato', '=', 1); + })->get(); + + foreach ($interventi as $intervento) { + $sessioni = $sessioni->merge($intervento->sessioni); + } + + $this->info['ore_completate'] = $sessioni->sum('ore'); + } + + return $this->info['ore_completate']; + } + + public function getOrePrevisteAttribute() + { + if (!isset($this->info['ore_previste'])) { + $sessioni = $this->getRighe()->where('um', 'ore'); + + $this->info['ore_previste'] = $sessioni->sum('qta'); + } + + return $this->info['ore_previste']; + } + /** * Restituisce il nome del modulo a cui l'oggetto รจ collegato. *