diff --git a/modules/interventi/add.php b/modules/interventi/add.php index cd7896129..60c00be0a 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -236,7 +236,7 @@ if (!empty($id_intervento)) {
- {[ "type": "timestamp", "label": "", "name": "data_richiesta", "required": 1, "value": "" ]} + {[ "type": "timestamp", "label": "", "name": "data_richiesta", "required": 1, "value": "" ]}
diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index d68783a85..80c3b4624 100644 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -95,7 +95,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
- {[ "type": "timestamp", "label": "", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "" ]} + {[ "type": "timestamp", "label": "", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "" ]}
diff --git a/plugins/pianificazione_interventi/actions.php b/plugins/pianificazione_interventi/actions.php index 3f6b6cc7d..d5e37bc60 100644 --- a/plugins/pianificazione_interventi/actions.php +++ b/plugins/pianificazione_interventi/actions.php @@ -62,10 +62,10 @@ switch (filter('op')) { // pianificazione ciclica case 'pianificazione': $intervallo = post('intervallo'); - $parti_da_oggi = post('inizio'); + $min_date = post('data_inizio'); // if principale - if (!empty($id_record) && !empty($intervallo)) { + if (!empty($id_record) && !empty($intervallo) && post('pianifica_promemoria')) { $qp = 'SELECT *, (SELECT idanagrafica FROM co_contratti WHERE id = '.$id_parent.' ) AS idanagrafica, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_parent.' ) AS data_conclusione, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_promemoria.idtipointervento) AS tipointervento FROM co_promemoria WHERE co_promemoria.id = '.$id_record; $rsp = $dbo->fetchArray($qp); @@ -83,13 +83,17 @@ switch (filter('op')) { $idanagrafica = $rsp[0]['idanagrafica']; // se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria) - if ($parti_da_oggi) { + //if ($data_inizio) { // oggi - $min_date = date('Y-m-d'); - } else { - $min_date = date('Y-m-d', strtotime($data_richiesta)); - } - + //$min_date = date('Y-m-d'); + //} else { + //questo promemoria + //$min_date = date('Y-m-d', strtotime($data_richiesta)); + //} + $data_richiesta = $min_date; + + + // inizio controllo data_conclusione, data valida e maggiore della $min_date if ((date('Y', strtotime($data_conclusione)) > 1970) && (date('Y-m-d', strtotime($min_date)) <= date('Y-m-d', strtotime($data_conclusione)))) { $i = 0; @@ -99,7 +103,7 @@ switch (filter('op')) { $data_richiesta = date('Y-m-d', strtotime($data_richiesta.' + '.(($i == 0) ? 0 : $intervallo).' days')); ++$i; - // controllo nuova data richiesta --> solo date maggiori o uguali di [oggi o data richiesta iniziale] ma che non superano la data di fine del contratto + // controllo nuova data richiesta --> solo date maggiori o uguali di data richiesta iniziale ma che non superano la data di fine del contratto if ((date('Y-m-d', strtotime($data_richiesta)) >= $min_date) && (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione)))) { // Controllo che non esista già un promemoria idcontratto, idtipointervento e data_richiesta. if (count($dbo->fetchArray("SELECT id FROM co_promemoria WHERE data_richiesta = '".$data_richiesta."' AND idtipointervento = '".$idtipointervento."' AND idcontratto = '".$id_parent."' ")) == 0) { @@ -227,7 +231,7 @@ switch (filter('op')) { } // fine controllo data_conclusione } else { - flash()->error(tr('Errore durante la pianificazione')); + flash()->warning(tr('Nessun promemoria pianificato')); } break; diff --git a/plugins/pianificazione_interventi/edit.php b/plugins/pianificazione_interventi/edit.php index ec29bfed8..ad5696e19 100644 --- a/plugins/pianificazione_interventi/edit.php +++ b/plugins/pianificazione_interventi/edit.php @@ -15,15 +15,20 @@ $records = $dbo->fetchArray('SELECT *, (SELECT descrizione FROM in_tipiintervent $pianificabile = $dbo->fetchOne('SELECT pianificabile FROM co_staticontratti WHERE id = :id', [ ':id' => $contratto['idstato'], ])['pianificabile']; +if ($pianificabile){ + $pianificabile = (date( 'Y', strtotime($contratto['data_accettazione'])) > 1970 and date( 'Y', strtotime($contratto['data_conclusione'])) > 1970) ? true : false ; +} $stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `pianificabile` = 1')['stati_pianificabili']; echo ' - - - -

'.tr('Puoi pianificare dei "promemoria" o direttamente gli interventi da effettuare entro determinate scadenze. Per poter pianificare i promemoria, il contratto deve avere la data di conclusione definita ed essere in uno dei seguenti stati: '.$stati_pianificabili.'').'.

'; +

'.tr('Puoi pianificare dei "promemoria" o direttamente gli interventi da effettuare entro determinate scadenze. Per poter pianificare i promemoria, il contratto deve avere data accettazione e data conclusione definita ed essere in uno dei seguenti stati: '.$stati_pianificabili.'').'. + + + + +

'; // Nessun intervento pianificato if (!empty($records)) { @@ -135,7 +140,7 @@ if (!empty($records)) { '.$info_allegati.' - @@ -164,10 +169,18 @@ if (!empty($records)) { } } - echo ' -'; + + //TODO: terminare con gestione swal standard, prevedere salvataggio ajax e possibilità di lanciare pop-up + /*$msg = '{[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "values": "query=SELECT co_contratti_tipiintervento.idtipointervento AS id, in_tipiintervento.descrizione AS descrizione FROM in_tipiintervento INNER JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento=co_contratti_tipiintervento.idtipointervento WHERE idcontratto='.prepare($id_record).' AND (co_contratti_tipiintervento.costo_ore!=0 OR co_contratti_tipiintervento.costo_km!=0 OR co_contratti_tipiintervento.costo_dirittochiamata!=0) ORDER BY in_tipiintervento.descrizione" ]}'; + echo ' + ';*/ + $options = $dbo->fetchArray('SELECT co_contratti_tipiintervento.*, in_tipiintervento.descrizione FROM in_tipiintervento INNER JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento=co_contratti_tipiintervento.idtipointervento WHERE idcontratto='.prepare($id_record).' AND (co_contratti_tipiintervento.costo_ore!=0 OR co_contratti_tipiintervento.costo_km!=0 OR co_contratti_tipiintervento.costo_dirittochiamata!=0) ORDER BY in_tipiintervento.descrizione'); @@ -210,7 +223,7 @@ echo ' $.post(globals.rootdir + "/actions.php?id_plugin='.$plugin['id'].'&id_parent='.$id_record.'", { op: "add-promemoria", - data_richiesta: "'.date('Y-m-d').'", + data_richiesta: "'.$contratto['data_accettazione'].'", idtipointervento: $(".swal2-select").val() }).done(function(data) { launch_modal("Nuovo promemoria", globals.rootdir + "/plugins/'.$plugin['directory'].'/pianficazione.php?id_plugin='.$plugin['id'].'&id_parent='.$id_record.'&id_record=" + data + "&add=1"); diff --git a/plugins/pianificazione_interventi/pianficazione.php b/plugins/pianificazione_interventi/pianficazione.php index 83226cf08..d36602bde 100644 --- a/plugins/pianificazione_interventi/pianficazione.php +++ b/plugins/pianificazione_interventi/pianficazione.php @@ -75,7 +75,7 @@ echo '
- {[ "type": "date", "label": "'.tr('Data promemoria').'", "name": "data_richiesta", "required": 1, "value": "'.$data_richiesta.'", "readonly": '.intval(empty($is_add)).' ]} + {[ "type": "date", "label": "'.tr('Data promemoria').'", "name": "data_richiesta", "required": 1, "value": "'.$data_accettazione.'", "readonly": '.intval(empty($is_add)).', "min-date": "'.$data_accettazione.'", "max-date": "'.$data_conclusione.'" ]}
@@ -165,14 +165,19 @@ echo '
+ +
+ {[ "type": "checkbox", "label": "'.tr("Promemoria ciclico").'", "name": "pianifica_promemoria", "value": "0", "placeholder": "'.tr("Pianificare promemoria ciclici").'", "help": "'.tr("Pianificare ciclicamente altri promemoria identici a questo").'" ]} +
+
- {[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1" ]} + {[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1", "maxlength": "3", "disabled": "1" ]}
-
- {[ "type": "date", "label": "'.tr('Inizio pianificazione').'", "name": "inizio", "help": "'.tr('Data accettazione contratto').'", "name": "data_inizio", "value": "'.$data_accettazione.'" ]} +
+ {[ "type": "date", "label": "'.tr('Inizio pianificazione').'", "help": "'.tr('Intervallo compreso dalla data accettazione contratto fino alla data di conclusione').'", "name": "data_inizio", "value": "'.$data_accettazione.'", "disabled": "1", "min-date": "'.$data_accettazione.'", "max-date": "'.$data_conclusione.'" ]}
- +
{[ "type": "date", "label": "'.tr('Fine pianificazione').'", "help": "'.tr('Data conclusione contratto').'", "name": "data_conclusione", "extra": "readonly", "value": "'.$data_conclusione.'" ]}
@@ -192,7 +197,7 @@ echo '
- {[ "type": "checkbox", "label": "'.tr("Pianifica anche l'intervento").'", "name": "pianifica_intervento", "value": "0", "placeholder": "'.tr("Pianificare già l'intervento").'" ]} + {[ "type": "checkbox", "label": "'.tr("Pianifica anche l'intervento").'", "name": "pianifica_intervento", "value": "0", "placeholder": "'.tr("Pianificare già l'intervento").'", "disabled": "1" ]}
@@ -217,7 +222,7 @@ echo '
- +
'; @@ -243,6 +248,32 @@ echo ' $("#bs-popup .btn-primary").hide(); } }); + + + $("#pianifica_promemoria").click(function() { + if ($(this).is(":checked")){ + $("#intervallo").removeAttr("disabled"); + $("#data_inizio").removeAttr("disabled"); + $("#pianifica_intervento").removeAttr("disabled"); + + $("#bs-popup .btn-primary").removeAttr("disabled"); + } else { + $("#intervallo").prop("disabled", true); + $("#data_inizio").prop("disabled", true); + $("#pianifica_intervento").prop("checked", false); + $("#pianifica_intervento").prop("disabled", true); + $("#bs-popup .btn-primary").prop("disabled", true); + + $("#idtecnico").prop("disabled", true); + $("#idtecnico").removeAttr("required"); + $("#orario_inizio").prop("disabled", true); + $("#orario_fine").prop("disabled", true); + $("#orario_inizio").removeAttr("required"); + $("#orario_fine").removeAttr("required"); + + } + }); + $("#pianifica_intervento").click(function() { if ($(this).is(":checked")){