diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 1c69b8726..029c6398e 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -39,6 +39,11 @@ switch (post('op')) { $contratto = Contratto::build($anagrafica, post('nome')); // Salvataggio informazioni sul rinnovo + $contratto->idstato = post('idstato'); + $contratto->validita = post('validita'); + $contratto->tipo_validita = post('tipo_validita'); + $contratto->data_accettazione = post('data_accettazione') ?: null; + $contratto->data_conclusione = post('data_conclusione') ?: null; $contratto->rinnovabile = post('rinnovabile'); $contratto->rinnovo_automatico = post('rinnovo_automatico'); $contratto->giorni_preavviso_rinnovo = post('giorni_preavviso_rinnovo'); @@ -47,6 +52,10 @@ switch (post('op')) { $id_record = $contratto->id; + if (isAjaxRequest()) { + echo json_encode(['id' => $id_record, 'text' => 'Contratto '.$contratto->numero.' del '.dateFormat($contratto->data_bozza).' - '.$contratto->nome]); + } + flash()->info(tr('Aggiunto contratto numero _NUM_!', [ '_NUM_' => $contratto['numero'], ])); diff --git a/modules/contratti/add.php b/modules/contratti/add.php index c0621b472..b42fde314 100755 --- a/modules/contratti/add.php +++ b/modules/contratti/add.php @@ -21,6 +21,8 @@ include_once __DIR__.'/../../core.php'; $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idanagrafica']; +$stati = get('pianificabile') ? 'SELECT id, descrizione FROM co_staticontratti WHERE is_pianificabile=1' : 'SELECT id, descrizione FROM co_staticontratti'; + echo '
@@ -39,10 +41,33 @@ echo ' +
+
+ {[ "type": "select", "label": "'.tr('Stato').'", "name": "idstato", "required": 1, "values": "query='.$stati.'" ]} +
+ +
+ {[ "type": "date", "label": "'.tr('Data accettazione').'", "name": "data_accettazione" ]} +
+ +
+ {[ "type": "date", "label": "'.tr('Data conclusione').'", "name": "data_conclusione" ]} +
+ +
+ {[ "type": "number", "label": "'.tr('Validità contratto').'", "name": "validita", "decimals": "0", "icon-after": "choice|period|'.$record['tipo_validita'].'", "help": "'.tr('Il campo Validità contratto viene utilizzato per il calcolo della Data di conclusione del contratto').'" ]} +
+
+ -
+

'.tr('Informazioni per rinnovo').'

+
+ +
@@ -84,4 +109,13 @@ echo ' input("ore_preavviso_rinnovo").setDisabled(disabled); input("rinnovo_automatico").setDisabled(disabled); }); + + $("#data_conclusione").on("dp.change", function (e) { + let data_accettazione = $("#data_accettazione"); + data_accettazione.data("DateTimePicker").maxDate(e.date); + + if(data_accettazione.data("DateTimePicker").date() > e.date){ + data_accettazione.data("DateTimePicker").date(e.date); + } + }); '; diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 50bb4465e..8ddfb07ef 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -199,6 +199,7 @@ switch (post('op')) { $intervento->id_preventivo = post('idpreventivo'); $intervento->id_contratto = post('idcontratto'); $intervento->id_ordine = post('idordine'); + $intervento->idreferente = post('idreferente'); $intervento->richiesta = post('richiesta'); $intervento->idsede_destinazione = $idsede_destinazione; $intervento->data_scadenza = $data_scadenza; diff --git a/modules/interventi/add.php b/modules/interventi/add.php index b425d232e..5b7a6734e 100755 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -183,7 +183,7 @@ echo '
- {[ "type": "select", "label": "'.tr('Contratto').'", "name": "idcontratto", "value": "'.$id_contratto.'", "ajax-source": "contratti", "readonly": "'.(empty($id_contratto) ? 0 : 1).'", "select-options": '.json_encode(['idanagrafica' => $id_anagrafica]).' ]} + {[ "type": "select", "label": "'.tr('Contratto').'", "name": "idcontratto", "value": "'.$id_contratto.'", "ajax-source": "contratti", "readonly": "'.(empty($id_contratto) ? 0 : 1).'", "select-options": '.json_encode(['idanagrafica' => $id_anagrafica]).', "icon-after": "add|'.Modules::get('Contratti')['id'].'|pianificabile=1&idanagrafica='.$id_anagrafica.'" ]}
@@ -191,6 +191,12 @@ echo '
+
+
+ {[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "ajax-source": "referenti", "select-options": '.json_encode(['idanagrafica' => $id_anagrafica, 'idclientefinale' => $id_cliente_finale]).', "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$id_anagrafica.'" ]} +
+
+
{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "required": 1, "value": "'.($data_richiesta ?: '-now-').'" ]} @@ -401,6 +407,7 @@ if (!empty($id_intervento)) { input("idpreventivo").disable(); input("idcontratto").disable(); input("idordine").disable(); + input("idreferente").disable(); input("idimpianti").disable(); input("componenti").disable(); input("idanagrafica").disable(); @@ -433,6 +440,8 @@ echo ' var contratto = input("idcontratto"); var preventivo = input("idpreventivo"); var ordine = input("idordine"); + var referente = input("idreferente"); + var cliente_finale = input("idclientefinale"); $(document).ready(function() { if(!anagrafica.get()){ @@ -440,6 +449,7 @@ echo ' preventivo.disable(); contratto.disable(); ordine.disable(); + referente.disable(); input("idimpianti").disable(); input("componenti").disable(); } else{ @@ -494,6 +504,9 @@ echo ' ordine.setDisabled(selected) .getElement().selectReset(placeholder); + referente.setDisabled(selected) + .getElement().selectReset(placeholder); + input("idimpianti").setDisabled(selected); let data = anagrafica.getData(); @@ -520,8 +533,23 @@ echo ' plus_impianto = $(".modal #idimpianti").parent().find(".btn"); plus_impianto.attr("onclick", plus_impianto.attr("onclick").replace(/id_anagrafica=[0-9]*/, "id_anagrafica=" + value)); + + plus_contratto = $(".modal #idcontratto").parent().find(".btn"); + plus_contratto.attr("onclick", plus_contratto.attr("onclick").replace(/idanagrafica=[0-9]*/, "idanagrafica=" + value)); + + plus_referente = $(".modal #idreferente").parent().find(".btn"); + plus_referente.attr("onclick", plus_referente.attr("onclick").replace(/id_parent=[0-9]*/, "id_parent=" + value)); }); + //gestione del cliente finale + cliente_finale.change(function() { + updateSelectOption("idclientefinale", $(this).val()); + session_set("superselect,idclientefinale", $(this).val(), 0); + + referente.getElement() + .selectReset("'.tr("Seleziona un'opzione").'"); + }); + // Gestione della modifica della sede selezionato sede.change(function() { updateSelectOption("idsede_destinazione", $(this).val());