/** * Returns an array of Model_Insurance_PreviousClaim objects * related to the customer refno passed in, or null if the customer has not * specified any previous claims. * * @param string $customerRefno * The customer refno which identifies the previous claims. * * @return mixed * Returns an array of Model_Insurance_PreviousClaim objects, or * null if there are no previous claims. */ public function getPreviousClaims($customerRefno) { $select = $this->select(); $select->where('refno = ?', $customerRefno); $previousClaimArray = $this->fetchAll($select); $returnArray = array(); $previousClaimTypeDatasource = new Datasource_Insurance_PreviousClaimTypes(); foreach ($previousClaimArray as $current) { $previousClaim = new Model_Insurance_PreviousClaim(); $previousClaim->setRefno($current['refno']); $previousClaim->setClaimMonth($current['claimmonth']); $previousClaimType = $previousClaimTypeDatasource->getByClaimTypeId($current['claimTypeID']); $previousClaim->setClaimType($previousClaimType); //Put the claim value in a Zend_Currency object. $claimValue = new Zend_Currency(array('value' => $current['claimvalue'], 'precision' => 2)); $previousClaim->setClaimValue($claimValue); $previousClaim->setClaimYear($current['claimyear']); $returnArray[] = $previousClaim; } //Finalise the return value consistent with this functions contract. if (empty($returnArray)) { $returnVal = null; } else { $returnVal = $returnArray; } return $returnVal; }
/** * Validate and handle adding and removing claims via AJAX * * @return void */ public function claimAction() { $output = array(); $pageSession = new Zend_Session_Namespace('tenants_insurance_quote'); $ajaxForm = new TenantsInsuranceQuote_Form_Json_Claims(); $request = $this->getRequest(); $postdata = $request->getPost(); $ajaxForm->populate($postdata); if ($ajaxForm->isValid($postdata)) { // Invoke previous claims manager $claimsManager = new Manager_Insurance_PreviousClaims(); // Check if a new claim's details are being added if (isset($postdata['addClaim']) && $postdata['addClaim'] == 1) { $cleanData = $ajaxForm->getValues(); $claim = new Model_Insurance_PreviousClaim(); $claim->setRefno($pageSession->CustomerRefNo); $claimType = new Model_Insurance_PreviousClaimType(); $claimType->setClaimTypeID($cleanData['subform_importantinformation']['claim_type']); $claim->setClaimType($claimType); $claim->setClaimMonth($cleanData['subform_importantinformation']['claim_month']); $claim->setClaimYear($cleanData['subform_importantinformation']['claim_year']); $claim->setClaimValue(new Zend_Currency(array('value' => $cleanData['subform_importantinformation']['claim_value']))); $claimsManager->insertPreviousClaim($claim); } // Check if an existing claim's details are being removed if (isset($postdata['removeClaim']) && $postdata['removeClaim'] == 1) { // First fetch all claims $allClaims = $claimsManager->getPreviousClaims($pageSession->CustomerRefNo); // Now iterate through and remove the selected index $t_allClaims = array(); foreach ($allClaims as $key => $claim) { if ($key != $postdata['claimNum']) { $t_allClaims[] = $claim; } } // Delete all previous claims and replace with new list $claimsManager->removeAllPreviousClaims($pageSession->CustomerRefNo); $claimsManager->insertPreviousClaims($t_allClaims); } } else { } $errorMessages = $ajaxForm->getMessagesFlattened(); $output['errorJs'] = $errorMessages; $output['errorCount'] = count($errorMessages); $output['errorHtml'] = $this->view->partial('partials/error-list.phtml', array('errors' => $errorMessages)); $output['html'] = $this->view->getHelper('yourClaims')->yourClaims(); echo Zend_Json::encode($output); }
public function removePreviousClaimAction() { $request = $this->getRequest(); $postData = $request->getPost(); $refNo = $postData['refNo']; $month = $postData['month']; $year = $postData['year']; $value = $postData['value']; $typeId = $postData['typeId']; //Remove the previous claim identified by the id if (!empty($refNo)) { $claimsManager = new Manager_Insurance_PreviousClaims(); //Build a PreviousClaim object to pass to the PreviousClaims manager //to delete. $previousClaim = new Model_Insurance_PreviousClaim(); $previousClaim->setRefno($refNo); $previousClaim->setClaimMonth($month); $previousClaim->setClaimYear($year); $value = new Zend_Currency(array('value' => $value, 'precision' => 2)); $previousClaim->setClaimValue($value); $previousClaimTypes = $claimsManager->getPreviousClaimTypes(); foreach ($previousClaimTypes as $claimType) { if ($typeId == $claimType->getClaimTypeID()) { $previousClaim->setClaimType($claimType); break; } } //Finally, remove the previous claim. $claimsManager->removePreviousClaim($previousClaim); } $claimsArray = $claimsManager->getPreviousClaims($refNo); $model = array(); if (!empty($claimsArray)) { foreach ($claimsArray as $claim) { $model[] = array('claim' => $claim); } } $return = array(); $return['html'] = $this->view->partialLoop('partials/claims-list.phtml', $model); $return['success'] = true; echo Zend_Json::encode($return); }