Miglioramento Geolocalizzazione per Anagrafiche e Attività
This commit is contained in:
parent
3781750895
commit
8e054472f2
|
@ -1,18 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$is_fornitore = in_array($id_fornitore, $tipi_anagrafica);
|
$is_fornitore = in_array($id_fornitore, $tipi_anagrafica);
|
||||||
$is_cliente = in_array($id_cliente, $tipi_anagrafica);
|
$is_cliente = in_array($id_cliente, $tipi_anagrafica);
|
||||||
$is_tecnico = in_array($id_tecnico, $tipi_anagrafica);
|
$is_tecnico = in_array($id_tecnico, $tipi_anagrafica);
|
||||||
|
|
||||||
$google = setting('Google Maps API key');
|
|
||||||
|
|
||||||
if (!empty($google)) {
|
|
||||||
echo '
|
|
||||||
<script src="//maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$is_cliente && !$is_fornitore && $is_tecnico) {
|
if (!$is_cliente && !$is_fornitore && $is_tecnico) {
|
||||||
$ignore = $dbo->fetchArray("SELECT id FROM zz_plugins WHERE name='Sedi' OR name='Referenti' OR name='Dichiarazioni d\'intento'");
|
$ignore = $dbo->fetchArray("SELECT id FROM zz_plugins WHERE name='Sedi' OR name='Referenti' OR name='Dichiarazioni d\'intento'");
|
||||||
|
|
||||||
|
@ -200,6 +195,16 @@ if (!$is_cliente) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
$sede_cliente = $anagrafica->sedeLegale;
|
||||||
|
|
||||||
|
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
|
||||||
|
$sede_azienda = $anagrafica_azienda->sedeLegale;
|
||||||
|
|
||||||
|
$google = setting('Google Maps API key');
|
||||||
|
if (!empty($google)) {
|
||||||
|
echo '
|
||||||
|
<script src="//maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
|
||||||
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
@ -214,7 +219,7 @@ if (empty($google)) {
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
'.Modules::link('Impostazioni', $dbo->fetchOne("SELECT `id` FROM `zz_settings` WHERE nome='Google Maps API key'")['id'], tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni')).'.
|
'.Modules::link('Impostazioni', $dbo->fetchOne("SELECT `id` FROM `zz_settings` WHERE nome='Google Maps API key'")['id'], tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni')).'.
|
||||||
</div>';
|
</div>';
|
||||||
} elseif (!empty($record['gaddress']) || (!empty($record['lat']) && !empty($record['lng']))) {
|
} elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
|
||||||
echo '
|
echo '
|
||||||
<div id="map-edit" style="height:200px; width:100%"></div>
|
<div id="map-edit" style="height:200px; width:100%"></div>
|
||||||
|
|
||||||
|
@ -264,17 +269,46 @@ echo '
|
||||||
}
|
}
|
||||||
|
|
||||||
function cercaGoogleMaps() {
|
function cercaGoogleMaps() {
|
||||||
window.open("https://maps.google.com/maps/search/" + encodeURI( $("#indirizzo").val() )+", "+encodeURI( $("#citta").val() ) );
|
const indirizzo = getIndirizzoAnagrafica();
|
||||||
|
window.open("https://maps.google.com/maps/search/" + indirizzo);
|
||||||
}
|
}
|
||||||
|
|
||||||
function calcolaPercorso() {
|
function calcolaPercorso() {
|
||||||
window.open("https://maps.google.com/maps/dir/" + encodeURI( $("#indirizzo").val() )+", "+encodeURI( $("#citta").val() ) );
|
const indirizzo_partenza = getIndirizzoAzienda();
|
||||||
|
const indirizzo_destinazione = getIndirizzoAnagrafica();
|
||||||
|
window.open("https://maps.google.com/maps/dir/" + indirizzo_partenza + "/" + indirizzo_destinazione);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getIndirizzoAzienda() {
|
||||||
|
const indirizzo = "'.$sede_azienda->indirizzo.'";
|
||||||
|
const citta = "'.$sede_azienda->citta.'";
|
||||||
|
|
||||||
|
const lat = parseFloat("'.$sede_azienda->lat.'");
|
||||||
|
const lng = parseFloat("'.$sede_azienda->lng.'");
|
||||||
|
|
||||||
|
const indirizzo_default = encodeURI(indirizzo) + "," + encodeURI(citta);
|
||||||
|
if (!lat || !lng) return indirizzo_default;
|
||||||
|
|
||||||
|
return lat + "," + lng;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getIndirizzoAnagrafica() {
|
||||||
|
const indirizzo = $("#indirizzo").val();
|
||||||
|
const citta = $("#citta").val();
|
||||||
|
|
||||||
|
const lat = parseFloat("'.$sede_cliente->lat.'");
|
||||||
|
const lng = parseFloat("'.$sede_cliente->lng.'");
|
||||||
|
|
||||||
|
const indirizzo_default = encodeURI(indirizzo) + "," + encodeURI(citta);
|
||||||
|
if (!lat || !lng) return indirizzo_default;
|
||||||
|
|
||||||
|
return lat + "," + lng;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
const map_element = $("#map-edit")[0];
|
const map_element = $("#map-edit")[0];
|
||||||
const lat = "'.$record['lat'].'";
|
const lat = parseFloat("'.$sede_cliente->lat.'");
|
||||||
const lng = "'.$record['lng'].'";
|
const lng = parseFloat("'.$sede_cliente->lng.'");
|
||||||
|
|
||||||
if (!lat || !lng) return;
|
if (!lat || !lng) return;
|
||||||
const position = new google.maps.LatLng(lat, lng);
|
const position = new google.maps.LatLng(lat, lng);
|
||||||
|
@ -291,7 +325,6 @@ echo '
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
map.setCenter(position);
|
map.setCenter(position);
|
||||||
const marker = new google.maps.Marker({
|
const marker = new google.maps.Marker({
|
||||||
position: position,
|
position: position,
|
||||||
|
|
|
@ -47,4 +47,9 @@ $("#geocomplete input").geocomplete({
|
||||||
$("#lat").val(result.geometry.location.lat());
|
$("#lat").val(result.geometry.location.lat());
|
||||||
$("#lng").val(result.geometry.location.lng());
|
$("#lng").val(result.geometry.location.lng());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Ricaricamento della pagina alla chiusura
|
||||||
|
$("#modals > div button.close").on("click", function() {
|
||||||
|
location.reload();
|
||||||
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
|
|
@ -274,6 +274,11 @@ class Anagrafica extends Model
|
||||||
return $this->belongsToMany(Tipo::class, 'an_tipianagrafiche_anagrafiche', 'idanagrafica', 'idtipoanagrafica');
|
return $this->belongsToMany(Tipo::class, 'an_tipianagrafiche_anagrafiche', 'idanagrafica', 'idtipoanagrafica');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function sedi()
|
||||||
|
{
|
||||||
|
return $this->hasMany(Sede::class, 'idanagrafica');
|
||||||
|
}
|
||||||
|
|
||||||
public function nazione()
|
public function nazione()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Nazione::class, 'id_nazione');
|
return $this->belongsTo(Nazione::class, 'id_nazione');
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Anagrafiche;
|
||||||
|
|
||||||
|
use Common\Model;
|
||||||
|
|
||||||
|
class Sede extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'an_sedi';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that aren't mass assignable.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $guarded = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Crea una nuova sede.
|
||||||
|
*
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public static function build(Anagrafica $anagrafica, $is_sede_legale = false)
|
||||||
|
{
|
||||||
|
$model = parent::make();
|
||||||
|
|
||||||
|
if (!empty($is_sede_legale)) {
|
||||||
|
$model->nomesede = 'Sede legale';
|
||||||
|
}
|
||||||
|
$model->anagrafica()->associate($anagrafica);
|
||||||
|
$model->save();
|
||||||
|
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function anagrafica()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Anagrafica::class, 'idanagrafica');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function nazione()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Nazione::class, 'id_nazione');
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,120 +1,247 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
|
use Modules\Anagrafiche\Sede;
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$block_edit = $record['flag_completato'];
|
$block_edit = $record['flag_completato'];
|
||||||
$module_anagrafiche = Modules::get('Anagrafiche');
|
$module_anagrafiche = Modules::get('Anagrafiche');
|
||||||
|
|
||||||
?><form action="" method="post" id="edit-form">
|
echo '
|
||||||
|
<form action="" method="post" id="edit-form">
|
||||||
<input type="hidden" name="op" value="update">
|
<input type="hidden" name="op" value="update">
|
||||||
<input type="hidden" name="backto" value="record-edit">
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
|
<input type="hidden" name="id_record" value="'.$id_record.'">
|
||||||
|
|
||||||
<!-- DATI CLIENTE -->
|
|
||||||
<div class="panel panel-primary">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h3 class="panel-title"><?php echo tr('Dati cliente'); ?></h3>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="row">
|
||||||
<!-- RIGA 1 -->
|
<div class="col-md-8">
|
||||||
<div class="row">
|
<!-- DATI CLIENTE -->
|
||||||
<div class="col-md-3">
|
<div class="panel panel-primary">
|
||||||
<?php
|
<div class="panel-heading">
|
||||||
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
|
<h3 class="panel-title">'.tr('Dati cliente').'</h3>
|
||||||
?>
|
</div>
|
||||||
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
|
||||||
</div>
|
|
||||||
<?php
|
|
||||||
|
|
||||||
echo '
|
<div class="panel-body">
|
||||||
<div class="col-md-3">
|
<!-- RIGA 1 -->
|
||||||
{[ "type": "select", "label": "'.tr('Sede destinazione').'", "name": "idsede_destinazione","value": "$idsede_destinazione$", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "placeholder": "'.tr('Sede legale').'", "readonly": "'.$record['flag_completato'].'" ]}
|
<div class="row">
|
||||||
</div>';
|
<div class="col-md-6">
|
||||||
?>
|
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||||
|
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti", "readonly": "'.$record['flag_completato'].'" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-md-3">
|
<div class="col-md-6">
|
||||||
<?php
|
{[ "type": "select", "label": "'.tr('Sede destinazione').'", "name": "idsede_destinazione","value": "$idsede_destinazione$", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "placeholder": "'.tr('Sede legale').'", "readonly": "'.$record['flag_completato'].'" ]}
|
||||||
echo Modules::link('Anagrafiche', $record['idclientefinale'], null, null, 'class="pull-right"');
|
</div>
|
||||||
?>
|
|
||||||
{[ "type": "select", "label": "<?php echo tr('Per conto di'); ?>", "name": "idclientefinale", "value": "$idclientefinale$", "ajax-source": "clienti", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php
|
<div class="col-md-6">
|
||||||
echo '
|
'.Modules::link('Anagrafiche', $record['idclientefinale'], null, null, 'class="pull-right"').'
|
||||||
<div class="col-md-3">
|
{[ "type": "select", "label": "'.tr('Per conto di').'", "name": "idclientefinale", "value": "$idclientefinale$", "ajax-source": "clienti", "readonly": "'.$record['flag_completato'].'" ]}
|
||||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "readonly": "'.intval($record['flag_completato']).'" ]}
|
</div>
|
||||||
</div>';
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- RIGA 2 -->
|
<div class="col-md-6">
|
||||||
<div class="row">
|
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "readonly": "'.intval($record['flag_completato']).'" ]}
|
||||||
<div class="col-md-6">
|
</div>
|
||||||
<?php
|
</div>
|
||||||
if (!empty($record['idpreventivo'])) {
|
|
||||||
echo '
|
<!-- RIGA 2 -->
|
||||||
'.Modules::link('Preventivi', $record['idpreventivo'], null, null, 'class="pull-right"');
|
<div class="row">
|
||||||
|
<div class="col-md-6">';
|
||||||
|
if (!empty($record['idpreventivo'])) {
|
||||||
|
echo '
|
||||||
|
'.Modules::link('Preventivi', $record['idpreventivo'], null, null, 'class="pull-right"');
|
||||||
|
}
|
||||||
|
echo '
|
||||||
|
{[ "type": "select", "label": "'.tr('Preventivo').'", "name": "idpreventivo", "value": "$idpreventivo$", "ajax-source": "preventivi", "readonly": "'.$record['flag_completato'].'" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">';
|
||||||
|
|
||||||
|
$idcontratto_riga = $dbo->fetchOne('SELECT id FROM co_promemoria WHERE idintervento='.prepare($id_record))['id'];
|
||||||
|
|
||||||
|
if (!empty($record['idcontratto'])) {
|
||||||
|
echo '
|
||||||
|
'.Modules::link('Contratti', $record['idcontratto'], null, null, 'class="pull-right"');
|
||||||
|
}
|
||||||
|
echo '
|
||||||
|
|
||||||
|
{[ "type": "select", "label": "'.tr('Contratto').'", "name": "idcontratto", "value": "'.$record['id_contratto'].'", "ajax-source": "contratti", "readonly": "'.$record['flag_completato'].'" ]}
|
||||||
|
|
||||||
|
<input type="hidden" name="idcontratto_riga" value="'.$idcontratto_riga.'">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
$anagrafica_cliente = $intervento->anagrafica;
|
||||||
|
$sede_cliente = $anagrafica_cliente->sedeLegale;
|
||||||
|
if (!empty($intervento->idsede_destinazione)) {
|
||||||
|
$sede_cliente = Sede::find($intervento->idsede_destinazione);
|
||||||
|
}
|
||||||
|
|
||||||
|
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
|
||||||
|
$sede_azienda = $anagrafica_azienda->sedeLegale;
|
||||||
|
|
||||||
|
$google = setting('Google Maps API key');
|
||||||
|
if (!empty($google)) {
|
||||||
|
echo '
|
||||||
|
<script src="//maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title"><i class="fa fa-map"></i> '.tr('Geolocalizzazione').'</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">';
|
||||||
|
|
||||||
|
if (empty($google)) {
|
||||||
|
echo '
|
||||||
|
<div class="alert alert-info">
|
||||||
|
'.Modules::link('Impostazioni', $dbo->fetchOne("SELECT `id` FROM `zz_settings` WHERE nome='Google Maps API key'")['id'], tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni')).'.
|
||||||
|
</div>';
|
||||||
|
} elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
|
||||||
|
echo '
|
||||||
|
<div id="map-edit" style="height:200px; width:100%"></div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
<br>';
|
||||||
|
|
||||||
|
// Navigazione diretta verso l'indirizzo
|
||||||
|
echo '
|
||||||
|
<a class="btn btn-info btn-block" onclick="calcolaPercorso()">
|
||||||
|
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
|
||||||
|
</a>';
|
||||||
|
} else {
|
||||||
|
// Navigazione diretta verso l'indirizzo
|
||||||
|
echo '
|
||||||
|
<a class="btn btn-info btn-block" onclick="calcolaPercorso()">
|
||||||
|
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
|
||||||
|
</a>';
|
||||||
|
|
||||||
|
// Ricerca diretta su Google Maps
|
||||||
|
echo '
|
||||||
|
<a class="btn btn-info btn-block" onclick="cercaGoogleMaps()">
|
||||||
|
<i class="fa fa-map-marker"></i> '.tr('Cerca su Google Maps').'
|
||||||
|
</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function modificaPosizione() {
|
||||||
|
openModal("'.tr('Modifica posizione').'", "'.$module->fileurl('modals/posizione.php').'?id_module='.$id_module.'&id_record='.$id_record.'");
|
||||||
|
}
|
||||||
|
|
||||||
|
function cercaGoogleMaps() {
|
||||||
|
const indirizzo = getIndirizzoAnagrafica();
|
||||||
|
window.open("https://maps.google.com/maps/search/" + indirizzo);
|
||||||
|
}
|
||||||
|
|
||||||
|
function calcolaPercorso() {
|
||||||
|
const indirizzo_partenza = getIndirizzoAzienda();
|
||||||
|
const indirizzo_destinazione = getIndirizzoAnagrafica();
|
||||||
|
window.open("https://maps.google.com/maps/dir/" + indirizzo_partenza + "/" + indirizzo_destinazione);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getIndirizzoAzienda() {
|
||||||
|
const indirizzo = "'.$sede_azienda->indirizzo.'";
|
||||||
|
const citta = "'.$sede_azienda->citta.'";
|
||||||
|
|
||||||
|
const lat = parseFloat("'.$sede_azienda->lat.'");
|
||||||
|
const lng = parseFloat("'.$sede_azienda->lng.'");
|
||||||
|
|
||||||
|
const indirizzo_default = encodeURI(indirizzo) + "," + encodeURI(citta);
|
||||||
|
if (!lat || !lng) return indirizzo_default;
|
||||||
|
|
||||||
|
return lat + "," + lng;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getIndirizzoAnagrafica() {
|
||||||
|
const indirizzo = "'.$sede_cliente->indirizzo.'";
|
||||||
|
const citta = "'.$sede_cliente->citta.'";
|
||||||
|
|
||||||
|
const lat = parseFloat("'.$sede_cliente->lat.'");
|
||||||
|
const lng = parseFloat("'.$sede_cliente->lng.'");
|
||||||
|
|
||||||
|
const indirizzo_default = encodeURI(indirizzo) + "," + encodeURI(citta);
|
||||||
|
if (!lat || !lng) return indirizzo_default;
|
||||||
|
|
||||||
|
return lat + "," + lng;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
const map_element = $("#map-edit")[0];
|
||||||
|
const lat = parseFloat("'.$sede_cliente->lat.'");
|
||||||
|
const lng = parseFloat("'.$sede_cliente->lng.'");
|
||||||
|
|
||||||
|
if (!lat || !lng) return;
|
||||||
|
const position = new google.maps.LatLng(lat, lng);
|
||||||
|
|
||||||
|
// Create a Google Maps native view under the map_canvas div.
|
||||||
|
const 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"],
|
||||||
}
|
}
|
||||||
?>
|
});
|
||||||
|
|
||||||
{[ "type": "select", "label": "<?php echo tr('Preventivo'); ?>", "name": "idpreventivo", "value": "$idpreventivo$", "ajax-source": "preventivi", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
map.setCenter(position);
|
||||||
</div>
|
const marker = new google.maps.Marker({
|
||||||
|
position: position,
|
||||||
|
map: map,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>';
|
||||||
|
|
||||||
<div class="col-md-6">
|
?>
|
||||||
<?php
|
<!-- DATI INTERVENTO -->
|
||||||
$idcontratto_riga = $dbo->fetchOne('SELECT id FROM co_promemoria WHERE idintervento='.prepare($id_record))['id'];
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title"><?php echo tr('Dati intervento'); ?></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
if (!empty($record['idcontratto'])) {
|
<div class="panel-body">
|
||||||
echo '
|
<!-- RIGA 3 -->
|
||||||
'.Modules::link('Contratti', $record['idcontratto'], null, null, 'class="pull-right"');
|
<div class="row">
|
||||||
}
|
<div class="col-md-3">
|
||||||
?>
|
{[ "type": "span", "label": "<?php echo tr('Numero'); ?>", "name": "codice", "value": "$codice$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
{[ "type": "select", "label": "<?php echo tr('Contratto'); ?>", "name": "idcontratto", "value": "<?php echo $record['id_contratto']; ?>", "ajax-source": "contratti", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
<div class="col-md-3">
|
||||||
|
{[ "type": "timestamp", "label": "<?php echo tr('Data/ora richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
<input type='hidden' name='idcontratto_riga' value='<?php echo $idcontratto_riga; ?>'>
|
<div class="col-md-3">
|
||||||
</div>
|
{[ "type": "timestamp", "label": "<?php echo tr('Data/ora scadenza'); ?>", "name": "data_scadenza", "required": 0, "value": "$data_scadenza$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- DATI INTERVENTO -->
|
<div class="col-md-3">
|
||||||
<div class="panel panel-primary">
|
{[ "type": "select", "label": "<?php echo tr('Zona'); ?>", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "$idzona$" , "placeholder": "<?php echo tr('Nessuna zona'); ?>", "extra": "readonly", "help":"<?php echo 'La zona viene definita automaticamente in base al cliente selezionato'; ?>." ]}
|
||||||
<div class="panel-heading">
|
</div>
|
||||||
<h3 class="panel-title"><?php echo tr('Dati intervento'); ?></h3>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="panel-body">
|
</div>
|
||||||
<!-- RIGA 3 -->
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-3">
|
|
||||||
{[ "type": "span", "label": "<?php echo tr('Numero'); ?>", "name": "codice", "value": "$codice$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
<!-- RIGA 4 -->
|
||||||
{[ "type": "timestamp", "label": "<?php echo tr('Data/ora richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
<div class="row">
|
||||||
</div>
|
<div class="col-md-4">
|
||||||
|
{[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "$idtipointervento$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-md-3">
|
<div class="col-md-4">
|
||||||
{[ "type": "timestamp", "label": "<?php echo tr('Data/ora scadenza'); ?>", "name": "data_scadenza", "required": 0, "value": "$data_scadenza$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "$idstatointervento$", "class": "unblockable" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
{[ "type": "select", "label": "<?php echo tr('Zona'); ?>", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "$idzona$" , "placeholder": "<?php echo tr('Nessuna zona'); ?>", "extra": "readonly", "help":"<?php echo 'La zona viene definita automaticamente in base al cliente selezionato'; ?>." ]}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- RIGA 4 -->
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
{[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "$idtipointervento$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-4">
|
|
||||||
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "$idstatointervento$", "class": "unblockable" ]}
|
|
||||||
</div>
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$tecnici_assegnati = $database->fetchArray('SELECT id_tecnico FROM in_interventi_tecnici_assegnati WHERE id_intervento = '.prepare($id_record));
|
$tecnici_assegnati = $database->fetchArray('SELECT id_tecnico FROM in_interventi_tecnici_assegnati WHERE id_intervento = '.prepare($id_record));
|
||||||
|
@ -125,26 +252,27 @@ echo '
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- RIGA 5 -->
|
<!-- RIGA 5 -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "textarea", "label": "<?php echo tr('Richiesta'); ?>", "name": "richiesta", "required": 1, "class": "autosize", "value": "$richiesta$", "extra": "rows='5'", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
{[ "type": "textarea", "label": "<?php echo tr('Richiesta'); ?>", "name": "richiesta", "required": 1, "class": "autosize", "value": "$richiesta$", "extra": "rows='5'", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "ckeditor", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "class": "autosize", "value": "$descrizione$", "extra": "rows='10'", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
{[ "type": "ckeditor", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "class": "autosize", "value": "$descrizione$", "extra": "rows='10'", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "textarea", "label": "<?php echo tr('Note interne'); ?>", "name": "informazioniaggiuntive", "class": "autosize", "value": "$informazioniaggiuntive$", "extra": "rows='5'" ]}
|
{[ "type": "textarea", "label": "<?php echo tr('Note interne'); ?>", "name": "informazioniaggiuntive", "class": "autosize", "value": "$informazioniaggiuntive$", "extra": "rows='5'" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Visualizzo solo se l'anagrafica cliente è un ente pubblico
|
// Visualizzo solo se l'anagrafica cliente è un ente pubblico
|
||||||
if (!empty($record['idcontratto'])) {
|
if (!empty($record['idcontratto'])) {
|
||||||
$contratto = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($record['idcontratto']));
|
$contratto = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($record['idcontratto']));
|
||||||
|
|
Loading…
Reference in New Issue