254 lines
10 KiB
PHP
254 lines
10 KiB
PHP
<?php
|
|
$disabled_fields = array();
|
|
$tecnici_default = array();
|
|
|
|
$idstatoagenda = "CALL";
|
|
|
|
// rimuovo session usate sui select combinati (sedi, preventivi, contratti, impianti)
|
|
unset( $_SESSION['superselect']['idanagrafica'] );
|
|
unset( $_SESSION['superselect']['idsede'] );
|
|
|
|
|
|
//Se ho passato l'idanagrafica, carico il tipo di intervento di default
|
|
$idanagrafica = $html->form('idanagrafica');
|
|
$idsede = $html->form('idsede');
|
|
|
|
|
|
|
|
|
|
//Calcolo orario di inizio e fine di default
|
|
if( $html->form('orario_inizio') != '' ){
|
|
$orario_inizio = $html->form('orario_inizio');
|
|
$orario_fine = $html->form('orario_fine');
|
|
}
|
|
else{
|
|
$orario_inizio = date("H:")."00";
|
|
$orario_fine = date("H:\0\0", strtotime( date("Y-m-d H:")."00" ) + 60*60);
|
|
}
|
|
|
|
|
|
$idcontratto_riga = $html->form('idcontratto_riga');
|
|
|
|
if( strtotime($html->form('data')) != '' ){
|
|
$data = date( "d/m/Y", strtotime($html->form('data')) );
|
|
}
|
|
|
|
else{
|
|
$data = date( "d/m/Y" );
|
|
}
|
|
|
|
$idintervento_template = get_var("Formato codice agenda");
|
|
$idintervento_template = str_replace( '#', '%', $idintervento_template );
|
|
|
|
|
|
$rs = $dbo->fetchArray("SELECT idintervento FROM agenda WHERE idintervento=(SELECT MAX(CAST(idintervento AS SIGNED)) FROM agenda) AND idintervento LIKE(\"".$idintervento_template."\") ORDER BY idintervento DESC LIMIT 0,1");
|
|
$new_codice = get_next_code( $rs[0]['idintervento'], 1, get_var("Formato codice agenda") );
|
|
|
|
if (!is_numeric($new_codice)):
|
|
$rs = $dbo->fetchArray("SELECT idintervento FROM agenda WHERE idintervento LIKE(\"".$idintervento_template."\") ORDER BY idintervento DESC LIMIT 0,1");
|
|
$new_codice = get_next_code( $rs[0]['idintervento'], 1, get_var("Formato codice agenda") );
|
|
endif;
|
|
|
|
|
|
?>
|
|
|
|
<form action="editor.php?id_module=$id_module$" method="post" id="add-form" onsubmit="return add_intervento();">
|
|
<input type="hidden" name="op" value="add">
|
|
<input type="hidden" name="ref" value="<?php echo $_GET['ref'];?>">
|
|
<input type="hidden" name="backto" value="record-edit">
|
|
|
|
<!-- DATI CLIENTE -->
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">Appuntamento n° <?php echo $new_codice ?> </h3>
|
|
</div>
|
|
|
|
<div class="panel-body">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
{[ "type": "select", "label": "Anagrafica", "name": "idanagrafica", "required": 1, "class": "", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione 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 WHERE deleted=0 <?php echo $filtro ?> ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica ?>", "extra": "" ]}
|
|
</div>
|
|
<div class="col-md-4">
|
|
<?php
|
|
if( $idanagrafica == '' ){
|
|
?>
|
|
{[ "type": "select", "label": "<?php echo _("Sede"); ?>", "name": "idsede", "required": 0, "class": "", "values": "", "value": "Seleziona prima un cliente...", "extra": "", "ajax-source": "sedi" ]}
|
|
<?php
|
|
}
|
|
else{
|
|
?>
|
|
{[ "type": "select", "label": "<?php echo _("Sede"); ?>", "name": "idsede", "required": 0, "class": "", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='<?php echo $idanagrafica ?>'", "value": "<?php echo $idsede ?>", "extra": "<?php if( in_array('idsede', $disabled_fields) ){ echo "disabled='true'"; } ?>", "ajax-source": "sedi" ]}
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- DATI INTERVENTO -->
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">Dettaglio</h3>
|
|
</div>
|
|
|
|
<div class="panel-body">
|
|
<!-- RIGA 3 -->
|
|
<div class="row">
|
|
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "text", "label": "<?php echo _("Data richiesta"); ?>", "name": "data_richiesta", "required": 1, "class": "datepicker text-center", "value": "<?php echo date('d/m/Y') ?>", "extra": "" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "text", "label": "<?php echo _("Data appuntamento"); ?>", "name": "data", "required": 1, "class": "datepicker text-center", "value": "<?php echo $data ?>", "extra": "" ]}
|
|
</div>
|
|
<div class="col-md-2 bootstrap-timepicker">
|
|
{[ "type": "text", "label": "<?php echo _("Orario inizio"); ?>", "name": "orario_inizio", "required": 1, "class": "time-mask text-center", "values": "", "value": "<?php echo $orario_inizio ?>", "extra": "" ]}
|
|
</div>
|
|
|
|
<div class="col-md-2 bootstrap-timepicker">
|
|
{[ "type": "text", "label": "<?php echo _("Orario fine"); ?>", "name": "orario_fine", "required": 1, "class": "time-mask text-center", "values": "", "value": "<?php echo $orario_fine ?>", "extra": "onfocus=\"if( $(this).val() == '' ){ $(this).val( $('#orario_inizio').val() ); }\"" ]}
|
|
</div>
|
|
<div class="col-md-2">
|
|
{[ "type": "text", "label": "<?php echo _("N°"); ?>", "name": "idintervento", "required": 1, "class": "text-center", "value": "<?php echo $new_codice ?>", "extra": "readonly" ]}
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<!-- RIGA 4 -->
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
{[ "type": "select", "label": "<?php echo _("Tipologia"); ?>", "name": "idtipoagenda", "required": 1, "class": "", "values": "query=SELECT idtipoagenda AS id, descrizione FROM agenda_tipi", "value": "<?php echo $idtipoagenda ?>", "extra": "" ]}
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
{[ "type": "select", "label": "<?php echo _("Stato"); ?>", "name": "idstatoagenda", "required": 1, "class": "", "values": "query=SELECT idstatoagenda AS id, descrizione, colore AS _bgcolor_ FROM agenda_stati", "value": "<?php echo $idstatoagenda ?>", "extra": "" ]}
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<!-- RIGA 5 -->
|
|
<div class="row">
|
|
|
|
<div class="col-md-12">
|
|
{[ "type": "select", "label": "<?php echo _("Operatore"); ?>", "multiple": "1", "name": "idtecnico[]", "required": 1, "class": "", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione 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 WHERE descrizione = 'Tecnico' AND deleted=0 ORDER BY ragione_sociale", "value": "<?php echo implode(',', $tecnici_default) ?>", "extra": "" ]}
|
|
</div>
|
|
|
|
<div class="col-md-12">
|
|
{[ "type": "textarea", "label": "<?php echo _("Richiesta"); ?>", "name": "richiesta", "required": 1, "class": "autosize", "value": "<?php echo $richiesta ?>", "extra": "style='max-height:80px; ' " ]}
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- PULSANTI -->
|
|
<div class="row">
|
|
<div class="col-md-12 text-right">
|
|
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo _("Aggiungi"); ?></button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
|
|
|
|
<script src="<?php echo $js ?>/bootstrap-timepicker.min.js"></script>
|
|
<script type="text/javascript" >
|
|
$(document).ready( function(){
|
|
$("#idsede").prop("disabled", true);
|
|
});
|
|
|
|
var ref = "<?php echo $_GET['ref'] ?>";
|
|
var id_module = "<?php echo $_GET['id_module'] ?>";
|
|
|
|
$('#idanagrafica').change( function(){
|
|
session_set( 'superselect,idanagrafica', $(this).val(), 0 );
|
|
|
|
$("#idsede").prop("disabled", false);
|
|
$("#idsede").val(null).trigger("change");
|
|
|
|
});
|
|
|
|
$('#idsede').change( function(){
|
|
session_set( 'superselect,idsede', $(this).val(), 0 );
|
|
$("#matricola").val(null).trigger("change");
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function add_intervento(){
|
|
|
|
if( $('#idtecnico option:selected').length == 0 ){
|
|
alert( "Seleziona almeno un operatore!" );
|
|
return false;
|
|
}
|
|
else if( $('#idintervento').val() != '' && $('#data').val() != '' && $('#idanagrafica').val() != '' && $('#idtipoagenda').val() != '' && $('#idstatoagenda').val() != '' && $('#richiesta').val() != '' ){
|
|
|
|
//Se l'aggiunta appuntamento proviene dal calendario, faccio il submit via ajax e ricarico gli eventi...
|
|
if( ref=="agenda" ){
|
|
//Eventuale file actions.php customizzato
|
|
<?php if( file_exists($docroot."/modules/agenda/custom/actions.php") ){ ?>
|
|
$.post('<?php echo $rootdir ?>/modules/agenda/custom/actions.php', $('#add-form').serialize(), function(data,response){
|
|
<?php } else if( file_exists($docroot."/modules/agenda/actions.php") ){ ?>
|
|
$.post('<?php echo $rootdir ?>/modules/agenda/actions.php', $('#add-form').serialize(), function(data,response){
|
|
<?php } ?>
|
|
|
|
if( response=="success" ){
|
|
if( data!="ko" ){
|
|
$('#bs-popup').modal('hide');
|
|
$("#calendar").fullCalendar('refetchEvents');
|
|
$('#calendar').fullCalendar('render');
|
|
}else{
|
|
alert ("idintevento '"+$('#idintervento').val()+"' già esistente, controlla il codice appuntamento");
|
|
$('input#idintervento').focus();
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
|
|
//...altrimenti faccio il submit normale
|
|
else{
|
|
|
|
//Eventuale file actions.php customizzato
|
|
<?php if( file_exists($docroot."/modules/agenda/custom/actions.php") ){ ?>
|
|
$.post('<?php echo $rootdir ?>/modules/agenda/custom/actions.php', $('#add-form').serialize(), function(data,response){
|
|
<?php } else if( file_exists($docroot."/modules/agenda/actions.php") ){ ?>
|
|
$.post('<?php echo $rootdir ?>/modules/agenda/actions.php', $('#add-form').serialize(), function(data,response){
|
|
<?php } ?>
|
|
|
|
if( response=="success" ){
|
|
if( data!="ko" ){
|
|
$("#bs-popup").modal('hide');
|
|
window.location.href = "editor.php?id_module="+id_module+"&id_record="+data;
|
|
}else{
|
|
alert ("idintevento '"+$('#idintervento').val()+"' già esistente, controlla il codice appuntamento");
|
|
$('input#idintervento').focus();
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
}
|
|
else{
|
|
alert ('Alcuni campi sono incompleti.');
|
|
}
|
|
|
|
return false;
|
|
}
|
|
</script>
|