/** * Put pause case * * @access public * @param string $app_uid , Uid for case * @param string $usr_uid , Uid for user * @param bool|string $del_index , Index for case * @param null|string $unpaused_date, Date for unpaused * @return array * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia */ public function putPauseCase($app_uid, $usr_uid, $del_index = false, $unpaused_date = null) { Validator::isString($app_uid, '$app_uid'); Validator::isString($usr_uid, '$usr_uid'); Validator::appUid($app_uid, '$app_uid'); Validator::usrUid($usr_uid, '$usr_uid'); if ($del_index === false) { $del_index = \AppDelegation::getCurrentIndex($app_uid); } Validator::isInteger($del_index, '$del_index'); $case = new \Cases(); $fields = $case->loadCase($app_uid); if ($fields['APP_STATUS'] == 'CANCELLED') { throw (new \Exception(\G::LoadTranslation("ID_CASE_IS_CANCELED", array($app_uid)))); } $oDelay = new \AppDelay(); if ($oDelay->isPaused($app_uid, $del_index)) { throw (new \Exception(\G::LoadTranslation("ID_CASE_PAUSED", array($app_uid)))); } $appCacheView = new \AppCacheView(); $arrayProcess = $appCacheView->getProUidSupervisor($usr_uid); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\AppDelegationPeer::APP_UID); $criteria->add(\AppDelegationPeer::APP_UID, $app_uid, \Criteria::EQUAL); $criteria->add(\AppDelegationPeer::DEL_INDEX, $del_index, \Criteria::EQUAL); $criteria->add( $criteria->getNewCriterion(\AppDelegationPeer::USR_UID, $usr_uid, \Criteria::EQUAL)->addOr( $criteria->getNewCriterion(\AppDelegationPeer::PRO_UID, $arrayProcess, \Criteria::IN)) ); $criteria->add(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", \Criteria::EQUAL); $criteria->add(\AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL); $rsCriteria = \AppDelegationPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { throw (new \Exception(\G::LoadTranslation("ID_CASE_USER_INVALID_PAUSED_CASE", array($usr_uid)))); } if ($unpaused_date != null) { Validator::isDate($unpaused_date, 'Y-m-d', '$unpaused_date'); } $case->pauseCase( $app_uid, $del_index, $usr_uid, $unpaused_date ); }
/** * */ public function pauseCase($usr_uid, $app_uid, $request_data) { $result = new \stdclass(); try { $unpauseDate = $request_data['unpauseDate'] . ' '. $request_data['unpauseTime']; $oCase = new \Cases(); $iDelIndex = $oCase->getCurrentDelegation( $app_uid, $usr_uid ); // Save the note pause reason if ($request_data['noteContent'] != '') { $request_data['noteContent'] = G::LoadTranslation('ID_CASE_PAUSE_LABEL_NOTE') . ' ' . $request_data['noteContent']; $appNotes = new \AppNotes(); $noteContent = addslashes($request_data['noteContent']); $appNotes->postNewNote($app_uid, $usr_uid, $noteContent, $request_data['notifyUser']); } // End save $oCase->pauseCase($app_uid, $iDelIndex, $usr_uid, $unpauseDate); $app = new \Application(); $caseData = $app->load($app_uid); $data['APP_NUMBER'] = $caseData['APP_NUMBER']; $data['UNPAUSE_DATE'] = $unpauseDate; $result->success = true; $result->msg = G::LoadTranslation('ID_CASE_PAUSED_SUCCESSFULLY', SYS_LANG, $data); } catch (\Exception $e) { throw $e; } return $result; }
/** * Put pause case * * @access public * @param string $app_uid , Uid for case * @param string $usr_uid , Uid for user * @param bool|string $del_index , Index for case * @param null|string $unpaused_date, Date for unpaused * @return array * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia */ public function putPauseCase($app_uid, $usr_uid, $del_index = false, $unpaused_date = null) { Validator::isString($app_uid, '$app_uid'); Validator::isString($usr_uid, '$usr_uid'); Validator::appUid($app_uid, '$app_uid'); Validator::usrUid($usr_uid, '$usr_uid'); $case = new \Cases(); $fields = $case->loadCase($app_uid); if ($fields['APP_STATUS'] == 'CANCELLED') { throw (new \Exception(\G::LoadTranslation("ID_CASE_IS_CANCELED", array($app_uid)))); } if ($del_index === false) { $del_index = \AppDelegation::getCurrentIndex($app_uid); } Validator::isInteger($del_index, '$del_index'); if ($unpaused_date != null) { Validator::isDate($unpaused_date, 'Y-m-d', '$unpaused_date'); } $case->pauseCase( $app_uid, $del_index, $usr_uid, $unpaused_date ); }