diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index eea3faf7f..21499df7a 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -3288,5 +3288,30 @@ class wsBase return $result; } } + + /** + * ClaimCase + * + * @param string $userId + * @param string $guid + * @param string $delIndex + * @return $result will return an object + */ + public function claimCase($userId, $guid, $delIndex) + { + try { + G::LoadClass('case'); + $oCase = new Cases(); + $oCase->loadCase($guid); + $oCase->setCatchUser($guid, $delIndex, $userId); + + $result = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY")); + return $result; + } catch (Exception $e) { + + $result = new wsResponse(100, $e->getMessage()); + return $result; + } + } } diff --git a/workflow/engine/methods/services/pmos2.wsdl b/workflow/engine/methods/services/pmos2.wsdl index 00da67108..507c175d8 100755 --- a/workflow/engine/methods/services/pmos2.wsdl +++ b/workflow/engine/methods/services/pmos2.wsdl @@ -873,6 +873,24 @@ + + + + + + + + + + + + + + + + + + @@ -1101,6 +1119,12 @@ + + + + + + @@ -1263,6 +1287,10 @@ + + + + @@ -1627,6 +1655,15 @@ + + + + + + + + + diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php index 2f4c827c7..3a8395199 100755 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -1208,6 +1208,30 @@ function addCaseNote($params) return $result; } +function claimCase($params) +{ + $vsResult = isValidSession($params->sessionId); + if ($vsResult->status_code !== 0) { + return $vsResult; + } + + if (ifPermission($params->sessionId, 'PM_CASES') == 0) { + $result = new wsResponse(2, G::LoadTranslation('ID_NOT_PRIVILEGES')); + + return $result; + } + + G::LoadClass('sessions'); + + $oSessions = new Sessions(); + $session = $oSessions->getSessionUser($params->sessionId); + + $ws = new wsBase(); + $res = $ws->claimCase($session['USR_UID'], $params->guid, $params->delIndex); + + return $res; +} + $server = new SoapServer($wsdl); $server->addFunction("Login"); @@ -1251,5 +1275,6 @@ $server->addFunction("cancelCase"); $server->addFunction("pauseCase"); $server->addFunction("unpauseCase"); $server->addFunction("addCaseNote"); +$server->addFunction("claimCase"); $server->handle();