diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php index 66e4a4827..4eabc81fc 100755 --- a/modules/anagrafiche/ajax/select.php +++ b/modules/anagrafiche/ajax/select.php @@ -25,7 +25,42 @@ switch ($resource) { case 'clienti': $id_azienda = setting('Azienda predefinita'); - $query = "SELECT an_anagrafiche.idanagrafica AS id, is_bloccata, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'), IF(is_bloccata = 1, CONCAT(' (', an_relazioni.descrizione, ')'), '') ) AS descrizione, idtipointervento_default AS idtipointervento, in_tipiintervento.descrizione AS idtipointervento_descrizione, an_anagrafiche.idzona, contratto.id AS id_contratto, contratto.descrizione AS descrizione_contratto, co_pagamenti.id AS id_pagamento, co_pagamenti.descrizione AS desc_pagamento, banca_vendite.id AS id_banca_vendite, CONCAT(banca_vendite.nome, ' - ', banca_vendite.iban) AS descrizione_banca_vendite FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica LEFT JOIN in_tipiintervento ON an_anagrafiche.idtipointervento_default=in_tipiintervento.idtipointervento LEFT JOIN an_relazioni ON an_anagrafiche.idrelazione=an_relazioni.id LEFT JOIN (SELECT co_contratti.id, idanagrafica, CONCAT('Contratto ', numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y'), ' - ', co_contratti.nome, ' [', `co_staticontratti`.`descrizione` , ']') AS descrizione FROM co_contratti LEFT JOIN co_staticontratti ON co_contratti.idstato=co_staticontratti.id WHERE co_contratti.predefined=1 AND is_pianificabile=1) AS contratto ON an_anagrafiche.idanagrafica=contratto.idanagrafica LEFT JOIN co_pagamenti ON an_anagrafiche.idpagamento_vendite=co_pagamenti.id LEFT JOIN co_banche banca_vendite ON co_pagamenti.idconto_vendite = banca_vendite.id_pianodeiconti3 AND banca_vendite.id_anagrafica = ".prepare($id_azienda)." AND banca_vendite.deleted_at IS NULL AND banca_vendite.predefined = 1 |where| ORDER BY ragione_sociale"; + $query = "SELECT + an_anagrafiche.idanagrafica AS id, + an_anagrafiche.lat, + an_anagrafiche.lng, + is_bloccata, + CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'), IF(is_bloccata = 1, CONCAT(' (', an_relazioni.descrizione, ')'), '') ) AS descrizione, + idtipointervento_default AS idtipointervento, + in_tipiintervento.descrizione AS idtipointervento_descrizione, + an_anagrafiche.idzona, + contratto.id AS id_contratto, + contratto.descrizione AS descrizione_contratto, + co_pagamenti.id AS id_pagamento, + co_pagamenti.descrizione AS desc_pagamento, + banca_vendite.id AS id_banca_vendite, + CONCAT(banca_vendite.nome, ' - ', banca_vendite.iban) AS descrizione_banca_vendite + FROM + an_anagrafiche + INNER JOIN (an_tipianagrafiche_anagrafiche + INNER JOIN an_tipianagrafiche + ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) + ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica LEFT JOIN in_tipiintervento ON an_anagrafiche.idtipointervento_default=in_tipiintervento.idtipointervento + LEFT JOIN + an_relazioni + ON an_anagrafiche.idrelazione=an_relazioni.id + LEFT JOIN + (SELECT co_contratti.id, idanagrafica, CONCAT('Contratto ', numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y'), ' - ', co_contratti.nome, ' [', `co_staticontratti`.`descrizione` , ']') AS descrizione FROM co_contratti LEFT JOIN co_staticontratti ON co_contratti.idstato=co_staticontratti.id WHERE co_contratti.predefined=1 AND is_pianificabile=1) AS contratto + ON an_anagrafiche.idanagrafica=contratto.idanagrafica + LEFT JOIN + co_pagamenti + ON an_anagrafiche.idpagamento_vendite=co_pagamenti.id + LEFT JOIN + co_banche banca_vendite + ON co_pagamenti.idconto_vendite = banca_vendite.id_pianodeiconti3 AND banca_vendite.id_anagrafica = ".prepare($id_azienda)." AND banca_vendite.deleted_at IS NULL AND banca_vendite.predefined = 1 + |where| + ORDER BY + ragione_sociale"; foreach ($elements as $element) { $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); @@ -267,7 +302,24 @@ switch ($resource) { */ case 'sedi': if (isset($superselect['idanagrafica'])) { - $query = "SELECT * FROM (SELECT '0' AS id, (SELECT idzona FROM an_anagrafiche |where|) AS idzona, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), ''), ' (',ragione_sociale,')') FROM an_anagrafiche |where|)) AS descrizione UNION SELECT id, idzona, CONCAT_WS(' - ', nomesede, CONCAT(citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), '')) ) FROM an_sedi |where|) AS tab HAVING descrizione LIKE ".prepare('%'.$search.'%').' ORDER BY descrizione'; + $query = " + SELECT + * + FROM + (SELECT '0' AS id, (SELECT lat FROM an_anagrafiche |where|) AS lat, (SELECT lng FROM an_anagrafiche |where|) AS lng, (SELECT idzona FROM an_anagrafiche |where|) AS idzona, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), ''), ' (',ragione_sociale,')') FROM an_anagrafiche |where|)) AS descrizione + + UNION + + SELECT + id, + lat, + lng, + idzona, + CONCAT_WS(' - ', nomesede, CONCAT(citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), '')) ) FROM an_sedi |where|) AS tab + HAVING + descrizione LIKE ".prepare('%'.$search.'%').' + ORDER BY + descrizione'; foreach ($elements as $element) { $filter[] = 'id='.prepare($element); diff --git a/modules/interventi/add.php b/modules/interventi/add.php index b6f1d2088..a2f7d5d09 100755 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -218,6 +218,30 @@ echo ' '; + +$api_key = setting('Google Maps API key'); +$map_load_message = tr('Clicca per visualizzare'); + +if (!empty($api_key)) { + echo ' + +
+
+

'.tr('Posizione').'

+
+ +
+
+ +
+
+
+
'; +} + + $espandi_dettagli = setting('Espandi automaticamente la sezione "Dettagli aggiuntivi"'); echo ' @@ -443,6 +467,7 @@ echo ' var ordine = input("idordine"); var referente = input("idreferente"); var cliente_finale = input("idclientefinale"); + var autoload_mappa = false; $(document).ready(function() { if(!anagrafica.get()){ @@ -531,6 +556,8 @@ echo ' input("idcontratto").getElement() .selectSetNew(data.id_contratto, data.descrizione_contratto); } + + caricaMappa(data.lat, data.lng); } if (data !== undefined) { @@ -574,6 +601,8 @@ echo ' if (data) { input("idzona").set(data.idzona ? data.idzona : ""); // session_set("superselect,idzona", $(this).selectData().idzona, 0); + + caricaMappa(data.lat, data.lng); } }); @@ -727,4 +756,54 @@ echo ' $("#data_fine_ricorrenza").attr("required", false); } }); + + var marker = null; + var position = null; + var map = null; + var current_lat = null; + var current_lng = null; + + function caricaMappa(lat, lng) { + current_lat = lat; + current_lng = lng; + + if (!autoload_mappa){ + return false; + } + + const map_div = $("#map-edit"); + + if (input("idanagrafica").getData("select-options")) { + if (map === null) { + if (lat || lng) { + $.getScript("//maps.googleapis.com/maps/api/js?libraries=places&key='.$api_key.'", function() { + const map_element = map_div[0]; + position = new google.maps.LatLng(lat, lng); + + // Create a Google Maps native view under the map_canvas div. + map = new google.maps.Map(map_element, { + zoom: 14, + scrollwheel: false, + mapTypeControl: true, + mapTypeId: "roadmap", + mapTypeControlOptions: { + style: google.maps.MapTypeControlStyle.DROPDOWN_MENU, + mapTypeIds: ["roadmap", "terrain"], + } + }); + + map.setCenter(position); + marker = new google.maps.Marker({ + position: position, + map: map, + }); + }); + } + } else { + position = new google.maps.LatLng(lat, lng); + marker.setPosition(position); + map.setCenter(position); + } + } + } ';