. */ include_once __DIR__.'/../../core.php'; use Models\Module; use Util\Query; switch (get('op')) { case 'get_markers': $idanagrafica = get('idanagrafica'); $checks = get('check'); $where = []; // Filtro per anagrafica if (!empty($idanagrafica) && $idanagrafica != 'null') { $where[] = '`in_interventi`.`idanagrafica`='.prepare($idanagrafica); } // Filtri per stato $checks = explode(',', $checks); $where[] = "`in_statiintervento_lang`.`name` IN ('".implode("','", $checks)."')"; $add_query = 'WHERE 1=1 AND '.implode(' AND ', $where); // Filtri per data $add_query .= ' |date_period(`orario_inizio`,`data_richiesta`)|'; $query = 'SELECT *, `in_interventi`.`id` AS idintervento, `an_anagrafiche`.`lat` AS lat_anagrafica, `an_anagrafiche`.`lng` AS lng_anagrafica, `an_anagrafiche`.`indirizzo` AS indirizzo_anagrafica, `an_anagrafiche`.`cap` AS cap_anagrafica, `an_anagrafiche`.`citta` AS citta_anagrafica, `an_anagrafiche`.`provincia` AS provincia_anagrafica, `an_sedi`.`lat` AS lat_sede, `an_sedi`.`lng` AS lng_sede, `an_sedi`.`indirizzo` AS indirizzo_sede, `an_sedi`.`cap` AS cap_sede, `an_sedi`.`citta` AS citta_sede, `an_sedi`.`provincia` AS provincia_sede, `in_statiintervento_lang`.`name` AS stato FROM `in_interventi` INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` LEFT JOIN `an_sedi` ON `in_interventi`.`idsede_destinazione`=`an_sedi`.`id` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento_lang`.`id_record` = `in_interventi`.`id` AND `in_statiintervento_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` '.$add_query; $query = Query::replacePlaceholder($query); $query = Modules::replaceAdditionals((new Module())->getByField('name', 'Interventi', Models\Locale::getPredefined()->id), $query); $records = $dbo->fetchArray($query); $rs = []; if (sizeof($records) > 0) { for ($i = 0; $i < sizeof($records); ++$i) { if (!empty($records[$i]['idsede_destinazione'])) { $lat = $records[$i]['lat_sede']; $lng = $records[$i]['lng_sede']; $indirizzo = $records[$i]['indirizzo_sede']; $cap = $records[$i]['cap_anagrafica_sede']; $citta = $records[$i]['citta_anagrafica_sede']; $provincia = $records[$i]['provincia_anagrafica_sede']; } else { $lat = $records[$i]['lat_anagrafica']; $lng = $records[$i]['lng_anagrafica']; $indirizzo = $records[$i]['indirizzo_anagrafica']; $cap = $records[$i]['cap_anagrafica']; $citta = $records[$i]['citta_anagrafica']; $provincia = $records[$i]['provincia_anagrafica']; } if ($lat != '0.00000000' && $lng != '0.00000000') { $descrizione = ''; $descrizione .= ' Ragione sociale: '.$records[$i]['ragione_sociale'].' '."\n
"; if (!empty($indirizzo)) { $descrizione .= ' Indirizzo: '.$indirizzo."\n
"; } if (!empty($cap)) { $descrizione .= ' '.$cap; } if (!empty($citta)) { $descrizione .= ', '.$citta; } if (!empty($provincia)) { $descrizione .= ' '.$provincia; } $descrizione .= '
'; $descrizione .= ' Calcola percorso '; // dettagli intervento $rs_sessioni = $dbo->fetchOne("SELECT MIN(orario_inizio) AS data, GROUP_CONCAT(DISTINCT ragione_sociale SEPARATOR ', ') AS tecnici FROM in_interventi_tecnici INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico=an_anagrafiche.idanagrafica WHERE idintervento=".prepare($records[$i]['idintervento']).' GROUP BY idintervento'); $descrizione .= '
'; $descrizione .= 'Data: '.(!empty($rs_sessioni['data']) ? Translator::dateToLocale($rs_sessioni['data']) : Translator::dateToLocale($records[$i]['data_richiesta'])).'
'; $descrizione .= 'Stato: '.$records[$i]['stato'].'
'; $descrizione .= 'Richiesta: '.substr(strip_tags($records[$i]['richiesta']), 0, 200).'
'; if (!empty($rs_sessioni['tecnici'])) { $descrizione .= 'Tecnici: '.$rs_sessioni['tecnici']; } $descrizione .= '
'; $descrizione .= ' Apri attività '; $descrizione .= '
'; $rs[] = ['descrizione' => $descrizione, 'lat' => $lat, 'lng' => $lng]; } } } echo json_encode($rs); break; }