/**
  * 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;
 }
Beispiel #2
0
 public function attemptLogin($loginForm)
 {
     $request = $this->getRequest();
     $auth = Zend_Auth::getInstance();
     $auth->setStorage(new Zend_Auth_Storage_Session('hl_connect'));
     // We have post data from the login form - so attempt a login
     if ($loginForm->isValid($request->getPost())) {
         // The forms passed validation so we now need to check the identity of the user
         $adapter = $this->_getAuthAdapter($loginForm->getValues());
         $result = $auth->authenticate($adapter);
         if (!$result->isValid()) {
             // Invalid credentials
             $loginForm->setDescription('Invalid credentials provided');
             return false;
         } else {
             // Valid credentials - store the details we need from the database and move the user to the index page
             $storage = $auth->getStorage();
             $resultRowObject = $adapter->getResultRowObject(array('agentid', 'username', 'realname', 'level', 'agentschemeno', 'STATUS', 'LASTLOGINDATE'));
             // Rewrite LASTLOGINDATE to lastlogindate
             $resultRowObject->lastlogindate = $resultRowObject->LASTLOGINDATE;
             unset($resultRowObject->LASTLOGINDATE);
             // Get correct status name from ID
             $agentuser = new Datasource_Core_Agent_UserAccounts();
             $user = $agentuser->getUser($resultRowObject->agentid);
             $userstatus = new Model_Core_Agent_UserStatus();
             $resultRowObject->status = strtolower($userstatus->toString($user->status));
             unset($resultRowObject->STATUS);
             $agentManager = new Manager_Core_Agent();
             try {
                 $resultRowObject->fsastatusabbr = $agentManager->getFsaStatusCode($resultRowObject->agentschemeno);
                 $agent = $agentManager->getAgent($resultRowObject->agentschemeno);
                 $resultRowObject->agentAccountStatus = $agent->status;
             } catch (Exception $e) {
                 // FSA Server is down so we can't currently log agent in
                 $auth->clearIdentity();
                 return false;
             }
             // 'level' is not mapped in the DB to the correct framework
             // constants, do so now.
             // TODO: Fix this so it's not having to mess with
             // translating raw legacy DB values
             switch ($resultRowObject->level) {
                 case 1:
                     $resultRowObject->level = Model_Core_Agent_UserRole::BASIC;
                     break;
                 case 3:
                     $resultRowObject->level = Model_Core_Agent_UserRole::MASTER;
                     break;
             }
             // Detect if agent exists in IRIS
             // If the agent has decommission_in_hrt_at set in newagents then this means agent exists in IRIS
             $resultRowObject->isInIris = false;
             if ($agent->decommissionInHrtAt) {
                 $resultRowObject->isInIris = true;
             }
             // If this is an IRIS agent, try to authenticate them
             if ($resultRowObject->isInIris) {
                 /** @var \Iris\Authentication\Authentication $irisAuthentication */
                 $irisAuthentication = \Zend_Registry::get('iris_container')->get('iris.authentication');
                 $authenticationParams = $loginForm->getValues();
                 $authenticateAgent = $irisAuthentication->authenticateAgent($authenticationParams['agentschemeno'], $authenticationParams['username'], $authenticationParams['password']);
                 if (false === $authenticateAgent) {
                     $auth->clearIdentity();
                     $loginForm->setDescription('Failed to login to referencing system');
                     return false;
                 }
                 $resultRowObject->agentBranchUuid = $authenticateAgent->getAgentBranchUuid();
                 $resultRowObject->canPerformReferencing = true;
                 if ($agent->hasProductAvailabilityMapping) {
                     // Determine if this agent can use referencing
                     /** @var \Guzzle\Common\Collection $products */
                     $products = \Zend_Registry::get('iris_container')->get('iris.product')->getProducts(1, 1);
                     // If the product count is greater than zero then the agent can perform referencing
                     $resultRowObject->canPerformReferencing = $products->count() > 0;
                 }
             }
             $resultRowObject->agentsRateID = $agent->agentsRateID;
             $storage->write($resultRowObject);
             return true;
         }
     }
 }