protected function _validateTransitions(StatusModel $status) { if (count($status->getTransitions()) > 2) { $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS]; return false; } if (count($status->getTransitions()) < 2) { $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS]; return false; } if (!$this->_validateTimeCauseTransition($status, LifeCycleModel::STATUS_SUSPENDED)) { return false; } if ($this->getUseTest()) { //To Test if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_TEST)) { return false; } } else { if ($this->getManual()) { if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_PENDANT)) { return false; } } else { if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_READY)) { return false; } } } return true; }
protected function _validateTransitions(StatusModel $status) { if (count($status->getTransitions()) > 0) { $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS]; return false; } return true; }
protected function _validateTransitionExists(StatusModel $status, $destStatus) { $trans = $status->getTransitionByDestinationStatus($destStatus); if (is_null($trans)) { $this->_messages[self::MISSING_TRANSITION] = str_replace('%value%', $destStatus, $this->_messageTemplatesUser[self::MISSING_TRANSITION]); return false; } return $trans; }
/** * Validate element value * * If a translation adapter is registered, any error messages will be * translated according to the current locale, using the given error code; * if no matching translation is found, the original message will be * utilized. * * Note: The *filtered* value is validated. * * @param array $data * @param mixed $context * @return boolean */ public function isValid($data, $context = null, $removeNotPresentFields = false) { if (!($data instanceof AutomaticInfoModel || $this->_acceptArrayAsModel && is_array($data))) { $this->_messages = array(); $this->_messages[self::NOT_AUTOMATIC_INFO] = $this->_messageTemplatesUser[self::NOT_AUTOMATIC_INFO]; return false; } if ($data instanceof AutomaticInfoModel) { $voucherCause = $data->getVoucherCause(); $voucherInfo = $data->getVoucherCauseInfo(); $timeCause = $data->getTimerCause(); $firstUseCause = $data->getFirstUseCause(); } else { $voucherCause = isset($data['voucherCause']) ? $data['voucherCause'] : false; $voucherInfo = isset($data['voucherCauseInfo']) ? $data['voucherCauseInfo'] : null; $timeCause = isset($data['timerCause']) ? $data['timerCause'] : false; $firstUseCause = isset($data['firstUseCause']) ? $data['firstUseCause'] : false; } $status = new StatusModel($context['__parent']); if ($voucherCause) { if (!$voucherInfo) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_INFO] = $this->_messageTemplatesUser[self::NOT_VOUCHER_INFO]; return false; } if (isset($status) && $status->getVouchers() === null) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_DATA] = $this->_messageTemplatesUser[self::NOT_VOUCHER_DATA]; return false; } } if ($timeCause && isset($status) && $status->getTimer() === null) { $this->_messages = array(); $this->_messages[self::NOT_TIMER_DATA] = $this->_messageTemplatesUser[self::NOT_TIMER_DATA]; return false; } if ($voucherCause && !$voucherInfo) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_INFO] = $this->_messageTemplatesUser[self::NOT_VOUCHER_INFO]; return false; } if (!$timeCause && !$firstUseCause && !$voucherCause) { $this->_messages = array(); $this->_messages[self::NOT_CAUSE] = $this->_messageTemplatesUser[self::NOT_CAUSE]; return false; } return parent::isValid($data, $context, $removeNotPresentFields); }
protected function _validateTransitions(StatusModel $status) { if (count($status->getTransitions()) > 6) { $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS]; return false; } $min = $this->getUseTest() ? 6 : 5; if (count($status->getTransitions()) < $min) { $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS]; return false; } //To InactiveNew if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_INACTIVE_NEW)) { return false; } //To Active if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVE)) { return false; } //To Deactivate if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_DEACTIVATED)) { return false; } //To Retired if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_RETIRED)) { return false; } if ($this->getManual()) { //To Activation pendant if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_PENDANT)) { return false; } } else { //To Activation ready if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_READY)) { return false; } } if ($this->getUseTest()) { //To Test if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_TEST)) { return false; } } return true; }
protected function _validateTransitions(StatusModel $status) { if (count($status->getTransitions()) > 2) { $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS]; return false; } if (count($status->getTransitions()) < 2) { $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS]; return false; } if (!parent::_validateTransitions($status)) { return false; } if (!$this->_validateFirstUseTransition($status, LifeCycleModel::STATUS_ACTIVE)) { return false; } return true; }
protected function _validateTransitions(StatusModel $status) { if (count($status->getTransitions()) > 2) { $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS]; return false; } if (count($status->getTransitions()) < 2) { $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS]; return false; } if (!parent::_validateTransitions($status)) { return false; } if ($this->getManual()) { if (!$this->_validateTransitionExists($status, LifeCycleModel::STATUS_ACTIVATION_PENDANT)) { return false; } } else { if (!$this->_validateTransitionExists($status, LifeCycleModel::STATUS_ACTIVATION_READY)) { return false; } } return true; }
/** * Validate element value * * If a translation adapter is registered, any error messages will be * translated according to the current locale, using the given error code; * if no matching translation is found, the original message will be * utilized. * * Note: The *filtered* value is validated. * * @param array $data * @param mixed $context * @return boolean */ public function isValid($data, $context = null, $removeNotPresentFields = false) { if (!($data instanceof VoucherCauseInfoModel || $this->_acceptArrayAsModel && is_array($data))) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_INFO] = $this->_messageTemplatesUser[self::NOT_VOUCHER_INFO]; return false; } if (!parent::isValid($data, $context, $removeNotPresentFields)) { return false; } $status = new StatusModel($context['__parent']['__parent']); if (in_array(VoucherCauseInfoModel::VOUCHER_TYPE_VOICE_HOME, $data['vouchers']) && !($status->getVouchers()->getVoice() && $status->getVouchers()->getVoice()->getHome())) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_DATA] = str_replace('%value%', VoucherCauseInfoModel::VOUCHER_TYPE_VOICE_HOME, $this->_messageTemplatesUser[self::NOT_VOUCHER_DATA]); return false; } if (in_array(VoucherCauseInfoModel::VOUCHER_TYPE_VOICE_ROAMING, $data['vouchers']) && !($status->getVouchers()->getVoice() && $status->getVouchers()->getVoice()->getRoaming())) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_DATA] = str_replace('%value%', VoucherCauseInfoModel::VOUCHER_TYPE_VOICE_ROAMING, $this->_messageTemplatesUser[self::NOT_VOUCHER_DATA]); return false; } if (in_array(VoucherCauseInfoModel::VOUCHER_TYPE_SMS_HOME, $data['vouchers']) && !($status->getVouchers()->getSms() && $status->getVouchers()->getSms()->getHome())) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_DATA] = str_replace('%value%', VoucherCauseInfoModel::VOUCHER_TYPE_SMS_HOME, $this->_messageTemplatesUser[self::NOT_VOUCHER_DATA]); return false; } if (in_array(VoucherCauseInfoModel::VOUCHER_TYPE_SMS_ROAMING, $data['vouchers']) && !($status->getVouchers()->getSms() && $status->getVouchers()->getSms()->getRoaming())) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_DATA] = str_replace('%value%', VoucherCauseInfoModel::VOUCHER_TYPE_SMS_ROAMING, $this->_messageTemplatesUser[self::NOT_VOUCHER_DATA]); return false; } if (in_array(VoucherCauseInfoModel::VOUCHER_TYPE_DATA_HOME, $data['vouchers']) && !($status->getVouchers()->getData() && $status->getVouchers()->getData()->getHome())) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_DATA] = str_replace('%value%', VoucherCauseInfoModel::VOUCHER_TYPE_DATA_HOME, $this->_messageTemplatesUser[self::NOT_VOUCHER_DATA]); return false; } if (in_array(VoucherCauseInfoModel::VOUCHER_TYPE_DATA_ROAMING, $data['vouchers']) && !($status->getVouchers()->getData() && $status->getVouchers()->getData()->getRoaming())) { $this->_messages = array(); $this->_messages[self::NOT_VOUCHER_DATA] = str_replace('%value%', VoucherCauseInfoModel::VOUCHER_TYPE_DATA_ROAMING, $this->_messageTemplatesUser[self::NOT_VOUCHER_DATA]); return false; } return true; }