diff --git a/plugins/statistiche_anagrafiche/info.php b/plugins/statistiche_anagrafiche/info.php index 77582fb87..b13a5a863 100755 --- a/plugins/statistiche_anagrafiche/info.php +++ b/plugins/statistiche_anagrafiche/info.php @@ -23,6 +23,7 @@ use Modules\Anagrafiche\Anagrafica; use Modules\Contratti\Contratto; use Modules\DDT\DDT; use Modules\Fatture\Fattura; +use Modules\Interventi\Components\Sessione; use Modules\Interventi\Intervento; use Modules\Ordini\Ordine; use Modules\Preventivi\Preventivo; @@ -55,21 +56,27 @@ $ordini_cliente = Ordine::whereBetween('data', [$start, $end]) ->get(); $totale_ordini_cliente = $ordini_cliente->sum('totale_imponibile'); -// Interventi +// Interventi e Ore lavorate $interventi = []; // Clienti if ($anagrafica->isTipo('Cliente')) { $interventi = $dbo->fetchArray('SELECT in_interventi.id FROM in_interventi WHERE in_interventi.idanagrafica='.prepare($id_record).' AND data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end)); + $sessioni = $dbo->fetchArray('SELECT in_interventi_tecnici.id FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi.id = in_interventi_tecnici.idintervento WHERE in_interventi.idanagrafica='.prepare($id_record).' AND in_interventi_tecnici.orario_inizio BETWEEN '.prepare($start).' AND '.prepare($end)); } // Tecnici elseif ($anagrafica->isTipo('Tecnico')) { $interventi = $dbo->fetchArray('SELECT in_interventi.id FROM in_interventi INNER JOIN in_interventi_tecnici ON in_interventi.id = in_interventi_tecnici.idintervento WHERE in_interventi_tecnici.idtecnico='.prepare($id_record).' AND data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end)); + + $sessioni = $dbo->fetchArray('SELECT in_interventi_tecnici.id FROM in_interventi_tecnici WHERE in_interventi_tecnici.idtecnico='.prepare($id_record).' AND in_interventi_tecnici.orario_inizio BETWEEN '.prepare($start).' AND '.prepare($end)); } $interventi = Intervento::whereIn('id', array_column($interventi, 'id'))->get(); $totale_interventi = $interventi->sum('totale_imponibile'); +$sessioni = Sessione::whereIn('id', array_column($sessioni, 'id'))->get(); +$totale_ore_lavorate = $sessioni->sum('ore'); + // Ddt in uscita $ddt_uscita = DDT::whereBetween('data', [$start, $end]) ->where('idanagrafica', $id_record) @@ -212,5 +219,27 @@ echo ' +
+
+
+ +
+ '.tr('Ore lavorate').''; + if ($anagrafica->isTipo('Cliente')){ + echo' + '.($sessioni->count() > 0 ? ''.tr('Visualizza').' ' : '').''; + } else { + echo ' + '.($sessioni->count() > 0 ? ''.tr('Visualizza').' ' : '').''; + } + echo' +
+ + '.numberFormat($totale_ore_lavorate, 0).' + +
+
+
+
';