diff --git a/workflow/engine/src/BusinessModel/Cases.php b/workflow/engine/src/BusinessModel/Cases.php index afceb779b..aa40fb568 100644 --- a/workflow/engine/src/BusinessModel/Cases.php +++ b/workflow/engine/src/BusinessModel/Cases.php @@ -137,12 +137,12 @@ class Cases /** * Get data of a Case * - * @param string $caseUid Unique id of Case + * @param string $applicationUid Unique id of Case * @param string $userUid Unique id of User * * return array Return an array with data of Case Info */ - public function getCaseInfo($caseUid, $userUid) + public function getCaseInfo($applicationUid, $userUid) { try { $solrEnabled = 0; @@ -239,34 +239,76 @@ class Cases } \G::LoadClass('wsBase'); $ws = new \wsBase(); - $fields = $ws->getCaseInfo($caseUid, $row["DEL_INDEX"]); + $fields = $ws->getCaseInfo($applicationUid, $row["DEL_INDEX"]); + $array = json_decode(json_encode($fields), true); + if ($array ["status_code"] != 0) { + throw (new \Exception($array ["message"])); + } else { + $array['app_uid'] = $array['caseId']; + $array['app_number'] = $array['caseNumber']; + $array['app_name'] = $array['caseName']; + $array['app_status'] = $array['caseStatus']; + $array['app_init_usr_uid'] = $array['caseCreatorUser']; + $array['app_init_usr_username'] = $array['caseCreatorUserName']; + $array['pro_uid'] = $array['processId']; + $array['pro_name'] = $array['processName']; + $array['app_create_date'] = $array['createDate']; + $array['app_update_date'] = $array['updateDate']; + $array['current_task'] = $array['currentUsers']; + for ($i = 0; $i<=count($array['current_task'])-1; $i++) { + $current_task = $array['current_task'][$i]; + $current_task['usr_uid'] = $current_task['userId']; + $current_task['usr_name'] = $current_task['userName']; + $current_task['tas_uid'] = $current_task['taskId']; + $current_task['tas_title'] = $current_task['taskName']; + $current_task['del_index'] = $current_task['delIndex']; + $current_task['del_thread'] = $current_task['delThread']; + $current_task['del_thread_status'] = $current_task['delThreadStatus']; + unset($current_task['userId']); + unset($current_task['userName']); + unset($current_task['taskId']); + unset($current_task['taskName']); + unset($current_task['delIndex']); + unset($current_task['delThread']); + unset($current_task['delThreadStatus']); + $aCurrent_task[] = $current_task; + } + unset($array['status_code']); + unset($array['message']); + unset($array['timestamp']); + unset($array['caseParalell']); + unset($array['caseId']); + unset($array['caseNumber']); + unset($array['caseName']); + unset($array['caseStatus']); + unset($array['caseCreatorUser']); + unset($array['caseCreatorUserName']); + unset($array['processId']); + unset($array['processName']); + unset($array['createDate']); + unset($array['updateDate']); + unset($array['currentUsers']); + $current_task = json_decode(json_encode($aCurrent_task), false); + $oResponse = json_decode(json_encode($array), false); + $oResponse->current_task = $current_task; + } //Return - return $fields; + return $oResponse; } } - $case = array(); - for ($i = 0; $i<=count($arrayData)-1; $i++) { - if ($arrayData[$i]["guid"] == $caseUid) { - $case = $arrayData[$i]; - } - } - return $case; } catch (\InvalidIndexSearchTextException $e) { $arrayData = array(); - $arrayData[] = array ( - "guid" => $e->getMessage(), - "name" => $e->getMessage(), - "status" => $e->getMessage(), - "delIndex" => $e->getMessage(), - "processId" => $e->getMessage() - ); - return $arrayData; + $arrayData[] = array ("app_uid" => $e->getMessage(), + "app_name" => $e->getMessage(), + "del_index" => $e->getMessage(), + "pro_uid" => $e->getMessage()); + throw (new \Exception($arrayData)); } } else { $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\AppCacheViewPeer::DEL_INDEX); $criteria->add(\AppCacheViewPeer::USR_UID, $userUid); - $criteria->add(\AppCacheViewPeer::APP_UID, $caseUid); + $criteria->add(\AppCacheViewPeer::APP_UID, $applicationUid); $criteria->add( //ToDo - getToDo() $criteria->getNewCriterion(\AppCacheViewPeer::APP_STATUS, "TO_DO", \CRITERIA::EQUAL)->addAnd( @@ -282,16 +324,68 @@ class Cases $criteria->addDescendingOrderByColumn(\AppCacheViewPeer::APP_NUMBER); $rsCriteria = \AppCacheViewPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $row["DEL_INDEX"] = ''; while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); } \G::LoadClass('wsBase'); $ws = new \wsBase(); - $fields = $ws->getCaseInfo($caseUid, $row["DEL_INDEX"]); + $fields = $ws->getCaseInfo($applicationUid, $row["DEL_INDEX"]); + $array = json_decode(json_encode($fields), true); + if ($array ["status_code"] != 0) { + throw (new \Exception($array ["message"])); + } else { + $array['app_uid'] = $array['caseId']; + $array['app_number'] = $array['caseNumber']; + $array['app_name'] = $array['caseName']; + $array['app_status'] = $array['caseStatus']; + $array['app_init_usr_uid'] = $array['caseCreatorUser']; + $array['app_init_usr_username'] = $array['caseCreatorUserName']; + $array['pro_uid'] = $array['processId']; + $array['pro_name'] = $array['processName']; + $array['app_create_date'] = $array['createDate']; + $array['app_update_date'] = $array['updateDate']; + $array['current_task'] = $array['currentUsers']; + for ($i = 0; $i<=count($array['current_task'])-1; $i++) { + $current_task = $array['current_task'][$i]; + $current_task['usr_uid'] = $current_task['userId']; + $current_task['usr_name'] = $current_task['userName']; + $current_task['tas_uid'] = $current_task['taskId']; + $current_task['tas_title'] = $current_task['taskName']; + $current_task['del_index'] = $current_task['delIndex']; + $current_task['del_thread'] = $current_task['delThread']; + $current_task['del_thread_status'] = $current_task['delThreadStatus']; + unset($current_task['userId']); + unset($current_task['userName']); + unset($current_task['taskId']); + unset($current_task['taskName']); + unset($current_task['delIndex']); + unset($current_task['delThread']); + unset($current_task['delThreadStatus']); + $aCurrent_task[] = $current_task; + } + unset($array['status_code']); + unset($array['message']); + unset($array['timestamp']); + unset($array['caseParalell']); + unset($array['caseId']); + unset($array['caseNumber']); + unset($array['caseName']); + unset($array['caseStatus']); + unset($array['caseCreatorUser']); + unset($array['caseCreatorUserName']); + unset($array['processId']); + unset($array['processName']); + unset($array['createDate']); + unset($array['updateDate']); + unset($array['currentUsers']); + } + $current_task = json_decode(json_encode($aCurrent_task), false); + $oResponse = json_decode(json_encode($array), false); + $oResponse->current_task = $current_task; //Return - return $fields; + return $oResponse; } - } catch (\Exception $e) { throw $e; } @@ -300,11 +394,12 @@ class Cases /** * Get data Task Case * - * @param string $caseUid Unique id of Case + * @param string $applicationUid Unique id of Case + * @param string $userUid Unique id of User * * return array Return an array with Task Case */ - public function getTaskCase($caseUid) + public function getTaskCase($applicationUid, $userUid) { try { $result = array (); @@ -320,21 +415,26 @@ class Cases $tasTitleConds[] = array ('C1.CON_CATEGORY',$del . 'TAS_TITLE' . $del); $tasTitleConds[] = array ('C1.CON_LANG',$del . SYS_LANG . $del); $oCriteria->addJoinMC( $tasTitleConds, \Criteria::LEFT_JOIN ); - $oCriteria->add( \AppDelegationPeer::APP_UID, $caseUid ); + $oCriteria->add( \AppDelegationPeer::APP_UID, $applicationUid ); + $oCriteria->add( \AppDelegationPeer::USR_UID, $userUid ); $oCriteria->add( \AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN' ); $oCriteria->add( \AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL ); $oDataset = \AppDelegationPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { - $result = array ('guid' => $aRow['TAS_UID'], - 'name' => $aRow['TAS_TITLE'], - 'delegate' => $aRow['DEL_INDEX'] - ); + $result = array ('tas_uid' => $aRow['TAS_UID'], + 'tas_title' => $aRow['TAS_TITLE'], + 'del_index' => $aRow['DEL_INDEX']); $oDataset->next(); } //Return - return $result; + if(empty($result)) { + throw (new \Exception('Incorrect or unavailable information about this case: ' .$applicationUid)); + } else { + $result = json_decode(json_encode($result), false); + return $result; + } } catch (\Exception $e) { throw $e; } @@ -343,14 +443,14 @@ class Cases /** * Add New Case * - * @param string $prjUid Unique id of Project - * @param string $actUid Unique id of Activity - * @param string $caseUid Unique id of Case + * @param string $processUid Unique id of Project + * @param string $taskUid Unique id of Activity (task) + * @param string $userUid Unique id of Case * @param array $variables * * return array Return an array with Task Case */ - public function addCase($prjUid, $actUid, $userUid, $variables) + public function addCase($processUid, $taskUid, $userUid, $variables) { try { \G::LoadClass('wsBase'); @@ -358,9 +458,22 @@ class Cases if ($variables) { $variables = array_shift($variables); } - $fields = $ws->newCase($prjUid, $userUid, $actUid, $variables); + $fields = $ws->newCase($processUid, $userUid, $taskUid, $variables); + $array = json_decode(json_encode($fields), true); + if ($array ["status_code"] != 0) { + throw (new \Exception($array ["message"])); + } else { + $array['app_uid'] = $array['caseId']; + $array['app_number'] = $array['caseNumber']; + unset($array['status_code']); + unset($array['message']); + unset($array['timestamp']); + unset($array['caseId']); + unset($array['caseNumber']); + } + $oResponse = json_decode(json_encode($array), false); //Return - return $fields; + return $oResponse; } catch (\Exception $e) { throw $e; } @@ -369,14 +482,14 @@ class Cases /** * Add New Case Impersonate * - * @param string $prjUid Unique id of Project - * @param string $usrUid Unique id of User - * @param string $actUid Unique id of Case + * @param string $processUid Unique id of Project + * @param string $userUid Unique id of User + * @param string $taskUid Unique id of Case * @param array $variables * * return array Return an array with Task Case */ - public function addCaseImpersonate($prjUid, $usrUid, $actUid, $variables) + public function addCaseImpersonate($processUid, $userUid, $taskUid, $variables) { try { \G::LoadClass('wsBase'); @@ -384,9 +497,22 @@ class Cases if ($variables) { $variables = array_shift($variables); } - $fields = $ws->newCaseImpersonate($prjUid, $usrUid, $variables, $actUid); + $fields = $ws->newCaseImpersonate($processUid, $userUid, $variables, $taskUid); + $array = json_decode(json_encode($fields), true); + if ($array ["status_code"] != 0) { + throw (new \Exception($array ["message"])); + } else { + $array['app_uid'] = $array['caseId']; + $array['app_number'] = $array['caseNumber']; + unset($array['status_code']); + unset($array['message']); + unset($array['timestamp']); + unset($array['caseId']); + unset($array['caseNumber']); + } + $oResponse = json_decode(json_encode($array), false); //Return - return $fields; + return $oResponse; } catch (\Exception $e) { throw $e; } @@ -395,7 +521,7 @@ class Cases /** * Reassign Case * - * @param string $caseUid Unique id of Case + * @param string $applicationUid Unique id of Case * @param string $userUid Unique id of User * @param string $delIndex * @param string $userUidSource Unique id of User Source @@ -403,17 +529,23 @@ class Cases * * return array Return an array with Task Case */ - public function updateReassignCase($caseUid, $userUid, $delIndex, $userUidSource, $userUidTarget) + public function updateReassignCase($applicationUid, $userUid, $delIndex, $userUidSource, $userUidTarget) { try { if (!$delIndex) { - $delIndex = \AppDelegation::getCurrentIndex($caseUid); + $delIndex = \AppDelegation::getCurrentIndex($applicationUid); } \G::LoadClass('wsBase'); $ws = new \wsBase(); - $fields = $ws->reassignCase($userUid, $caseUid, $delIndex, $userUidSource, $userUidTarget); - //Return - return $fields; + $fields = $ws->reassignCase($userUid, $applicationUid, $delIndex, $userUidSource, $userUidTarget); + $array = json_decode(json_encode($fields), true); + if ($array ["status_code"] != 0) { + throw (new \Exception($array ["message"])); + } else { + unset($array['status_code']); + unset($array['message']); + unset($array['timestamp']); + } } catch (\Exception $e) { throw $e; } @@ -537,24 +669,30 @@ class Cases /** * Route Case * - * @param string $caseUid Unique id of Case + * @param string $applicationUid Unique id of Case * @param string $userUid Unique id of User * @param string $delIndex * @param string $bExecuteTriggersBeforeAssignment * * return array Return an array with Task Case */ - public function updateRouteCase($caseUid, $userUid, $delIndex) + public function updateRouteCase($applicationUid, $userUid, $delIndex) { try { if (!$delIndex) { - $delIndex = \AppDelegation::getCurrentIndex($caseUid); + $delIndex = \AppDelegation::getCurrentIndex($applicationUid); } \G::LoadClass('wsBase'); $ws = new \wsBase(); - $fields = $ws->derivateCase($userUid, $caseUid, $delIndex, $bExecuteTriggersBeforeAssignment = false); - //Return - return $fields; + $fields = $ws->derivateCase($userUid, $applicationUid, $delIndex, $bExecuteTriggersBeforeAssignment = false); + $array = json_decode(json_encode($fields), true); + if ($array ["status_code"] != 0) { + throw (new \Exception($array ["message"])); + } else { + unset($array['status_code']); + unset($array['message']); + unset($array['timestamp']); + } } catch (\Exception $e) { throw $e; } diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Cases.php b/workflow/engine/src/Services/Api/ProcessMaker/Cases.php index 447471ef8..02df83ee6 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Cases.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Cases.php @@ -160,16 +160,16 @@ class Cases extends Api } /** - * @url GET /:cas_uid + * @url GET /:app_uid * - * @param string $cas_uid {@min 32}{@max 32} + * @param string $app_uid {@min 32}{@max 32} */ - public function doGetCaseInfo($cas_uid) + public function doGetCaseInfo($app_uid) { try { $userUid = $this->getUserId(); $cases = new \BusinessModel\Cases(); - $oData = $cases->getCaseInfo($cas_uid, $userUid); + $oData = $cases->getCaseInfo($app_uid, $userUid); return $oData; } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); @@ -177,15 +177,16 @@ class Cases extends Api } /** - * @url GET /:cas_uid/current-task + * @url GET /:app_uid/current-task * - * @param string $cas_uid {@min 32}{@max 32} + * @param string $app_uid {@min 32}{@max 32} */ - public function doGetTaskCase($cas_uid) + public function doGetTaskCase($app_uid) { try { + $userUid = $this->getUserId(); $cases = new \BusinessModel\Cases(); - $oData = $cases->getTaskCase($cas_uid); + $oData = $cases->getTaskCase($app_uid, $userUid); return $oData; } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); @@ -195,18 +196,18 @@ class Cases extends Api /** * @url POST * - * @param string $prj_uid {@from body} {@min 32}{@max 32} - * @param string $act_uid {@from body} {@min 32}{@max 32} + * @param string $pro_uid {@from body} {@min 32}{@max 32} + * @param string $tas_uid {@from body} {@min 32}{@max 32} * @param array $variables {@from body} * */ - public function doPostCase($prj_uid, $act_uid, $variables=null) + public function doPostCase($pro_uid, $tas_uid, $variables=null) { try { $userUid = $this->getUserId(); $cases = new \BusinessModel\Cases(); - $arrayData = $cases->addCase($prj_uid, $act_uid, $userUid, $variables); - return $arrayData; + $oData = $cases->addCase($pro_uid, $tas_uid, $userUid, $variables); + return $oData; } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } @@ -215,55 +216,53 @@ class Cases extends Api /** * @url POST /impersonate * - * @param string $prj_uid {@from body} {@min 32}{@max 32} + * @param string $pro_uid {@from body} {@min 32}{@max 32} * @param string $usr_uid {@from body} {@min 32}{@max 32} - * @param string $act_uid {@from body} {@min 32}{@max 32} + * @param string $tas_uid {@from body} {@min 32}{@max 32} * @param array $variables {@from body} */ - public function doPostCaseImpersonate($prj_uid, $usr_uid, $act_uid, $variables=null) + public function doPostCaseImpersonate($pro_uid, $usr_uid, $tas_uid, $variables=null) { try { $cases = new \BusinessModel\Cases(); - $arrayData = $cases->addCaseImpersonate($prj_uid, $usr_uid, $act_uid, $variables); - return $arrayData; + $oData = $cases->addCaseImpersonate($pro_uid, $usr_uid, $tas_uid, $variables); + return $oData; } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } /** - * @url PUT /:cas_uid/reassign-case + * @url PUT /:app_uid/reassign-case * - * @param string $cas_uid {@from body} {@min 32}{@max 32} + * @param string $app_uid {@min 32}{@max 32} * @param string $usr_uid_source {@from body} {@min 32}{@max 32} * @param string $usr_uid_target {@from body} {@min 32}{@max 32} * @param string $del_index {@from body} */ - public function doPutReassignCase($cas_uid, $usr_uid_source, $usr_uid_target, $del_index = null) + public function doPutReassignCase($app_uid, $usr_uid_source, $usr_uid_target, $del_index = null) { try { $userUid = $this->getUserId(); $cases = new \BusinessModel\Cases(); - $arrayData = $cases->updateReassignCase($cas_uid, $userUid, $del_index, $usr_uid_source, $usr_uid_target); - return $arrayData; + $cases->updateReassignCase($app_uid, $userUid, $del_index, $usr_uid_source, $usr_uid_target); } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } /** - * @url PUT /:cas_uid/route-case + * @url PUT /:app_uid/route-case * - * @param string $cas_uid {@from body} {@min 32}{@max 32} + * @param string $app_uid {@from body} {@min 32}{@max 32} * @param string $del_index {@from body} */ - public function doPutRouteCase($cas_uid, $del_index = null) + public function doPutRouteCase($app_uid, $del_index = null) { try { $userUid = $this->getUserId(); $cases = new \BusinessModel\Cases(); - $arrayData = $cases->updateRouteCase($cas_uid, $userUid, $del_index); - return $arrayData; + $cases->updateRouteCase($app_uid, $userUid, $del_index); } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); }