Aggiunti controlli per pianificazione attività da contratti
This commit is contained in:
parent
cf498a7c56
commit
5aa26b58d6
|
@ -236,7 +236,7 @@ if (!empty($id_intervento)) {
|
|||
<!-- RIGA 3 -->
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "timestamp", "label": "<?php echo tr('Data richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "<?php echo $data_richiesta ?: '-now-'; ?>" ]}
|
||||
{[ "type": "timestamp", "label": "<?php echo tr('Data e ora richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "<?php echo $data_richiesta ?: '-now-'; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
|
|
@ -95,7 +95,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "timestamp", "label": "<?php echo tr('Data richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||
{[ "type": "timestamp", "label": "<?php echo tr('Data e ora richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 '
|
||||
<span class="tip pull-right" title="'.tr("I promemoria verranno visualizzati sulla 'Dashboard' e serviranno per semplificare la pianificazione del giorno dell'intervento, ad esempio nel caso di interventi con cadenza mensile").'">
|
||||
<i class="fa fa-question-circle-o fa-2x"></i>
|
||||
</span>
|
||||
|
||||
<p>'.tr('Puoi <b>pianificare dei "promemoria" o direttamente gli interventi</b> da effettuare entro determinate scadenze. Per poter pianificare i promemoria, il contratto deve avere la <b>data di conclusione</b> definita ed essere in uno dei seguenti stati: <b>'.$stati_pianificabili.'</b>').'.</p>';
|
||||
<p>'.tr('Puoi <b>pianificare dei "promemoria" o direttamente gli interventi</b> da effettuare entro determinate scadenze. Per poter pianificare i promemoria, il contratto deve avere <b>data accettazione</b> e <b>data conclusione</b> definita ed essere in uno dei seguenti stati: <b>'.$stati_pianificabili.'</b>').'.
|
||||
|
||||
|
||||
<span class="tip" title="'.tr("I promemoria verranno visualizzati sulla 'Dashboard' e serviranno per semplificare la pianificazione del giorno dell'intervento, ad esempio nel caso di interventi con cadenza mensile").'">
|
||||
<i class="fa fa-question-circle-o"></i>
|
||||
</span></p>';
|
||||
|
||||
// Nessun intervento pianificato
|
||||
if (!empty($records)) {
|
||||
|
@ -135,7 +140,7 @@ if (!empty($records)) {
|
|||
<td>'.$info_allegati.'</td>
|
||||
<td align="right">
|
||||
|
||||
<button type="button" class="btn btn-warning btn-sm" title="Pianifica..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica\', \''.$plugin->fileurl('pianficazione.php').'?id_module='.$id_module.'&id_plugin='.$plugin['id'].'&id_parent='.$id_record.'&id_record='.$record['id'].'\');"'.((!empty($pianificabile) && !empty($contratto['data_conclusione'])) ? '' : ' disabled').'>
|
||||
<button type="button" class="btn btn-warning btn-sm" title="Pianifica..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica\', \''.$plugin->fileurl('pianficazione.php').'?id_module='.$id_module.'&id_plugin='.$plugin['id'].'&id_parent='.$id_record.'&id_record='.$record['id'].'\');"'.((!empty($pianificabile)) ? '' : ' disabled').'>
|
||||
<i class="fa fa-clock-o"></i>
|
||||
</button>
|
||||
|
||||
|
@ -164,10 +169,18 @@ if (!empty($records)) {
|
|||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<button type="button" title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary" id="add_promemoria">
|
||||
echo '
|
||||
<button type="button" '.((!empty($pianificabile)) ? '' : 'disabled').' title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary tip" id="add_promemoria">
|
||||
<i class="fa fa-plus"></i> '.tr('Nuovo promemoria').'
|
||||
</button>';
|
||||
|
||||
//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 '
|
||||
<button type="button" title="Aggiungi un nuovo promemoria da pianificare." class="btn btn-primary ask tip" data-title="'.tr('Vuoi aggiungere un nuovo promemoria?').'" data-msg="'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="add-promemoria" data-id_plugin="'.$plugin['id'].'" data-id_parent="'.$id_record.'" data-data_richiesta="'.date('Y-m-d').'" data-button="'.tr('Aggiungi').'" data-class="btn btn-lg btn-primary" data-backto="record-edit">
|
||||
<i class="fa fa-plus"></i> '.tr('Nuovo promemoria').'
|
||||
</button>';*/
|
||||
|
||||
|
||||
$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");
|
||||
|
|
|
@ -75,7 +75,7 @@ echo '
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "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.'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
|
@ -165,14 +165,19 @@ echo '
|
|||
</div-->
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "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").'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "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" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-7">
|
||||
{[ "type": "date", "label": "'.tr('Inizio pianificazione').'", "name": "inizio", "help": "'.tr('Data accettazione contratto').'", "name": "data_inizio", "value": "'.$data_accettazione.'" ]}
|
||||
<div class="col-md-3">
|
||||
{[ "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.'" ]}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "date", "label": "'.tr('Fine pianificazione').'", "help": "'.tr('Data conclusione contratto').'", "name": "data_conclusione", "extra": "readonly", "value": "'.$data_conclusione.'" ]}
|
||||
</div>
|
||||
|
@ -192,7 +197,7 @@ echo '
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "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" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
@ -217,7 +222,7 @@ echo '
|
|||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> '.tr('Pianifica').'</button>
|
||||
<button type="submit" class="btn btn-primary" '.(empty($is_add) ? 'disabled' : '').' ><i class="fa fa-plus"></i> '.tr('Pianifica').'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
||||
|
@ -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")){
|
||||
|
|
Loading…
Reference in New Issue