Files
luos/workflow/engine/methods/cases/cases_CatchExecute.php

93 lines
3.2 KiB
PHP
Raw Normal View History

<?php
/**
* cases_CatchExecute.php
2020-04-15 10:49:09 -04:00
* This page is executed when we claim the case
*
* @link https://wiki.processmaker.com/3.2/Cases/Cases#Unassigned
*/
if (!isset($_SESSION['USER_LOGGED'])) {
$responseObject = new stdclass();
$responseObject->error = G::LoadTranslation('ID_LOGIN_AGAIN');
$responseObject->success = true;
$responseObject->lostSession = true;
2017-12-04 13:25:35 +00:00
print G::json_encode($responseObject);
die();
}
/* Permissions */
2017-12-04 13:25:35 +00:00
switch ($RBAC->userCanAccess('PM_CASES')) {
case - 2:
2017-12-04 13:25:35 +00:00
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
G::header('location: ../login/login');
die();
break;
case - 1:
2017-12-04 13:25:35 +00:00
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die();
break;
}
2017-12-04 13:25:35 +00:00
if (isset($_POST['form']['BTN_CANCEL'])) {
header("Location: ../cases/main");
die();
}
/* Includes */
2020-04-15 10:49:09 -04:00
$case = new Cases();
$appUid = $_SESSION['APPLICATION'];
$delIndex = $_SESSION['INDEX'];
2020-04-15 10:49:09 -04:00
$appDelegation = new AppDelegation();
$delegation = $appDelegation->load($appUid, $delIndex);
2020-04-15 10:49:09 -04:00
// if there are no user in the delegation row, this case is still in selfservice
if ($delegation['USR_UID'] == "") {
2020-04-15 10:49:09 -04:00
$case->setCatchUser($_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED']);
2025-03-28 13:16:06 +00:00
2017-08-11 13:43:39 -04:00
$pmGoogle = new PmGoogleApi();
2017-12-04 13:25:35 +00:00
if ($pmGoogle->getServiceGmailStatus()) {
2015-12-20 16:37:35 -04:00
$labGmail = new labelsGmail();
2020-04-15 10:49:09 -04:00
$labGmail->addRelabelingToQueue($appUid, $delIndex, -1, true);
2015-12-20 16:37:35 -04:00
}
2016-03-28 11:53:07 -04:00
$drive = new AppDocumentDrive();
if ($drive->getStatusDrive()) {
//add users email next task
$user = new Users();
$userInfo = $user->load($_SESSION['USER_LOGGED']);
2020-04-15 10:49:09 -04:00
$drive->addUsersDocumentDrive($appUid, [$userInfo['USR_EMAIL']]);
2016-03-28 11:53:07 -04:00
}
2025-03-28 13:16:06 +00:00
//changing email labels if the claim comes from gmail
2017-12-04 13:25:35 +00:00
if (array_key_exists('gmail', $_SESSION) && $_SESSION['gmail'] == 1) {
die('<script type="text/javascript">
parent.document.getElementById("iframePM").setAttribute("src", "'.$_SESSION["server"].'cases/cases_Open?APP_UID=' . $_SESSION["APPLICATION"] . '&DEL_INDEX=' . $_SESSION["INDEX"] . '&action=unassigned");
2017-12-04 13:25:35 +00:00
</script>');
}
} else {
$hideMessage = false;
if (isset($_REQUEST['hideMessage'])) {
$hideMessage = $_REQUEST['hideMessage'] === 'true' ? true : false;
}
if ($hideMessage === false) {
G::SendMessageText(G::LoadTranslation('ID_CASE_ALREADY_DERIVATED'), 'error');
}
}
$validation = (SYS_SKIN != 'uxs') ? 'true' : 'false';
2016-12-12 14:19:46 -05:00
unset($_SESSION['TASK']);
2017-12-04 13:25:35 +00:00
die('<script type="text/javascript">
if (' . $validation . ') {
if (window.parent.frames.length != 0) {
2020-04-15 10:49:09 -04:00
parent.location = "open?APP_UID=' . $_SESSION['APPLICATION'] . '&DEL_INDEX=' . $_SESSION['INDEX'] . '&action=jump";
} else {
2020-04-15 10:49:09 -04:00
window.location = "../cases/cases_Open?APP_UID=' . $_SESSION['APPLICATION'] . '&DEL_INDEX=' . $_SESSION['INDEX'] . '&action=jump";
}
} else {
2020-04-15 10:49:09 -04:00
window.location = "../cases/cases_Open?APP_UID=' . $_SESSION['APPLICATION'] . '&DEL_INDEX=' . $_SESSION['INDEX'] . '&action=jump";
}
2017-12-04 13:25:35 +00:00
</script>');