From 148eb8df013e406b3b9d3d49566c05154e47a00e Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 18 May 2018 23:42:20 +0200 Subject: [PATCH] Aggiunte op retrieve per APP OSM --- modules/anagrafiche/api/retrieve.php | 36 ++++++++++++++- modules/interventi/api/retrieve.php | 65 +++++++++++++++++++++++++++- 2 files changed, 99 insertions(+), 2 deletions(-) diff --git a/modules/anagrafiche/api/retrieve.php b/modules/anagrafiche/api/retrieve.php index 53ff67d08..4e46d8a19 100644 --- a/modules/anagrafiche/api/retrieve.php +++ b/modules/anagrafiche/api/retrieve.php @@ -13,8 +13,42 @@ switch ($resource) { } break; + + case 'clienti': + $q = "SELECT AN.idanagrafica, + AN.ragione_sociale, + AN.piva, + AN.codice_fiscale, + AN.indirizzo, + AN.indirizzo2, + AN.citta, + AN.cap, + AN.provincia, + AN.km, + IFNULL(AN.lat, 0.00) AS latitudine, + IFNULL(AN.lng, 0.00) AS longitudine, + NAZIONE.nome AS nazione, + AN.telefono, + AN.fax, + AN.cellulare, + AN.email, + AN.sitoweb, + AN.note, + AN.idzona, + AN.deleted + FROM (an_anagrafiche AS AN + LEFT OUTER JOIN an_nazioni NAZIONE ON AN.id_nazione=NAZIONE.id) + HAVING 1=1 AND + AN.deleted=0 AND + AN.idanagrafica IN (SELECT idanagrafica FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica=1) + ORDER BY AN.ragione_sociale"; + + $results = $dbo->fetchArray( $q ); + + break; } return [ - 'an_anagrafiche', + 'an_anagrafiche', + 'clienti', ]; diff --git a/modules/interventi/api/retrieve.php b/modules/interventi/api/retrieve.php index 5c6128d02..6d0f54ecb 100644 --- a/modules/interventi/api/retrieve.php +++ b/modules/interventi/api/retrieve.php @@ -43,8 +43,71 @@ switch ($resource) { $results['custom'] .= "END:VCALENDAR\n"; break; + + // per APP ufficiale OpenSTAManager + case 'interventi': + + // periodo per selezionare interventi + // in questo modo recupero sempre tutti gli interventi che non vengono chiusi + // vedi anche lista degli stati intervento presenti nella query + // se un intervento รจ stato pre-chiuso dal tecnico oppure chiuso dall'ufficio non viene scaricato da APP + $today = date("Y-m-d"); + $period_start = "2000-01-01" ; + $period_end = date('Y-m-d', strtotime($today . " +7 days")); + + $q = "SELECT `in_interventi`.id, + `in_interventi`.codice, + DATE_FORMAT( MAX(`in_interventi`.`data_richiesta`), '%Y%m%d' ) AS `data_richiesta`, + `in_interventi`.richiesta, + `in_interventi`.descrizione, + `in_interventi`.idtipointervento, + `in_interventi`.idanagrafica, + `an_anagrafiche`.idzona AS zona_anagrafica, + `in_interventi`.idsede, + `an_sedi`.idzona AS zona_sede, + `in_interventi`.idstatointervento, + `in_interventi`.informazioniaggiuntive, + `in_interventi`.idsede, + `in_interventi`.idclientefinale, + `in_interventi`.firma_file, + IF( MAX(firma_data)='0000-00-00 00:00:00', '', DATE_FORMAT(MAX(firma_data),'%d/%m/%Y %T') ) AS `firma_data`, + `in_interventi`.firma_nome, + IFNULL((SELECT GROUP_CONCAT( CONCAT(my_impianti.matricola, ' - ', my_impianti.nome) SEPARATOR ', ') + FROM (my_impianti_interventi INNER JOIN my_impianti ON my_impianti_interventi.idimpianto=my_impianti.id) + WHERE my_impianti_interventi.idintervento=`in_interventi`.`id`),'') AS `impianti`, + DATE_FORMAT( MAX(`orario_fine`), '%Y%m%d' ) AS `data`, + (SELECT GROUP_CONCAT(ragione_sociale SEPARATOR ', ') FROM (`in_interventi_tecnici` INNER JOIN `an_anagrafiche` ON `in_interventi_tecnici`.`idtecnico`=`an_anagrafiche`.`idanagrafica`) WHERE `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id`) AS `tecnici`, + `in_statiintervento`.`colore` AS `bgcolor`, + `in_statiintervento`.`descrizione` AS `stato`, + `in_interventi`.`idtipointervento` AS `tipo`, + DATE_FORMAT( MAX(`orario_inizio`), '%d/%m/%Y %T' ) AS `orario_inizio_leggibile`, + DATE_FORMAT( MAX(`orario_fine`), '%d/%m/%Y %T' ) AS `orario_fine_leggibile`, + `orario_inizio`, `orario_fine` + FROM (`in_interventi` + INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento`) + INNER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id` + INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` + LEFT OUTER JOIN `an_sedi` ON `in_interventi`.`idsede`=`an_sedi`.`id` + GROUP BY `in_interventi`.`id` + HAVING (DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) >= '".$period_start."' AND + DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) <= '".$period_end."') + ORDER BY `orario_fine` DESC"; + + // TODO: rimosse seguenti clausole: + + // WHERE `in_interventi`.idstatointervento IN(SELECT idstatointervento FROM in_statiintervento WHERE app_download=1) + // nel database ufficiale manca in_statiintervento.app_download + + // AND `in_interventi_tecnici`.`idtecnico`='".$tecnico[0]['idanagrafica']."' + // nell'inner join con in_interventi_tecnici -> ad oggi 16-05-2018 non gestisco ancora idtecnico + + $results = $dbo->fetchArray( $q ); + + break; + } return [ 'sync', -]; + 'interventi', +]; \ No newline at end of file