1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-27 16:23:19 +01:00

Aggiunta visualizzazione mappa all'aggiunta attività

This commit is contained in:
Fabio Lovato 2022-12-31 19:28:46 +01:00
parent ddfaf6c23d
commit b1cb2492f9
2 changed files with 133 additions and 2 deletions

View File

@ -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);

View File

@ -218,6 +218,30 @@ echo '
</div>
</div>';
$api_key = setting('Google Maps API key');
$map_load_message = tr('Clicca per visualizzare');
if (!empty($api_key)) {
echo '
<!-- POSIZIONE -->
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Posizione').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse" onclick="autoload_mappa=true; caricaMappa(current_lat, current_lng);">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div id="map-edit" style="height: 300px;width: 100%;display: flex;align-items: center;justify-content: center;"></div>
</div>
</div>';
}
$espandi_dettagli = setting('Espandi automaticamente la sezione "Dettagli aggiuntivi"');
echo '
<!-- DATI AGGIUNTIVI -->
@ -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);
}
}
}
</script>';