/** * Validate element value * * @param array $data * @param mixed $context * @return boolean */ public function isValid($value, $context = array()) { if ($this->getInverted() != $this->_checkFieldValue($context)) { return parent::isValid($value); } 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 RestrictionModel || $this->_acceptArrayAsModel && is_array($data))) { $this->_messages = array(); $this->_messages[self::NOT_RESTRICTIONS] = $this->_messageTemplatesUser[self::NOT_RESTRICTIONS]; return false; } if (!parent::isValid($data, $context, $removeNotPresentFields)) { return false; } if (!$data instanceof RestrictionModel) { $data = new RestrictionModel($data); } $contracts = ContractService::getInstance()->getContractsByServiceType('csrm')->getItems(); if (!empty($contracts)) { $validator = new \Zend_Validate_NotEmpty(); } else { $validator = new \App_Validate_Empty(); } if (!$validator->isValid($data->steering)) { $this->_messages['steering'] = $validator->getMessages(); return false; } // If Voice HOME = SMS HOME, roaming is linked if ($data->getVoice() && $data->getVoice()->getMo() && $data->getSms() && $data->getSms()->getMo() && $data->getVoice()->getMo()->getHome() === $data->getSms()->getMo()->getHome() && $data->getVoice()->getMo()->getRoaming() !== $data->getSms()->getMo()->getRoaming()) { $this->_messages = array(); $this->_messages[self::NOT_SYNC_VOICE_SMS_ROAMING] = $this->_messageTemplatesUser[self::NOT_SYNC_VOICE_SMS_ROAMING]; return false; } // https://jira.tid.es/browse/GLOBALPORTAL-115352 // if ($data->getSms() && $data->getSms()->getMo() && // // If HOME is disabled and Roaming Enabled // (($data->getSms()->getMo()->getHome() && !$data->getSms()->getMo()->getRoaming()) || // // If HOME is enabled and Roaming !== International // (isset($data->getSms()->getMo()->roaming) && // $data->getSms()->getMo()->getRoaming() !== $data->getSms()->getMo()->getInternational()))) { // $this->_messages = array(); // $this->_messages[self::NOT_ROAMING_INTERNATIONAL_SAME_VALUE] = // $this->_messageTemplatesUser[self::NOT_ROAMING_INTERNATIONAL_SAME_VALUE]; // return false; // } // Validate leading/commercial OB $org = \App::getOrgUserLogged(); $orgProvider = OrgService::getInstance()->getParentByType($org->id, OrgServiceProviderModel::ORG_TYPE); if ($orgProvider && \Application\Service\OrgService::getInstance()->isCommercial($orgProvider)) { $validator = new RestrictionsCommercialValidate(); if (!$validator->isValid($data, $context, $removeNotPresentFields)) { $this->_messages = $validator->getMessages(); return false; } } return true; }