gest366/modules/agenda/add.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>