/** * Move all rent guarantee claim details to keyHouse database, but does not * complete the claim * * @param int $referenceNum * * @return void */ public function submitClaim($referenceNum) { // Get Claim Information $dsClaim = new Datasource_Insurance_RentGuaranteeClaim_Claim(); $claimInfo = $dsClaim->getClaimByReferenceNumber($referenceNum); // Get Guarantors Information $dsGuarantors = new Datasource_Insurance_RentGuaranteeClaim_Guarantor(); $guarantorsInfo = $dsGuarantors->getGuarantors($referenceNum); // Get Rent Payments Information $dsRentPayments = new Datasource_Insurance_RentGuaranteeClaim_RentalPayment(); $rentPaymentsInfo = $dsRentPayments->getRentPaymentsByReferenceNumber($referenceNum); // Get Tenants Information $dsTenants = new Datasource_Insurance_RentGuaranteeClaim_Tenant(); $tenantsInfo = $dsTenants->getTenants($referenceNum); // Get Supporting Documents Information $supportingDocuments = new Datasource_Insurance_RentGuaranteeClaim_SupportingDocuments(); $documentsInfo = $supportingDocuments->getByReferenceNumber($referenceNum); // Submit all the data to keyhouse DB $dsKHClaim = new Datasource_Insurance_KeyHouse_Claim(); $validData = array(); if ($dsKHClaim->save($claimInfo)) { $dsKHGuarantors = new Datasource_Insurance_KeyHouse_Guarantors(); if (count($guarantorsInfo) > 0) { foreach ($guarantorsInfo as $guarantor) { $dsKHGuarantors->save($guarantor); } } $dsKHRentPayments = new Datasource_Insurance_KeyHouse_RentPayments(); if (count($rentPaymentsInfo) > 0) { foreach ($rentPaymentsInfo as $rentalPayment) { $dsKHRentPayments->save($rentalPayment); } } $dsKHTenants = new Datasource_Insurance_KeyHouse_Tenants(); if (count($tenantsInfo) > 0) { foreach ($tenantsInfo as $tenant) { $dsKHTenants->save($tenant); } } $dsKHSupportingDocuments = new Datasource_Insurance_KeyHouse_SupportingDocuments(); if (count($documentsInfo) > 0) { foreach ($documentsInfo as $document) { // Convert from StdClass to array as expected. $doc = array(); $doc['reference_number'] = $referenceNum; $doc['supporting_document_name'] = $document->type; $doc['attachment_filename'] = $this->_pathConvert($document->fullPath); $dsKHSupportingDocuments->save($doc); } } } }
/** * Gets all the SupportingDocuments for the given Claim Reference Number * * @param int $referenceNumber * * @return array * * Array of SupportingDocuments */ public function getSupportingDocumentsByReferenceNumber($referenceNumber) { try { $supportingDocumentModel = new Datasource_Insurance_RentGuaranteeClaim_SupportingDocuments(); $supportingDocuments = $supportingDocumentModel->getByReferenceNumber($referenceNumber); return $supportingDocuments; } catch (Zend_Exception $e) { throw new Zend_Exception('Couldn\'t getSupportingDocumentsByReferenceNumber(): ' . $e->getMessage()); } }
/** * Initialise the step 2 form * * @return void */ public function step3Action() { $pageForm = new Connect_Form_RentGuaranteeClaims_Step3(); $this->view->pageTitle = 'Online Claims - Step3 - Additional information and Rental payments'; // Tell page to use AJAX validation as we go $this->view->headScript()->appendScript('var ajaxValidate = true; var ajaxValidatePage = 3;'); if ($this->getRequest()->isPost()) { if (isset($_POST['back'])) { $this->_formStepCommonNavigate(3); return; } $this->_formStepAgentPopulate($pageForm); if ($this->_formStepCommonValidate($pageForm, 3)) { $data = $pageForm->getValues(); // Instantiate the claim manager $claimManager = new Manager_Insurance_RentGuaranteeClaim_Claim($this->_claimReferenceNumber); $claim = $claimManager->getClaim($this->_claimReferenceNumber, $this->_agentSchemeNumber); $claim->setAdditionalInfo($data['additional_information']); // Claim payment bank acount details $claim->setClaimPaymentBankAccountName($data['dd_accountname']); $claim->setClaimPaymentBankAccountNumber($data['bank_account_number']); $claim->setClaimPaymentBankAccountSortCode($data['bank_sortcode_number']); $claimManager->updateClaim($claim); // TODO: The following code for the saving of the rent schedule // data as a supporting doc needs to be moved into a manager, // not be performed by a controller. // Get ready for saving arrears data as a supporting document $supportManager = new Manager_Insurance_RentGuaranteeClaim_SupportingDocument($this->_claimReferenceNumber, $this->_agentSchemeNumber); // Prepare upload directories $supportManager->prepareUploadDirs(); // Save the arrears data into a supporting document file $manager = new Manager_Insurance_RentGuaranteeClaim_RentalPayment(); $supportManagerDs = new Datasource_Insurance_RentGuaranteeClaim_SupportingDocuments(); $paymentDs = new Datasource_Insurance_RentGuaranteeClaim_RentalPayment(); // Encode data $paymentDataEncoded = $paymentDs->processToCsv($this->_claimReferenceNumber); // Save data $path = $supportManager->getPath() . 'Rent_Schedule.csv'; // TODO: parameterise filename file_put_contents($path, $paymentDataEncoded); // Note saved data in DB if not already in it $files = $supportManagerDs->getByReferenceNumber($this->_claimReferenceNumber); $csvInDb = false; foreach ($files as $file) { if ($file->type == 'rent_schedule' && $file->name == 'Rent_Schedule.csv') { $csvInDb = true; break 1; } } if (!$csvInDb) { $shortPath = substr($path, strlen(APPLICATION_PATH . '/../private/uploads/')); $supportManagerDs->addSupportingDocument($this->_claimReferenceNumber, 'rent_schedule', $shortPath); } // Everything has been saved ok so navigate to next step $this->_formStepCommonNavigate(3); return; } } else { $this->_formStepCommonPopulate($pageForm, 3); } // Render the page unless we have been redirected $this->view->form = $pageForm; $this->render('step3'); $this->view->pageTitle = 'Online Claims - Step3 - Additional Information and Rental Payments'; }