feat: hide ticket validation button for HR ticket is older than 48 hours
This commit is contained in:
@ -714,7 +714,7 @@
|
|||||||
|
|
||||||
from glpi_tickets
|
from glpi_tickets
|
||||||
|
|
||||||
where id = ?' LIMIT 1";
|
where id = ? LIMIT 1";
|
||||||
|
|
||||||
$stmt = $DB->prepare($query);
|
$stmt = $DB->prepare($query);
|
||||||
|
|
||||||
@ -1106,7 +1106,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// closing hr tickets after 1 day
|
// closing hr tickets after 2 days
|
||||||
function close_hr_tickets(){
|
function close_hr_tickets(){
|
||||||
global $DB;
|
global $DB;
|
||||||
$stmt = $DB->prepare("update glpi_tickets set status = 6 , closedate = now() where id in ( SELECT
|
$stmt = $DB->prepare("update glpi_tickets set status = 6 , closedate = now() where id in ( SELECT
|
||||||
@ -1122,3 +1122,22 @@
|
|||||||
return $stmt->execute();
|
return $stmt->execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getMaxTicketValidationDateTime(DateTime $requisition_date): DateTime {
|
||||||
|
$weekday = (int) $requisition_date->format('N'); // 1 (Mon) to 7 (Sun)
|
||||||
|
|
||||||
|
if ($weekday === 5) { // Friday
|
||||||
|
$sunday = clone $requisition_date;
|
||||||
|
$sunday->modify('+2 days')->setTime(0, 0);
|
||||||
|
return $sunday->modify('+48 hours');
|
||||||
|
} elseif ($weekday === 6) { // Saturday
|
||||||
|
$sunday = clone $requisition_date;
|
||||||
|
$sunday->modify('+1 day')->setTime(0, 0);
|
||||||
|
return $sunday->modify('+48 hours');
|
||||||
|
} elseif (in_array($weekday, [3, 4])) { // Wednesday or Thursday
|
||||||
|
$result = clone $requisition_date;
|
||||||
|
return $result->modify('+96 hours');
|
||||||
|
} else {
|
||||||
|
$result = clone $requisition_date;
|
||||||
|
return $result->modify('+48 hours');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -7385,21 +7385,40 @@ abstract class CommonITILObject extends CommonDBTM {
|
|||||||
echo "</div>";
|
echo "</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
//sophal block validation =>
|
|
||||||
//clôturer la modification du validation (autorisation absence,entree .......) 48h aprees l envoi
|
|
||||||
/*
|
|
||||||
if (strpos($item['type'], 'Validation') > 0 &&
|
if (strpos($item['type'], 'Validation') > 0 &&
|
||||||
(isset($item_i['can_answer']) && $item_i['can_answer'])) {
|
(isset($item_i['can_answer']) && $item_i['can_answer'])) {
|
||||||
|
|
||||||
$detail_ticket = get_detail_ticket($_GET['id']);
|
// sophal
|
||||||
$itilcategories_ids = array(15, 16 , 12, 38 , 36);
|
// prevent validators to update validations after 48 hours from tickets creation ( excluding weekends )
|
||||||
$date_fin = date('Y-m-d H:i:s',strtotime('+48 hour',strtotime($detail_ticket['date'])));
|
$detail_ticket = get_detail_ticket($_GET['id']);
|
||||||
$courant_date = date('Y-m-d H:i:s');
|
$itilcategories_ids = array(15, 16 , 12, 38 , 36, 72);
|
||||||
|
$requisition_date = new DateTime($detail_ticket['requisition_date']);
|
||||||
if(in_array($detail_ticket['itilcategories_id'],$itilcategories_ids)){
|
$max_date = getMaxTicketValidationDateTime($requisition_date);
|
||||||
if($date_fin <= $courant_date){
|
|
||||||
$item_i['can_answer'] = 0;
|
$courant_date = new DateTime(); // current datetime
|
||||||
$validateur_res = explode("=>", $item_i['content']);
|
|
||||||
|
if (!(in_array($detail_ticket['itilcategories_id'], $itilcategories_ids))
|
||||||
|
|| $max_date >= $courant_date) {
|
||||||
|
|
||||||
|
|
||||||
|
$form_url = $item['type']::getFormURL();
|
||||||
|
echo "<form id='validationanswers_id_{$item_i['id']}' class='center' action='$form_url' method='post'>";
|
||||||
|
echo Html::hidden('id', ['value' => $item_i['id']]);
|
||||||
|
echo Html::hidden('users_id_validate', ['value' => $item_i['users_id_validate']]);
|
||||||
|
Html::textarea([
|
||||||
|
'name' => 'comment_validation',
|
||||||
|
'rows' => 5
|
||||||
|
]);
|
||||||
|
echo "<button type='submit' class='submit approve' name='approval_action' value='approve'>";
|
||||||
|
echo "<i class='far fa-thumbs-up'></i> ".__('Approve')."</button>";
|
||||||
|
|
||||||
|
echo "<button type='submit' class='submit refuse very_small_space' name='approval_action' value='refuse'>";
|
||||||
|
echo "<i class='far fa-thumbs-down'></i> ".__('Refuse')."</button>";
|
||||||
|
Html::closeForm();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$item_i['can_answer'] = 0;
|
||||||
echo '<style>
|
echo '<style>
|
||||||
.alert {
|
.alert {
|
||||||
position: relative;
|
position: relative;
|
||||||
@ -7415,33 +7434,12 @@ abstract class CommonITILObject extends CommonDBTM {
|
|||||||
}
|
}
|
||||||
</style>';
|
</style>';
|
||||||
echo '<div class="alert alert-danger" role="alert">
|
echo '<div class="alert alert-danger" role="alert">
|
||||||
'.get_fullname_user($item_i['users_id_validate']).' => vous avez dépassé le délai<strong> de validation</strong> (48 hours)
|
vous avez dépassé le délai<strong> de validation</strong> (48 hours)
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
//sophal
|
|
||||||
|
|
||||||
if (strpos($item['type'], 'Validation') > 0 &&
|
|
||||||
(isset($item_i['can_answer']) && $item_i['can_answer'])) {
|
|
||||||
$form_url = $item['type']::getFormURL();
|
|
||||||
echo "<form id='validationanswers_id_{$item_i['id']}' class='center' action='$form_url' method='post'>";
|
|
||||||
echo Html::hidden('id', ['value' => $item_i['id']]);
|
|
||||||
echo Html::hidden('users_id_validate', ['value' => $item_i['users_id_validate']]);
|
|
||||||
Html::textarea([
|
|
||||||
'name' => 'comment_validation',
|
|
||||||
'rows' => 5
|
|
||||||
]);
|
|
||||||
echo "<button type='submit' class='submit approve' name='approval_action' value='approve'>";
|
|
||||||
echo "<i class='far fa-thumbs-up'></i> ".__('Approve')."</button>";
|
|
||||||
|
|
||||||
echo "<button type='submit' class='submit refuse very_small_space' name='approval_action' value='refuse'>";
|
|
||||||
echo "<i class='far fa-thumbs-down'></i> ".__('Refuse')."</button>";
|
|
||||||
Html::closeForm();
|
|
||||||
}
|
|
||||||
if ($item['type'] == 'Solution' && $item_i['status'] != CommonITILValidation::WAITING && $item_i['status'] != CommonITILValidation::NONE) {
|
if ($item['type'] == 'Solution' && $item_i['status'] != CommonITILValidation::WAITING && $item_i['status'] != CommonITILValidation::NONE) {
|
||||||
echo "<div class='users_id_approval' id='users_id_approval_".$item_i['users_id_approval']."'>";
|
echo "<div class='users_id_approval' id='users_id_approval_".$item_i['users_id_approval']."'>";
|
||||||
$user->getFromDB($item_i['users_id_approval']);
|
$user->getFromDB($item_i['users_id_approval']);
|
||||||
|
|||||||
Reference in New Issue
Block a user