/// <summary> /// Load policy deductibles /// </summary> /// <param name="claimHeader">Claim Header</param> /// <returns>AXA policy excess and deductible data</returns> private AXAPolicyEDData LoadPolicyDeductibles(ClaimHeader claimHeader) { // Initialise to false AXAPolicyEDData policyEDData = new AXAPolicyEDData(false, false); // If policy is attached or changed, set context level flag to identify whether policy deductibles exist ProductClaimDefinition productClaimDef = claimHeader.GetProduct().ProductClaimDefinition; if (productClaimDef.ClaimHeaderAutomaticDeductibleProcessingMethod == (short)StaticValues.ClaimHeaderAutomaticDeductibleProcessingMethod.StandardClaimHeaderDeductible) { IAXAClaimsQuery query = new AXAClaimsQueries(); bool deductibleExist = false; bool EDExcessExist = false; query.PolicyDeductiblesExist(claimHeader.PolicyHeaderID.Value, "AND2", "AND3", out deductibleExist, out EDExcessExist); policyEDData.DeductiblesExist = deductibleExist; policyEDData.EDExcessExist = EDExcessExist; } return policyEDData; }
/// <summary> /// Try resolve policy excess and dedutible data /// If one of the five Policy deductible or funded values has changed, sets the Deductibles Overridden setting (CustomBoolean15) to true /// and creates a corresponding Event. /// </summary> /// <param name="component">Claim Header</param> /// <param name="data">AXA Policy ED Data</param> /// <returns>return true if policy deductible id NULL in AXAPolicyEDData</returns> private bool TryResolvePolicyEDData(IBusinessComponent component, out AXAPolicyEDData data) { var policyDeductibles = component.Context.GetAttachedData<AXAPolicyEDData>(false); if (policyDeductibles == null) { ClaimHeader claimHeader = (ClaimHeader)component; if (claimHeader.PolicyHeaderID.GetValueOrDefault() != 0) { data = this.LoadPolicyDeductibles(claimHeader); claimHeader.Context.AddAttachedData<AXAPolicyEDData>(data); return true; } else { data = null; return false; } } data = policyDeductibles.Single(); return true; }