. */ use Carbon\Carbon; include_once __DIR__.'/../../core.php'; // Individuazione dati selezionabili // Stati interventi $stati_intervento = $dbo->fetchArray('SELECT `idstatointervento` AS id, `descrizione`, `colore` FROM `in_statiintervento` WHERE `deleted_at` IS NULL ORDER BY `descrizione` ASC'); // Tipi intervento $tipi_intervento = $dbo->fetchArray('SELECT `idtipointervento` AS id, `descrizione` FROM `in_tipiintervento` WHERE `deleted_at` IS NULL ORDER BY `descrizione` ASC'); // Tecnici disponibili $tecnici_disponibili = $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`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).") LEFT 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_lang`.`name`='Tecnico' ".Modules::getAdditionalsQuery('Interventi', null, false).' GROUP BY `an_anagrafiche`.`idanagrafica` ORDER BY `ragione_sociale` ASC'); // Zone $zone = $dbo->fetchArray('(SELECT 0 AS ordine, \'0\' AS id, \'Nessuna zona\' AS descrizione) UNION (SELECT 1 AS ordine, id, descrizione FROM an_zone) ORDER BY ordine, descrizione ASC'); // Prima selezione globale per tutti i filtri if (!isset($_SESSION['dashboard']['idtecnici'])) { $_SESSION['dashboard']['idtecnici'] = ["'-1'"]; foreach ($tecnici_disponibili as $tecnico) { if (($user['gruppo'] == 'Tecnici' && $user['idanagrafica'] == $tecnico['id']) || $user['gruppo'] != 'Tecnici') { $_SESSION['dashboard']['idtecnici'][] = "'".$tecnico['id']."'"; } } } if (!isset($_SESSION['dashboard']['idstatiintervento'])) { $_SESSION['dashboard']['idstatiintervento'] = ["'-1'"]; foreach ($stati_intervento as $stato) { $_SESSION['dashboard']['idstatiintervento'][] = "'".$stato['id']."'"; } } if (!isset($_SESSION['dashboard']['idtipiintervento'])) { $_SESSION['dashboard']['idtipiintervento'] = ["'-1'"]; foreach ($tipi_intervento as $tipo) { $_SESSION['dashboard']['idtipiintervento'][] = "'".$tipo['id']."'"; } } if (!isset($_SESSION['dashboard']['idzone'])) { $_SESSION['dashboard']['idzone'] = ["'-1'"]; foreach ($zone as $zona) { $_SESSION['dashboard']['idzone'][] = "'".$zona['id']."'"; } } echo '

'; $solo_promemoria_assegnati = setting('Visualizza solo promemoria assegnati'); $id_tecnico = null; if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) { $id_tecnico = $user['idanagrafica']; } $query_da_programmare = 'SELECT data_richiesta AS data FROM co_promemoria INNER JOIN co_contratti ON co_promemoria.idcontratto = co_contratti.id INNER JOIN an_anagrafiche ON co_contratti.idanagrafica = an_anagrafiche.idanagrafica WHERE idcontratto IN (SELECT id FROM co_contratti WHERE idstato IN (SELECT id FROM co_staticontratti WHERE is_pianificabile = 1)) AND idintervento IS NULL UNION SELECT IF(data_scadenza IS NULL, data_richiesta, data_scadenza) AS data FROM in_interventi INNER JOIN an_anagrafiche ON in_interventi.idanagrafica = an_anagrafiche.idanagrafica'; // Visualizzo solo promemoria del tecnico loggato if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) { $query_da_programmare .= ' INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico); } $query_da_programmare .= ' WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 AND in_interventi.idstatointervento IN(SELECT idstatointervento FROM in_statiintervento WHERE is_completato = 0)'; $risultati_da_programmare = $dbo->fetchArray($query_da_programmare); if (!empty($risultati_da_programmare)) { echo '
'; } echo '
'; if (!empty($risultati_da_programmare)) { echo '
'; } $vista = setting('Vista dashboard'); if ($vista == 'mese') { $def = 'dayGridMonth'; } elseif ($vista == 'giorno') { $def = 'timeGridDay'; } elseif ($vista == 'settimana') { $def = 'timeGridWeek'; } else { $def = 'listWeek'; } $days = [ 1 => 'Lunedì', 2 => 'Martedì', 3 => 'Mercoledì', 4 => 'Giovedì', 5 => 'Venerdì', 6 => 'Sabato', 0 => 'Domenica', ]; $working_days = explode(',', setting('Giorni lavorativi')); $non_working_days = []; foreach ($days as $key => $day) { if (!in_array($day, $working_days)) { array_push($non_working_days, $key); } } $modulo_interventi = Modules::get('Interventi'); echo ' ';