/** * Execute Trigger case * * @param string $prj_uid {@min 1}{@max 32} * @param string $act_uid {@min 1}{@max 32} * @param string $cas_uid {@min 1}{@max 32} * @param string $step_uid {@min 32}{@max 32} * @param string $type {@choice before,after} * * @copyright Colosa - Bolivia * * @url POST /process/:prj_uid/task/:act_uid/case/:cas_uid/step/:step_uid/execute-trigger/:type */ public function doPutExecuteTriggerCase($prj_uid, $act_uid, $cas_uid, $step_uid, $type) { try { $userUid = $this->getUserId(); $step = new \ProcessMaker\Services\Api\Project\Activity\Step(); $triggers= $step->doGetActivityStepTriggers($step_uid, $act_uid, $prj_uid); $step = new \ProcessMaker\BusinessModel\Step(); $step->setFormatFieldNameInUppercase(false); $step->setArrayParamException(array("stepUid" => "step_uid", "taskUid" => "act_uid", "processUid" => "prj_uid")); $cases = new \ProcessMaker\BusinessModel\Cases(); foreach($triggers as $trigger){ if (strtolower($trigger['st_type']) == $type) { $cases->putExecuteTriggerCase($cas_uid, $trigger['tri_uid'], $userUid); } } } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } }
/** * Unpause Case * * @param string $cas_uid {@min 1}{@max 32} * @param string $tri_uid {@min 1}{@max 32} * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia * * @url PUT /:cas_uid/execute-trigger/:tri_uid */ public function doPutExecuteTriggerCase($cas_uid, $tri_uid) { try { $userUid = $this->getUserId(); $cases = new \ProcessMaker\BusinessModel\Cases(); $cases->putExecuteTriggerCase($cas_uid, $tri_uid, $userUid); } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } }
/** * Return Informaction User for derivate * assignment Users * * return array Return an array with Task Case */ public function GetPrepareInformation($usr_uid, $tas_uid, $app_uid, $del_index = null) { try { $oCase = new \Cases(); $triggers = $oCase->loadTriggers( $tas_uid, 'ASSIGN_TASK', '-1', 'BEFORE'); if (isset($triggers)){ $cases = new \ProcessMaker\BusinessModel\Cases(); foreach($triggers as $trigger){ $cases->putExecuteTriggerCase($app_uid, $trigger['TRI_UID'], $usr_uid); } } $oDerivation = new \Derivation(); $aData = array(); $aData['APP_UID'] = $app_uid; $aData['DEL_INDEX'] = $del_index; $aData['USER_UID'] = $usr_uid; $derive = $oDerivation->prepareInformation( $aData ); $response = array(); foreach ($derive as $sKey => &$aValues) { $sPriority = ''; //set priority value if ($derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'] != '') { //TO DO: review this type of assignment if (isset( $aData['APP_DATA'][str_replace( '@@', '', $derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'] )] )) { $sPriority = $aData['APP_DATA'][str_replace( '@@', '', $derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'] )]; } } //set priority value switch ($aValues['NEXT_TASK']['TAS_ASSIGN_TYPE']) { case 'EVALUATE': case 'REPORT_TO': case 'BALANCED': case 'SELF_SERVICE': $taskAss = array(); $taskAss['taskId'] = $aValues['NEXT_TASK']['TAS_UID']; $taskAss['taskName'] = $aValues['NEXT_TASK']['TAS_TITLE']; $taskAss['taskAssignType'] = $aValues['NEXT_TASK']['TAS_ASSIGN_TYPE']; $taskAss['taskDefProcCode'] = $aValues['NEXT_TASK']['TAS_DEF_PROC_CODE']; $taskAss['delPriority'] = isset($aValues['NEXT_TASK']['DEL_PRIORITY'])?$aValues['NEXT_TASK']['DEL_PRIORITY']:""; $taskAss['taskParent'] = $aValues['NEXT_TASK']['TAS_PARENT']; $users = array(); $users['userId'] = $derive[$sKey]['NEXT_TASK']['USER_ASSIGNED']['USR_UID']; $users['userFullName'] = strip_tags($derive[$sKey]['NEXT_TASK']['USER_ASSIGNED']['USR_FULLNAME']); $taskAss['users'][] = $users; $response[] = $taskAss; break; case 'MANUAL': $manual = array(); $manual['taskId'] = $aValues['NEXT_TASK']['TAS_UID']; $manual['taskName'] = $aValues['NEXT_TASK']['TAS_TITLE']; $manual['taskAssignType'] = $aValues['NEXT_TASK']['TAS_ASSIGN_TYPE']; $manual['taskDefProcCode'] = $aValues['NEXT_TASK']['TAS_DEF_PROC_CODE']; $manual['delPriority'] = isset($aValues['NEXT_TASK']['DEL_PRIORITY'])?$aValues['NEXT_TASK']['DEL_PRIORITY']:""; $manual['taskParent'] = $aValues['NEXT_TASK']['TAS_PARENT']; $Aux = array (); foreach ($aValues['NEXT_TASK']['USER_ASSIGNED'] as $aUser) { $Aux[$aUser['USR_UID']] = $aUser['USR_FULLNAME']; } asort( $Aux ); $users = array(); foreach ($Aux as $id => $fullname) { $user['userId'] = $id; $user['userFullName'] = $fullname; $users[] = $user; } $manual['users'] = $users; $response[] = $manual; break; case '': //when this task is the Finish process case 'nobody': $userFields = $oDerivation->getUsersFullNameFromArray( $derive[$sKey]['USER_UID'] ); $taskAss['routeFinishFlag'] = true; $user['userId'] = $derive[$sKey]['USER_UID']; $user['userFullName'] = $userFields['USR_FULLNAME']; $taskAss['users'][] = $user; $response[] = $taskAss; break; } } if (empty( $response )) { throw (new Exception( G::LoadTranslation( 'ID_NO_DERIVATION_RULE' ) )); } } catch (\Exception $e) { throw $e; } return $response; }