2017-08-04 16:28:16 +02:00
< ? php
2020-08-04 16:29:01 +02:00
use Modules\Interventi\Intervento ;
2017-08-04 16:28:16 +02:00
include_once __DIR__ . '/../../core.php' ;
2018-05-05 09:29:09 +02:00
// Rimuovo session usate sui select combinati (sedi, preventivi, contratti, impianti)
2017-08-04 16:28:16 +02:00
unset ( $_SESSION [ 'superselect' ][ 'idanagrafica' ]);
unset ( $_SESSION [ 'superselect' ][ 'idsede' ]);
// Se ho passato l'idanagrafica, carico il tipo di intervento di default
2020-08-04 16:29:01 +02:00
$id_anagrafica = filter ( 'idanagrafica' );
$id_sede = filter ( 'idsede' );
$richiesta = filter ( 'richiesta' );
2017-09-18 18:11:19 +02:00
$impianti = [];
2018-08-11 15:37:38 +02:00
2020-08-04 16:29:01 +02:00
$origine_dashboard = get ( 'ref' ) !== null ;
$module_anagrafiche = Modules :: get ( 'Anagrafiche' );
2017-09-18 18:11:19 +02:00
2020-08-04 16:29:01 +02:00
// Calcolo dell'orario di inizio e di fine sulla base delle informazioni fornite
$orario_inizio = filter ( 'orario_inizio' );
$orario_fine = filter ( 'orario_fine' );
if ( null == $orario_inizio || '00:00:00' == $orario_inizio ) {
$orario_inizio = date ( 'H' ) . ':00:00' ;
$orario_fine = date ( 'H' , time () + 60 * 60 ) . ':00:00' ;
}
2019-07-11 15:05:36 +02:00
2020-08-04 16:29:01 +02:00
// Un utente del gruppo Tecnici può aprire attività solo a proprio nome
$id_tecnico = null ;
if ( $user [ 'gruppo' ] == 'Tecnici' && ! empty ( $user [ 'idanagrafica' ])) {
$id_tecnico = $user [ 'idanagrafica' ];
2017-08-04 16:28:16 +02:00
}
2020-08-04 16:29:01 +02:00
// Stato di default associato all'attivitò
$stato = $dbo -> fetchArray ( " SELECT * FROM in_statiintervento WHERE descrizione = 'In programmazione' " );
$id_stato = $stato [ 'idstatointervento' ];
// Se è indicata un'anagrafica relativa, si carica il tipo di intervento di default impostato
if ( ! empty ( $id_anagrafica )) {
$anagrafica = $dbo -> fetchOne ( 'SELECT idtipointervento_default, idzona FROM an_anagrafiche WHERE idanagrafica=' . prepare ( $id_anagrafica ));
$id_tipo = $anagrafica [ 'idtipointervento_default' ];
$id_zona = $anagrafica [ 'idzona' ];
2017-08-04 16:28:16 +02:00
}
2020-08-04 16:29:01 +02:00
// Gestione dell'impostazione dei Contratti
2018-10-25 13:46:16 +02:00
$id_intervento = filter ( 'id_intervento' );
2020-08-04 16:29:01 +02:00
$id_contratto = filter ( 'idcontratto' );
$id_promemoria_contratto = filter ( 'idcontratto_riga' );
// Trasformazione di un Promemoria dei Contratti in Intervento
if ( ! empty ( $id_contratto ) && ! empty ( $id_promemoria_contratto )) {
$contratto = $dbo -> fetchOne ( 'SELECT *, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = co_contratti.idanagrafica) AS idzona FROM co_contratti WHERE id = ' . prepare ( $id_contratto ));
$id_anagrafica = $contratto [ 'idanagrafica' ];
$id_zona = $contratto [ 'idzona' ];
// Informazioni del Promemoria
$promemoria = $dbo -> fetchOne ( 'SELECT *, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_promemoria.idtipointervento) AS tempo_standard FROM co_promemoria WHERE idcontratto=' . prepare ( $id_contratto ) . ' AND id = ' . prepare ( $id_promemoria_contratto ));
$id_tipo = $promemoria [ 'idtipointervento' ];
$data = ( null !== filter ( 'data' )) ? filter ( 'data' ) : $promemoria [ 'data_richiesta' ];
$richiesta = $promemoria [ 'richiesta' ];
$id_sede = $promemoria [ 'idsede' ];
$impianti_collegati = $promemoria [ 'idimpianti' ];
// Generazione dell'orario di fine sulla base del tempo standard definito dal Promemoria
if ( ! empty ( $promemoria [ 'tempo_standard' ])) {
$orario_fine = date ( 'H:i:s' , strtotime ( $orario_inizio ) + (( 60 * 60 ) * $promemoria [ 'tempo_standard' ]));
2018-06-23 18:35:08 +02:00
}
2020-08-04 16:29:01 +02:00
// Caricamento degli impianti a Contratto se non definiti in Promemoria
if ( empty ( $impianti_collegati )) {
$rs = $dbo -> fetchArray ( 'SELECT idimpianto FROM my_impianti_contratti WHERE idcontratto = ' . prepare ( $id_contratto ));
$impianti_collegati = implode ( ',' , array_column ( $rs , 'idimpianto' ));
2018-06-23 18:35:08 +02:00
}
2017-08-04 16:28:16 +02:00
}
2020-08-04 16:29:01 +02:00
// Gestione dell'aggiunta di una sessione a un Intervento senza sessioni (Promemoria intervento) da Dashboard
2018-09-20 09:21:34 +02:00
elseif ( ! empty ( $id_intervento )) {
2020-08-04 16:29:01 +02:00
$intervento = $dbo -> fetchOne ( 'SELECT *, (SELECT idcontratto FROM co_promemoria WHERE idintervento = in_interventi.id LIMIT 0,1) AS idcontratto, in_interventi.id_preventivo as idpreventivo, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = in_interventi.idtipointervento) AS tempo_standard FROM in_interventi WHERE id = ' . prepare ( $id_intervento ));
$id_tipo = $intervento [ 'idtipointervento' ];
$data = ( null !== filter ( 'data' )) ? filter ( 'data' ) : $intervento [ 'data_richiesta' ];
$data_richiesta = $intervento [ 'data_richiesta' ];
$data_scadenza = $intervento [ 'data_scadenza' ];
$richiesta = $intervento [ 'richiesta' ];
$id_sede = $intervento [ 'idsede' ];
$id_anagrafica = $intervento [ 'idanagrafica' ];
$id_cliente_finale = $intervento [ 'idclientefinale' ];
$id_stato = $intervento [ 'idstatointervento' ];
$id_contratto = $intervento [ 'idcontratto' ];
$id_preventivo = $intervento [ 'idpreventivo' ];
$id_zona = $intervento [ 'idzona' ];
// Generazione dell'orario di fine sulla base del tempo standard definito dall'Intervento
if ( ! empty ( $intervento [ 'tempo_standard' ])) {
$orario_fine = date ( 'H:i:s' , strtotime ( $orario_inizio ) + (( 60 * 60 ) * $intervento [ 'tempo_standard' ]));
2018-09-20 09:21:34 +02:00
}
2020-08-04 16:29:01 +02:00
$rs = $dbo -> fetchArray ( 'SELECT idimpianto FROM my_impianti_interventi WHERE idintervento = ' . prepare ( $id_intervento ));
$impianti_collegati = implode ( ',' , array_column ( $rs , 'idimpianto' ));
2018-09-20 09:21:34 +02:00
}
2020-08-04 16:29:01 +02:00
// Selezione dei tecnici assegnati agli impianti selezionati
if ( ! empty ( $impianti_collegati )) {
$tecnici_impianti = $dbo -> fetchArray ( 'SELECT idtecnico FROM my_impianti WHERE id IN (' . prepare ( $impianti_collegati ) . ')' );
$id_tecnico = array_unique ( array_column ( $tecnici_impianti , 'idtecnico' ));
2020-02-14 11:46:44 +01:00
}
2020-08-04 16:29:01 +02:00
// Impostazione della data se mancante
2017-08-04 16:28:16 +02:00
if ( empty ( $data )) {
2020-08-04 16:29:01 +02:00
$data = filter ( 'data' );
if ( null == $data ) {
2020-02-14 11:46:44 +01:00
$data = date ( 'Y-m-d' );
2017-08-04 16:28:16 +02:00
}
}
2020-08-04 16:29:01 +02:00
// Impostazione della data di fine da Dashboard
if ( empty ( $data_fine )) {
$data_fine = filter ( 'data_fine' );
if ( null == $data_fine ) {
$data_fine = date ( 'Y-m-d' );
}
}
2020-02-14 11:46:44 +01:00
$data_fine = $data_fine ? : $data ;
2020-08-04 16:29:01 +02:00
$inizio_sessione = $data . ' ' . $orario_inizio ;
$fine_sessione = $data_fine . ' ' . $orario_fine ;
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
// Calcolo del nuovo codice
$new_codice = Intervento :: getNextCodice ( $data );
2018-09-19 15:12:20 +02:00
2020-08-04 16:29:01 +02:00
$_SESSION [ 'superselect' ][ 'idanagrafica' ] = $id_anagrafica ;
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
echo '
< form action = " " method = " post " id = " add-form " >
2017-08-04 16:28:16 +02:00
< input type = " hidden " name = " op " value = " add " >
2020-08-04 16:29:01 +02:00
< input type = " hidden " name = " ref " value = " '.get('ref').' " >
2017-08-04 16:28:16 +02:00
< input type = " hidden " name = " backto " value = " record-edit " >
2019-11-19 16:06:50 +01:00
<!-- Fix creazione da Anagrafica -->
2020-08-04 16:29:01 +02:00
< input type = " hidden " name = " id_record " value = " " > ' ;
2019-11-19 16:06:50 +01:00
2020-08-04 16:29:01 +02:00
if ( ! empty ( $id_promemoria_contratto )) {
echo '<input type="hidden" name="idcontratto_riga" value="' . $id_promemoria_contratto . '">' ;
2018-09-20 09:21:34 +02:00
}
if ( ! empty ( $id_intervento )) {
echo '<input type="hidden" name="id_intervento" value="' . $id_intervento . '">' ;
}
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
echo '
2017-08-04 16:28:16 +02:00
<!-- DATI CLIENTE -->
< div class = " panel panel-primary " >
< div class = " panel-heading " >
2020-08-04 16:29:01 +02:00
< h3 class = " panel-title " > '.tr(' Dati cliente ').' </ h3 >
2017-08-04 16:28:16 +02:00
</ div >
< div class = " panel-body " >
<!-- RIGA 1 -->
< div class = " row " >
< div class = " col-md-4 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Cliente').' " , " name " : " idanagrafica " , " required " : 1 , " value " : " '. $id_anagrafica .' " , " ajax-source " : " clienti " , " icon-after " : " add|'. $module_anagrafiche['id'] .'|tipoanagrafica=Cliente&readonly_tipo=1 " , " readonly " : " '.(empty( $id_anagrafica ) ? 0 : 1).' " ]}
2017-08-04 16:28:16 +02:00
</ div >
< div class = " col-md-4 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Sede destinazione').' " , " name " : " idsede_destinazione " , " value " : " '. $id_sede .' " , " ajax-source " : " sedi " ]}
2017-08-04 16:28:16 +02:00
</ div >
< div class = " col-md-4 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Per conto di').' " , " name " : " idclientefinale " , " value " : " '. $id_cliente_finale .' " , " ajax-source " : " clienti " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
<!-- RIGA 2 -->
< div class = " row " >
2018-10-26 01:00:44 +02:00
< div class = " col-md-4 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Zona').' " , " name " : " idzona " , " values " : " query=SELECT id, CONCAT_WS( \ ' - \ ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome " , " value " : " '. $id_zona .' " , " placeholder " : " '.tr('Nessuna zona').' " , " help " : " '.tr('La zona viene definita automaticamente in base al cliente selezionato').'. " , " extra " : " readonly " , " value " : " '. $id_zona .' " ]}
2018-10-26 01:00:44 +02:00
</ div >
2017-08-04 16:28:16 +02:00
< div class = " col-md-4 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Preventivo').' " , " name " : " idpreventivo " , " value " : " '. $id_preventivo .' " , " ajax-source " : " preventivi " , " readonly " : " '.(empty( $id_contratto ) ? 0 : 1).' " ]}
2017-08-04 16:28:16 +02:00
</ div >
< div class = " col-md-4 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Contratto').' " , " name " : " idcontratto " , " value " : " '. $id_contratto .' " , " ajax-source " : " contratti " , " readonly " : " '.(empty( $id_contratto ) ? 0 : 1).' " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< div class = " row " >
2020-08-04 16:29:01 +02:00
< div class = " col-md-6 " >
{[ " type " : " select " , " label " : " '.tr('Impianto').' " , " multiple " : 1 , " name " : " idimpianti[] " , " value " : " '. $impianti_collegati .' " , " ajax-source " : " impianti-cliente " , " icon-after " : " add|'.Modules::get('Impianti')['id'].'|source=Attività " ]}
2018-10-26 01:00:44 +02:00
</ div >
< div class = " col-md-6 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Componenti').' " , " multiple " : 1 , " name " : " componenti[] " , " placeholder " : " '.tr('Seleziona prima un impianto').' " , " ajax-source " : " componenti " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ div >
</ div >
<!-- DATI INTERVENTO -->
< div class = " panel panel-primary " >
< div class = " panel-heading " >
2020-08-04 16:29:01 +02:00
< h3 class = " panel-title " > '.tr(' Dati intervento ').' </ h3 >
2017-08-04 16:28:16 +02:00
</ div >
< div class = " panel-body " >
<!-- RIGA 3 -->
< div class = " row " >
2019-02-27 13:17:47 +01:00
< div class = " col-md-3 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " timestamp " , " label " : " '.tr('Data/ora richiesta').' " , " name " : " data_richiesta " , " required " : 1 , " value " : " '.( $data_richiesta ?: '-now-').' " ]}
2019-02-27 13:17:47 +01:00
</ div >
2019-07-26 17:40:52 +02:00
2019-02-27 13:17:47 +01:00
< div class = " col-md-3 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " timestamp " , " label " : " '.tr('Data/ora scadenza').' " , " name " : " data_scadenza " , " required " : 0 , " value " : " '. $data_scadenza .' " ]}
2018-10-26 01:00:44 +02:00
</ div >
2017-08-04 16:28:16 +02:00
2019-02-27 13:17:47 +01:00
< div class = " col-md-3 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Tipo attività').' " , " name " : " idtipointervento " , " required " : 1 , " values " : " query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC " , " value " : " '. $id_tipo .' " , " ajax-source " : " tipiintervento " ]}
2017-08-04 16:28:16 +02:00
</ div >
2019-02-27 13:17:47 +01:00
< div class = " col-md-3 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.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 " : " '. $id_stato .' " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
<!-- RIGA 5 -->
< div class = " row " >
< div class = " col-md-12 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " textarea " , " label " : " '.tr('Richiesta').' " , " name " : " richiesta " , " required " : 1 , " value " : " '. $richiesta .' " , " extra " : " style= \ 'max-height:80px; \ ' " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ div >
</ div >
2018-09-19 15:12:20 +02:00
<!-- DATI INTERVENTO -->
2020-08-04 16:29:01 +02:00
< div class = " box box-primary collapsable '.( $origine_dashboard ? '' : 'collapsed-box').' " >
2018-09-19 15:12:20 +02:00
< div class = " box-header with-border " >
2020-08-04 16:29:01 +02:00
< h3 class = " box-title " > '.tr(' Ore di lavoro ').' </ h3 >
2018-09-19 15:12:20 +02:00
< div class = " box-tools pull-right " >
< button type = " button " class = " btn btn-box-tool " data - widget = " collapse " >
2020-08-04 16:29:01 +02:00
< i class = " fa fa-'.( $origine_dashboard ? 'minus' : 'plus').' " ></ i >
2018-09-19 15:12:20 +02:00
</ button >
</ div >
</ div >
< div class = " box-body " >
< div class = " row " >
< div class = " col-md-6 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " timestamp " , " label " : " '.tr('Inizio attività').' " , " name " : " orario_inizio " , " required " : '.($origine_dashboard ? 1 : 0).' , " value " : " '. $inizio_sessione .' " ]}
2018-09-19 15:12:20 +02:00
</ div >
< div class = " col-md-6 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " timestamp " , " label " : " '.tr('Fine attività').' " , " name " : " orario_fine " , " required " : '.($origine_dashboard ? 1 : 0).' , " value " : " '. $fine_sessione .' " ]}
2018-09-19 15:12:20 +02:00
</ div >
</ div >
< div class = " row " >
< div class = " col-md-12 " >
2020-08-04 16:29:01 +02:00
{[ " type " : " select " , " label " : " '.tr('Tecnici').' " , " multiple " : " 1 " , " name " : " idtecnico[] " , " required " : '.($origine_dashboard ? 1 : 0).' , " ajax-source " : " tecnici " , " value " : " '. $id_tecnico .' " , " icon-after " : " add|'. $module_anagrafiche['id'] .'|tipoanagrafica=Tecnico||'.(empty( $id_tecnico ) ? '' : 'disabled').' " ]}
2018-09-19 15:12:20 +02:00
</ div >
</ div >
</ div >
</ div >
2017-08-04 16:28:16 +02:00
<!-- PULSANTI -->
< div class = " row " >
< div class = " col-md-12 text-right " >
2020-08-04 16:29:01 +02:00
< button type = " button " class = " btn btn-primary " onclick = " salva(this) " >
< i class = " fa fa-plus " ></ i > '.tr(' Aggiungi ').'
</ button >
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ form >
2020-08-04 16:29:01 +02:00
< script > $ ( document ) . ready ( init ) </ script > ' ;
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
if ( ! empty ( $id_intervento )) {
echo '
2017-08-04 16:28:16 +02:00
< script type = " text/javascript " >
2020-08-04 16:29:01 +02:00
$ ( document ) . ready ( function () {
input ( " idsede_destinazione " ) . disable ();
input ( " idpreventivo " ) . disable ();
input ( " idcontratto " ) . disable ();
input ( " idimpianti " ) . disable ();
input ( " componenti " ) . disable ();
input ( " idanagrafica " ) . disable ();
input ( " idanagrafica " ) . find ( " button " ) . disable ();
input ( " idclientefinale " ) . disable ();
input ( " idzona " ) . disable ();
input ( " idtipointervento " ) . disable ();
input ( " idstatointervento " ) . disable ();
input ( " richiesta " ) . disable ();
input ( " data_richiesta " ) . disable ();
input ( " impianti " ) . find ( " button " ) . disable ();
});
</ script > ' ;
}
2018-09-20 09:21:34 +02:00
2020-08-04 16:29:01 +02:00
// Disabilito i campi che non devono essere modificati per poter collegare l'Intervento al Promemoria del Contratto
if ( ! empty ( $id_contratto ) && ! empty ( $id_promemoria_contratto )) {
2018-09-20 09:21:34 +02:00
echo '
2020-08-04 16:29:01 +02:00
< script type = " text/javascript " >
$ ( document ) . ready ( function () {
input ( " idanagrafica " ) . disable ();
input ( " idclientefinale " ) . disable ();
input ( " idzona " ) . disable ();
input ( " idtipointervento " ) . disable ();
input ( " impianti " ) . find ( " button " ) . disable ();
});
</ script > ' ;
2018-09-20 09:21:34 +02:00
}
2020-08-04 16:29:01 +02:00
echo '
< script type = " text/javascript " >
var anagrafica = input ( " idanagrafica " );
var sede = input ( " idsede_destinazione " );
var contratto = input ( " idcontratto " );
var preventivo = input ( " idpreventivo " );
$ ( document ) . ready ( function () {
if ( ! anagrafica . get ()){
sede . disable ();
input ( " idpreventivo " ) . disable ();
input ( " idcontratto " ) . disable ();
input ( " idimpianti " ) . disable ();
input ( " componenti " ) . disable ();
}
// Quando modifico orario inizio, allineo anche l\'orario fine
let orario_inizio = input ( " orario_inizio " ) . getElement ();
let orario_fine = input ( " orario_fine " ) . getElement ();
orario_inizio . on ( " dp.change " , function ( e ) {
orario_fine . data ( " DateTimePicker " ) . minDate ( e . date );
orario_fine . change ();
2017-08-04 16:28:16 +02:00
});
2018-03-24 14:24:17 +01:00
2018-03-14 11:27:58 +01:00
// Refresh modulo dopo la chiusura di una pianificazione attività derivante dalle attività
// da pianificare, altrimenti il promemoria non si vede più nella lista a destra
2018-11-13 14:51:19 +01:00
// TODO: da gestire via ajax
2020-08-04 16:29:01 +02:00
if ( $ ( " input[name=idcontratto_riga] " ) . val ()) {
$ ( " #modals > div button.close " ) . on ( " click " , function () {
2018-03-14 11:27:58 +01:00
location . reload ();
});
}
2017-08-04 16:28:16 +02:00
});
2020-08-04 16:29:01 +02:00
// Gestione della modifica dell\'anagrafica
anagrafica . change ( function () {
2020-07-31 14:25:50 +02:00
updateSelectOption ( " idanagrafica " , $ ( this ) . val ());
2020-08-04 16:29:01 +02:00
session_set ( " superselect,idanagrafica " , $ ( this ) . val (), 0 );
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
var value = ! $ ( this ) . val ();
var placeholder = value ? " '.tr('Seleziona prima un cliente').' " : " '.tr( " Seleziona un 'opzione").' " ;
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
sede . setDisabled ( value )
. getElement () . selectReset ( placeholder );
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
input ( " idpreventivo " ) . setDisabled ( value )
. getElement () . selectReset ( placeholder );
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
input ( " idcontratto " ) . setDisabled ( value )
. getElement () . selectReset ( placeholder );
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
input ( " idimpianti " ) . setDisabled ( value );
2018-06-23 18:35:08 +02:00
2020-08-04 16:29:01 +02:00
let data = anagrafica . getData ();
if ( data ) {
input ( " idzona " ) . set ( data . idzona ? data . idzona : " " );
// session_set("superselect,idzona", $(this).selectData().idzona, 0);
2018-02-20 16:46:23 +01:00
2020-08-04 16:29:01 +02:00
// Impostazione del tipo intervento da anagrafica
input ( " idtipointervento " ) . getElement ()
. selectSetNew ( $ ( this ) . selectData () . idtipointervento , $ ( this ) . selectData () . idtipointervento_descrizione );
2018-02-15 12:22:21 +01:00
}
2017-08-04 16:28:16 +02:00
});
2020-08-04 16:29:01 +02:00
// Gestione della modifica della sede selezionato
sede . change ( function () {
session_set ( " superselect,idsede_destinazione " , $ ( this ) . val (), 0 );
input ( " idimpianti " ) . getElement () . selectReset ();
let data = sede . getData ();
if ( data ) {
input ( " idzona " ) . set ( data . idzona ? data . idzona : " " );
// session_set("superselect,idzona", $(this).selectData().idzona, 0);
2018-02-15 12:22:21 +01:00
}
2017-08-04 16:28:16 +02:00
});
2020-08-04 16:29:01 +02:00
// Gestione della modifica del preventivo selezionato
preventivo . change ( function () {
if ( contratto . get () && preventivo . get ()){
contratto . getElement () . selectReset ();
2017-08-04 16:28:16 +02:00
}
2020-08-04 16:29:01 +02:00
if ( preventivo . get ()) {
input ( " idtipointervento " ) . getElement ()
. selectSetNew ( $ ( this ) . selectData () . idtipointervento , $ ( this ) . selectData () . idtipointervento_descrizione );
2017-08-04 16:28:16 +02:00
}
});
2020-08-04 16:29:01 +02:00
// Gestione della modifica del contratto selezionato
contratto . change ( function () {
if ( contratto . get () && preventivo . get ()){
preventivo . getElement () . selectReset ();
$ ( " input[name=idcontratto_riga] " ) . val ( " " );
}
2017-08-04 16:28:16 +02:00
});
2018-06-23 18:35:08 +02:00
2020-08-04 16:29:01 +02:00
// Gestione delle modifiche agli impianti selezionati
input ( " idimpianti " ) . change ( function () {
session_set ( " superselect,marticola " , $ ( this ) . val (), 0 );
2020-04-20 13:09:55 +02:00
2020-08-04 16:29:01 +02:00
input ( " componenti " ) . setDisabled ( ! $ ( this ) . val ())
. getElement () . selectReset ();
}); ' ;
2020-07-02 15:56:32 +02:00
2020-08-04 16:29:01 +02:00
if ( filter ( 'orario_fine' ) !== null ) {
echo '
// Automatismo del tempo standard
input ( " idtipointervento " ) . change ( function () {
let data = $ ( this ) . selectData ();
if ( data && data . tempo_standard > 0 ) {
let orario_inizio = input ( " orario_inizio " ) . get ();
if ( moment ( orario_inizio , globals . timestamp_format , globals . locale ) . isValid ()) {
let tempo_standard = data . tempo_standard * 60 ;
let nuovo_orario_fine = moment ( orario_inizio ) . add ( tempo_standard , " m " );
input ( " orario_fine " ) . set ( moment ( nuovo_orario_fine ) . format ( globals . timestamp_format ));
2020-03-10 18:58:40 +01:00
}
2018-05-21 12:33:07 +02:00
}
2020-08-04 16:29:01 +02:00
}); ' ;
}
2018-11-23 17:58:59 +01:00
2020-08-04 16:29:01 +02:00
if ( ! $origine_dashboard ) {
echo '
input ( " idtecnico " ) . change ( function () {
var value = $ ( this ) . val () > 0 ? true : false ;
input ( " orario_inizio " ) . setRequired ( value );
input ( " orario_fine " ) . setRequired ( value );
input ( " data " ) . setRequired ( value );
}); ' ;
}
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
echo '
var ref = " '.get('ref').' " ;
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
async function salva ( button ) {
// Submit attraverso ricaricamento della pagina
if ( ! ref ) {
$ ( " #add-form " ) . submit ();
return ;
}
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
// Submit dinamico tramite AJAX
let valid = await salvaForm ( button , " #add-form " );
if ( ! valid ) return ;
2018-11-23 17:58:59 +01:00
2020-08-04 16:29:01 +02:00
// Se l\'aggiunta intervento proviene dalla scheda di pianificazione ordini di servizio della dashboard, la ricarico
if ( ref == " dashboard " ) {
$ ( " #modals > div " ) . modal ( " hide " );
2018-11-23 17:58:59 +01:00
2020-08-04 16:29:01 +02:00
// Aggiornamento elenco interventi da pianificare
$ ( " #calendar " ) . fullCalendar ( " refetchEvents " );
$ ( " #calendar " ) . fullCalendar ( " render " );
}
2017-08-04 16:28:16 +02:00
2020-08-04 16:29:01 +02:00
// Se l\'aggiunta intervento proviene dai contratti, faccio il submit via ajax e ricarico la tabella dei contratti
else if ( ref == " interventi_contratti " ) {
$ ( " #modals > div " ) . modal ( " hide " );
parent . window . location . reload ();
//TODO: da gestire via ajax
//$("#elenco_interventi > tbody").load(globals.rootdir + "/modules/contratti/plugins/contratti.pianificazioneinterventi.php?op=get_interventi_pianificati&idcontratto='.$id_contratto.'");
2017-08-04 16:28:16 +02:00
}
2020-08-04 16:29:01 +02:00
}
</ script > ' ;