Ejemplo n.º 1
0
 public function isValid($formData = array())
 {
     // Call original isValid() first before doing further validation checks
     //    $isValid=parent::isValid($formData);
     $auth = Zend_Auth::getInstance();
     $auth->setStorage(new Zend_Auth_Storage_Session('hl_connect'));
     // Get ASN from auth object
     $agentSchemeNumber = $auth->getStorage()->read()->agentschemeno;
     if ($formData['question1'] === 'yes') {
         $this->getElement('claiminfo')->setRequired(true);
     } else {
         $this->getElement('claiminfo')->setRequired(false);
     }
     if (isset($formData['email_address']) && trim($formData['email_address']) != '') {
         // The agent manager can throw execptions, for web use we need to treat them as invalid and return false
         $agentManager = new Manager_Core_Agent();
         $agentObj = $agentManager->getAgent($agentSchemeNumber);
         // Get referencing email address (Cat 2)
         $ref_email_address = $agentManager->getEmailAddressByCategory(2);
         // Referencing email address is not allowed
         if ($formData['email_address'] === $ref_email_address) {
             $this->getElement('email_address')->addError('Please provide Landlord email address.');
             $isValid = false;
         }
         // Confirmed email address filed value should be same as email address field value
         if (isset($formData['confirm_email_address']) && trim($formData['confirm_email_address']) != '') {
             if ($formData['email_address'] !== $formData['confirm_email_address']) {
                 $this->getElement('confirm_email_address')->addError('Invalid confirmed email address.');
                 $isValid = false;
             }
         }
     }
     //    return $isValid;
     return parent::isValid($formData);
 }
 /**
  * Helper function to populate the zend form elements with database data
  *
  * @param Zend_Form $pageForm form definition for this step
  * @param int $stepNum current step number
  *
  * @return void
  */
 private function _formStepCommonPopulate($pageForm, $stepNum)
 {
     $pageSession = new Zend_Session_Namespace('online_claims');
     // First of all check that this form should be viewable and the user isn't trying to skip ahead
     $this->view->stepNum = $stepNum;
     $this->view->stepMax = $this->_stepMax;
     // Check to see if the user is trying to skip ahead in the claim
     $tooFarAhead = false;
     $lastCompleted = 1;
     if ((!isset($pageSession->completed) || is_null($pageSession->completed)) && $stepNum != 1) {
         $tooFarAhead = true;
         $lastCompleted = 1;
     } elseif ($stepNum > 1) {
         // Check to see if any pages previous to the one the user's trying to get to are incomplete
         $tooFarAhead = false;
         for ($i = 1; $i < $stepNum; $i++) {
             if (!isset($pageSession->completed[$i]) || !$pageSession->completed[$i]) {
                 $tooFarAhead = true;
                 $lastCompleted = $i;
                 break;
             }
         }
     }
     if ($tooFarAhead) {
         // Drop user onto page that needs completing
         $response = $this->getResponse();
         $response->setRedirect('/rentguaranteeclaims/step' . $lastCompleted);
         $response->sendResponse();
         return false;
     }
     $formData = array();
     $agentManager = new Manager_Core_Agent();
     $agentDetails = $agentManager->getAgent($this->_agentSchemeNumber);
     // Populate the agents details
     $formData['agent_schemenumber'] = $this->_agentSchemeNumber;
     $formData['agent_name'] = $agentDetails->getName();
     $formData['agent_postcode'] = $agentDetails->contact[0]->address->getPostCode();
     $formData['agent_housename'] = $agentDetails->contact[0]->address->getHouseName();
     $agentStreet = $agentDetails->contact[0]->address->getAddressLine1();
     if ($agentStreet) {
         $agentStreet .= $agentStreet . ', ';
     }
     $agentStreet .= $agentDetails->contact[0]->address->getAddressLine2();
     $formData['agent_street'] = $agentStreet;
     $formData['agent_town'] = $agentDetails->contact[0]->address->getTown();
     $phones = $agentDetails->contact[0]->phoneNumbers->getTelephone();
     $formData['agent_telephone'] = $phones['telephone1'];
     $formData['agent_email'] = $agentManager->getEmailAddressByCategory(Model_Core_Agent_EmailMapCategory::GENERAL);
     $agentManager = new Manager_Core_Agent();
     $statusAbr = $agentManager->getFsaStatusCode($this->_agentSchemeNumber);
     $formData['agent_ar_by_barbon'] = in_array($statusAbr, array('NAR', 'AR')) == true ? 'Yes' : 'No';
     $formData['agent_dir_by_fca'] = in_array($statusAbr, array('DIR')) == true ? 'Yes' : 'No';
     if (isset($pageSession->ClaimReferenceNumber)) {
         // Only populate from DB if we are in session and have a reference number
         $claimReferenceNumber = $pageSession->ClaimReferenceNumber;
         // Populate $formData with data from model, if available
         $claimManager = new Manager_Insurance_RentGuaranteeClaim_Claim();
         $claim = $claimManager->getClaim($claimReferenceNumber, $this->_agentSchemeNumber);
         // Override agents data with data from claim if available
         if ($claim->getAgentHousename() != '') {
             $formData['agent_housename'] = $claim->getAgentHousename();
         }
         if ($claim->getAgentStreet() != '') {
             $formData['agent_street'] = $claim->getAgentStreet();
         }
         if ($claim->getAgentTown() != '') {
             $formData['agent_town'] = $claim->getAgentTown();
         }
         if ($claim->getAgentPostcode() != '') {
             $formData['agent_postcode'] = $claim->getAgentPostcode();
         }
         if ($claim->getAgentTelephone() != '') {
             $formData['agent_telephone'] = $claim->getAgentTelephone();
         }
         if ($claim->getAgentEmail() != '') {
             $formData['agent_email'] = $claim->getAgentEmail();
         }
         switch ($stepNum) {
             case 1:
                 // You and your Landlord section
                 $formData['agent_contact_name'] = $claim->getAgentContactName();
                 $formData['landlord1_name'] = $claim->getLandlord1Name();
                 $formData['landlord_company_name'] = $claim->getLandlordCompanyName();
                 $formData['landlord_postcode'] = $claim->getLandlordPostcode();
                 $formData['landlord_address_id'] = $claim->getLandlordAddressId();
                 $formData['landlord_address'] = $claim->getLandlordAddressId();
                 $formData['landlord_housename'] = $claim->getLandlordHouseName();
                 $formData['landlord_street'] = $claim->getLandlordStreet();
                 $formData['landlord_city'] = $claim->getLandlordCity();
                 $formData['landlord_town'] = $claim->getLandlordTown();
                 $formData['landlord_telephone'] = $claim->getLandlordTelephone();
                 $formData['landlord_email'] = $claim->getLandlordEmail();
                 $pageForm->isValid($formData);
                 break;
             case 2:
                 if (isset($pageSession->completed[$stepNum]) && $pageSession->completed[$stepNum] || isset($pageSession->identifier[$stepNum]) && $pageSession->identifier[$stepNum]) {
                     //set step2 identifier
                     $pageSession->identifier[$stepNum] = true;
                     // get tenant and property details
                     $formData['housing_act_adherence'] = $claim->getHousingActAdherence();
                     $formData['tenancy_start_date'] = $claim->getTenancyStartDate();
                     $formData['tenancy_end_date'] = $claim->getTenancyEndDate();
                     $formData['original_cover_start_date'] = $claim->getOriginalCoverStartDate();
                     $formData['monthly_rent'] = $claim->getMonthlyRent();
                     $formData['tenancy_address_id'] = $claim->getTenancyAddressId();
                     $formData['tenancy_postcode'] = $claim->getTenancyPostcode();
                     $formData['tenancy_housename'] = $claim->getTenancyHouseName();
                     $formData['tenancy_street'] = $claim->getTenancyStreet();
                     $formData['tenancy_town'] = $claim->getTenancyTown();
                     $formData['tenancy_city'] = $claim->getTenancyCity();
                     $formData['tenancy_postcode'] = $claim->getTenancyPostcode();
                     $formData['tenancy_address'] = $claim->getTenancyAddress();
                     $formData['tenancy_housename'] = $claim->getTenancyHouseName();
                     $formData['tenancy_street'] = $claim->getTenancyStreet();
                     $formData['tenancy_town'] = $claim->getTenancyTown();
                     $formData['tenancy_city'] = $claim->getTenancyCity();
                     $formData['deposit_amount'] = $claim->getDepositAmount();
                     $formData['rent_arrears'] = $claim->getRentArrears();
                     $formData['tenant_vacated'] = $claim->getTenantVacated();
                     $formData['tenant_vacated_date'] = $claim->getTenantVacatedDate();
                     $formData['first_arrear_date'] = $claim->getFirstArrearDate();
                     $formData['deposit_received_date'] = $claim->getDepositReceivedDate();
                     $formData['recent_complaints'] = $claim->getRecentComplaints();
                     $formData['recent_complaints_further_details'] = $claim->getRecentComplaintsDetails();
                     $formData['policy_number'] = $claim->getPolicyNumber();
                     $formData['grounds_for_claim'] = $claim->getGroundsForClaim();
                     $formData['grounds_for_claim_further_details'] = $claim->getGroundsForClaimDetails();
                     $formData['arrears_at_vacant_possession'] = $claim->getArrearsAtVacantPossession();
                     $formData['tenantsforwarding_address_id'] = $claim->getTenantsForwardingAddressId();
                     $formData['tenantsforwarding_housename'] = $claim->getTenantsForwardingHouseName();
                     $formData['tenantsforwarding_street'] = $claim->getTenantsForwardingStreet();
                     $formData['tenantsforwarding_town'] = $claim->getTenantsForwardingTown();
                     $formData['tenantsforwarding_city'] = $claim->getTenantsForwardingCity();
                     $formData['tenantsforwarding_postcode'] = $claim->getTenantsForwardingPostcode();
                     $formData['tenant_occupation_confirmed_by_tel'] = $claim->getTenantsOccupationOfPropertyConfirmedByTel();
                     $formData['tenant_occupation_confirmed_by_tel_dateofcontact'] = $claim->getTenantsOccupationOfPropertyConfirmedByTelDate();
                     $formData['tenant_occupation_confirmed_by_tel_tenantname'] = $claim->getTenantsOccupationOfPropertyConfirmedByTelContact();
                     $formData['tenant_occupation_confirmed_by_email'] = $claim->getTenantsOccupationOfPropertyConfirmedByEmail();
                     $formData['tenant_occupation_confirmed_by_email_dateofcontact'] = $claim->getTenantsOccupationOfPropertyConfirmedByEmailDate();
                     $formData['tenant_occupation_confirmed_by_email_tenantname'] = $claim->getTenantsOccupationOfPropertyConfirmedByEmailContact();
                     $formData['tenant_occupation_confirmed_by_visit'] = $claim->getTenantsOccupationOfPropertyConfirmedByVisit();
                     $formData['tenant_occupation_confirmed_by_visit_dateofvisit'] = $claim->getTenantsOccupationOfPropertyConfirmedByVisitDate();
                     $formData['tenant_occupation_confirmed_by_visit_individualattending'] = $claim->getTenantsOccupationOfPropertyConfirmedByVisitIndividual();
                     $formData['tenant_occupation_confirmed_by_visit_tenantname'] = $claim->getTenantsOccupationOfPropertyConfirmedByVisitContact();
                     $formData['section21_served'] = $claim->getS21NoticeServed();
                     $formData['section21_expiry'] = $claim->getS21NoticeExpiry();
                     $formData['section21_moneydepositreceived'] = $claim->getS21NoticeMoneyDepositReceived();
                     $formData['section21_money_held_under_tds_deposit_scheme'] = $claim->getS21NoticeMoneyDepositHeldUnderTdsScheme();
                     $formData['section21_tds_complied_with'] = $claim->getS21NoticeTdsCompliedWith();
                     $formData['section21_tds_prescribed_information_to_tenant'] = $claim->getS21NoticeTdsPrescribedToTenant();
                     $formData['section21_landlord_deposit_in_property_form'] = $claim->getS21NoticeLandlordDepositInPropertyForm();
                     $formData['section21_returned_at_notice_serve_date'] = $claim->getS21NoticePropertyReturnedAtNoticeServeDate();
                     $formData['section8_served'] = $claim->getS8NoticeServed();
                     $formData['section8_expiry'] = $claim->getS8NoticeExpiry();
                     $formData['section8_demand_letter_sent'] = $claim->getS8NoticeDemandLetterSent();
                     $formData['section8_over18_occupants'] = $claim->getS8NoticeOver18Occupants();
                     // get guarantor details
                     $guarantorManager = new Manager_Insurance_RentGuaranteeClaim_Guarantor();
                     $getGuarantorInfo = $guarantorManager->getGuarantors($claimReferenceNumber);
                     $formData['total_guarantors'] = count($getGuarantorInfo);
                     $formData['totalguarantors'] = count($getGuarantorInfo);
                     $createDynamicGuarantorElement = 1;
                     foreach ($getGuarantorInfo as $setGuarantorInfo) {
                         Application_Core_FormUtils::createManualAddressInput($pageForm, 'guarantor_housename_' . $createDynamicGuarantorElement, 'guarantor_street_' . $createDynamicGuarantorElement, 'guarantor_town_' . $createDynamicGuarantorElement, 'guarantor_city_' . $createDynamicGuarantorElement);
                         $formData['guarantor_name_' . $createDynamicGuarantorElement] = $setGuarantorInfo['guarantor_name'];
                         $formData['guarantor_hometelno_' . $createDynamicGuarantorElement] = $setGuarantorInfo['hometelno'];
                         $formData['guarantor_worktelno_' . $createDynamicGuarantorElement] = $setGuarantorInfo['worktelno'];
                         $formData['guarantor_mobiletelno_' . $createDynamicGuarantorElement] = $setGuarantorInfo['mobiletelno'];
                         $formData['guarantor_email_' . $createDynamicGuarantorElement] = $setGuarantorInfo['email'];
                         $formData['guarantors_dob_' . $createDynamicGuarantorElement] = date('d/m/Y', strtotime($setGuarantorInfo['dob']));
                         $formData['guarantor_homeletrefno_' . $createDynamicGuarantorElement] = $setGuarantorInfo['homeletrefno'];
                         $formData['guarantor_housename_' . $createDynamicGuarantorElement] = $setGuarantorInfo['house_name'];
                         $formData['guarantor_street_' . $createDynamicGuarantorElement] = $setGuarantorInfo['street'];
                         $formData['guarantor_town_' . $createDynamicGuarantorElement] = $setGuarantorInfo['town'];
                         $formData['guarantor_city_' . $createDynamicGuarantorElement] = $setGuarantorInfo['city'];
                         $formData['guarantor_postcode_' . $createDynamicGuarantorElement] = $setGuarantorInfo['postcode'];
                         $formData['guarantor_address_' . $createDynamicGuarantorElement] = $setGuarantorInfo['address_id'];
                         $createDynamicGuarantorElement++;
                     }
                     // get tenant details
                     $tenantManager = new Manager_Insurance_RentGuaranteeClaim_Tenant();
                     $getTenantInfo = $tenantManager->getTenants($claimReferenceNumber);
                     $formData['total_tenants'] = count($getTenantInfo);
                     $formData['totaltenants'] = count($getTenantInfo);
                     $createDynamicTenantElement = 1;
                     foreach ($getTenantInfo as $setTenantInfo) {
                         $formData['tenant_name_' . $createDynamicTenantElement] = $setTenantInfo['tenant_name'];
                         $formData['tenant_hometelno_' . $createDynamicTenantElement] = $setTenantInfo['tenant_hometelno'];
                         $formData['tenant_worktelno_' . $createDynamicTenantElement] = $setTenantInfo['tenant_worktelno'];
                         $formData['tenant_mobiletelno_' . $createDynamicTenantElement] = $setTenantInfo['tenant_mobiletelno'];
                         $formData['tenant_email_' . $createDynamicTenantElement] = $setTenantInfo['tenant_email'];
                         $formData['tenants_dob_' . $createDynamicTenantElement] = date('d/m/Y', strtotime($setTenantInfo['tenant_dob']));
                         $formData['rg_policy_ref_' . $createDynamicTenantElement] = $setTenantInfo['rg_policy_ref'];
                         $createDynamicTenantElement++;
                     }
                     $pageForm->isValid($formData);
                 }
                 break;
             case 3:
                 if (isset($pageSession->completed[$stepNum]) && $pageSession->completed[$stepNum] || isset($pageSession->identifier[$stepNum]) && $pageSession->identifier[$stepNum]) {
                     //set step3 identifier
                     $pageSession->identifier[$stepNum] = true;
                     $formData['additional_information'] = $claim->getAdditionalInfo();
                     $formData['dd_accountname'] = $claim->getClaimPaymentBankAccountName();
                     $formData['bank_account_number'] = $claim->getClaimPaymentBankAccountNumber();
                     $formData['bank_sortcode_number'] = $claim->getClaimPaymentBankAccountSortCode();
                 }
                 break;
             case 4:
                 if (isset($pageSession->completed[$stepNum]) && $pageSession->completed[$stepNum] || isset($pageSession->identifier[$stepNum]) && $pageSession->identifier[$stepNum]) {
                     $pageSession->identifier[$stepNum] = true;
                     $formData['doc_confirmation_agent_name'] = $claim->getDocConfirmationAgentName();
                     $formData['landlord_proprietor_of_property'] = $claim->getLandlordIsPropertyProprietor();
                     $formData['chk_confirm'] = $claim->getAuthorityConfirmed();
                     $formData['dec_confirm'] = $claim->getDeclarationConfirmed();
                     $formData['hd_type'] = $claim->getSubmittedToKeyHouse();
                 }
                 break;
         }
     } else {
         // Not in session but there are some defaults we need to set for step 1
         // TODO: Write the javascript better so we don't need to do fudges like this
         $this->view->headScript()->appendScript("var sharersAllowed = 0;");
     }
     $pageForm->populate($formData);
     $this->view->sidebar = $this->view->partial('partials/rent-guarantee-claim-sidebar.phtml', array('stepNum' => $stepNum, 'stepMax' => $this->_stepMax));
     return true;
 }