Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 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);
 }