public override ProcessResultsCollection FieldRetrieval(IBusinessComponent component, ProcessInvocationPoint point, ref Xiap.Framework.Metadata.Field field, int pluginId)
        {
            UwGenericDataItem item = (UwGenericDataItem)component;
            // Check if this is an aggregate, deductible or AD excess Generic Data Type
            if (item.GenericDataTypeCode == "AND1" || item.GenericDataTypeCode == "AND2" || item.GenericDataTypeCode == "AND3")
            {
                // If we're retrieving is 'Division', because this is the name on the GenericDataItem's CustomCode01 field.
                if (field.PropertyName.Equals(UwGenericDataItem.CustomCode01FieldName))
                {
                    field.LookupParameters.GroupCode = EmptyGroup;
                    // Get the header from the Generic Data Item
                    Header header = item.GenericDataSet.GetUwHeader();
                    if (header != null)
                    {
                        // Get the inception date from the latest Header Version (or today's date if it's not set), and the Major Insured from the Header.
                        DateTime effectiveDate = ((HeaderVersion)header.GetLatestVersion()).InceptionDate.GetValueOrDefault(DateTime.Today);
                        UwNameInvolvement insured = header.NameInvolvements.Where(a => a.NameID != null && a.NameInvolvementType == (short)StaticValues.NameInvolvementType.MajorInsured).FirstOrDefault() as UwNameInvolvement;
                        if (insured != null)
                        {
                            // Assuming we have the insured name involvement, find the name usage for the inception date from the header.
                            IInsuranceDirectoryService ids = ObjectFactory.Resolve<IInsuranceDirectoryService>();
                            INameUsage assdNameUsage = ids.GetNameUsage(insured.NameID.Value, insured.NameUsageTypeCode, effectiveDate);
                            if (assdNameUsage != null && assdNameUsage.CustomReference01 != null)
                            {
                                // Use the CustomReference01 value from the Insured Name Usage as the Group Code for the drop down in our Division lookup.
                                field.LookupParameters.GroupCode = assdNameUsage.CustomReference01;
                            }
                        }
                    }
                }
            }

            return null;
        }
        /// <summary>
        /// This method sets the value of Reason (ClaimTransactionDescription) as "Claim Detail Closed" and allocates next transaction reference to Claim Transaction Reference (ClaimTransactionHeaderReference) 
        /// if claim detail is being closed and corresponding reserves are being set to zero.  
        /// </summary>
        /// <param name="businessTransaction">Business Transaction</param>
        /// <param name="point">Transaction Point</param>
        /// <param name="PluginId">Plugin Id</param>
        /// <param name="parameters">Extra Parameters</param>
        /// <returns>Process Results Collection</returns>
        public ProcessResultsCollection ProcessTransaction(Xiap.Framework.BusinessTransaction.IBusinessTransaction businessTransaction, TransactionInvocationPoint point, int PluginId, params object[] parameters)
        {
            if (point == TransactionInvocationPoint.PreComplete)
            {
                ClaimHeader claimHeader = (ClaimHeader)businessTransaction.Component;
                foreach (var inProgressTransactionHeader in claimHeader.InProgressClaimTransactionHeaders)
                {
                    if (inProgressTransactionHeader.ClaimTransactionSource == (short)StaticValues.ClaimTransactionSource.Reserve || inProgressTransactionHeader.ClaimTransactionSource == (short)StaticValues.ClaimTransactionSource.RecoveryReserve)
                    {
                        foreach (var ctg in inProgressTransactionHeader.ClaimTransactionGroups)
                        {
                            ClaimDetail claimDetail = ctg.ClaimDetail;
                            if (claimDetail.OriginalTransitionStatus != claimDetail.ClaimDetailStatusCode)
                            {
                                // if ClaimDetail is being closed or finalized
                                if (claimDetail.ClaimDetailInternalStatus == (short?)StaticValues.ClaimDetailInternalStatus.ClosedCreatedinError ||
                                    claimDetail.ClaimDetailInternalStatus == (short?)StaticValues.ClaimDetailInternalStatus.Finalized)
                                {
                                    // if finalization is allowed with non-zero Outstanding
                                    if (claimDetail.GetProduct().IsFinalizationWithNonZeroOSAllowed.GetValueOrDefault(false))
                                    {
                                        inProgressTransactionHeader.ClaimTransactionDescription = "Claim Detail Closed";
                                        inProgressTransactionHeader.ClaimTransactionHeaderReference = LockManager.AllocateReference(string.Empty, ReferenceType.ClaimTransactionHeaderReference, string.Empty, "0000000001", 10, "9999999999", false);
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            return businessTransaction.Results;
        }
        /// <summary>
        /// It validate CancelPayment Transaction for UnauthorisedReserve,UnauthorisedPayment,UnauthorisedRecoveryReceipt
        /// </summary>
        /// <param name="businessTransaction">Claim Transaction Header</param>
        private static void PreValidate(Xiap.Framework.BusinessTransaction.IBusinessTransaction businessTransaction)
        {
            ClaimTransactionHeader claimTransHeader = (ClaimTransactionHeader)businessTransaction.Component;
            ClaimHeader claimHeader = claimTransHeader.ClaimHeader;
            if (claimHeader != null)
            {
                StaticValues.ClaimTransactionSource claimTransactionSource = (StaticValues.ClaimTransactionSource)claimTransHeader.ClaimTransactionSource;
                switch (claimTransactionSource)
                {
                    case StaticValues.ClaimTransactionSource.Payment:
                        if (ClaimsBusinessLogicHelper.HasUnauthorisedReserve(claimHeader))
                        {
                            ClaimsBusinessLogicHelper.AddFatalError(businessTransaction.Results, ClaimConstants.CLAIM_AMOUNT_UNAUTHORISED, TransactionInvocationPoint.PreCreate, businessTransaction.Component, StaticValues.ClaimTransactionSource.Reserve.ToString(), claimHeader.ClaimReference);
                        }

                        if (ClaimsBusinessLogicHelper.HasUnauthorisedPayment(claimHeader))
                        {
                            ClaimsBusinessLogicHelper.AddFatalError(businessTransaction.Results, ClaimConstants.CLAIM_AMOUNT_UNAUTHORISED, TransactionInvocationPoint.PreCreate, businessTransaction.Component, StaticValues.ClaimTransactionSource.Payment.ToString(), claimHeader.ClaimReference);
                        }

                        if (ClaimsBusinessLogicHelper.HasUnauthorisedRecoveryReceipt(claimHeader))
                        {
                            ClaimsBusinessLogicHelper.AddFatalError(businessTransaction.Results, ClaimConstants.CLAIM_AMOUNT_UNAUTHORISED, TransactionInvocationPoint.PreCreate, businessTransaction.Component, StaticValues.ClaimTransactionSource.RecoveryReceipt.ToString(), claimHeader.ClaimReference);
                        }

                        break;
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Field Retrival for diffrent type of Name type set field visibilty
        /// </summary>
        /// <param name="component">Claim Name Involvement</param>
        /// <param name="point">Field Retrieval</param>
        /// <param name="field">CustomReference02, CustomReference03,CustomReference04-Field Description  Change according to Name Type </param>
        /// <param name="pluginId">Plugin Id </param>
        /// <returns>Process Results Collection</returns>
        public override ProcessResultsCollection FieldRetrieval(IBusinessComponent component, ProcessInvocationPoint point, ref Xiap.Framework.Metadata.Field field, int pluginId)
        {
            ClaimNameInvolvement claimNameInvolvement = component as ClaimNameInvolvement;

            if (claimNameInvolvement.NameID != null)
            {
                ClaimsTransactionContext transactionContext = component.Context as ClaimsTransactionContext;
                IName name = transactionContext.GetName(claimNameInvolvement.NameID.Value);
                if (name.NameType == (short)StaticValues.NameType.Company)
                {
                    // UI Label = Contact; Not used in all the NI's
                    // else if UI Label = Contact; Not used in all the NI's
                    if (field.PropertyName == ClaimNameInvolvement.CustomReference02FieldName || field.PropertyName == ClaimNameInvolvement.CustomReference03FieldName || field.PropertyName == ClaimNameInvolvement.CustomReference04FieldName)   
                    {
                        field.Visible = true;
                    }
                }
                else if (name.NameType == (short)StaticValues.NameType.Person)
                {
                    if (field.PropertyName == ClaimNameInvolvement.CustomReference02FieldName || field.PropertyName == ClaimNameInvolvement.CustomReference03FieldName || field.PropertyName == ClaimNameInvolvement.CustomReference04FieldName)   
                    {
                        field.Visible = false;
                    }
                }
            }

            return null;
        }
Exemplo n.º 5
0
 /// <summary>
 /// Call on ClaimInvolvement Deletion
 /// Sets the Name on the Claim Detail Title on the deletion of the AdditionalClaimant and Driver type Claim Name Involvements
 /// </summary>
  /// <param name="pluginHelper">ClaimInvolvement type claim helper</param>
  /// <param name="point"> Delete Point</param>
  private void OnDelete(PluginHelper<ClaimInvolvement> pluginHelper, Xiap.Framework.ProcessInvocationPoint point)
  {
      pluginHelper.Component.ClaimDetailToClaimInvolvementLinks
            .ForEach(c =>
            {
                ClaimsBusinessLogicHelper.SetClaimDetailTitle(c, point);
            });
  }
        /// <summary>
        /// Call on CancelPaymentTransaction 
        /// </summary>
        /// <param name="businessTransaction">Claim Transaction</param>
        /// <param name="point">Point PostCreate</param>
        /// <param name="PluginId">Plugin ID</param>
        /// <param name="parameters">Processing Transaction Parameters</param>
        /// <returns>return ProcessResultCollection which have Error msg If any validation failed.</returns>
        public ProcessResultsCollection ProcessTransaction(Xiap.Framework.BusinessTransaction.IBusinessTransaction businessTransaction, Xiap.Framework.TransactionInvocationPoint point, int PluginId, params object[] parameters)
        {
            if (point == TransactionInvocationPoint.PostCreate)
            {
                this.CreateEventOnTransaction(businessTransaction);
            }

            return businessTransaction.Results;
        }
 /// <summary>
 /// Retrive field for ClaimHeader Component  
 /// </summary>
 /// <param name="component">Claim Header </param>
 /// <param name="point"> Invocation point -FieldRetrieval</param>
 /// <param name="field">Field Name </param>
 /// <param name="pluginId">Plug In ID</param>
 /// <returns>Result Collection</returns>
 public override ProcessResultsCollection FieldRetrieval(IBusinessComponent component, ProcessInvocationPoint point, ref Xiap.Framework.Metadata.Field field, int pluginId)
 {
     ClaimHeader claimHeader = component as ClaimHeader;
     if ((field.PropertyName == ClaimHeader.DateOfLossTypeCodeFieldName || field.PropertyName == ClaimHeader.DateOfLossFromFieldName) && claimHeader.Context.TransactionType == ClaimConstants.TRANSACTION_TYPE_AMEND_CLAIM && claimHeader.PolicyHeaderID != null && claimHeader.PropertiesChanged.ContainsKey(ClaimConstants.POLICY_HEADER_ID) == false)
     {
         field.Readonly = true;
     }
     
     return null;
 }
        protected override bool IsAvailableFor(XIAP.FrontendModules.Claims.Model.ClaimModel claimModel, Xiap.Framework.Data.DtoBase parentDto)
        {
            IClaimLitigationData claimlitigationdata = null;
            claimlitigationdata = parentDto.Data as ClaimLitigationData;

            if (base.IsAvailableFor(claimModel, parentDto) && (claimlitigationdata.LitigationType == AXAClaimConstants.LITIGATIONTYPE_LIT || claimlitigationdata.LitigationType == AXAClaimConstants.LITIGATIONTYPE_OTH))
            {
                return true;
            }

            return false;
        }
        public bool IsAvailable(XIAP.Frontend.Infrastructure.ITransactionController transactionController, XIAP.FrontendModules.Infrastructure.NavTree.TreeStructureStore definition, Xiap.Framework.Data.DtoBase parentDto)
        {
            IClaimLitigationData cld = null;
            cld = parentDto.Data as ClaimLitigationData;

            if (definition.Node == "ClaimLitigationMainDetails" && (cld.LitigationType == AXAClaimConstants.LITIGATIONTYPE_LIT || cld.LitigationType == AXAClaimConstants.LITIGATIONTYPE_OTH))
            {
                return true;
            }

            return false;
        }
Exemplo n.º 10
0
        protected override bool AddUsageVerifyResponse(Xiap.ClientServices.Facade.Common.Response response)
        {
            string messages = string.Empty;
            if (response.Messages != null && response.Messages.Count > 0)
            {
                messages = string.Join("\n", response.Messages.Select(m => m.MessageTitle).ToArray());
                XIAPMessageBox.Show("Error", messages, XIAPMessageBox.Buttons.OK, null);
                return false;
            }

            return true;
        }
        /// <summary>
        /// Starting point of Plugin invocation 
        /// </summary>
        /// <param name="component">IBusiness Component</param>
        /// <param name="point">Process Invocation Point</param>
        /// <param name="pluginId">Plugin ID</param>
        /// <returns>Process Results Collection </returns>
        public override ProcessResultsCollection ProcessComponent(Xiap.Framework.IBusinessComponent component, Xiap.Framework.ProcessInvocationPoint point, int pluginId)
        {
            PluginHelper<IBusinessComponent> pluginHelper = new PluginHelper<IBusinessComponent>(point, (ClaimHeader)component, new ProcessResultsCollection());

            switch (pluginHelper.InvocationPoint)
            {
                case ProcessInvocationPoint.PreValidationDefaulting:
                    {
                        this.UpdateDriverExcessAmount(pluginHelper);
                        break;
                    }
            }

            return pluginHelper.ProcessResults;
        }
Exemplo n.º 12
0
       /// <summary>
        /// Call on  ClaimInvolvement
       /// </summary>
        /// <param name="component">Claim Involvement</param>
        /// <param name="point">Component Change,Delete</param>
       /// <param name="pluginId">PlugIn  ID</param>
        /// <returns>return ProcessResultCollection which have Error msg If any validation failed.</returns>
        public override ProcessResultsCollection ProcessComponent(Xiap.Framework.IBusinessComponent component, Xiap.Framework.ProcessInvocationPoint point, int pluginId)
        {
            PluginHelper<ClaimInvolvement> pluginHelper = new PluginHelper<ClaimInvolvement>(point, (ClaimInvolvement)component, new ProcessResultsCollection());
            
            switch (point)
            {
                case Xiap.Framework.ProcessInvocationPoint.ComponentChange:
                    this.ChangeCDTitle(pluginHelper, point);
                    break; 
                case Xiap.Framework.ProcessInvocationPoint.Delete:
                    this.OnDelete(pluginHelper, point);
                    break;               
            }

            return pluginHelper.ProcessResults;
        }
        /// <summary>
        /// Invoke the AXADefaultClaimEventValues virtual process against this event, via a plugin call.
        /// </summary>
        /// <param name="ev">  Event type object </param>
        /// <param name="eventContainer">Event Container</param>
        /// <param name="point">Points PostComplete,Precomplete</param>
        private void InvokeVirtualProcess(IEvent ev, IEventContainer eventContainer, Xiap.Framework.TransactionInvocationPoint point)
        {
            ProductXML.ProductEvent pdevent = ev.GetProduct();
            if (pdevent != null)
            {
                IBusinessComponent eventComponent = (IBusinessComponent)ev;
                string alias = "AXADefaultClaimEventValues";
                // invoke the 'process handler' plugin
                if (_Logger.IsInfoEnabled)
                {
                    _Logger.Info("Invoked Virtual plugin " + alias + point.ToString() + "for " + eventComponent.GetType().Name);
                }

                ProcessParameters processParameters = new ProcessParameters() { Alias = alias, TransactionInvocationPoint = point };
                ProcessHelper.HandleVirtualProcess(eventComponent, processParameters);
            }
        }
        /// <summary>
        ///  Invocation Method of plugin 
        /// </summary>
        /// <param name="component">Component name </param>
        /// <param name="point"> plugin Invocation point  </param>
        /// <param name="pluginId">Plugin id</param>
        /// <returns>Result Collection</returns>
        public override ProcessResultsCollection ProcessComponent(Xiap.Framework.IBusinessComponent component, Xiap.Framework.ProcessInvocationPoint point, int pluginId)
        {
            PluginHelper<ClaimHeader> pluginHelper = new PluginHelper<ClaimHeader>(point, (ClaimHeader)component, new ProcessResultsCollection());
            switch (point)
            {
                case Xiap.Framework.ProcessInvocationPoint.Created:
                    this.SetDateOfEventFromDateOfLoss(pluginHelper);
                    break;

                case Xiap.Framework.ProcessInvocationPoint.ComponentChange:
                    this.AssignGeniusPolicyFields(pluginHelper);
                    this.ComponentChangeDefaulting(pluginHelper);
                    break;
            }

            return pluginHelper.ProcessResults;
        }
Exemplo n.º 15
0
        /// <summary>
        /// This method fetches the metadata of the passed in document.
        /// </summary>
        /// <param name="document">The document component</param>
        /// <param name="documentControlLog">The document control component</param>
        /// <param name="metadataDocument">Meta data</param>
        /// <param name="reference">Reference of the claim</param>
        /// <param name="detailReference">Reference of the claim detail</param>
        /// <returns>A dictionary object of all the metadata.</returns>
        public Dictionary<string, object> GetMetadata(Xiap.Metadata.Data.IDocumentData document, Xiap.Metadata.Data.IDocumentControlLogData documentControlLog, IMetadataDocument metadataDocument, string reference, string detailReference)
        {
            ClaimDocument claimDocument = document as ClaimDocument;

            if (claimDocument == null)
            {
                claimDocument = ObjectFactory.Resolve<IClaimsQuery>().GetClaimDocument(document.DocumentID);
            }

            ClaimDocumentControlLog claimDocumentControlLog = documentControlLog as ClaimDocumentControlLog;

            if (claimDocumentControlLog == null)
            {
                claimDocumentControlLog = claimDocument.DocumentControlLogs.FirstOrDefault(a => a.DocumentControlLogID == documentControlLog.DocumentControlLogID) as ClaimDocumentControlLog;
            }


            return this.GetMetadata(claimDocument, claimDocumentControlLog, reference);
        }
        /// <summary>
        /// Generates the data fields from base and assign the value of 'Final Settlment?'(CustomBoolean01 of ClaimPaymentRequest) to TaskOnClaimFinalSettlement field.
        /// </summary>
        /// <param name="claimTransactionheader">Claim Transaction Header</param>
        /// <param name="authorisationMode">Authorisation Mode</param>
        /// <returns>Generic Data Fields as a Dictionary Object</returns>
        protected override Dictionary<string, object> GenerateDataFields(Xiap.Claims.BusinessComponent.ClaimTransactionHeader claimTransactionheader, Xiap.Claims.BusinessLogic.ClaimsBusinessLogicHelper.AuthorisationMode authorisationMode)
        {
            var dataFields = base.GenerateDataFields(claimTransactionheader, authorisationMode);

            // If we're authorising a Payment
            if (authorisationMode == Xiap.Claims.BusinessLogic.ClaimsBusinessLogicHelper.AuthorisationMode.Payment)
            {
                // Check the ClaimTransactionHeader we're authorising a payment on has some links to Payment Requests
                if (claimTransactionheader.ClaimTransactionToPaymentRequestLinks != null)
                {
                    // If it has some payment requests it links to, find the first, current one.
                    ClaimTransactionToPaymentRequestLink paymentLink = claimTransactionheader.ClaimTransactionToPaymentRequestLinks.Where(o => o.IsLatest == true).FirstOrDefault();
                    // If we have a link to a payment request and it's for a Claim Payment Request, then process.
                    if (paymentLink != null && paymentLink.ClaimPaymentRequest != null)
                    {
                        dataFields[ClaimConstants.DATAFIELD_TASKONCLAIMFINALSETTLEMENT] = paymentLink.ClaimPaymentRequest.CustomBoolean01.GetValueOrDefault(false);   // UI Label = Final Settlement For Claim?
                        logger.Info("dataFields[TaskOnClaimFinalSettlement] : " + dataFields["TaskOnClaimFinalSettlement"]);
                    }
                }
            }

            return dataFields;
        }
Exemplo n.º 17
0
 private void UpdatePolicyReasonCodes(Xiap.Framework.IBusinessComponent component, BusinessData dataClass)
 {
     ClaimHeader claimHeader = component as ClaimHeader;
     ClaimHeaderData headerData = dataClass as ClaimHeaderData;
     if (claimHeader.Context.GetAttachedData<DeductibleReasonCode>(false) != null)
     {
         DeductibleReasonCode deductibleReasonCode = claimHeader.Context.GetAttachedData<DeductibleReasonCode>(true).FirstOrDefault();
         if (deductibleReasonCode.PolicyReasonCodes != null && deductibleReasonCode.PolicyReasonCodes.Count > 0)
         {
             headerData.CodeRowList = deductibleReasonCode.PolicyReasonCodes;
         }
     }
 }       
 internal static void AmendExistingName(Xiap.InsuranceDirectory.BusinessTransaction.IInsuranceDirectoryBusinessTransaction businessTransaction)
 {
     businessTransaction.Name.NameReference = "TESTABC140";
 }
Exemplo n.º 19
0
 public Xiap.Framework.Data.DtoBase Retrieve(Guid componentDataId, Xiap.Framework.Data.BusinessDataVariant dataGroup, Xiap.Framework.Entity.RetrievalType retrievalType, Xiap.Framework.Data.BusinessDataVariant childDataVariant, Xiap.Framework.Data.BusinessDataVariant latestVersionVariant, List<string> childNamesToRetrieve, VersionSelectionParameters versionSelectionParameters = null)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 20
0
 public Xiap.Framework.Data.DtoBase Retrieve(IBusinessComponent componentToRetrieve, Xiap.Framework.Data.BusinessDataVariant dataGroup, Xiap.Framework.Entity.RetrievalType retrievalType, Xiap.Framework.Data.BusinessDataVariant childDataVariant, Xiap.Framework.Data.BusinessDataVariant latestVersionVariant, List<string> childNamesToRetrieve)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 21
0
 public List<Xiap.Framework.DataMapping.Payload> ProcessData(List<Xiap.Framework.DataMapping.Payload> requestedChanges, Xiap.Framework.DataMapping.VirtualProcessRequest virtualProcessRequest, ValidationLevel validationLevel, bool forceFullDataRetrieval)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 22
0
 public List<Xiap.Framework.DataMapping.Payload> ProcessData(List<Xiap.Framework.DataMapping.Payload> requestedChanges, Xiap.Framework.DataMapping.VirtualProcessRequest virtualProcessRequest, ValidationLevel validationLevel, bool forceFullDataRetrieval, Action action, bool resumeTransaction, bool treatWarningsAsErrors = false)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 23
0
 public override Xiap.Framework.Data.BusinessData[] Retrieve(Xiap.Framework.Data.BusinessTransactionContext context, string[] componentPath)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 24
0
 public override void ProcessBusinessData(Xiap.Framework.Data.BusinessData businessData)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 25
0
 protected override void ProcessBusinessData(Xiap.Framework.Data.BusinessTransactionContext context)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 26
0
 public override void DeleteComponent(Xiap.Framework.IBusinessComponent component, bool validateOnly)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 27
0
 public override void UpdateBusinessData(Xiap.Framework.IBusinessComponent component, Xiap.Framework.Data.BusinessData dataClass)
 {
     base.UpdateBusinessData(component, dataClass);
     this.UpdateCustomProperties(component, dataClass);
 }
        /// <summary>
        /// Call on specific field of ClaimHeader.
        /// </summary>
        /// <param name="component">Claim Header</param>
        /// <param name="point">Field Retrieval</param>
        /// <param name="field">On which field</param>
        /// <param name="pluginId">PlugIN ID</param>
        /// <returns>return ProcessResultCollection which have Error msg If any validation failed.</returns>
        public override ProcessResultsCollection FieldRetrieval(IBusinessComponent component, ProcessInvocationPoint point, ref Xiap.Framework.Metadata.Field field, int pluginId)
        {
            bool isGroupCodeSet = false;
            ClaimHeader header = (ClaimHeader)component;
            DateTime? validationDate = header.Context != null ? (DateTime?)header.ValidationDate : null;

            switch (field.PropertyName)
            {
                case ClaimHeader.ClaimHeaderAnalysisCode04FieldName:
                    var insurd = (from ci in header.ClaimInvolvements
                                  where ci.ClaimInvolvementType == (short)StaticValues.LinkableComponentType.NameInvolvement
                                  from cni in ci.ClaimNameInvolvements
                                  where cni.NameID != null &&
                                  cni.NameInvolvementType == (short)StaticValues.NameInvolvementType.MajorInsured &&
                                  cni.NameInvolvementMaintenanceStatus == (short)StaticValues.ClaimNameInvolvementMaintenanceStatus.Latest
                                  select cni).FirstOrDefault();
                                      
                    if (insurd != null)
                    {
                        ClaimsTransactionContext transactionContext = (ClaimsTransactionContext)component.Context;
                        INameUsage assdNameUsage = transactionContext.GetNameUsage(insurd.NameID.Value, ((ClaimNameInvolvement)insurd).NameUsageTypeCode, header.DateOfLossFrom.GetValueOrDefault(DateTime.Today));
                        // UI Label = Client ID; For Insured
                        if (assdNameUsage != null && assdNameUsage.CustomReference01 != null)
                        {
                            field.LookupParameters.GroupCode = assdNameUsage.CustomReference01;   // UI Label = Client ID; For Insured
                            isGroupCodeSet = true;
                        }
                    }

                    if (!isGroupCodeSet)
                    {
                        field.LookupParameters.GroupCode = ClaimConstants.EmptyGroup;
                    }

                    this.SetFieldMandatory(field, header.ClaimHeaderAnalysisCode04VS, header.ClaimHeaderAnalysisCode04, validationDate);
                    break;

                case ClaimHeader.ClaimHeaderAnalysisCode05FieldName:
                    this.SetFieldMandatory(field, header.ClaimHeaderAnalysisCode05VS, header.ClaimHeaderAnalysisCode04, validationDate);
                    break;

                case ClaimHeader.ClaimHeaderAnalysisCode06FieldName:
                    this.SetFieldMandatory(field, header.ClaimHeaderAnalysisCode06VS, header.ClaimHeaderAnalysisCode05, validationDate);
                    break;

                case ClaimHeader.CustomCode01FieldName:   // UI Label = Circumstances 1
                    // CustomCode01VS =Circumstances 1
                    this.SetFieldMandatory(field, header.CustomCode01VS, header.ClaimHeaderAnalysisCode02, validationDate);   // UI Label = Circumstance 1
                    break;

                case ClaimHeader.CustomCode02FieldName:   // UI Label = Circumstances 2
                    // CustomCode02VS =Circumstances 2
                    this.SetFieldMandatory(field, header.CustomCode02VS, header.CustomCode01, validationDate);   // UI Label = Circumstance 2
                    break;

                case ClaimHeader.CustomCode03FieldName:   // UI Label = Circumstances 3; Only used for Motor Product - CGBIMO
                    // CustomCode03VS =Circumstances 3
                    this.SetFieldMandatory(field, header.CustomCode03VS, header.CustomCode02, validationDate);   // UI Label = Circumstance 3; Only used for Motor Product - CGBIMO
                    break;
            }

            return null;
        }
Exemplo n.º 29
0
 protected override void DoValidate(Xiap.Framework.ValidationMode mode)
 {
     // No Validate processing required
 }