. */ 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.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' ".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('Mostra promemoria attività ai soli Tecnici 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 ' ';