From 96a70ea7a77709d209e17d1db22db127b4160a4a Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 17 Dec 2020 14:42:58 +0100 Subject: [PATCH] Aggiunto grafico per ore lavorate dai tecnici su base mensile --- modules/statistiche/edit.php | 107 +++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/modules/statistiche/edit.php b/modules/statistiche/edit.php index c4002a5a0..8aae66a0b 100755 --- a/modules/statistiche/edit.php +++ b/modules/statistiche/edit.php @@ -331,3 +331,110 @@ $(document).ready(function() { }); }); '; + + +// Interventi per tecnico +$tecnici = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche +INNER JOIN +an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica +INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica +LEFT OUTER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica +INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id +WHERE an_anagrafiche.deleted_at IS NULL AND an_tipianagrafiche.descrizione='Tecnico' +GROUP BY an_anagrafiche.idanagrafica +ORDER BY ragione_sociale ASC"); + +$dataset = ''; +foreach ($tecnici as $tecnico) { + + $sessioni = $dbo->fetchArray('SELECT SUM(in_interventi_tecnici.ore) AS result, CONCAT(CAST(SUM(in_interventi_tecnici.ore) AS char(20)),\' ore\') AS ore_lavorate, YEAR(in_interventi_tecnici.orario_inizio) AS year, MONTH(in_interventi_tecnici.orario_inizio) AS month FROM in_interventi_tecnici INNER JOIN `in_interventi` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` LEFT JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento` WHERE in_interventi_tecnici.idtecnico = '.prepare($tecnico['id']).' AND in_interventi_tecnici.orario_inizio BETWEEN '.prepare($start).' AND '.prepare($end).' AND `in_statiintervento`.`is_completato` = 1 GROUP BY YEAR(in_interventi_tecnici.orario_inizio), MONTH(in_interventi_tecnici.orario_inizio) ORDER BY YEAR(in_interventi_tecnici.orario_inizio) ASC, MONTH(in_interventi_tecnici.orario_inizio) ASC'); + + $sessioni = Stats::monthly($sessioni, $start, $end); + + //Colore tecnico + $background = $tecnico['colore']; + if (empty( $background ) || $background == '#FFFFFF' ){ + //Random color + $background = '#'.dechex(rand(256, 16777215)); + } + + $dataset .= '{ + label: "'.$tecnico['ragione_sociale'].'", + backgroundColor: "'.$background.'", + data: [ + '.implode(',', array_column($sessioni, 'result')).' + ], + + },'; + + +} + +echo ' +
+
+

'.tr('Ore di lavoro per tecnico').'

+ +
+ +
+
+ +
'; + +// Script per il grafico ore interventi per tecnico +echo ' +'; \ No newline at end of file