Aggiunta di Google Maps nel plugin Sedi

This commit is contained in:
Thomas Zilio 2017-09-18 15:57:37 +02:00
parent f2463b5d5b
commit 84bd8a484c
6 changed files with 82 additions and 5 deletions

View File

@ -563,3 +563,7 @@ input.min-width {
input.small-width {
min-width: 100px;
}
.pac-container {
z-index: 1100 !important;
}

View File

@ -381,6 +381,7 @@ if (!empty($google)) {
</div>
</div>
</form>
<?php
if (!str_contains($records[0]['idtipianagrafica'], $id_azienda)) {
echo '

View File

@ -168,7 +168,7 @@ echo '
</div>';
// Articoli più venduti
$articoli = $dbo->fetchArray("SELECT SUM(co_righe_documenti.qta) AS qta, mg_articoli.id, mg_articoli.codice, mg_articoli.descrizione, mg_articoli.um FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY co_righe_documenti.idarticolo ORDER BY SUM(qta) DESC LIMIT 15');
$articoli = $dbo->fetchArray("SELECT SUM(co_righe_documenti.qta) AS qta, mg_articoli.id, mg_articoli.codice, mg_articoli.descrizione, mg_articoli.um FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY co_righe_documenti.idarticolo ORDER BY SUM(co_righe_documenti.qta) DESC LIMIT 15');
echo '
<div class="col-xs-12 col-md-6">

View File

@ -43,6 +43,9 @@ switch ($operazione) {
'fax' => $post['fax'],
'id_nazione' => !empty($post['id_nazione']) ? $post['id_nazione'] : null,
'idzona' => $post['idzona'],
'gaddress' => $post['gaddress'],
'lat' => $post['lat'],
'lng' => $post['lng'],
];
$dbo->update('an_sedi', $array, ['id' => $post['id']]);

View File

@ -2,8 +2,17 @@
include_once __DIR__.'/../../core.php';
$google = Settings::get('Google Maps API key');
/*
if (!empty($google)) {
echo '
<script src="http://maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
}
*/
echo '
<form action="plugin_editor.php?id_plugin=$id_plugin$&id_module=$id_module$&id_parent='.$id_parent.'" method="post" role="form">
<form action="plugin_editor.php?id_plugin=$id_plugin$&id_module=$id_module$&id_parent='.$id_parent.'" method="post" role="form" id="form_sedi">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="updatesede">
<input type="hidden" name="id" value="'.$records[0]['id'].'">
@ -80,8 +89,51 @@ echo '
<div class="col-xs-12 col-md-6">
{[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "values": "query=SELECT `id`, CONCAT(`nome`, \' - \', `descrizione`) AS `descrizione` FROM `an_zone` ORDER BY `descrizione` ASC", "value": "$idzona$" ]}
</div>
</div>
</div>';
if (!empty($google)) {
echo '
<div class="row">
<div class="col-md-9">
<div class="row">
<div class="col-md-4" id="geocomplete">
{[ "type": "text", "label": "'.tr('Indirizzo Google').'", "name": "gaddress", "value": "$gaddress$", "extra": "data-geo=\'formatted_address\'" ]}
</div>
<div class="col-md-4">
{[ "type": "text", "label": "'.tr('Latitudine').'", "name": "lat", "value": "$lat$", "extra": "data-geo=\'lat\'", "class": "text-right" ]}
</div>
<div class="col-md-4">
{[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "value": "$lng$", "extra": "data-geo=\'lng\'", "class": "text-right" ]}
</div>
</div>
</div>';
// Calcola percorso
if (empty($records[0]['gaddress']) || (empty($records[0]['lat']) && empty($records[0]['lng']))) {
echo '
<div class="col-md-3">
<label>&nbsp;</label><br>
<a class="btn btn-info" onclick="window.open(\'https://maps.google.com/maps/search/\'+encodeURI( $(\'#indirizzo\').val() )+\', \'+encodeURI( $(\'#citta\').val() ) );"><i class="fa fa-map-marker"></i> Cerca su Google Maps...</a>
</div>';
}
echo '
</div>';
if (!empty($records[0]['gaddress']) || (!empty($records[0]['lat']) && !empty($records[0]['lng']))) {
echo '
<div id="map" style="height:400px; width:100%"></div>';
}
} else {
echo '
<div class="alert alert-info">
'.Modules::link('Impostazioni', $dbo->fetchArray("SELECT `idimpostazione` FROM `zz_settings` WHERE sezione='Generali'")[0]['idimpostazione'], tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni')).'.
</div>';
}
echo '
<!-- PULSANTI -->
<div class="row">
<div class="col-md-12">
@ -92,6 +144,22 @@ echo '
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Modifica').'</button>
</div>
</div>
</form>
</form>';
echo '
<script src="'.$rootdir.'/lib/init.js"></script>';
echo '
<script>
$(document).ready( function(){
$("#form_sedi #geocomplete input").geocomplete({
map: $("#form_sedi #map").length ? "#form_sedi #map" : false,
location: $("#form_sedi #gaddress").val() ? $("#form_sedi #gaddress").val() : [$("#form_sedi #lat").val(), $("#form_sedi #lng").val()],
details: "#form_sedi .details",
detailsAttribute: "data-geo"
}).bind("geocode:result", function (event, result) {
$("#form_sedi #lat").val(result.geometry.location.lat());
$("#form_sedi #lng").val(result.geometry.location.lng());
});
});
</script>';

View File

@ -945,7 +945,8 @@ ALTER TABLE `zz_widgets` ADD `help` varchar(255);
-- Aggiunta delle mappe Google
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`) VALUES ('Google Maps API key', '', 'string', '1', 'Generali');
ALTER TABLE `an_anagrafiche` ADD `gaddress` varchar(255), ADD `lat` float(10, 5), ADD `lng` float(10, 5);
ALTER TABLE `an_anagrafiche` ADD `gaddress` varchar(255), ADD `lat` float(10, 6), ADD `lng` float(10, 6);
ALTER TABLE `an_sedi` ADD `gaddress` varchar(255), ADD `lat` float(10, 6), ADD `lng` float(10, 6);
-- Aggiunta del modulo Statistiche
INSERT INTO `zz_modules` (`id`, `name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Statistiche', 'statistiche', 'custom', '', 'fa fa-bar-chart', '2.3', '2.3', '1', NULL, '1', '1');