2017-08-04 16:28:16 +02:00
< ? php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager : il software gestionale open source per l ' assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright ( C ) DevCode s . r . l .
2020-09-07 15:04:06 +02:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
2017-08-04 16:28:16 +02:00
include_once __DIR__ . '/../../core.php' ;
2018-07-09 10:44:54 +02:00
$google = setting ( 'Google Maps API key' );
2017-09-18 15:57:37 +02:00
/*
if ( ! empty ( $google )) {
echo '
2018-02-20 17:51:05 +01:00
< script src = " //maps.googleapis.com/maps/api/js?libraries=places&key='. $google .' " ></ script > ' ;
2017-09-18 15:57:37 +02:00
}
*/
2017-08-04 16:28:16 +02:00
echo '
2018-07-09 12:57:55 +02:00
< form action = " " method = " post " role = " form " id = " form_sedi " >
< input type = " hidden " name = " id_plugin " value = " '. $id_plugin .' " >
< input type = " hidden " name = " id_parent " value = " '. $id_parent .' " >
2020-03-06 16:27:02 +01:00
< input type = " hidden " name = " id_record " value = " '. $record['id'] .' " >
2017-08-04 16:28:16 +02:00
< input type = " hidden " name = " backto " value = " record-edit " >
< input type = " hidden " name = " op " value = " updatesede " >
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-12 " >
2017-09-04 12:02:29 +02:00
{[ " type " : " text " , " label " : " '.tr('Nome sede').' " , " name " : " nomesede " , " required " : 1 , " value " : " $nomesede $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2019-03-20 10:16:14 +01:00
{[ " type " : " text " , " label " : " '.tr('Indirizzo').' " , " name " : " indirizzo " , " id " : " indirizzo_ " , " required " : 0 , " value " : " $indirizzo $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2018-12-07 12:50:42 +01:00
{[ " type " : " text " , " label " : " '.( $record['tipo_anagrafica'] == 'Ente pubblico' ? tr('Codice unico ufficio') : tr('Codice destinatario')).' " , " name " : " codice_destinatario " , " required " : 0 , " class " : " text-center text-uppercase alphanumeric-mask " , " value " : " $codice_destinatario $ " , " maxlength " : '.($record[' tipo_anagrafica '] == ' Ente pubblico ' ? ' 6 ' : ' 7 ').' , " extra " : " '.(empty( $record['tipo_anagrafica'] ) || $record['tipo_anagrafica'] == 'Privato' ? 'disabled' : '').' " , " help " : " '.tr('<b>Attenzione</b>: per impostare il codice specificare prima \ 'Tipologia \ ' e \ 'Nazione \ ' dell \ 'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>').' " , " readonly " : " '.intval( $record['iso2'] != 'IT').' " ]}
</ div >
2017-08-04 16:28:16 +02:00
</ div >
< div class = " row " >
2018-08-28 17:10:23 +02:00
< div class = " col-md-6 " >
2020-01-14 17:20:19 +01:00
{[ " type " : " text " , " label " : " '.tr('Città').' " , " name " : " citta " , " id " : " citta_ " , " value " : " $citta $ " , " required " : 1 ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-08-28 17:10:23 +02:00
< div class = " col-md-2 " >
2017-09-04 12:02:29 +02:00
{[ " type " : " text " , " label " : " '.tr('C.A.P.').' " , " name " : " cap " , " value " : " $cap $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-08-28 17:10:23 +02:00
< div class = " col-md-2 " >
2020-04-30 16:21:53 +02:00
{[ " type " : " text " , " label " : " '.tr('Provincia').' " , " name " : " provincia " , " value " : " $provincia $ " , " maxlength " : 2 , " class " : " text-center provincia-mask text-uppercase " , " extra " : " onkeyup= \" this.value = this.value.toUpperCase(); \" " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-08-28 17:10:23 +02:00
< div class = " col-md-2 " >
2017-09-04 12:02:29 +02:00
{[ " type " : " number " , " label " : " '.tr('Km').' " , " name " : " km " , " value " : " $km $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2019-04-30 16:16:25 +02:00
{[ " type " : " select " , " label " : " '.tr('Nazione').' " , " name " : " id_nazione " , " value " : " $id_nazione $ " , " ajax-source " : " nazioni " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2017-09-04 12:02:29 +02:00
{[ " type " : " text " , " label " : " '.tr('Telefono').' " , " name " : " telefono " , " value " : " $telefono $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2017-09-04 12:02:29 +02:00
{[ " type " : " text " , " label " : " '.tr('Fax').' " , " name " : " fax " , " value " : " $fax $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2017-09-04 12:02:29 +02:00
{[ " type " : " text " , " label " : " '.tr('Cellulare').' " , " name " : " cellulare " , " value " : " $cellulare $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2017-09-04 12:02:29 +02:00
{[ " type " : " text " , " label " : " '.tr('Indirizzo email').' " , " name " : " email " , " value " : " $email $ " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2019-11-20 10:24:56 +01:00
{[ " type " : " select " , " label " : " '.tr('Zona').' " , " name " : " idzona " , " ajax-source " : " zone " , " value " : " $idzona $ " , " placeholder " : " '.tr('Nessuna zona').' " , " icon-after " : " add|'.Modules::get('Zone')['id'].' " ]}
2017-08-04 16:28:16 +02:00
</ div >
2019-11-20 00:21:58 +01:00
</ div >
< div class = " row " >
< div class = " col-md-12 " >
{[ " type " : " textarea " , " label " : " '.tr('Note').' " , " name " : " note " , " value " : " $note $ " ]}
</ div >
</ div > ' ;
2017-09-18 15:57:37 +02:00
if ( ! empty ( $google )) {
2018-02-18 19:53:23 +01:00
echo '
2017-12-20 14:05:14 +01:00
< div class = " row " >
< div class = " col-md-6 " id = " geocomplete " >
{[ " type " : " text " , " label " : " '.tr('Indirizzo Google').' " , " name " : " gaddress " , " value " : " $gaddress $ " , " extra " : " data-geo= \ 'formatted_address \ ' " ]}
</ div >
< div class = " col-md-2 " >
{[ " type " : " text " , " label " : " '.tr('Latitudine').' " , " name " : " lat " , " id " : " lat_ " , " value " : " $lat $ " , " extra " : " data-geo= \ 'lat \ ' " , " class " : " text-right " ]}
</ div >
< div class = " col-md-2 " >
2018-08-11 15:49:46 +02:00
{[ " type " : " text " , " label " : " '.tr('Longitudine').' " , " name " : " lng " , " id " : " lng_ " , " value " : " $lng $ " , " extra " : " data-geo= \ 'lng \ ' " , " class " : " text-right " ]}
2017-12-20 14:05:14 +01:00
</ div > ' ;
// Vedi su google maps
2018-07-18 15:20:10 +02:00
if ( ! empty ( $record [ 'indirizzo' ]) || ( empty ( $record [ 'citta' ]))) {
2017-09-18 15:57:37 +02:00
echo '
2017-12-20 14:05:14 +01:00
< div class = " btn-group col-md-2 " >
< label >& nbsp ; </ label >< br >
2020-07-06 13:19:20 +02:00
< a class = " btn btn-info " title = " '.tr('Mostra la sede su Google Maps').' " onclick = " window.open( \ 'https://maps.google.com/maps/search/ \ '+encodeURI( $ ( \ '#indirizzo_ \ ').val() )+ \ ', \ '+encodeURI( $ ( \ '#citta_ \ ').val() ) ); " >& nbsp ; < i class = " fa fa-map-marker " >& nbsp ; </ i ></ a >
2017-12-20 14:05:14 +01:00
' ;
2018-02-18 19:53:23 +01:00
echo '
2017-12-20 14:05:14 +01:00
< a title = " '.tr('Calcola percoso da sede legale a questa sede').' " class = " btn btn-primary btn-secondary " onclick = " window.open( \ 'https://maps.google.com/maps/dir/ \ '+encodeURI( $ ( \ '#indirizzo_ \ ').val() )+ \ ', \ '+encodeURI( $ ( \ '#citta_ \ ').val() )+ \ '/ \ '+encodeURI( $ ( \ '#indirizzo \ ').val() )+ \ ', \ '+encodeURI( $ ( \ '#citta \ ').val() )+ \ ',8z \ '); " >< i class = " fa fa-car " ></ i ></ a >
</ div > ' ;
2017-09-18 15:57:37 +02:00
}
echo '
</ div > ' ;
2018-07-18 15:20:10 +02:00
if ( ! empty ( $record [ 'gaddress' ]) || ( ! empty ( $record [ 'lat' ]) && ! empty ( $record [ 'lng' ]))) {
2018-02-18 19:53:23 +01:00
echo '
2017-12-20 14:05:14 +01:00
< div id = " map " style = " height:400px; width:100% " ></ div >< br > ' ;
2017-09-18 15:57:37 +02:00
}
} else {
echo '
< div class = " alert alert-info " >
2021-02-25 11:22:06 +01:00
'.Modules::link(' Impostazioni ', null, tr(' Per abilitare la visualizzazione delle anagrafiche nella mappa , inserire la Google Maps API Key nella scheda Impostazioni '), true, null, true, null, "&search=Google Maps API key").' .
2017-09-18 15:57:37 +02:00
</ div > ' ;
}
2017-08-04 16:28:16 +02:00
2019-11-20 00:21:58 +01:00
// Permetto eliminazione tipo sede solo se non è utilizzata da nessun'altra parte nel gestionale
2019-11-20 10:18:14 +01:00
$elementi = $dbo -> fetchArray ( 'SELECT `zz_user_sedi`.`id_user` AS `id` FROM `zz_user_sedi` WHERE `zz_user_sedi`.`idsede` = ' . prepare ( $id_record ) . '
2019-11-20 00:21:58 +01:00
UNION
2020-03-06 16:27:02 +01:00
SELECT `an_referenti` . `id` AS `id` FROM `an_referenti` WHERE `an_referenti` . `idsede` = '.prepare($id_record).'
2020-09-29 22:50:22 +02:00
UNION
SELECT `co_documenti` . `id` AS `id` FROM `co_documenti` WHERE `co_documenti` . `idsede_destinazione` = '.prepare($id_record).'
2019-11-20 00:21:58 +01:00
ORDER BY `id` ' );
if ( ! empty ( $elementi )) {
echo '
< div class = " alert alert-danger " >
'.tr(' Ci sono _NUM_ documenti collegati ' , [
'_NUM_' => count ( $elementi ),
]) . ' .
</ div > ' ;
2019-11-22 16:28:03 +01:00
$disabled = 'disabled' ;
2019-11-20 00:21:58 +01:00
}
2017-09-18 15:57:37 +02:00
echo '
2017-08-04 16:28:16 +02:00
<!-- PULSANTI -->
< div class = " row " >
< div class = " col-md-12 " >
2020-09-30 12:40:57 +02:00
< button type = " button " class = " btn btn-danger '. $disabled .' " onclick = " rimuoviSede(this) " >
2017-09-04 12:02:29 +02:00
< i class = " fa fa-trash " ></ i > '.tr(' Elimina ').'
2020-08-31 14:59:07 +02:00
</ button >
2017-08-04 16:28:16 +02:00
2019-11-20 00:21:58 +01:00
< button type = " submit " class = " btn btn-primary pull-right " >< i class = " fa fa-edit " ></ i > '.tr(' Modifica ').' </ button >
2017-08-04 16:28:16 +02:00
</ div >
</ div >
2017-09-18 15:57:37 +02:00
</ form > ' ;
2017-08-04 16:28:16 +02:00
2017-09-18 15:57:37 +02:00
echo '
< script >
2020-09-30 12:40:57 +02:00
function rimuoviSede ( button ) {
let hash = window . location . href . split ( " # " )[ 1 ];
confirmDelete ( button ) . then ( function () {
redirect ( globals . rootdir + " /editor.php " , {
backto : " record-edit " ,
hash : hash ,
op : " deletesede " ,
id : " '. $record['id'] .' " ,
id_plugin : " '. $id_plugin .' " ,
id_module : " '. $id_module .' " ,
id_parent : " '. $id_parent .' " ,
});
}) . catch ( swal . noop );
}
2017-09-18 15:57:37 +02:00
$ ( document ) . ready ( function (){
$ ( " #form_sedi #geocomplete input " ) . geocomplete ({
map : $ ( " #form_sedi #map " ) . length ? " #form_sedi #map " : false ,
2017-12-20 14:05:14 +01:00
location : $ ( " #form_sedi #gaddress " ) . val () ? $ ( " #form_sedi #gaddress " ) . val () : [ $ ( " #form_sedi #lat_ " ) . val (), $ ( " #form_sedi #lng_ " ) . val ()],
2017-09-18 15:57:37 +02:00
details : " #form_sedi .details " ,
detailsAttribute : " data-geo "
}) . bind ( " geocode:result " , function ( event , result ) {
2017-12-20 14:05:14 +01:00
$ ( " #form_sedi #lat_ " ) . val ( result . geometry . location . lat ());
$ ( " #form_sedi #lng_ " ) . val ( result . geometry . location . lng ());
2017-09-18 15:57:37 +02:00
});
});
2019-11-22 16:28:03 +01:00
</ script > ' ;