public function getCurrentDelegation($sApplicationUID = '', $sUserUID = '') { $oCriteria = new Criteria(); $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID); $oCriteria->add(AppDelegationPeer::USR_UID, $sUserUID); $oCriteria->add(AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN'); $oCriteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_DELEGATE_DATE); $oApplication = AppDelegationPeer::doSelectOne($oCriteria); if (!is_null($oApplication)) { return $oApplication->getDelIndex(); } //if the user is not in the task, we need to return a valid del index, so we are returning the latest delindex $oCriteria = new Criteria(); $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID); $oCriteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_DELEGATE_DATE); $oApplication = AppDelegationPeer::doSelectOne($oCriteria); if (!is_null($oApplication)) { return $oApplication->getDelIndex(); } throw ( new Exception('this case has 0 delegations') ); }
public function getValidateSelfService($data) { $paused = false; $data = array_change_key_case($data, CASE_LOWER); $sTaskUID = $data['act_uid']; $caseType = isset($data['case_type']) ? $data['case_type'] == 'assigned' ? $data['case_type'] : 'unassigned' : 'unassigned'; $response = new \stdclass(); $oCriteria = new \Criteria(); $arrayCondition = array(); $arrayCondition[] = array(\AppDelegationPeer::APP_UID, \AppDelayPeer::APP_UID); $arrayCondition[] = array(\AppDelegationPeer::DEL_INDEX, \AppDelayPeer::APP_DEL_INDEX); $oCriteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); $oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID); $oCriteria->add(\AppDelayPeer::APP_DISABLE_ACTION_USER, "0"); $oResult = \AppDelegationPeer::doSelectOne($oCriteria); if (!empty($oResult)) { $paused = true; } $response->paused = $paused; $oCriteria = new \Criteria(); $oCriteria->add(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"); $oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID); if ($caseType == 'unassigned') { $oCriteria->add(\AppDelegationPeer::USR_UID, "", \Criteria::EQUAL); } $oApplication = \AppDelegationPeer::doSelectOne($oCriteria); $response->result = true; if (!empty($oApplication) || $paused) { $response->result = false; $response->message = G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES'); } return $response; }
public function validateAssignType($newValues, $oldValues) { if (isset($newValues['TAS_ASSIGN_TYPE']) && isset($oldValues['TAS_ASSIGN_TYPE'])) { $newAssigType = $newValues['TAS_ASSIGN_TYPE']; $oldAssigType = $oldValues['TAS_ASSIGN_TYPE']; if ($newAssigType == 'SELF_SERVICE') { $newAssigType = isset($newValues['TAS_GROUP_VARIABLE']) ? empty($newValues['TAS_GROUP_VARIABLE']) ? 'SELF_SERVICE' : 'SELF_SERVICE_VALUE_BASED' : 'SELF_SERVICE'; } if ($oldAssigType == 'SELF_SERVICE') { $oldAssigType = isset($oldValues['TAS_GROUP_VARIABLE']) ? empty($oldValues['TAS_GROUP_VARIABLE']) ? 'SELF_SERVICE' : 'SELF_SERVICE_VALUE_BASED' : 'SELF_SERVICE'; } if ($oldAssigType == 'SELF_SERVICE' && $newAssigType != 'SELF_SERVICE' || $oldAssigType == 'SELF_SERVICE_VALUE_BASED' && $newAssigType != 'SELF_SERVICE_VALUE_BASED') { $oCriteria = new Criteria(); $oCriteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"); $oCriteria->add(AppDelegationPeer::TAS_UID, $newValues['TAS_UID']); $oCriteria->add(AppDelegationPeer::USR_UID, ""); $oApplication = AppDelegationPeer::doSelectOne($oCriteria); if (!empty($oApplication)) { throw new Exception(G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES')); } } } }