Пример #1
0
 public function isValid($postData)
 {
     $contacts = new LettingAgents_Manager_Contacts();
     $pageSession = new Zend_Session_Namespace('letting_agents_application');
     if ($contacts->fetchByAgencyUid($this->_agent_uid)) {
         switch ($this->_organisationId) {
             case LettingAgents_Object_CompanyTypes::LimitedCompany:
                 $this->getSubForm('subform_limited-company-contacts')->getElement('contact_name')->setRequired(false);
                 break;
             case LettingAgents_Object_CompanyTypes::LimitedLiabilityPartnership:
                 if ($postData['postcode'] != "") {
                     $this->getSubForm('subform_limited-liability-partnership')->getElement('contact_name')->setRequired(true);
                 } elseif ($postData['contact_name'] != "") {
                     $this->getSubForm('subform_address')->getElement('postcode')->setRequired(true);
                 } else {
                     $this->getSubForm('subform_limited-liability-partnership')->getElement('contact_name')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('postcode')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRegisterInArrayValidator(false);
                 }
                 break;
             case LettingAgents_Object_CompanyTypes::Partnership:
                 if ($postData['postcode'] != "" || $postData['contact_name'] != "") {
                     $this->getSubForm('subform_partnership')->getElement('contact_name')->setRequired(true);
                 } else {
                     $this->getSubForm('subform_partnership')->getElement('contact_name')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('postcode')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRegisterInArrayValidator(false);
                 }
                 break;
         }
     } elseif ($postData['contact_name'] != '') {
         $agent_id = $this->_agent_uid;
         $db = Zend_Registry::get('db_letting_agents');
         //die($clause);
         $validator = new Zend_Validate_Db_RecordExists(array('table' => 'contact', 'field' => 'agency_id', 'value' => $agent_id, 'adapter' => $db));
         $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Director'));
         switch ($this->_organisationId) {
             case LettingAgents_Object_CompanyTypes::LimitedCompany:
                 $this->getSubForm('subform_limited-company-contacts')->getElement('contact_name')->addValidator($validator);
                 $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Director'));
                 break;
             case LettingAgents_Object_CompanyTypes::LimitedLiabilityPartnership:
                 $this->getSubForm('subform_limited-liability-partnership')->getElement('contact_name')->addValidator($validator);
                 $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Partner'));
                 break;
             case LettingAgents_Object_CompanyTypes::Partnership:
                 $this->getSubForm('subform_partnership')->getElement('contact_name')->addValidator($validator);
                 $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Partner'));
                 break;
         }
     }
     return parent::isValid($postData);
 }