public object search(string query) { try { return(IntermediaryMdl.search_intermediaries(query)); } catch (Exception e) { return(new { state = false, message = "Server Error", exception = e }); } }
public object lov() { try { return(IntermediaryMdl.get_lov_intermediary()); } catch (Exception e) { return(new { state = false, message = "Server Error", exception = e }); } }
// GET: api/Intermediary/5 public dynamic Get(string code) { try { return(IntermediaryMdl.get_intermediary(code)); } catch (Exception e) { return(new { state = false, message = "Server Error", exception = e }); } }
public object Check(string code) { try { var result = IntermediaryMdl.get_intermediary(code); return(result != null ? (object)new { state = true, name = result.INT_OFFICIAL_NAME } : new { state = false }); } catch (Exception e) { return(new { state = false, message = "Server Error", exception = e }); } }
public object save([FromBody] List <MS_SYS_INTERMEDIARY> areas) { try { foreach (var are in areas) { IntermediaryMdl.save_intermediary(are); } return(new { state = true, message = "Intermediary Successfully Created" }); } catch (Exception e) { return(new { state = false, message = "Server Error", exception = e }); } }
// Policy Confirmations public object ForwardTransaction(INS_UWD_POLICY_HEAD polHead, List <INS_UDW_BONDS> bondrisk, INS_PREMIUM_REGISTER premRegister, MS_ACCTS_INTEGRATION acntInt, List <INS_UDW_POL_FEES> polFees, List <INS_UWD_INTERMEDIARY_COMM> commissions) { //obtain total amount of premium and police fees var accountTotalBc = (premRegister.PR_BC_AMOUNT ?? 0) + (polFees == null ? 0 : polFees.Sum(x => x.POL_FEE_BC_AMOUNT)); var accountTotalFc = (premRegister.PR_FC_AMOUNT ?? 0) + (polFees == null ? 0 : polFees.Sum(x => x.POL_FEE_FC_AMOUNT)); var db = new SibaModel(); using (var trans = db.Database.BeginTransaction()) { try { if (premRegister.PR_ACCT_YN == "Y" && accountTotalBc > 0 && accountTotalFc > 0) { var ledgerHead = new INSURANCE_LEDGER { IGL_ACCOUNT_CODE = polHead.MS_UDW_CUSTOMERS.MS_SYS_CUST_TYPES.MS_CUSTOMER_CATEGORY.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, IGL_ACCT_DATE = acntInt.INT_CRTE_DATE ?? DateTime.Now, IGL_ACCT_PERIOD_REF = "", IGL_ACCT_REF = 0, IGL_AMOUNT_BC = accountTotalBc, IGL_AMOUNT_FC = accountTotalFc, IGL_CRTE_BY = "System", IGL_CRTE_DATE = DateTime.Now, IGL_CURRENCY = premRegister.PR_CURRENCY, IGL_CUST_CODE = polHead.POLH_CUST_CODE, IGL_DOC_NUMBER = "", IGL_DR_CR = "DR", IGL_FX_RATE = premRegister.PR_FX_RATE, IGL_NARRATION = "", IGL_POL_END_NO = premRegister.PR_END_NO, IGL_POL_NUMBER = polHead.POLH_DISPLAY_NO, IGL_POL_SYS_ID = premRegister.PR_POL_SYS_ID, IGL_POSTED_DATE = null, IGL_TXN_DOC_TYPE = acntInt.INT_FWD_DEBIT_DOC_TYPE, IGL_TXN_SOURCE = acntInt.INT_TXN_SOURCE, IG_REF_DOC = polHead.POLH_DISPLAY_NO, IGL_STATUS = "U" }; //premium insurance ledger insertion db.INSURANCE_LEDGER.Add(ledgerHead); db.SaveChanges(); //premium total amount for customer account insurance sub ledger insertion db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = accountTotalBc, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = polHead.MS_UDW_CUSTOMERS.MS_SYS_CUST_TYPES.MS_CUSTOMER_CATEGORY.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = accountTotalFc, ISL_COB = premRegister.PR_COB, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = premRegister.PR_CURRENCY, ISL_DR_CR = "DR", ISL_FX_RATE = premRegister.PR_FX_RATE, ISL_IGL_SYS_ID = ledgerHead.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = polHead.POLH_CUST_CODE //todo:convert to subledger sublevel2 }); //premium amount for premium account insurance sub ledger insertion db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = premRegister.PR_BC_AMOUNT, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = acntInt.INT_FWD_CREDIT_ACCT, ISL_AMOUNT_FC = premRegister.PR_FC_AMOUNT, ISL_COB = premRegister.PR_COB, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = premRegister.PR_CURRENCY, ISL_DR_CR = "CR", ISL_FX_RATE = premRegister.PR_FX_RATE, ISL_IGL_SYS_ID = ledgerHead.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = premRegister.PR_COB //todo:convert to subledger level 2 }); //premium amount for policy fee account insurance sub ledger insertion polFees.ForEach(x => { var compFee = CompulsoryFeesMdl.get_CompFees(x.POL_FEE_CODE); if (compFee != null) { db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = x.POL_FEE_BC_AMOUNT, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = compFee.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = x.POL_FEE_FC_AMOUNT, ISL_COB = premRegister.PR_COB, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = premRegister.PR_CURRENCY, ISL_DR_CR = "CR", ISL_FX_RATE = premRegister.PR_FX_RATE, ISL_IGL_SYS_ID = ledgerHead.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = compFee.MS_ACCT_SUB_ACCOUNT.SUB_ACCT_CODE }); } }); //RI Allocations for Vehecle risks //obtain risks bondrisk.ForEach(risk => { if (risk != null) { //obtain the treaty group var grpDtls = db.MS_RI_GROUP_DETL.FirstOrDefault(d => d.GD_SUB_CLASS == polHead.POLH_SUB_CLASS_CODE); if (grpDtls != null) { var treatyGrpHead = grpDtls.MS_RI_GROUP_HEAD; var tttyMsHead = treatyGrpHead.MS_RI_PTTY_HEAD.FirstOrDefault(t => t.TH_CURRENCY == polHead.POLH_CURRENCY && risk.BOND_UW_YEAR == t.TH_UWYR); if (tttyMsHead != null) { var ttyhead = new INS_RI_TTY_HEAD { TTH_ACC_SI_BC = risk.BOND_RI_SI_BC, TTH_ACC_SI_FC = risk.BOND_RI_SI_FC, TTH_ADJ_YN = null, TTH_CLASS_CODE = polHead.POLH_CLASS_CODE, TTH_COMB_LOC_ID = null, TTH_CRTE_BY = "System", TTH_CRTE_DATE = DateTime.Now, TTH_EML_PERC = grpDtls.GD_PML_PERC, TTH_FROM_DATE = risk.BOND_START_DATE, TTH_INS_SRCE = polHead.POLH_INS_SOURCE, TTH_LOC_END_NO = (int?)polHead.POLH_END_NO, TTH_LOC_SYS_ID = null, TTH_MOD_BY = null, TTH_MOD_DATE = null, TTH_POLH_END_NO = (int?)polHead.POLH_END_NO, TTH_POLH_SYS_ID = polHead.POLH_SYS_ID, TTH_POLNUM = polHead.POLH_DISPLAY_NO, //TTH_REF_ID = risk.BOND_SYS_ID, TTH_RISK_END_NO = (int?)polHead.POLH_END_NO, TTH_RISK_SYS_ID = risk.BOND_SYS_ID, TTH_RI_ACC_YN = null, TTH_RI_PREM_BC = risk.BOND_RI_PREM_BC, TTH_RI_PREM_FC = risk.BOND_RI_PREM_FC, TTH_RI_SI_BC = risk.BOND_RI_SI_BC, TTH_RI_SI_FC = risk.BOND_RI_SI_FC, TTH_SC_CODE = polHead.POLH_SUB_CLASS_CODE, TTH_STATUS = "A", TTH_TOTAL_PREM_BC = risk.BOND_TOT_PREM_BC, TTH_TOTAL_PREM_FC = risk.BOND_TOT_PREM_FC, TTH_TOTAL_SI_BC = risk.BOND_SI_BC, TTH_TOTAL_SI_FC = risk.BOND_SI_FC, TTH_TO_DATE = risk.BOND_END_DATE, TTH_UW_YEAR = (short?)risk.BOND_UW_YEAR }; db.INS_RI_TTY_HEAD.Add(ttyhead); db.SaveChanges(); var excessSIFC = risk.BOND_SI_FC; var excessSIBC = risk.BOND_SI_BC; //Create FAC-Excess record var exxAll = new INS_RI_TTY_ALLOCATION { TTA_CLOSE_FLAG = "N", TTA_CRTE_BY = "System", TTA_CRTE_DATE = DateTime.Now, TTA_MOD_BY = null, TTA_MOD_DATE = null, TTA_POLH_END_NO = (int?)polHead.POLH_END_NO, TTA_POLH_SYS_ID = polHead.POLH_SYS_ID, TTA_SLIPNO = null, TTA_STATUS = "A", TTA_TTH_SYS_ID = ttyhead.TTH_SYS_ID, TTA_TTY_CODE = "FAC-EXCESS", TTA_TTY_TYPE = "FX", TTA_TTY_COMM_BC = null, TTA_TTY_COMM_FC = null, TTA_TTY_LIMIT_FC = 0, TTA_TTY_LIMIT_BC = 0, TTA_UW_YEAR = (short?)risk.BOND_UW_YEAR }; db.INS_RI_TTY_ALLOCATION.Add(exxAll); db.SaveChanges(); //CREATE TREATY ALLOCATIONS AS PER TREATY SETUP foreach (var detail in tttyMsHead.MS_RI_PTTY_DETL.OrderBy(d => d.TD_SEQ)) { var allocation = new INS_RI_TTY_ALLOCATION { TTA_CLOSE_FLAG = "N", TTA_CRTE_BY = "System", TTA_CRTE_DATE = DateTime.Now, TTA_MOD_BY = null, TTA_MOD_DATE = null, TTA_POLH_END_NO = (int?)polHead.POLH_END_NO, TTA_POLH_SYS_ID = polHead.POLH_SYS_ID, TTA_SEQ_NO = (byte?)detail.TD_SEQ, TTA_SLIPNO = null, TTA_STATUS = "A", TTA_TTH_SYS_ID = ttyhead.TTH_SYS_ID, TTA_TTY_CODE = tttyMsHead.TH_CODE, TTA_TTY_COMM_BC = null, TTA_TTY_COMM_FC = null, TTA_UW_YEAR = (short?)risk.BOND_UW_YEAR, TTA_TTY_TYPE = detail.TD_TTY_CODE, }; if (detail.TD_TTY_LIMIT >= excessSIFC) { allocation.TTA_TTY_LIMIT_BC = detail.TD_TTY_LIMIT; allocation.TTA_TTY_LIMIT_FC = detail.TD_TTY_LIMIT; allocation.TTA_TTY_SI_BC = excessSIBC; allocation.TTA_TTY_SI_FC = excessSIFC; excessSIFC = 0; excessSIBC = 0; } else { allocation.TTA_TTY_LIMIT_BC = detail.TD_TTY_LIMIT; allocation.TTA_TTY_LIMIT_FC = detail.TD_TTY_LIMIT; allocation.TTA_TTY_SI_BC = detail.TD_TTY_LIMIT; allocation.TTA_TTY_SI_FC = detail.TD_TTY_LIMIT; excessSIFC = (excessSIFC - detail.TD_TTY_LIMIT); excessSIBC = (excessSIBC - detail.TD_TTY_LIMIT); } allocation.TTA_ALLOC_PERC = (allocation.TTA_TTY_SI_FC / risk.BOND_SI_FC) * 100; allocation.TTA_TTY_PREM_BC = risk.BOND_TOT_PREM_BC * (allocation.TTA_ALLOC_PERC / 100); allocation.TTA_TTY_PREM_FC = risk.BOND_TOT_PREM_FC * (allocation.TTA_ALLOC_PERC / 100); //Update FAC Excess record exxAll.TTA_TTY_SI_FC = excessSIFC; exxAll.TTA_TTY_SI_BC = excessSIBC; exxAll.TTA_ALLOC_PERC = (excessSIFC / risk.BOND_SI_FC) * 100; exxAll.TTA_TTY_PREM_BC = risk.BOND_TOT_PREM_BC * (exxAll.TTA_ALLOC_PERC / 100); exxAll.TTA_TTY_PREM_FC = risk.BOND_TOT_PREM_FC * (exxAll.TTA_ALLOC_PERC / 100); exxAll.TTA_SEQ_NO = (byte)(detail.TD_SEQ + 1); //add allocations db.INS_RI_TTY_ALLOCATION.Add(allocation); db.SaveChanges(); db.INS_RI_TTY_ALLOCATION.Attach(exxAll); foreach (var company in detail.MS_RI_PTTY_COMPANY) { var share = new INS_RI_TTY_SHARE { TTS_CRTE_BY = "System", TTS_CRTE_DATE = DateTime.Now, TTS_MOD_BY = null, TTS_MOD_DATE = null, TTS_RI_COMM_BC = allocation.TTA_TTY_PREM_BC * (company.TCP_TTY_COMM / 100), TTS_RI_COMM_FC = allocation.TTA_TTY_PREM_FC * (company.TCP_TTY_COMM / 100), TTS_RI_COMM_PERC = company.TCP_TTY_COMM, TTS_RI_COMP = company.TCP_COMP_CODE, TTS_RI_TAX_PERC = company.TCP_TTY_TAX, TTS_SHARE_PERC = company.TCP_TTY_SHARE, TTS_SHARE_PREM_BC = allocation.TTA_TTY_PREM_BC * (company.TCP_TTY_SHARE / 100), TTS_SHARE_PREM_FC = allocation.TTA_TTY_PREM_FC * (company.TCP_TTY_SHARE / 100), TTS_SHARE_SI_BC = allocation.TTA_TTY_SI_BC * (company.TCP_TTY_SHARE / 100), TTS_SHARE_SI_FC = allocation.TTA_TTY_SI_FC * (company.TCP_TTY_SHARE / 100), TTS_STATUS = "A", TTS_TAX_BC = (allocation.TTA_TTY_PREM_BC * (company.TCP_TTY_COMM / 100)) * (company.TCP_TTY_TAX / 100), TTS_TAX_FC = (allocation.TTA_TTY_PREM_FC * (company.TCP_TTY_COMM / 100)) * (company.TCP_TTY_TAX / 100), TTS_TTA_SEQ_NO = (byte)detail.TD_SEQ, TTS_TTA_SYS_ID = allocation.TTA_SYS_ID, TTS_TTY_TYPE = detail.TD_TTY_TYPE, }; db.INS_RI_TTY_SHARE.Add(share); db.SaveChanges(); } } } } } }); commissions.ForEach(x => { if (x != null) { var commLedger = new INSURANCE_LEDGER { IGL_ACCOUNT_CODE = acntInt.INT_FWD_CREDIT_ACCT, IGL_ACCT_DATE = acntInt.INT_CRTE_DATE ?? DateTime.Now, IGL_ACCT_PERIOD_REF = "", IGL_ACCT_REF = 0, IGL_AMOUNT_BC = x.CMM_COM_AMT_BC, IGL_AMOUNT_FC = x.CMM_COM_AMT_FC, IGL_CRTE_BY = "System", IGL_CRTE_DATE = DateTime.Now, IGL_CURRENCY = polHead.POLH_CURRENCY, IGL_CUST_CODE = polHead.POLH_CUST_CODE, IGL_DOC_NUMBER = "", IGL_DR_CR = "CR", IGL_FX_RATE = polHead.POLH_CURRENCY_RATE, IGL_NARRATION = "", IGL_POL_END_NO = x.CMM_END_NO, IGL_POL_NUMBER = polHead.POLH_DISPLAY_NO, IGL_POL_SYS_ID = x.CMM_POL_SYS_ID, IGL_POSTED_DATE = null, IGL_TXN_DOC_TYPE = acntInt.INT_FWD_CREDIT_DOC_TYPE, IGL_TXN_SOURCE = acntInt.INT_TXN_SOURCE, IG_REF_DOC = polHead.POLH_DISPLAY_NO, IGL_STATUS = "U" }; //premium insurance ledger insertion db.INSURANCE_LEDGER.Add(commLedger); db.SaveChanges(); //Total commission amount into insurance Commission Account (50) db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = x.CMM_COM_AMT_BC, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = acntInt.INT_FWD_CREDIT_ACCT, ISL_AMOUNT_FC = x.CMM_COM_AMT_FC, ISL_COB = x.CMM_COB_CODE, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = polHead.POLH_CURRENCY, ISL_DR_CR = "CR", ISL_FX_RATE = polHead.POLH_CURRENCY_RATE, ISL_IGL_SYS_ID = commLedger.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = polHead.POLH_CUST_CODE }); // Commission less Tax into Intermediary account (45) //obtain tax data var interm = IntermediaryMdl.get_intermediary(x.CMM_INT_CODE); var custTypes = CustomerTypesMdl.get_customertype(interm.INT_CTP_CODE); var custCategory = custTypes.MS_CUSTOMER_CATEGORY; var tax = db.MS_ACCT_SERVICE_TAX.Where(t => t.TX_CUST_CAT_CODE == custCategory.CUS_CAT_CODE); if (tax.Count() == 1) { var taxPerc = tax.Single().TX_TAX_PERC / 100; // Math.Round((double)(() * (decimal)taxPerc), 2) db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = Math.Round((decimal)(x.CMM_COM_AMT_BC - (x.CMM_COM_AMT_BC * taxPerc)), 2), ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = custCategory.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = Math.Round((decimal)(x.CMM_COM_AMT_FC - (x.CMM_COM_AMT_FC * taxPerc)), 2), ISL_COB = x.CMM_COB_CODE, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = polHead.POLH_CURRENCY, ISL_DR_CR = "DR", ISL_FX_RATE = polHead.POLH_CURRENCY_RATE, ISL_IGL_SYS_ID = commLedger.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = custCategory.MS_ACCT_SUB_ACCOUNT.SUB_ACCT_CODE }); //commission tax into Tax Account (5) db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = Math.Round((decimal)(x.CMM_COM_AMT_BC * taxPerc), 2), ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = custCategory.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = Math.Round((decimal)(x.CMM_COM_AMT_FC * taxPerc), 2), ISL_COB = x.CMM_COB_CODE, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = polHead.POLH_CURRENCY, ISL_DR_CR = "DR", ISL_FX_RATE = polHead.POLH_CURRENCY_RATE, ISL_IGL_SYS_ID = commLedger.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = custCategory.MS_ACCT_SUB_ACCOUNT.SUB_ACCT_CODE }); } } }); //update Policy Transaction state after confirmation var dbPolTxn = db.INS_UWD_POLICY_HEAD.Find(polHead.POLH_SYS_ID); db.INS_UWD_POLICY_HEAD.Attach(dbPolTxn); dbPolTxn.POLH_TXN_STATE = "C"; } else { return(new { state = false, message = "Error inserting into Insurance Ledger" }); } db.SaveChanges(); trans.Commit(); var polhed = db.INS_UWD_POLICY_HEAD.Find(polHead.POLH_SYS_ID); var POLH_TXN_STATE = polhed.POLH_TXN_STATE; return(new { state = true, message = "Successfully Inserted into the ledger", POLH_TXN_STATE }); } catch (Exception e) { trans.Rollback(); throw; } } }
// Policy Confirmations public object ForwardTransaction(INS_UWD_POLICY_HEAD polHead, List <INS_UDW_TRAVEL_RISK> prodrisk, INS_PREMIUM_REGISTER premRegister, MS_ACCTS_INTEGRATION acntInt, List <INS_UDW_POL_FEES> polFees, List <INS_UWD_INTERMEDIARY_COMM> commissions) { //obtain total amount of premium and police fees var accountTotalBc = (premRegister.PR_BC_AMOUNT ?? 0) + (polFees == null ? 0 : polFees.Sum(x => x.POL_FEE_BC_AMOUNT)); var accountTotalFc = (premRegister.PR_FC_AMOUNT ?? 0) + (polFees == null ? 0 : polFees.Sum(x => x.POL_FEE_FC_AMOUNT)); var db = new SibaModel(); using (var trans = db.Database.BeginTransaction()) { try { if (premRegister.PR_ACCT_YN == "Y" && accountTotalBc > 0 && accountTotalFc > 0) { var ledgerHead = new INSURANCE_LEDGER { IGL_ACCOUNT_CODE = polHead.MS_UDW_CUSTOMERS.MS_SYS_CUST_TYPES.MS_CUSTOMER_CATEGORY.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, IGL_ACCT_DATE = acntInt.INT_CRTE_DATE ?? DateTime.Now, IGL_ACCT_PERIOD_REF = "", IGL_ACCT_REF = 0, IGL_AMOUNT_BC = accountTotalBc, IGL_AMOUNT_FC = accountTotalFc, IGL_CRTE_BY = "System", IGL_CRTE_DATE = DateTime.Now, IGL_CURRENCY = premRegister.PR_CURRENCY, IGL_CUST_CODE = polHead.POLH_CUST_CODE, IGL_DOC_NUMBER = "", IGL_DR_CR = "DR", IGL_FX_RATE = premRegister.PR_FX_RATE, IGL_NARRATION = "", IGL_POL_END_NO = premRegister.PR_END_NO, IGL_POL_NUMBER = polHead.POLH_DISPLAY_NO, IGL_POL_SYS_ID = premRegister.PR_POL_SYS_ID, IGL_POSTED_DATE = null, IGL_TXN_DOC_TYPE = acntInt.INT_FWD_DEBIT_DOC_TYPE, IGL_TXN_SOURCE = acntInt.INT_TXN_SOURCE, IG_REF_DOC = polHead.POLH_DISPLAY_NO, IGL_STATUS = "U" }; //premium insurance ledger insertion db.INSURANCE_LEDGER.Add(ledgerHead); db.SaveChanges(); //premium total amount for customer account insurance sub ledger insertion db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = accountTotalBc, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = polHead.MS_UDW_CUSTOMERS.MS_SYS_CUST_TYPES.MS_CUSTOMER_CATEGORY.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = accountTotalFc, ISL_COB = premRegister.PR_COB, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = premRegister.PR_CURRENCY, ISL_DR_CR = "DR", ISL_FX_RATE = premRegister.PR_FX_RATE, ISL_IGL_SYS_ID = ledgerHead.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = polHead.POLH_CUST_CODE //todo:convert to subledger sublevel2 }); //premium amount for premium account insurance sub ledger insertion db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = premRegister.PR_BC_AMOUNT, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = acntInt.INT_FWD_CREDIT_ACCT, ISL_AMOUNT_FC = premRegister.PR_FC_AMOUNT, ISL_COB = premRegister.PR_COB, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = premRegister.PR_CURRENCY, ISL_DR_CR = "CR", ISL_FX_RATE = premRegister.PR_FX_RATE, ISL_IGL_SYS_ID = ledgerHead.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = premRegister.PR_COB //todo:convert to subledger level 2 }); //premium amount for policy fee account insurance sub ledger insertion polFees.ForEach(x => { var compFee = CompulsoryFeesMdl.get_CompFees(x.POL_FEE_CODE); if (compFee != null) { db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = x.POL_FEE_BC_AMOUNT, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = compFee.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = x.POL_FEE_FC_AMOUNT, ISL_COB = premRegister.PR_COB, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = premRegister.PR_CURRENCY, ISL_DR_CR = "CR", ISL_FX_RATE = premRegister.PR_FX_RATE, ISL_IGL_SYS_ID = ledgerHead.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = compFee.MS_ACCT_SUB_ACCOUNT.SUB_ACCT_CODE }); } }); commissions.ForEach(x => { if (x != null) { var commLedger = new INSURANCE_LEDGER { IGL_ACCOUNT_CODE = acntInt.INT_FWD_CREDIT_ACCT, IGL_ACCT_DATE = acntInt.INT_CRTE_DATE ?? DateTime.Now, IGL_ACCT_PERIOD_REF = "", IGL_ACCT_REF = 0, IGL_AMOUNT_BC = x.CMM_COM_AMT_BC, IGL_AMOUNT_FC = x.CMM_COM_AMT_FC, IGL_CRTE_BY = "System", IGL_CRTE_DATE = DateTime.Now, IGL_CURRENCY = polHead.POLH_CURRENCY, IGL_CUST_CODE = polHead.POLH_CUST_CODE, IGL_DOC_NUMBER = "", IGL_DR_CR = "CR", IGL_FX_RATE = polHead.POLH_CURRENCY_RATE, IGL_NARRATION = "", IGL_POL_END_NO = x.CMM_END_NO, IGL_POL_NUMBER = polHead.POLH_DISPLAY_NO, IGL_POL_SYS_ID = x.CMM_POL_SYS_ID, IGL_POSTED_DATE = null, IGL_TXN_DOC_TYPE = acntInt.INT_FWD_CREDIT_DOC_TYPE, IGL_TXN_SOURCE = acntInt.INT_TXN_SOURCE, IG_REF_DOC = polHead.POLH_DISPLAY_NO, IGL_STATUS = "U" }; //premium insurance ledger insertion db.INSURANCE_LEDGER.Add(commLedger); db.SaveChanges(); //Total commission amount into insurance Commission Account (50) db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = x.CMM_COM_AMT_BC, ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = acntInt.INT_FWD_CREDIT_ACCT, ISL_AMOUNT_FC = x.CMM_COM_AMT_FC, ISL_COB = x.CMM_COB_CODE, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = polHead.POLH_CURRENCY, ISL_DR_CR = "CR", ISL_FX_RATE = polHead.POLH_CURRENCY_RATE, ISL_IGL_SYS_ID = commLedger.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = polHead.POLH_CUST_CODE }); // Commission less Tax into Intermediary account (45) //obtain tax data var interm = IntermediaryMdl.get_intermediary(x.CMM_INT_CODE); var custTypes = CustomerTypesMdl.get_customertype(interm.INT_CTP_CODE); var custCategory = custTypes.MS_CUSTOMER_CATEGORY; var tax = db.MS_ACCT_SERVICE_TAX.Where(t => t.TX_CUST_CAT_CODE == custCategory.CUS_CAT_CODE); if (tax.Count() == 1) { var taxPerc = tax.Single().TX_TAX_PERC / 100; // Math.Round((double)(() * (decimal)taxPerc), 2) db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = Math.Round((decimal)(x.CMM_COM_AMT_BC - (x.CMM_COM_AMT_BC * taxPerc)), 2), ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = custCategory.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = Math.Round((decimal)(x.CMM_COM_AMT_FC - (x.CMM_COM_AMT_FC * taxPerc)), 2), ISL_COB = x.CMM_COB_CODE, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = polHead.POLH_CURRENCY, ISL_DR_CR = "DR", ISL_FX_RATE = polHead.POLH_CURRENCY_RATE, ISL_IGL_SYS_ID = commLedger.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = custCategory.MS_ACCT_SUB_ACCOUNT.SUB_ACCT_CODE }); //commission tax into Tax Account (5) db.INSURANCE_SUB_LEDGER.Add(new INSURANCE_SUB_LEDGER { ISL_AMOUNT_BC = Math.Round((decimal)(x.CMM_COM_AMT_BC * taxPerc), 2), ISL_ACCT_DATE = DateTime.Now, ISL_ACCT_NUMBER = custCategory.MS_ACCT_MAIN_ACCOUNT.ACCT_CODE, ISL_AMOUNT_FC = Math.Round((decimal)(x.CMM_COM_AMT_FC * taxPerc), 2), ISL_COB = x.CMM_COB_CODE, ISL_CONTROL_ACT_YN = "", ISL_CRTE_BY = "System", ISL_CRTE_DATE = DateTime.Now, ISL_CURRENCY = polHead.POLH_CURRENCY, ISL_DR_CR = "DR", ISL_FX_RATE = polHead.POLH_CURRENCY_RATE, ISL_IGL_SYS_ID = commLedger.IGL_SYS_ID, ISL_NARRATION = "", ISL_OFFICE = polHead.POLH_OFF_CODE, ISL_SUB_LEDGER = custCategory.MS_ACCT_SUB_ACCOUNT.SUB_ACCT_CODE }); } } }); //update Policy Transaction state after confirmation var dbPolTxn = db.INS_UWD_POLICY_HEAD.Find(polHead.POLH_SYS_ID); db.INS_UWD_POLICY_HEAD.Attach(dbPolTxn); dbPolTxn.POLH_TXN_STATE = "C"; } else { return(new { state = false, message = "Error inserting into Insurance Ledger" }); } db.SaveChanges(); trans.Commit(); var polhed = db.INS_UWD_POLICY_HEAD.Find(polHead.POLH_SYS_ID); var POLH_TXN_STATE = polhed.POLH_TXN_STATE; return(new { state = true, message = "Successfully Inserted into the ledger", POLH_TXN_STATE }); } catch (Exception e) { trans.Rollback(); throw; } } }
public static INS_UWD_POLICY_HEAD GetPolicyHeader(int id) { var db = new SibaModel(); return((from polh in db.INS_UWD_POLICY_HEAD where polh.POLH_SYS_ID == id select polh).ToList() .Select(polh => new INS_UWD_POLICY_HEAD { POLH_SYS_ID = polh.POLH_SYS_ID, POLH_DOC_NO = polh.POLH_DOC_NO, POLH_END_NO = polh.POLH_END_NO, POLH_QUT_SER_NO = polh.POLH_QUT_SER_NO, POLH_POL_SER_NO = polh.POLH_POL_SER_NO, MS_SYS_COMPANY = CompanyMdl.get_company(polh.POLH_CMP_CODE), MS_SYS_OFFICE = OfficeMdl.get_office(polh.POLH_OFF_CODE), MS_UDW_CUSTOMERS = CustomerMdl.get_customer(polh.POLH_CUST_CODE), MS_SYS_SOURCE_BUSINESS = SourceBusinessMdl.get_sourcebusiness(polh.POLH_BIZ_SOURCE), MS_SYS_INTERMEDIARY = IntermediaryMdl.get_intermediary(polh.POLH_INTERMIDIARY), MST_UWD_PRODUCT = ProductMdl.get_product(polh.POLH_SUB_CLASS_CODE), MS_UDW_CLASS_OF_BUSINESS = ClassBusinessMdl.get_class(polh.POLH_CLASS_CODE), MS_SYS_CHANNEL = ChannelMdl.get_channel(polh.POLH_CHANNEL_CODE), MS_SYS_EXCHANGE_RATES = ExchangerateMdl.get_exchangerate(polh.POLH_CURRENCY), INS_UDW_INSUR_SOURCE = InsuranceSourceMdl.get_insource(polh.POLH_INS_SOURCE), POLH_CLASS_CODE = polh.POLH_CLASS_CODE, POLH_SUB_CLASS_CODE = polh.POLH_SUB_CLASS_CODE, POLH_CHANNEL_CODE = polh.POLH_CHANNEL_CODE, POLH_CMP_CODE = polh.POLH_CMP_CODE, POLH_OFF_CODE = polh.POLH_OFF_CODE, POLH_CUST_CODE = polh.POLH_CUST_CODE, POLH_INS_SOURCE = polh.POLH_INS_SOURCE, POLH_BIZ_SOURCE = polh.POLH_BIZ_SOURCE, POLH_INTERMIDIARY = polh.POLH_INTERMIDIARY, POLH_POL_START_DATE = polh.POLH_POL_START_DATE, POLH_POL_END_DATE = polh.POLH_POL_END_DATE, POLH_POL_DAYS = polh.POLH_POL_DAYS, POLH_POL_UW_YEAR = polh.POLH_POL_UW_YEAR, POLH_POL_SI_FC = polh.POLH_POL_SI_FC, POLH_POL_SI_BC = polh.POLH_POL_SI_BC, POLH_POL_PREM_FC = polh.POLH_POL_PREM_FC, POLH_POL_PREM_BC = polh.POLH_POL_PREM_BC, POLH_POL_COMM_FC = polh.POLH_POL_COMM_FC, POLH_POL_COMM_BC = polh.POLH_POL_COMM_BC, POLH_POL_DISC_FC = polh.POLH_POL_DISC_FC, POLH_POL_DISC_BC = polh.POLH_POL_DISC_BC, POLH_POL_LOAD_FC = polh.POLH_POL_LOAD_FC, POLH_POL_LOAD_BC = polh.POLH_POL_LOAD_BC, POLH_COINS_SI_FC = polh.POLH_COINS_SI_FC, POLH_COINS_SI_BC = polh.POLH_COINS_SI_BC, POLH_COINS_PREM_FC = polh.POLH_COINS_PREM_FC, POLH_COINS_PREM_BC = polh.POLH_COINS_PREM_BC, POLH_NET_SI_FC = polh.POLH_NET_SI_FC, POLH_NET_SI_BC = polh.POLH_NET_SI_BC, POLH_NET_PREM_FC = polh.POLH_NET_PREM_FC, POLH_NET_PREM_BC = polh.POLH_NET_PREM_BC, POLH_FEE_FC = polh.POLH_FEE_FC, POLH_FEE_BC = polh.POLH_FEE_BC, POLH_RENEW_SER_NO = polh.POLH_RENEW_SER_NO, POLH_TXN_STATE = polh.POLH_TXN_STATE, POLH_POL_STATE = polh.POLH_POL_STATE, POLH_END_TYPE = polh.POLH_END_TYPE, POLH_APPROVE_DATE = polh.POLH_APPROVE_DATE, POLH_ACCT_DATE = polh.POLH_ACCT_DATE, POLH_DISPLAY_NO = polh.POLH_DISPLAY_NO, POLH_CRTE_BY = polh.POLH_CRTE_BY, POLH_CRTE_DATE = polh.POLH_CRTE_DATE, POLH_MOD_BY = polh.POLH_MOD_BY, POLH_MOD_DATE = polh.POLH_MOD_DATE, POLH_STATUS = polh.POLH_STATUS, POLH_CURRENCY = polh.POLH_CURRENCY, POLH_CURRENCY_RATE = polh.POLH_CURRENCY_RATE, INS_UWD_VEHICLE_RISK = polh.INS_UWD_VEHICLE_RISK != null ? polh.INS_UWD_VEHICLE_RISK.Select(r => PolicyMotorMdl.get_motor(r.VEH_SYS_ID)).ToList() : null, INS_UWD_INTERMEDIARY_COMM = polh.INS_UWD_INTERMEDIARY_COMM != null ? polh.INS_UWD_INTERMEDIARY_COMM.Select(r => IntermediaryCommissionMdl.get_Insintermcomm(r.CMM_SYS_ID)).ToList() : null, INS_UDW_POL_FEES = polh.INS_UDW_POL_FEES != null ? polh.INS_UDW_POL_FEES.Select(r => PolicyFeesMdl.get_fees(r.POL_FEE_SYS_ID)).ToList() : null, }).Single()); }
public static INS_UWD_POLICY_HEAD GetPolicyHeader(int id) { var db = new SibaModel(); return((from polh in db.INS_UWD_POLICY_HEAD where polh.POLH_SYS_ID == id select polh).ToList() .Select(polh => new INS_UWD_POLICY_HEAD { POLH_SYS_ID = polh.POLH_SYS_ID, POLH_DOC_NO = polh.POLH_DOC_NO, POLH_END_NO = polh.POLH_END_NO, POLH_QUT_SER_NO = polh.POLH_QUT_SER_NO, POLH_POL_SER_NO = polh.POLH_POL_SER_NO, MS_SYS_COMPANY = CompanyMdl.get_company(polh.POLH_CMP_CODE), MS_SYS_OFFICE = OfficeMdl.get_office(polh.POLH_OFF_CODE), MS_UDW_CUSTOMERS = CustomerMdl.get_customer(polh.POLH_CUST_CODE), MS_SYS_SOURCE_BUSINESS = SourceBusinessMdl.get_sourcebusiness(polh.POLH_INS_SOURCE), MS_SYS_INTERMEDIARY = IntermediaryMdl.get_intermediary(polh.POLH_INTERMIDIARY), MST_UWD_PRODUCT = ProductMdl.get_product(polh.POLH_SUB_CLASS_CODE), MS_UDW_CLASS_OF_BUSINESS = ClassBusinessMdl.get_class(polh.POLH_CLASS_CODE), MS_SYS_CHANNEL = ChannelMdl.get_channel(polh.POLH_CHANNEL_CODE), POLH_CLASS_CODE = polh.POLH_CLASS_CODE, POLH_SUB_CLASS_CODE = polh.POLH_SUB_CLASS_CODE, POLH_CHANNEL_CODE = polh.POLH_CHANNEL_CODE, POLH_CMP_CODE = polh.POLH_CMP_CODE, POLH_OFF_CODE = polh.POLH_OFF_CODE, POLH_CUST_CODE = polh.POLH_CUST_CODE, POLH_INS_SOURCE = polh.POLH_INS_SOURCE, POLH_BIZ_SOURCE = polh.POLH_BIZ_SOURCE, POLH_INTERMIDIARY = polh.POLH_INTERMIDIARY, POLH_POL_START_DATE = polh.POLH_POL_START_DATE, POLH_POL_END_DATE = polh.POLH_POL_END_DATE, POLH_POL_DAYS = polh.POLH_POL_DAYS, POLH_POL_UW_YEAR = polh.POLH_POL_UW_YEAR, POLH_POL_SI_FC = polh.POLH_POL_SI_FC, POLH_POL_SI_BC = polh.POLH_POL_SI_BC, POLH_POL_PREM_FC = polh.POLH_POL_PREM_FC, POLH_POL_PREM_BC = polh.POLH_POL_PREM_BC, POLH_POL_COMM_FC = polh.POLH_POL_COMM_FC, POLH_POL_COMM_BC = polh.POLH_POL_COMM_BC, POLH_POL_DISC_FC = polh.POLH_POL_DISC_FC, POLH_POL_DISC_BC = polh.POLH_POL_DISC_BC, POLH_POL_LOAD_FC = polh.POLH_POL_LOAD_FC, POLH_POL_LOAD_BC = polh.POLH_POL_LOAD_BC, POLH_COINS_SI_FC = polh.POLH_COINS_SI_FC, POLH_COINS_SI_BC = polh.POLH_COINS_SI_BC, POLH_COINS_PREM_FC = polh.POLH_COINS_PREM_FC, POLH_COINS_PREM_BC = polh.POLH_COINS_PREM_BC, POLH_NET_SI_FC = polh.POLH_NET_SI_FC, POLH_NET_SI_BC = polh.POLH_NET_SI_BC, POLH_NET_PREM_FC = polh.POLH_NET_PREM_FC, POLH_NET_PREM_BC = polh.POLH_NET_PREM_BC, POLH_FEE_FC = polh.POLH_FEE_FC, POLH_FEE_BC = polh.POLH_FEE_BC, POLH_RENEW_SER_NO = polh.POLH_RENEW_SER_NO, POLH_TXN_STATE = polh.POLH_TXN_STATE, POLH_POL_STATE = polh.POLH_POL_STATE, POLH_END_TYPE = polh.POLH_END_TYPE, POLH_APPROVE_DATE = polh.POLH_APPROVE_DATE, POLH_ACCT_DATE = polh.POLH_ACCT_DATE, POLH_DISPLAY_NO = polh.POLH_DISPLAY_NO, POLH_CRTE_BY = polh.POLH_CRTE_BY, POLH_CRTE_DATE = polh.POLH_CRTE_DATE, POLH_MOD_BY = polh.POLH_MOD_BY, POLH_MOD_DATE = polh.POLH_MOD_DATE, POLH_STATUS = polh.POLH_STATUS, POLH_CURRENCY = polh.POLH_CURRENCY, POLH_CURRENCY_RATE = polh.POLH_CURRENCY_RATE, INS_UDW_TRAVEL_RISK_HEAD = polh.INS_UDW_TRAVEL_RISK_HEAD != null ? polh.INS_UDW_TRAVEL_RISK_HEAD.Select(r => PolicyTravelMdl.get_travel_head(r.TRAH_SYS_ID)).ToList() : null, INS_UDW_TRAVEL_RISK = polh.INS_UDW_TRAVEL_RISK != null ? polh.INS_UDW_TRAVEL_RISK.Select(r => PolicyTravelMdl.get_traveller(r.TRA_SYS_ID)).ToList() : null, }).Single()); }
public static INS_UWD_POLICY_HEAD GetPolicyHeader(int id) { var db = new SibaModel(); return((from polh in db.INS_UWD_POLICY_HEAD where polh.POLH_SYS_ID == id select polh).ToList() .Select(polh => new INS_UWD_POLICY_HEAD { POLH_SYS_ID = polh.POLH_SYS_ID, POLH_DOC_NO = polh.POLH_DOC_NO, POLH_END_NO = polh.POLH_END_NO, POLH_QUT_SER_NO = polh.POLH_QUT_SER_NO, POLH_POL_SER_NO = polh.POLH_POL_SER_NO, MS_SYS_COMPANY = CompanyMdl.get_company(polh.POLH_CMP_CODE), MS_SYS_OFFICE = OfficeMdl.get_office(polh.POLH_OFF_CODE), MS_UDW_CUSTOMERS = CustomerMdl.get_customer(polh.POLH_CUST_CODE), MS_SYS_SOURCE_BUSINESS = SourceBusinessMdl.get_sourcebusiness(polh.POLH_INS_SOURCE), MS_SYS_INTERMEDIARY = IntermediaryMdl.get_intermediary(polh.POLH_INTERMIDIARY), MST_UWD_PRODUCT = ProductMdl.get_product(polh.POLH_SUB_CLASS_CODE), MS_UDW_CLASS_OF_BUSINESS = ClassBusinessMdl.get_class(polh.POLH_CLASS_CODE), MS_SYS_CHANNEL = ChannelMdl.get_channel(polh.POLH_CHANNEL_CODE), POLH_CLASS_CODE = polh.POLH_CLASS_CODE, POLH_SUB_CLASS_CODE = polh.POLH_SUB_CLASS_CODE, POLH_CHANNEL_CODE = polh.POLH_CHANNEL_CODE, POLH_CMP_CODE = polh.POLH_CMP_CODE, POLH_OFF_CODE = polh.POLH_OFF_CODE, POLH_CUST_CODE = polh.POLH_CUST_CODE, POLH_INS_SOURCE = polh.POLH_INS_SOURCE, POLH_BIZ_SOURCE = polh.POLH_BIZ_SOURCE, POLH_INTERMIDIARY = polh.POLH_INTERMIDIARY, POLH_POL_START_DATE = polh.POLH_POL_START_DATE, POLH_POL_END_DATE = polh.POLH_POL_END_DATE, POLH_POL_DAYS = polh.POLH_POL_DAYS, POLH_POL_UW_YEAR = polh.POLH_POL_UW_YEAR, POLH_POL_SI_FC = polh.POLH_POL_SI_FC, POLH_POL_SI_BC = polh.POLH_POL_SI_BC, POLH_POL_PREM_FC = polh.POLH_POL_PREM_FC, POLH_POL_PREM_BC = polh.POLH_POL_PREM_BC, POLH_POL_COMM_FC = polh.POLH_POL_COMM_FC, POLH_POL_COMM_BC = polh.POLH_POL_COMM_BC, POLH_POL_DISC_FC = polh.POLH_POL_DISC_FC, POLH_POL_DISC_BC = polh.POLH_POL_DISC_BC, POLH_POL_LOAD_FC = polh.POLH_POL_LOAD_FC, POLH_POL_LOAD_BC = polh.POLH_POL_LOAD_BC, POLH_COINS_SI_FC = polh.POLH_COINS_SI_FC, POLH_COINS_SI_BC = polh.POLH_COINS_SI_BC, POLH_COINS_PREM_FC = polh.POLH_COINS_PREM_FC, POLH_COINS_PREM_BC = polh.POLH_COINS_PREM_BC, POLH_NET_SI_FC = polh.POLH_NET_SI_FC, POLH_NET_SI_BC = polh.POLH_NET_SI_BC, POLH_NET_PREM_FC = polh.POLH_NET_PREM_FC, POLH_NET_PREM_BC = polh.POLH_NET_PREM_BC, POLH_FEE_FC = polh.POLH_FEE_FC, POLH_FEE_BC = polh.POLH_FEE_BC, POLH_RENEW_SER_NO = polh.POLH_RENEW_SER_NO, POLH_TXN_STATE = polh.POLH_TXN_STATE, POLH_POL_STATE = polh.POLH_POL_STATE, POLH_END_TYPE = polh.POLH_END_TYPE, POLH_APPROVE_DATE = polh.POLH_APPROVE_DATE, POLH_ACCT_DATE = polh.POLH_ACCT_DATE, POLH_DISPLAY_NO = polh.POLH_DISPLAY_NO, POLH_CRTE_BY = polh.POLH_CRTE_BY, POLH_CRTE_DATE = polh.POLH_CRTE_DATE, POLH_MOD_BY = polh.POLH_MOD_BY, POLH_MOD_DATE = polh.POLH_MOD_DATE, POLH_STATUS = polh.POLH_STATUS, POLH_CURRENCY = polh.POLH_CURRENCY, POLH_CURRENCY_RATE = polh.POLH_CURRENCY_RATE, INS_UDW_BONDS = polh.INS_UDW_BONDS != null ? polh.INS_UDW_BONDS.Select(r => PolicyBondMdl.get_bond(r.BOND_SYS_ID)).ToList() : null, INS_UWD_VEHICLE_RISK = polh.INS_UWD_VEHICLE_RISK != null ? polh.INS_UWD_VEHICLE_RISK.Select(r => PolicyMotorMdl.get_motor(r.VEH_SYS_ID)).ToList() : null, INS_UDW_TRAVEL_RISK_HEAD = polh.INS_UDW_TRAVEL_RISK_HEAD != null ? polh.INS_UDW_TRAVEL_RISK_HEAD.Select(r => PolicyTravelMdl.get_travel_head(r.TRAH_SYS_ID)).ToList() : null, INS_UDW_TRAVEL_RISK = polh.INS_UDW_TRAVEL_RISK != null ? polh.INS_UDW_TRAVEL_RISK.Select(r => PolicyTravelMdl.get_traveller(r.TRA_SYS_ID)).ToList() : null, INS_UWD_FIRE_LOCRISK = polh.INS_UWD_FIRE_LOCRISK != null ? polh.INS_UWD_FIRE_LOCRISK.Select(r => PolicyFireMdl.get_fire_locrisk(r.PLOC_SYS_ID)).ToList() : null, INS_UWD_FIRE_LOCINT = polh.INS_UWD_FIRE_LOCINT != null ? polh.INS_UWD_FIRE_LOCINT.Select(r => PolicyFireMdl.get_fire_locint(r.LINT_SYS_ID)).ToList() : null, INS_UDW_GENERAL_ACCIDENT = polh.INS_UDW_GENERAL_ACCIDENT != null ? polh.INS_UDW_GENERAL_ACCIDENT.Select(r => PolicyGAMdl.get_ga_header(r.GA_SYS_ID)).ToList() : null, INS_UWD_RISK_COVERS = polh.INS_UWD_RISK_COVERS != null ? polh.INS_UWD_RISK_COVERS.Select(r => PolicyRiskCovers.get_riskcovers(r.RCOV_SYS_ID)).ToList() : null, INS_UWD_INTERMEDIARY_COMM = polh.INS_UWD_INTERMEDIARY_COMM != null ? polh.INS_UWD_INTERMEDIARY_COMM.Select(r => IntermediaryCommissionMdl.get_Insintermcomm(r.CMM_SYS_ID)).ToList() : null, INS_UDW_POL_FEES = polh.INS_UDW_POL_FEES != null ? polh.INS_UDW_POL_FEES.Select(r => PolicyFeesMdl.get_fees(r.POL_FEE_SYS_ID)).ToList() : null, //INSURANCE_LEDGER = polh.INSURANCE_LEDGER != null ? polh.INSURANCE_LEDGER.Select(c => InsuranceLedger.get_ledger(c.IGL_SYS_ID)).ToList() : null, }).Single()); }