(function ($, s, u, $scope) { $(function() { u.getGlobal("policyHeaderInit")(); u.getGlobal("tabsInit")(); $scope.pvtGrid = u.getGlobal("udwPvtGrid"); $scope.grdfacInward = u.getGlobal("udwFacInwGrid"); $scope.intermCom_grid = u.getGlobal("intermCom_grid"); $scope.polfees_grid = u.getGlobal("polfees_grid"); $scope.grdCoinsLeader_grid = u.getGlobal("grdCoinsLeader_grid"); $scope.refPolGrid = u.default_grid("#gridRefPol", "#gridRefPolPager", "Reference Policy", [ "Id", "Policy No.", "Main Prod.", "Sub Prod.", "Customer", "Branch", "Year", "Currency" ], [ { name: "POLH_SYS_ID", index: "POLH_SYS_ID", width: 150 }, { name: "POLH_DISPLAY_NO", index: "POLH_DISPLAY_NO", width: 150 }, { name: "mainClass", index: "mainClass", width: 150 }, { name: "subClass", index: "subClass", width: 150 }, { name: "customer", index: "custpmer", width: 150 }, { name: "branch", index: "branch", width: 150 }, { name: "POLH_POL_UW_YEAR", index: "POLH_POL_UW_YEAR", width: 150 }, { name: "POLH_CURRENCY", index: "POLH_CURRENCY", width: 150 } ], //Retrive Grid data into form input fields on row click.. function(selRowId) { //const grid = $scope.refPolGrid; //const id = grid.jqGrid("getCell", selRowId, "POLH_SYS_ID"); //s.getPolicy(id, function (policy) { // u.form_reset("#polheaderForm"); // u.fill_form(policy, "#polheaderForm", false); // $("#POLH_PVT_REF").val(id); //}); }, function (selRowId) { const grid = $scope.refPolGrid; const id = grid.jqGrid("getCell", selRowId, "POLH_SYS_ID"); s.getPolicy(id, function (policy) { //u.getGlobalStatic("productSearchFill")(result.data); //$("#PolicyModal").modal({ keyboard: false, backdrop: 'static' }); u.form_reset("#polheaderForm"); policy.POLH_TXN_STATE = "S"; policy.POLH_CRTE_BY = ""; policy.POLH_CRTE_DATE = ""; policy.POLH_POL_START_DATE = ""; policy.POLH_POL_END_DATE = ""; policy.POLH_INTERMIDIARY = ""; u.fill_form(policy.data, "#polheaderForm", false); $("#POLH_POL_START_DATE").val(u.dateFullDate2(policy.data.POLH_POL_START_DATE)); $("#POLH_POL_END_DATE").val(u.dateFullDate2(policy.data.POLH_POL_END_DATE)); $("#POLH_PVT_REF").val(id); $("#POLH_QUT_SER_NO").val(""); $("#POLH_DISPLAY_NO").val(""); $("#POLH_UID").val(""); $("#POLH_SYS_ID").val(""); $("#POLH_STATUS").val("U"); $("#refPolicyModal").modal("hide"); $("#POLH_TXN_STATE").val("S"); $("#POLH_INTERMIDIARY").val(""); $("#INT_OFFICIAL_NAME").val(""); $("#POLH_POL_SI_FC").val(""); $("#POLH_POL_SI_BC").val(""); $("#POLH_NET_PREM_BC").val(""); $("#POLH_NET_PREM_FC").val(""); $("#POLH_NET_SI_BC").val(""); $("#POLH_NET_SI_FC").val(""); $("#POLH_COINS_COM_BC").val(""); $("#POLH_COINS_COM_FC").val(""); $("#POLH_COINS_PREM_BC").val(""); $("#POLH_COINS_PREM_FC").val(""); $("#POLH_COINS_SI_BC").val(""); $("#POLH_COINS_SI_FC").val(""); $("#POLH_POL_LOAD_BC").val(""); $("#POLH_POL_LOAD_FC").val(""); $("#POLH_POL_SI_BC").val(""); $("#POLH_POL_SI_FC").val(""); $("#POLH_POL_PREM_FC").val(""); $("#POLH_POL_PREM_BC").val(""); $("#POLH_POL_COMM_FC").val(""); $("#POLH_POL_COMM_BC").val(""); $("#POLH_POL_DISC_FC").val(""); $("#POLH_POL_DISC_BC").val(""); $("#POLH_END_NO").val(0); $("#POLH_RENEW_SER_NO").val(0); $("#POLH_CRTE_DATE").val(""); $("#POLH_CRTE_BY").val(""); $("#POLH_MOD_BY").val(""); $("#POLH_POL_UW_YEAR").val(new Date().getFullYear()); u.clear_grid_data($scope.interComm_grid); }); }); // Cover Grid $scope.cover_grid = u.getGlobal("udwCoverGrid"); // Premium Summary $scope.premium_grid = u.getGlobal("udwPremSumGrid"); // Applicable Policy Fees Summary $scope.polpolicyFeesGrid = u.getGlobal("udwPolFeesGrid"); // Premium Payment Summary $scope.payment_grid = u.getGlobal("udwPaymentGrid"); // Risk Premium Summary $scope.PremSummary_grid = u.getGlobal("udwPremSumGrid"); // Reinsurance Share Summary $scope.treatyShareGrid = u.getGlobal("udwTtyShareGrid"); // FAC In Premium Summary $scope.treatyApportionmentGrid = u.getGlobal("udwTtyApporGrid"); // Reinsurance Summary $scope.reinsurance_grid = u.getGlobal("udwRIGrid"); // Claim Summary $scope.cliams_grid = u.getGlobal("udwClaimsGrid"); // Policy Documents Grid $scope.polFileGrid = u.getGlobal("udwPolDocsGrid"); // Product Risk Grid **** $scope.prodRisks_grid = u.getGlobal("udwSubClassGrid"); //Intermediary Commission $scope.interComm_grid = u.getGlobal("udwAgntCommGrid"); $scope.endorsementGrid = u.getGlobal("udwEndsmntGrid"); // Risk Covers **** $scope.riskCovers_grid = u.default_grid("#gridAddNewCover", "#gridAddNewCoverPager", "Risk Cover List", ["Code", "Name", "Sum Insured", "Deft Rate", "Deft Premium", "Cover Type"], [ { name: "PCV_COV_CODE", index: "PCV_COV_CODE", width: 150 }, { name: "COVER_NAME", index: "COVER_NAME", width: 150 }, u.currencyColumn("PCV_SI"), { name: "PCV_DEF_RATE", index: "PCV_DEF_RATE", width: 150 }, u.currencyColumn("PCV_DEF_PREM"), { name: "COVER_TYPE", index: "COVER_TYPE", width: 150 }, ], //Retrive Grid data into form input fields on row click.. function (selId) { var grid = $scope.riskCovers_grid; u.fill_form({ RCOV_CODE: grid.jqGrid("getCell", selId, "PCV_COV_CODE"), RCOV_NAME: grid.jqGrid("getCell", selId, "COVER_NAME"), RCOV_TYPE: grid.jqGrid("getCell", selId, "COVER_TYPE"), RCOV_RATE: grid.jqGrid("getCell", selId, "PCV_DEF_RATE"), RCOV_SI_FC: grid.jqGrid("getCell", selId, "PCV_SI"), RCOV_GROSS_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_NET_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_USER_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_USER_PREMIUM_YN"), RCOV_RATED_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RATED_YN"), RCOV_RI_SI_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_SI_YN"), RCOV_RI_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_PREMIUM_YN") }, "#coverForm"); }, //Retrive Grid data into form input fields on row double click.... XXX function (selId) { var grid = $scope.riskCovers_grid; u.fill_form({ RCOV_CODE: grid.jqGrid("getCell", selId, "PCV_COV_CODE"), RCOV_NAME: grid.jqGrid("getCell", selId, "COVER_NAME"), RCOV_TYPE: grid.jqGrid("getCell", selId, "COVER_TYPE"), RCOV_RATE: grid.jqGrid("getCell", selId, "PCV_DEF_RATE"), RCOV_SI_FC: grid.jqGrid("getCell", selId, "PCV_SI"), RCOV_GROSS_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_NET_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_USER_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_USER_PREMIUM_YN"), RCOV_RATED_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RATED_YN"), RCOV_RI_SI_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_SI_YN"), RCOV_RI_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_PREMIUM_YN") }, "#coverForm"); // hide modal on double click $("#AddNewCoverModal").modal("hide"); }); $scope.saving = false; $("#refPolicyDiv").removeClass("m-hide"); $("#mainProductDiv").addClass("m-hide"); $("#pvtMainProductDiv").removeClass("m-hide"); $("#isPvtPolicy").val(true); /*---------------------- * LOV initialization *--------------------*/ $scope.lov = u.lov_init("#myLOVModal", "#grdLOV", "#grdLOVPager"); /*----------------------------------------- * LOV button click event handling *---------------------------------------*/ $("body").delegate(".btn_lov", "click", function (e) { $scope.dialog_data = $(this).data("dialog"); if (!$scope.dialog_data) { return false; } switch ($scope.dialog_data.type) { case "btn_cover_type": $scope.lov.call_dialog("Select Cover", "get_lov_cover_type", $scope.dialog_data); break; case "btn_broker_agent": $scope.lov.call_dialog("Select Broker/Agent", "get_lov_broker_agent", $scope.dialog_data); break; case "btn_risk": $scope.lov.call_dialog("Select Risk", "get_lov_motor_risks", $scope.dialog_data); break; case "btn_region": $scope.lov.call_dialog("Select Region", "get_lov_regions", $scope.dialog_data); break; case "btn_area": if ($("#PVT_REGION_CODE").val() === "") return u.growl_info("Please select a region"); $scope.lov.call_dialog("Select Area", "getRegionAreas", $scope.dialog_data, $("#PVT_REGION_CODE").val()); break; case "btn_location": if ($("#PVT_AREA_CODE").val() === "") return u.growl_info("Please select an area"); $scope.lov.call_dialog("Select Location", "getAreaLocations", $scope.dialog_data, $("#PVT_AREA_CODE").val()); break; case "btn_occupancy": $scope.lov.call_dialog("Select Occupancy", "get_lov_occupancy", $scope.dialog_data); break; case "btn_eqzone": $scope.lov.call_dialog("Select Earthquake Zone", "get_lov_eqzone", $scope.dialog_data); break; case "excess_lov": if (u.field_empty("#POLH_SUB_CLASS_CODE")) return u.growl_info("Please select a product"); $scope.lov.pcolName = ["Min Amount", "Max Amount", "Narration"]; $scope.lov.pcolMdls = [ { name: "MIN", index: "MIN" }, { name: "MAX", index: "MAX" }, { name: "NARRATION", index: "NARRATION" } ]; $scope.lov.call_dialog("Select Excess", "getProdBuyBackExcessLov", $scope.dialog_data, $("#POLH_SUB_CLASS_CODE").val()); break; case "btn_pvt_class": $scope.lov.call_dialog("Select Class of business", "getCobLov", $scope.dialog_data); break; } }); $scope.reset = function () { u.form_reset("#polheaderForm"); u.form_reset("#coverForm"); u.form_reset("#policyFilesForm"); u.form_reset("#pvtForm"); $("#endNetCustomerFc").empty(); $("#netCustomerFc").empty(); u.clear_grid_data($scope.cover_grid); u.clear_grid_data($scope.PremSummary_grid); u.clear_grid_data($scope.cliams_grid); //u.clear_grid_data($scope.facinpremium_grid); //u.clear_grid_data($scope.coinsurance_grid); u.clear_grid_data($scope.interComm_grid); u.clear_grid_data($scope.polpolicyFeesGrid); //u.clear_grid_data($scope.riskdiscload_grid); u.clear_grid_data($scope.prodRisks_grid); u.clear_grid_data($scope.polFileGrid); u.clear_grid_data($scope.endorsementGrid); u.clear_grid_data($scope.reinsurance_grid); u.clear_grid_data($scope.pvtGrid); $("#POLH_SYS_ID").val(""); $("#POLH_STATUS").val("U"); $("#POLH_TXN_STATE").val("S"); $("#txtSearch").val(""); u.form_text_Black_color(); }; u.setGlobalStatic("pvtReset", $scope.reset); $("#btn_risk_cover").click(function() { if (!u.getSelRow($scope.pvtGrid)) return u.growl_info("Select a PVT risk from the grid below"); $("#RiskCoverModal").modal(); }); $("#btn_add_risk").click(async function () { if (u.form_validation("#polheaderForm")) { //Fetch treaty //obtain the treaty setup for the selected product if (!$scope.treatyData) { var treaty = await s.getProductTreatyAsync($("#POLH_SUB_CLASS_CODE").val(), $("#POLH_POL_UW_YEAR").val(), $("#POLH_CURRENCY").val()); if (treaty.state && treaty.data) { $scope.treatyData = treaty.data; u.growl_success("Treaty successfully fetched for the selected product"); $("#LocationModal").modal(); $("#PVT_CURRENCY").val($("#POLH_CURRENCY").val()); $("#PVT_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); $("#PVT_START_DATE").val($("#POLH_POL_START_DATE").val()); $("#PVT_END_DATE").val($("#POLH_POL_END_DATE").val()); $("#PVT_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#PVT_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); $("#PVT_VALUE_ADDED_TAX_PERC").val($("#POLH_VAT_PERC").val()); $("#PVT_VALUE_ADDED_TAX_YN").val($("#POLH_VAT_YN").val()); await u.lovDropDownAsync("#PVT_EXCESS_TYPE", "get_lov_PExcessAsync", { "SubClass": $("#POLH_SUB_CLASS_CODE").val() }); // DEFAULT CLAIM AMOUNT $("#PVT_EXCESS_TYPE").val("CA"); $("#PVT_EXCESS_TYPE").trigger("change"); } else { u.growl_warning(`Treaty has not been setup for the product with code ${$("#POLH_SUB_CLASS_CODE").val()} for the underwriting year ${$("#POLH_POL_UW_YEAR").val()} and currency ${$("#POLH_CURRENCY").val()}`); } } else { $("#LocationModal").modal(); $("#PVT_CURRENCY").val($("#POLH_CURRENCY").val()); $("#PVT_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); $("#PVT_START_DATE").val($("#POLH_POL_START_DATE").val()); $("#PVT_END_DATE").val($("#POLH_POL_END_DATE").val()); $("#PVT_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); $("#PVT_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#PVT_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); } $("#PvtRiskModal").modal(); $("#btn_add_pvt").removeClass("m-hide"); $("#btn_update_pvt").addClass("m-hide"); } else { u.growl_warning("Please complete the Policy Header form"); } }); $("#btn_edit_risk").click(function() { if (!u.getSelRow($scope.pvtGrid)) return u.growl_info("Select a PVT risk from the grid below"); $("#PvtRiskModal").modal(); $("#btn_add_pvt").addClass("m-hide"); $("#btn_update_pvt").removeClass("m-hide"); }); $("#btn_remove_risk").click(function() { if (u.grid_empty($scope.pvtGrid)) return u.growl_info("PVT Risk grid is empty"); if (!u.getSelRow($scope.pvtGrid)) return u.growl_info("Select a PVT risk from the grid below to remove"); var rowId = u.getSelRow($scope.pvtGrid); var riskId = parseInt(grid.jqGrid('getCell', row_id, 'PVT_SYS_ID')); var riskStatus = grid.jqGrid("getCell", rowId, "PVT_STATUS"); u.modal_confirmation("Are you sure you want to remove this risk?", function() { switch (riskStatus) { case "U": if (!u.grid_empty($scope.reinsurance_grid)) { var newRi = []; u.get_grid_data($scope.reinsurance_grid).ForEach(x => { if (parseInt(x.TTH_RISK_SYS_ID) !== riskId) { newRi.push(x); } }); u.clear_grid_data($scope.reinsurance_grid); u.grid_populate($scope.reinsurance_grid, "", newRi); } $scope.pvtGrid.jqGrid("delRowData", rowId); u.hide_confirm(); u.form_reset("#pvtForm"); u.growl_success("Selected Risk successfully deleted"); break; case "A": if (!u.grid_empty($scope.reinsurance_grid)) { var ri = u.get_grid_data($scope.reinsurance_grid); ri.ForEach(x => { if (parseInt(x.TTH_RISK_SYS_ID) === riskId) { x.TTH_STATUS = "D"; } }); u.clear_grid_data($scope.reinsurance_grid); u.grid_populate($scope.reinsurance_grid, "", ri); } $scope.pvtGrid.jqGrid("setCell", rowId, "PVT_STATUS", "D"); u.hide_confirm(); u.growl_success("Selected Risk successfully marked for deletion, please click on the save button to save changes"); break; case "D": if (!u.grid_empty($scope.reinsurance_grid)) { var ri = u.get_grid_data($scope.reinsurance_grid); ri.ForEach(x => { if (parseInt(x.TTH_RISK_SYS_ID) === riskId) { x.TTH_STATUS = "A"; } }); u.clear_grid_data($scope.reinsurance_grid); u.grid_populate($scope.reinsurance_grid, "", ri); } $scope.pvtGrid.jqGrid("setCell", rowId, "PVT_STATUS", "A"); u.hide_confirm(); u.growl_success("Risk successfully restored"); break; } $scope.RecalculatePremium(); u.getGlobal("showRiskCount")(u.get_grid_data($scope.pvtGrid).Where(x => x.PVT_STATUS !== "D")); }); }); $("#btnPvtReset").click(function () { u.modal_confirmation("Reset and clear form?", function() { u.form_reset("#pvtForm"); u.growl_success("Form cleared successfully"); }); }); /*--------------------------------------------- * EML Select Options *--------------------------------------------*/ $("form select[name='PVT_EML_YN']").change(function () { if ($(this).val() === "N") { $("#PVT_EML_PERC").prop("disabled", "disabled"); $("#PVT_EML_PERC").prop("disabled", "disabled"); } else if ($(this).val() === "Y") { $("#PVT_EML_PERC").removeAttr("disabled"); $("#PVT_EML_PERC").removeAttr("readonly"); } else { $("#PVT_EML_PERC").val(""); $("#PVT_EML_PERC").prop("disabled", "disabled"); } }); /* * GRID Functions */ $("#btn_add_pvt").click(function() { if (u.form_validation("#pvtForm")) { var risks = u.get_grid_data($scope.pvtGrid); if (risks.Any(r => r.PVT_REGION_CODE === $("#PVT_REGION_CODE").val() && r.PVT_AREA_CODE === $("#PVT_AREA_CODE").val() && r.PVT_LOC_CODE === $("#PVT_LOC_CODE").val())) { return u.growl_info("Risk with same Region, Area and Location already exists"); } u.modalConfirmationAsync("Are you sure you want to add this PVT Risk?", async function() { var seq = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); var formData = u.parse_form("#pvtForm"); formData.PVT_SYS_ID = seq; formData.PVT_STATUS = "A"; formData.PVT_CRTE_BY = u.getUserCode(); var defaultCovers = []; //if ($("#POLH_INS_SOURCE").val() === "DIR" || $("#POLH_INS_SOURCE").val() === "COL") { // defaultCovers = await getDefaultRiskCovers(formData.PVT_SYS_ID); //} else if ($("#POLH_INS_SOURCE").val() === "COM") { // defaultCovers = await u.getGlobal("engGetCoInsMemCovers")(formData.CAR_SYS_ID); //} else if ($("#POLH_INS_SOURCE").val() === "FIN") { // defaultCovers = await u.getGlobal("engGetCoInsMemCovers")(formData.CAR_SYS_ID); //} formData.INS_UWD_RISK_COVERS = defaultCovers; $scope.pvtGrid.addRowData(undefined, formData); u.hide_confirm(); u.growl_success("PVT Risk successfully added to grid"); u.hide_confirm(); u.form_reset("#pvtForm"); $("#PvtRiskModal").modal("hide"); u.getGlobal("showRiskCount")(u.get_grid_data($scope.pvtGrid).Where(x => x.PVT_STATUS !== "D")); }); } else { u.growl_info("All fields marked red are required"); } }); $("#btn_update_pvt").click(function() { if (u.form_validation("#pvtForm")) { u.modal_confirmation("Are you sure you want to update the selected PVT Risk?", function() { var grid = $scope.pvtGrid; var rowId = u.getSelRow(grid); var code = parseInt(grid.jqGrid("getCell", rowId, "PVT_SYS_ID")); if (code === parseInt($("#PVT_SYS_ID").val())) { var data = u.parse_form("#pvtForm"); if ($("#PVT_EML_YN").val() === "Y") { data.PVT_RI_SI_FC = data.PVT_RI_SI_FC * (parseFloat($("#PVT_EML_PERC").val()) / 100); data.PVT_RI_SI_BC = parseFloat(data.PVT_RI_SI_FC) * parseFloat($("#POLH_CURRENCY_RATE").val()); } for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("PVT Risk updated"); $("#PvtRiskModal").modal("hide"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } else { u.growl_info("All fields marked red are required"); } }); $("#btnRefPolicy").click(function() { $("#refPolicyModal").modal(); }); $("#btnQueryRef").click(function() { if (u.field_empty("#refQuery")) return u.growl_info("Please provide a search query"); u.clear_grid_data($scope.refPolGrid); s.getPolicyRef($("#refQuery").val(), function(response) { if (response.state) { if (jQuery.isEmptyObject(response.data)) return u.growl_info("No policy found"); u.grid_populate($scope.refPolGrid, "", response.data); u.growl_success("Search completed successfully"); } else { u.growl_error(response.message); } }); }); $("#btnRefClose").click(function() { var selRow = u.getSelRow($scope.refPolGrid); var id = $scope.refPolGrid.jqGrid("getCell", selRow, "POLH_SYS_ID"); s.getPolicy(id, function (policy) { u.form_reset("#polheaderForm"); u.fill_form(policy, "#polheaderForm", false); $("#POLH_PVT_REF").val(id); $("#POLH_QUT_SER_NO").val(""); $("#POLH_DISPLAY_NO").val(""); $("#POLH_UID").val(""); $("#POLH_SYS_ID").val(""); $("#POLH_STATUS").val("U"); $("#refPolicyModal").modal("hide"); $("#POLH_TXN_STATE").val("S"); $("#POLH_INTERMIDIARY").val(""); $("#INT_OFFICIAL_NAME").val(""); $("#POLH_POL_SI_FC").val(""); $("#POLH_POL_SI_BC").val(""); $("#POLH_NET_PREM_BC").val(""); $("#POLH_NET_PREM_FC").val(""); $("#POLH_NET_SI_BC").val(""); $("#POLH_NET_SI_FC").val(""); $("#POLH_COINS_COM_BC").val(""); $("#POLH_COINS_COM_FC").val(""); $("#POLH_COINS_PREM_BC").val(""); $("#POLH_COINS_PREM_FC").val(""); $("#POLH_COINS_SI_BC").val(""); $("#POLH_COINS_SI_FC").val(""); $("#POLH_POL_LOAD_BC").val(""); $("#POLH_POL_LOAD_FC").val(""); $("#POLH_POL_SI_BC").val(""); $("#POLH_POL_SI_FC").val(""); $("#POLH_POL_PREM_FC").val(""); $("#POLH_POL_PREM_BC").val(""); $("#POLH_POL_COMM_FC").val(""); $("#POLH_POL_COMM_BC").val(""); $("#POLH_POL_DISC_FC").val(""); $("#POLH_POL_DISC_BC").val(""); $("#POLH_END_NO").val(0); $("#POLH_RENEW_SER_NO").val(0); }); }); $("#btnRiskCoverOk").click(function() { if (u.grid_empty($scope.cover_grid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { $("#RiskCoverModal").modal("hide"); u.hide_confirm(); }); } else { var selectedPvt = u.getSelRow($scope.pvtGrid); $scope.pvtGrid.jqGrid("setCell", selectedPvt, "INS_UWD_RISK_COVERS", u.get_grid_data($scope.cover_grid)); $scope.SumCoverRiskValues(); $scope.PolicyCalculations(); $("#RiskCoverModal").modal("hide"); u.clear_grid_data($scope.cover_grid); } }); $scope.SumCoverRiskValues = function() { //Declare variables var riskSumSifc = 0; var riskSumSibc = 0; var sumGrossPremFc = 0; var sumGrossPremBc = 0; var sumNetPremFc = 0; var sumNetPremBc = 0; var sumLoadFc = 0; var sumLoadBc = 0; var sumDisFc = 0; var sumDisBc = 0; var sumRiPremFc = 0; var sumRiPremBc = 0; var sumRiSiFc = 0; var sumRiSiBc = 0; var sumTotalPremFc = 0; var sumTotalPremBc = 0; var riskgrid = $scope.pvtGrid; var riskRowId = u.getSelRow(riskgrid); const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": //polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays; proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } const coverGrid = $scope.cover_grid, covers = u.get_grid_data(coverGrid); if (covers.Any()) { covers.ForEach(c => { if (c.RCOV_RI_PREM_YN === "Y") { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; } if (c.RCOV_RI_SI_YN === "Y") { sumRiSiFc += parseFloat(c.RCOV_SI_FC || 0); sumRiSiBc += parseFloat(c.RCOV_SI_BC || 0); } riskSumSifc += parseFloat(c.RCOV_SI_FC); riskSumSibc += parseFloat(c.RCOV_SI_BC); sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumNetPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumNetPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumTotalPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumTotalPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumLoadFc += parseFloat(c.RCOV_LOAD_FC); sumLoadBc += parseFloat(c.RCOV_LOAD_BC); sumDisFc += parseFloat(c.RCOV_DISC_FC); sumDisBc += parseFloat(c.RCOV_DISC_BC); }); riskgrid.jqGrid("setCell", riskRowId, "PVT_RISK_PREM_FC", sumGrossPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_RISK_PREM_BC", sumGrossPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_TOT_PREM_FC", sumTotalPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_TOT_PREM_BC", sumTotalPremBc.toFixed(2)); //RI VALUES riskgrid.jqGrid("setCell", riskRowId, "PVT_RI_PREM_FC", sumRiPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_RI_PREM_BC", sumRiPremBc.toFixed(2)); //checkif we are to apply EML if (riskgrid.jqGrid("getCell", riskRowId, "PVT_EML_YN") === "Y") { var emplPerc = parseFloat(riskgrid.jqGrid("getCell", riskRowId, "PVT_EML_PERC") || 0); riskgrid.jqGrid("setCell", riskRowId, "PVT_RI_SI_FC", (parseFloat(sumRiSiFc) * (emplPerc / 100)) .toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_RI_SI_BC", (parseFloat(sumRiSiBc) * (emplPerc / 100)) .toFixed(2)); } else { riskgrid.jqGrid("setCell", riskRowId, "PVT_RI_SI_FC", sumRiSiFc); riskgrid.jqGrid("setCell", riskRowId, "PVT_RI_SI_BC", sumRiSiBc); } riskgrid.jqGrid("setCell", riskRowId, "PVT_SI_FC", riskSumSifc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_SI_BC", riskSumSibc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_LOAD_FC", sumLoadFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_LOAD_BC", sumLoadBc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_DISC_FC", sumDisFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "PVT_DISC_BC", sumDisBc.toFixed(2)); } else { var risks = u.get_grid_data($scope.pvtGrid); risks.ForEach(r => { var covers = u.parseJson(r.INS_UWD_RISK_COVERS); covers.ForEach(c => { if (c.RCOV_STATUS !== "D") { riskSumSifc += parseFloat(c.RCOV_SI_FC); riskSumSibc += parseFloat(c.RCOV_SI_BC); c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumNetPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumNetPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumTotalPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumTotalPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumLoadFc += parseFloat(c.RCOV_LOAD_FC); sumLoadBc += parseFloat(c.RCOV_LOAD_BC); sumDisFc += parseFloat(c.RCOV_DISC_FC); sumDisBc += parseFloat(c.RCOV_DISC_BC); if (c.RCOV_RI_PREM_YN === "Y") { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; } if (c.RCOV_RI_SI_YN === "Y") { sumRiSiFc += parseFloat(c.RCOV_SI_FC || 0); sumRiSiBc += parseFloat(c.RCOV_SI_BC || 0); } } }); r.INS_UWD_RISK_COVERS = r.INS_UWD_RISK_COVERS; r.PVT_RISK_PREM_FC = sumNetPremFc; r.PVT_RISK_PREM_BC = sumNetPremBc; r.PVT_TOT_PREM_FC = sumTotalPremFc; r.PVT_TOT_PREM_BC = sumTotalPremBc; r.PVT_RI_PREM_FC = sumRiPremFc; r.PVT_RI_PREM_BC = sumRiPremBc; r.PVT_RI_SI_FC = sumRiSiFc; r.PVT_RI_SI_BC = sumRiSiBc; r.PVT_SI_FC = riskSumSifc; r.PVT_SI_BC = riskSumSibc; r.PVT_DISC_FC = sumDisFc; r.PVT_DISC_BC = sumDisBc; r.PVT_LOAD_FC = sumLoadFc; r.PVT_LOAD_BC = sumLoadBc; }); u.clear_grid_data($scope.pvtGrid); u.grid_populate($scope.pvtGrid, "", risks); } }; $scope.PolicyCalculations = function () { $scope.premiumSummarizer(); //$scope.policyCommissionSummarizer(); $scope.RICalculations(); u.getGlobal("facOutwardCalUpdate")(); if ($("#POLH_TXN_STATE").val() === "E") { $scope.financialDiff($scope.getPolicyFormData()); $("#suspensionDetails").show(); } }; $scope.premiumSummarizer = function () { var currRate = parseFloat($("#POLH_CURRENCY_RATE").val() || 0); //[grossPremFc=0, grossPremBc=1, totalvehBasicPrem=2, excessBoughtPrem=3, totalccLoadingPrem=4, AddTPPDPrem=5, totalRiskPrem=6, totalTPBasicPrem=7, extraSeatPrem=8, ncdPremFc=9, ncdPremBc=10, addPeril=11, PABenefitPrem=12, ecowasPrem] var premData = $scope.PremiumCalculator(); u.clear_grid_data($scope.PremSummary_grid); var data = { CODE: "GRSPREM", DESCRIPTION: "Gross Premium", FC_AMOUNT: ( parseFloat(premData[0] || 0) + parseFloat(premData[3] || 0) * currRate + parseFloat(premData[4] || 0) * currRate + parseFloat(premData[5] || 0) * currRate + parseFloat(premData[8] || 0) * currRate + parseFloat(premData[11] || 0) * currRate + parseFloat(premData[12] || 0) * currRate + parseFloat(premData[13] || 0) * currRate).toFixed(2), BC_AMOUNT: ( parseFloat(premData[1] || 0) + parseFloat(premData[3] || 0) + parseFloat(premData[4] || 0) + parseFloat(premData[5] || 0) + parseFloat(premData[8] || 0) + parseFloat(premData[11] || 0) + parseFloat(premData[12] || 0) + parseFloat(premData[13] || 0)).toFixed(2), TYPE: "P" }; $scope.PremSummary_grid.addRowData(data.ID, data); //policy discount and loading summary var polDiscLoadData = []; var totalSumInsuredBc = 0; var totalSumInsuredFc = 0; var risks = u.get_grid_data($scope.pvtGrid); risks.ForEach(r => { totalSumInsuredBc += parseFloat(r.PVT_SI_BC || 0); totalSumInsuredFc += parseFloat(r.PVT_SI_FC || 0); var covers = u.parseJson(r.INS_UWD_RISK_COVERS); covers.ForEach(c => { var discLoads = u.parseJson(c.INS_UDW_COVER_DISCLOAD); discLoads.ForEach(d => { polDiscLoadData.push(d); }); }); }); var polDiscLoadLinq = Enumerable.From(polDiscLoadData); var polDiscLoadings = polDiscLoadLinq.GroupBy(function (x) { return x.DL_CODE; }) .Select(function (x) { return { CODE: x.Key(), DESCRIPTION: x.source[0]["DL_NAME"], FC_AMOUNT: x.Sum(function (y) { return y.DL_TYPE === "D" ? -parseFloat(y.DL_AMT_FC || 0) : parseFloat(y.DL_AMT_FC || 0); }).toFixed(2), BC_AMOUNT: x.Sum(function (y) { return y.DL_TYPE === "D" ? -parseFloat(y.DL_AMT_BC || 0) : parseFloat(y.DL_AMT_BC || 0); }).toFixed(2), TYPE: x.source[0]["DL_TYPE"] }; }).ToArray(); for (var x in polDiscLoadings) $scope.PremSummary_grid.addRowData(polDiscLoadings[x].ID, polDiscLoadings[x]); //policy fee summary var compFeedata = u.get_grid_data($scope.polfees_grid); var linq = Enumerable.From(compFeedata); var result = linq.GroupBy(function (x) { return x.POL_FEE_CODE; }) .Select(function (x) { return { CODE: x.Key(), DESCRIPTION: x.source[0]["POL_FEE_NAME"], FC_AMOUNT: x.Sum(function (y) { return parseFloat(parseFloat(y.POL_FEE_FC_AMOUNT || 0) / currRate); }).toFixed(2), BC_AMOUNT: x.Sum(function (y) { return parseFloat(y.POL_FEE_BC_AMOUNT || 0); }).toFixed(2), TYPE: "F" }; }).ToArray(); for (var i in result) $scope.PremSummary_grid.addRowData(result[i].ID, result[i]); var summaryData = u.get_grid_data($scope.PremSummary_grid), summaryDataLing = Enumerable.From(summaryData); var netCustomerFc = (summaryDataLing.Sum(function (x) { return parseFloat(x.FC_AMOUNT); })).toFixed(2), netCustomerBc = (summaryDataLing.Sum(function (x) { return parseFloat(x.BC_AMOUNT); })).toFixed(2); // var currency = $("#POLH_CURRENCY").val(); var premium = " " + currency + " " + netCustomerFc; $("#netCustomerBc").text(netCustomerBc); $("#netCustomerFc").text(premium); $("#netCustomerFc").parents("h3").show(0); $("#endPremSummary").hide(); $("#POLH_POL_PREM_FC").val(netCustomerFc); $("#POLH_POL_PREM_BC").val(netCustomerBc); $("#POLH_NET_PREM_FC").val( summaryDataLing.Where(function (x) { return x.TYPE == "P"; }).Sum(function (x) { return parseFloat(x.FC_AMOUNT); }) + summaryDataLing.Where(function (x) { return x.TYPE == "D"; }).Sum(function (x) { return parseFloat(x.FC_AMOUNT); }) + summaryDataLing.Where(function (x) { return x.TYPE == "L"; }).Sum(function (x) { return parseFloat(x.FC_AMOUNT); })); $("#POLH_NET_PREM_BC").val( summaryDataLing.Where(function (x) { return x.TYPE === "P"; }).Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); }) + summaryDataLing.Where(function (x) { return x.TYPE == "D"; }).Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); }) + summaryDataLing.Where(function (x) { return x.TYPE == "L"; }).Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); })); //x.BC_AMOUNT $("#POLH_POL_LOAD_FC").val(summaryDataLing.Where(function (x) { return x.TYPE == "L" }) .Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); })); $("#POLH_POL_LOAD_BC").val(summaryDataLing.Where(function (x) { return x.TYPE == "L" }) .Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0) })); $("#POLH_POL_DISC_FC").val(summaryDataLing.Where(function (x) { return x.TYPE == "D" }) .Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); })); $("#POLH_POL_DISC_BC").val(summaryDataLing.Where(function (x) { return x.TYPE == "D" }) .Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); })); $("#POLH_FEE_FC").val(summaryDataLing.Where(function (x) { return x.TYPE == "F" }) .Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); })); $("#POLH_FEE_BC").val(summaryDataLing.Where(function (x) { return x.TYPE == "F" }) .Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); })); $("#POLH_GROSS_PREM_BC").val(summaryData.Where((x) => x.TYPE == "P").FirstOrDefault().BC_AMOUNT); $("#POLH_GROSS_PREM_FC").val(summaryData.Where((x) => x.TYPE == "P").FirstOrDefault().FC_AMOUNT); $("#POLH_POL_SI_FC").val(totalSumInsuredFc); $("#POLH_POL_SI_BC").val(totalSumInsuredBc); var siData = { CODE: "SI", DESCRIPTION: "Sum Insured", FC_AMOUNT: totalSumInsuredFc, BC_AMOUNT: totalSumInsuredBc, TYPE: "" }; $scope.PremSummary_grid.addRowData(siData.ID, siData); switch ($("#POLH_INS_SOURCE").val()) { case "COL": { const coinsLeaderData = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")).FirstOrDefault(); $("POLH_COINS_SI_FC").val(parseFloat(coinsLeaderData.CIL_SHARE_SI_FC || 0)); $("POLH_COINS_SI_BC").val(parseFloat(coinsLeaderData.CIL_SHARE_SI_BC || 0)); $("#POLH_COINS_PREM_FC").val(parseFloat(coinsLeaderData.CIL_SHARE_PREM_FC || 0)); $("#POLH_COINS_PREM_BC").val(parseFloat(coinsLeaderData.CIL_SHARE_PREM_BC || 0)); $("#POLH_COINS_COM_FC").val(0); $("#POLH_COINS_COM_BC").val(0); } break; case "FIN": case "COM": { let coInsData = u.get_grid_data(u.getGlobal("udwFacInwGrid")).FirstOrDefault(); if (coInsData != null) { $("#POLH_COINS_SI_FC").val(parseFloat($("#POLH_POL_SI_FC").val() || 0)); $("#POLH_COINS_SI_BC").val(parseFloat($("#POLH_POL_SI_BC").val() || 0)); $("#POLH_COINS_PREM_FC").val(parseFloat($("#POLH_POL_PREM_FC").val() || 0) - parseFloat($("#POLH_FEE_FC").val() || 0)); $("#POLH_COINS_PREM_BC").val(parseFloat($("#POLH_POL_PREM_BC").val() || 0) - parseFloat($("#POLH_FEE_BC").val() || 0)); $("#POLH_COINS_COM_FC").val(parseFloat(coInsData.FINW_COMM_FC || 0)); $("#POLH_COINS_COM_BC").val(parseFloat(coInsData.FINW_COMM_BC || 0)); } } break; default: { $("#POLH_COINS_SI_FC").val(0); $("#POLH_COINS_SI_BC").val(0); $("#POLH_COINS_PREM_FC").val(0); $("#POLH_COINS_PREM_BC").val(0); $("#POLH_COINS_COM_FC").val(0); $("#POLH_COINS_COM_BC").val(0); } break; } u.setGlobal("policyChanges", true); }; $scope.PremiumCalculator = function () { //Declare variables var riskPrem = 0; var riskBasicPrem = $("#POLH_POL_PREM_FC").val(); var grossPremFc = 0; var grossPremBc = 0; u.get_grid_data($scope.pvtGrid).ForEach(risk => { grossPremFc += parseFloat(risk.PVT_RISK_PREM_FC); grossPremBc += parseFloat(risk.PVT_RISK_PREM_BC); }); var prems = [grossPremFc, grossPremBc, riskBasicPrem, riskPrem]; return prems; }; /*-------------------------- * RI DESCRIPTION PROPERTIES *--------------------------*/ $scope.riDisciption = function (v) { const product = u.parse_form("#polheaderForm") || {}; let data = { SubClass: product.PDT_NAME } let result = u.getGlobal("riDiscriptionConcat")(data); return result; } $scope.RICalculations = function () { if ($("#POLH_TXN_STATE").val() === "P") { u.clear_grid_data(u.getGlobal("udwRIGrid")); if (u.getGlobal("RIData")) { u.bigDataPopulate(u.getGlobal("udwRIGrid"), u.getGlobal("RIData")); } return; } var risks = u.get_grid_data($scope.pvtGrid); var riData = []; risks.ForEach(function (risk) { riData.Add({ RI_DESCRIPTION: $scope.riDisciption(risk), RI_SI_FC: parseFloat(risk.PVT_RI_SI_FC || 0), RI_SI_BC: parseFloat(risk.PVT_RI_SI_BC || 0), RI_PREM_BC: parseFloat(risk.PVT_RI_PREM_BC || 0), RI_PREM_FC: parseFloat(risk.PVT_RI_PREM_FC || 0), RISK_ID: parseInt(risk.PVT_SYS_ID), EML_PERC: parseFloat(risk.PVT_EML_PERC || 0), FROM_DATE: risk.PVT_START_DATE, TO_DATE: risk.PVT_END_DATE, TOT_SI_FC: parseFloat(risk.PVT_SI_FC || 0), TOT_SI_BC: parseFloat(risk.PVT_SI_BC || 0), TOT_PREM_BC: parseFloat(risk.PVT_TOT_PREM_BC || 0), TOT_PREM_FC: parseFloat(risk.PVT_TOT_PREM_FC || 0), UW_YEAR: risk.PVT_UW_YEAR || $("#POLH_POL_UW_YEAR").val(), RI_STATUS: risk.PVT_STATUS }); }); var ri = u.getGlobal("RiCalculations")(riData, $scope.treatyData) || []; u.clear_grid_data(u.getGlobal("udwRIGrid")); u.bigDataPopulate(u.getGlobal("udwRIGrid"), ri); u.getGlobal("showRICount")(); }; $scope.getPolicyFormData = function () { var polhData = u.parse_form("#polheaderForm"); polhData.INS_UDW_PVT_RISK = u.get_grid_data($scope.pvtGrid); polhData.INS_COINS_LEADER = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")); //polhData.INS_UDW_POLICY_DISCLOAD = u.get_grid_data($scope.polhdiscloading_grid); //var insUwdRiskCovers = u.get_grid_data($scope.cover_grid); polhData.INS_UDW_PVT_RISK.ForEach(liab => { liab.INS_UWD_RISK_COVERS = typeof liab.INS_UWD_RISK_COVERS === "string" ? u.parseJson(liab.INS_UWD_RISK_COVERS) : liab.INS_UWD_RISK_COVERS; liab.INS_UWD_RISK_COVERS.ForEach(cover => { cover.INS_UDW_COVER_DISCLOAD = typeof cover.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(cover.INS_UDW_COVER_DISCLOAD || "[]") : cover.INS_UDW_COVER_DISCLOAD || []; delete cover.MS_UDW_COVERS; }); }); //var insUwdRiskFees = u.get_grid_data($scope.riskFees_grid); //var insUwdRiskDiscountLoading = u.get_grid_data($scope.riskdiscloading_grid); //retrieve treaty information var treaties = u.get_grid_data($scope.reinsurance_grid); treaties = u.forEach(treaties, function (treaty) { treaty["INS_RI_TTY_ALLOCATION"] = u.parseJson(treaty["INS_RI_TTY_ALLOCATION"]); u.forEach(treaty["INS_RI_TTY_ALLOCATION"], function (allocation) { if (typeof allocation["INS_RI_TTY_SHARE"] == "string") { } // allocation["INS_RI_TTY_SHARE"] = u.parseJson(allocation["INS_RI_TTY_SHARE"] || "[]"); allocation["INS_RI_TTY_SHARE"] = allocation["INS_RI_TTY_SHARE"] || "[]"; return allocation; }); return treaty; }, this); polhData["INS_RI_TTY_HEAD"] = treaties; //for (var i in polhData.INS_UDW_LIABILITY) { // //loop through every risk and obtain the sys_id of the risk // var id = polhData.INS_UDW_LIABILITY[i]["LIA_SYS_ID"]; // // polhData.INS_UDW_LIABILITY[i]["INS_UWD_RISK_COVERS"] = []; // polhData.INS_UDW_LIABILITY[i]["INS_UDW_LIABILITY_FEES"] = []; // polhData.INS_UDW_LIABILITY[i]["INS_UDW_RISK_DISCLOAD"] = []; // for (var f in insUwdRiskFees) { // //find risk fees which have the same the same risk sys_id // if (insUwdRiskFees[f]["LIA_FEE_RK_SYS_ID"] === id) { // polhData.INS_UDW_LIABILITY[i]["INS_UDW_LIABILITY_FEES"].push(insUwdRiskFees[f]); // } // } // for (var d in insUwdRiskDiscountLoading) { // //find risk fees which have the same the same risk sys_id // if (insUwdRiskDiscountLoading[d]["DL_RISK_SYS_ID"] === id) { // polhData.INS_UDW_LIABILITY[i]["INS_UDW_RISK_DISCLOAD"].push(insUwdRiskDiscountLoading[d]); // } // } //} polhData.INS_RI_FAC_INWARD = u.get_grid_data($scope.grdfacInward); for (var i in polhData.INS_RI_FAC_INWARD) { polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"] = u.parseJson(polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"]); } //polhData.INS_UDW_LIABILITY_FEES = u.get_grid_data($scope.riskFees_grid); polhData.INS_UWD_INTERMEDIARY_COMM = u.get_grid_data($scope.intermCom_grid); polhData.INS_UDW_POL_FEES = u.get_grid_data($scope.polfees_grid); polhData.INS_RI_FAC_OUTWARD = u.get_grid_data($scope.grdCoinsLeader_grid); return polhData; }; $("#btn_Save").click(async function() { if (u.grid_empty($scope.pvtGrid)) { return u.growl_warning("Please add Risk Details"); } $scope.PolicyCalculations(); var polhData = $scope.getPolicyFormData(); polhData["MS_UDW_ENDORSEMENTS"] = u.get_grid_data($scope.endorsementGrid, true); //var endData = {}; //if (polhData["POLH_TXN_STATE"] === "E") { // const oldPolicy = await s.getPolicyHistoryAsync(polhData["POLH_SYS_ID"], // (parseFloat(polhData["POLH_END_NO"]) - 1), (polhData["POLH_RENEW_SER_NO"])); // //if policy is in the endorsement stage find differences in the financial of policy // if (polhData["POLH_TXN_STATE"] === "E") { // endData = $scope.financialDiff(polhData, oldPolicy); // for (var d in polhData["MS_UDW_ENDORSEMENTS"]) { // if (polhData["MS_UDW_ENDORSEMENTS"][d]["END_TXN_STATE"] === "O") { // polhData["MS_UDW_ENDORSEMENTS"][d] = endData; // } // } // } //} u.getGlobal("savePolicy")(polhData, function (result) { $scope.policyFill(result); }); }); $scope.policyFill = function (policy) { u.clear_grid_data($scope.pvtGrid); policy.INS_UDW_PVT_RISK.ForEach(pvt => { pvt.INS_UWD_RISK_COVERS.ForEach(cov => { if (cov.MS_UDW_COVERS) { cov.RCOV_NAME = cov.MS_UDW_COVERS.CVR_NAME; delete(cov.MS_UDW_COVERS); } cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); }); pvt.INS_UWD_RISK_COVERS = pvt.INS_UWD_RISK_COVERS; }); u.grid_populate($scope.pvtGrid, "", policy.INS_UDW_PVT_RISK); u.getGlobal("showRiskCount")(u.get_grid_data($scope.pvtGrid).Where(x => x.PVT_STATUS !== "D")); }; $scope.search_fill = u.getGlobalStatic("productSearchFill"); u.setGlobalStatic("productSearchFill", function (policyData) { $scope.reset(); u.getGlobal("searchFill")(policyData, function (policy) { // Filling risk u.clear_grid_data($scope.refPolGrid); u.clear_grid_data($scope.cover_grid); u.clear_grid_data($scope.riskFees_grid); policy.INS_UDW_PVT_RISK.ForEach(pvt => { pvt.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_NAME = cov.MS_UDW_COVERS.CVR_NAME; cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); }); delete cov.MS_UDW_COVERS; }); pvt.INS_UWD_RISK_COVERS = pvt.INS_UWD_RISK_COVERS; }); u.grid_populate($scope.pvtGrid, "", policy.INS_UDW_PVT_RISK); u.setGlobal("RIData", policy.INS_RI_TTY_HEAD); $scope.PolicyCalculations(); u.getGlobal("showRiskCount")(u.get_grid_data($scope.pvtGrid).Where(x => x.PVT_STATUS !== "D")); }); }); $("#RCOV_RATE").on("blur", rateFunction); $("#RCOV_SI_FC").on("blur", rateFunction); function rateFunction() { if ($("#RCOV_CODE").val() === "8005") { var covers = u.get_grid_data($scope.cover_grid); covers.ForEach(c => { if (c.RCOV_CODE === "8003") { if (parseFloat($("#RCOV_SI_FC").val()) > parseFloat(c.RCOV_SI_FC)) { $("#RCOV_SI_FC").val(""); return u.growl_info( "Limit for Any One Accident amount cannot be more than Limit for Policy Period"); } } }); } //alert("Input field lost focus."); var grossPremFC = ""; var grossPremBC = ""; var NetPremFC = ""; var NetPremBC = ""; var ExchangeRate = $("#LIA_CURRENCY_RATE").val(); if ($("#RCOV_SI_FC").val() == "" || $("#RCOV_SI_FC").val() == 0 || $("#RCOV_RATE").val() == "" || $("#RCOV_RATE").val() <= 0 || $("#RCOV_RATE").val() > 100) { u.growl_warning("Please Check the RATE or SUM INSURED values"); } else { grossPremFC = ($("#RCOV_SI_FC").val() * $("#RCOV_RATE").val() * 0.01).toFixed(2); //grossPremBC = parseFloat(grossPremFC / ExchangeRate).toFixed(2); NetPremFC = ($("#RCOV_SI_FC").val() * $("#RCOV_RATE").val() * 0.01).toFixed(2); //NetPremBC = parseFloat(NetPremFC / ExchangeRate).toFixed(2); const currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": //polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays; proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } $("#RCOV_GROSS_PREM_FC").val(parseFloat(grossPremFC * proRataPerc).toFixed(2)); $("#RCOV_GROSS_PREM_BC").val(parseFloat(grossPremFC * proRataPerc).toFixed(2) * currRate); $("#RCOV_NET_PREM_FC").val(parseFloat(NetPremFC * proRataPerc).toFixed(2)); $("#RCOV_NET_PREM_BC").val(parseFloat(NetPremFC * proRataPerc).toFixed(2) * currRate); $("#RCOV_ANNL_PREM_FC").val(NetPremFC); $("#RCOV_ANNL_PREM_BC").val(parseFloat(NetPremFC * currRate)); } } $("#btn_cv_discloading").on("click", function () { const grid = u.getGlobal("udwCoverGrid"); if (u.grid_empty(grid)) return u.growl_info("Grid is empty!"); const selId = u.getSelRow(grid); if (selId) { u.form_reset("#riskcoverdiscloadingForm"); u.clear_grid_data(u.getGlobal("RskCvDiscLoadingGrid")); const data = u.getRow(selId, u.getGlobal("udwCoverGrid")); data.INS_UDW_COVER_DISCLOAD = (typeof (data.INS_UDW_COVER_DISCLOAD) == "string" ? u.parseJson(data.INS_UDW_COVER_DISCLOAD || "[]") : data.INS_UDW_COVER_DISCLOAD) || []; data.INS_UDW_COVER_DISCLOAD.ForEach(x => { u.getGlobal("RskCvDiscLoadingGrid").addRowData(x.DL_SYS_ID, x); }); $("#riskCvDiscloadingModal").modal(); $("#RSK_CDL_PREM_FC").val(data.RCOV_GROSS_PREM_FC); $("#RSK_CDL_PREM_BC").val(data.RCOV_GROSS_PREM_BC); $("#RSK_CDL_RCOV_SYS_ID").val(data.RCOV_SYS_ID); } else { u.growl_info("Please select a cover"); } }); $("#btn_premium_recalculate").click(function () { $scope.RecalculatePremium(); }); $scope.RecalculatePremium = function () { $scope.loader(function () { u.clear_grid_data($scope.cover_grid); $scope.SumCoverRiskValues(); $scope.PolicyCalculations(); }); }; $scope.loader = function (func) { $("#policyCalculationsModal").modal(); setTimeout(async function () { func(); $("#policyCalculationsModal").modal("hide"); }, 500); }; $("#POLH_POL_DAYS").blur(function () { const days = parseInt($(this).val()); if (!u.grid_empty($scope.pvtGrid)) { u.setGridColumn($scope.pvtGrid, { "PVT_PERIOD_DAYS": days.toFixed(0), "PVT_START_DATE": $("#POLH_POL_START_DATE").val(), "PVT_DAYS_DATE": $("#POLH_POL_END_DATE").val() }); } }); $("#POLH_CURRENCY_RATE, #POLH_CURRENCY").on("change blur", function () { var rate = parseFloat($("#POLH_CURRENCY_RATE").val()); var currency = $("#POLH_CURRENCY").val(); if (!u.grid_empty($scope.pvtGrid)) { var risks = u.get_grid_data($scope.pvtGrid); risks.ForEach(risk => { risk.PVT_RI_PREM_BC = parseFloat(risk.PVT_RI_PREM_FC || 0) * rate; risk.PVT_RI_SI_BC = parseFloat(risk.PVT_RI_SI_FC || 0) * rate; risk.PVT_COMMISSION_BC = parseFloat(risk.PVT_COMMISSION_FC || 0) * rate; risk.PVT_COMP_FEE_BC = parseFloat(risk.PVT_COMP_FEE_FC || 0) * rate; risk.PVT_LOAD_BC = parseFloat(risk.PVT_LOAD_FC || 0) * rate; risk.PVT_DISC_BC = parseFloat(risk.PVT_DISC_FC || 0) * rate; risk.PVT_CURRENCY = currency; risk.PVT_CURRENCY_RATE = rate; risk.PVT_TOT_PREM_BC = parseFloat(risk.PVT_TOT_PREM_FC || 0) * rate; risk.PVT_SI_BC = parseFloat(risk.PVT_SI_FC || 0) * rate; risk.INS_UWD_RISK_COVERS = typeof (risk.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(risk.INS_UWD_RISK_COVERS) : risk.INS_UWD_RISK_COVERS; risk.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(cov.RCOV_LOAD_FC || 0) * rate; cov.RCOV_DISC_BC = parseFloat(cov.RCOV_DISC_FC || 0) * rate; cov.RCOV_NET_PREM_BC = parseFloat(cov.RCOV_NET_PREM_FC || 0) * rate; cov.RCOV_ANNL_PREM_BC = parseFloat(cov.RCOV_ANNL_PREM_FC || 0) * rate; cov.RCOV_GROSS_PREM_BC = parseFloat(cov.RCOV_GROSS_PREM_FC || 0) * rate; cov.RCOV_SI_BC = parseFloat(cov.RCOV_SI_FC || 0) * rate; cov.RCOV_RATE = rate; }); risk.INS_UWD_RISK_COVERS = risk.INS_UWD_RISK_COVERS; }); u.clear_grid_data($scope.pvtGrid); u.grid_populate($scope.pvtGrid, "", risks); $scope.PolicyCalculations(); } }); $("#btnAddNewCover,.btnAddNewCover").on("click", function () { if ($("#POLH_CLASS_CODE").val() == "") { u.growl_warning("Product Code is empty, Please check and try again"); } else { u.clear_grid_data($scope.riskCovers_grid); $("#AddNewCoverModal").modal(); } }); /*-------------------------------------------------- *get Risks Cover lists fucnction *------------------------------------------------*/ // function getRiskCoversLov() { /* obtain parameter for our request */ var riskCoverData = { // PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), }; // var grid = $scope.riskCovers_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getRiskCoversLOV(riskCoverData, function (result) { if (result && result.length && result.length > 0) { //clear Grid $scope.riskCovers_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { result[i]["COVER_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; result[i]["COVER_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; $scope.riskCovers_grid.addRowData(undefined, result[i]); } } }); } /*-------------------------------- *Query Cover Lov *------------------------------*/ // $("#btnQueryRiskCoverLov").on("click", function () { getRiskCoversLov(); }); function updateCovers() { var grid = $scope.cover_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var coverCode = parseInt(grid.jqGrid("getCell", rowId, "RCOV_SYS_ID")); if (coverCode == parseInt($("#RCOV_SYS_ID").val())) { // var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()).toFixed(2); if (currRate == "" || currRate == 0) { u.hide_confirm(); u.growl_warning("the Currency Rate cannot be zero (0) please check and try again"); } else { //Declare variables and get values var coverSifc = parseFloat($("#RCOV_SI_FC").val()).toFixed(2); var coverSibc = parseFloat(coverSifc * currRate).toFixed(2); var coverGrossPremFc = parseFloat($("#RCOV_GROSS_PREM_FC").val()).toFixed(2); var coverGrossPremBc = parseFloat(coverGrossPremFc * currRate).toFixed(2); var coverNetPremFc = parseFloat($("#RCOV_NET_PREM_FC").val()).toFixed(2); var coverNetPremBc = parseFloat(coverNetPremFc * currRate).toFixed(2); var coverDisFc = 0; coverDisFc = parseFloat($("#RCOV_DISC_FC").val()).toFixed(2); var coverDisBc = 0; coverDisBc = parseFloat(coverDisFc * currRate).toFixed(2); var coverLoadFc = parseFloat($("#RCOV_LOAD_FC").val()).toFixed(2); var coverLoadBc = parseFloat(coverLoadFc / currRate).toFixed(2); // var coverRate = parseFloat($("#RCOV_RATE").val()).toFixed(2); // grid.jqGrid("setCell", rowId, "RCOV_SI_FC", coverSifc); grid.jqGrid("setCell", rowId, "RCOV_SI_BC", coverSibc); grid.jqGrid("setCell", rowId, "RCOV_RATE", coverRate); grid.jqGrid("setCell", rowId, "RCOV_GROSS_PREM_FC", coverGrossPremFc); grid.jqGrid("setCell", rowId, "RCOV_GROSS_PREM_BC", coverGrossPremBc); grid.jqGrid("setCell", rowId, "RCOV_NET_PREM_FC", coverNetPremFc); grid.jqGrid("setCell", rowId, "RCOV_NET_PREM_BC", coverNetPremBc); grid.jqGrid("setCell", rowId, "RCOV_DISC_FC", coverDisFc); grid.jqGrid("setCell", rowId, "RCOV_DISC_BC", coverDisBc); grid.jqGrid("setCell", rowId, "RCOV_LOAD_FC", coverLoadFc); grid.jqGrid("setCell", rowId, "RCOV_LOAD_BC", coverLoadBc); grid.jqGrid("setCell", rowId, "RCOV_ANNL_PREM_FC", $("#RCOV_ANNL_PREM_FC").val()); grid.jqGrid("setCell", rowId, "RCOV_ANNL_PREM_BC", $("#RCOV_ANNL_PREM_BC").val()); //call //$scope.SumCarCoverValues(); u.form_reset("#coverForm"); u.hide_confirm(); u.growl_success("Risk Cover updated"); } } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } } /*-------------------------------------------------- * add Cover *------------------------------------------------*/ // $("#btn_add_cover").on("click", function () { if (u.form_validation("#coverForm")) { u.modalConfirmationAsync("Are you sure you want to add the Cover?", async function () { // var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); var grid = $scope.cover_grid; var rowIds = grid.jqGrid("getDataIDs"); //declare array to contain the codes to varify var codeArray = []; // iterate through the rows in the grid and add Covers to Array for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get value of the cell or column in an array var coverCode = grid.jqGrid("getCell", currRow, "RCOV_CODE"); var riskCov = coverCode; // alert(riskCov); codeArray.push(riskCov); } if ($.inArray($("#RCOV_CODE").val(), codeArray) < 0) { var formData = u.parse_form("#coverForm"); var risk = u.getRow(u.getSelRow($scope.pvtGrid), $scope.pvtGrid); formData["RCOV_RISK_SYS_ID"] = risk.PVT_SYS_ID; //formData["RCOV_RISK_NO"] = risk.PVT_RISK_ID; //fill in default covers if not in the grid formData.RCOV_CRTE_BY = u.getUserCode(); formData.RCOV_STATUS = "U"; formData.RCOV_SYS_ID = await s.getSequenceAsync("RISK_COVERS_SEQ"); formData.RCOV_SI_FC = formData.RCOV_SI_FC; formData.RCOV_SI_BC = (formData.RCOV_SI_FC * currRate).toFixed(2); //formData.RCOV_GROSS_PREM_FC = formData.RCOV_GROSS_PREM_FC; formData.RCOV_GROSS_PREM_BC = (formData.RCOV_GROSS_PREM_FC * currRate).toFixed(2); //formData.RCOV_NET_PREM_FC = formData.RCOV_NET_PREM_FC; formData.RCOV_NET_PREM_BC = (formData.RCOV_NET_PREM_FC * currRate).toFixed(2); // formData.RCOV_DISC_FC = formData.RCOV_DISC_FC; formData.RCOV_DISC_BC = (formData.RCOV_DISC_FC * currRate).toFixed(2); //formData.RCOV_LOAD_FC = formData.RCOV_LOAD_FC; formData.RCOV_LOAD_BC = (formData.RCOV_LOAD_FC * currRate).toFixed(2); formData.RCOV_BASE_PREM_YN = "N"; formData.RCOV_BASE_SI_YN = "N"; $scope.cover_grid.addRowData(undefined, formData); u.growl_success("Risk Cover successfully added"); u.form_reset("#coverForm"); u.hide_confirm(); } else { u.growl_warning(`Cover exists for this Risk, you cannot add same Cover ${$("#RCOV_CODE").val()}`); u.hide_confirm(); } }); } else { u.hide_confirm(); u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------- * Cover Edit/Update Function *------------------------------*/ // $("#btn_update_cover").on("click", function () { if (u.grid_empty($scope.cover_grid)) return u.growl_info("Cover grid is empty"); if (u.form_validation("#coverForm")) { u.modal_confirmation("Are you sure you want to update the selected Cover?", function () { updateCovers(); u.hide_confirm(); }); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from Cover Grid *---------------------------------------------------*/ // $("#btn_remove_cover").on("click", function () { if (u.grid_empty($scope.cover_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.cover_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "RCOV_STATUS"); var code = grid.jqGrid("getCell", rowId, "RCOV_NO"); var message = ""; /*--------------------------------- * Display modal message *------------------------------*/ // u.modal_confirmation("Are you sure you want to remove the Record?", function (e) { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ // if (recordStatus == "U") { grid.jqGrid("delRowData", rowId); u.hide_confirm(); u.growl_success("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus == "A") { grid.jqGrid("setCell", rowId, "RCOV_STATUS", "D"); $(`#${rowId}`, "#grdCover").css({ color: "red" }); u.hide_confirm(); u.growl_success( "Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $(`#${rowId}`, "#grdCover").css({ color: "black" }); grid.jqGrid("setCell", rowId, "RCOV_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } }); }); /* * EXCESS FUNCTIONS */ $("#PVT_EXCESS_TYPE").change(async function () { u.getGlobal("excessTypeChange")("PVT_EXCESS_TYPE", "PVT_EXCESS_AMT", "PVT_MIN_EXCESS", "PVT_MAX_EXCESS", "PVT_EXCESS_NARRATION"); }); $("#PVT_EXCESS_AMT").blur(function () { u.getGlobal("excessAmtBlur")("PVT_EXCESS_AMT", "PVT_EXCESS_NARRATION", "PVT_EXCESS_TYPE", "PVT_MIN_EXCESS", "PVT_MAX_EXCESS"); }); $("#PVT_MIN_EXCESS").blur(function () { if ($(this).val() === "" || $(this).val() === "0") return; u.getGlobal("excessMinMaxBlur")("PVT_MIN_EXCESS", "PVT_EXCESS_NARRATION", "Min"); }); $("#PVT_MAX_EXCESS").blur(function () { if ($(this).val() === "" || $(this).val() === "0") return; u.getGlobal("excessMinMaxBlur")("PVT_MAX_EXCESS", "PVT_EXCESS_NARRATION", "Max"); }); $("#btn_coins_ok").click(function () { $scope.RecalculatePremium(); }); $("#btn_facInward_Ok").click(function () { $scope.RecalculatePremium(); u.form_reset("#facInwardForm"); $("#MemberIwardModal").modal("hide"); }); /* * Endorsement functions */ $("#btnEndorse").on("click", function () { // Check for ProRated or Full Cancellation if (!u.grid_empty($scope.endorsementGrid)) { if (u.get_grid_data($scope.endorsementGrid).Any(e => e.END_FLAG === "FC" || e.END_FLAG === "PC")) { return u.growl_warning("You cannot endorse this policy"); } } //check if the policy has pending fac excess if (u.getGlobal("endPendingRiCheck")()) { return u.growl_warning("Cannot endorse policy, Reinsurance is pending."); } if (!u.form_validation("#endorsementForm")) return u.growl_info("Fields marked red are required"); if (!("PD").includes(u.fieldVal("#POLH_TXN_STATE"))) return u.growl_warning("Proposal is not approved, endorsements can only passed on approved policies!"); if (u.fieldVal("#POLH_TXN_STATE") === "E") return u.growl_warning( "The policy is already in the endorsed state, you cannot pass another endorsement on it!"); if (u.fieldVal("#POLH_SUSPND_YN") === "Y") return u.growl_warning("The policy is suspended, you cannot pass an endorsement on it!"); u.modalConfirmationAsync("Are you sure you want to pass a endorsement on the Policy?", async function () { /*--------------------------------------------------------------- * iterate through the rows and obtain all end transaction states *--------------------------------------------------------------*/ // $scope.isOpen = false; u.setGridColumn($scope.endorsementGrid, { "END_TXN_STATE": function (state) { if (state === "O") { $scope.isOpen = true; } } }); //before we add an endorsement to the grid we will need to check if there is an endorsement in the grid that is an open state /*------------------------------------------------------ * add if there is no other that is in the opened state *-----------------------------------------------------*/ // var formData = u.parse_form("#endorsementForm"); formData.END_NO = u.fieldVal("#POLH_END_NO") + 1; $scope.endorsementData = formData; u.setGlobal("endorsementData", $scope.endorsementData); var endNo = $scope.endorsementData["END_NO"]; //diasable key policy action buttons //obtain the pro rated premium and use for adjustment var newNumberOfDays = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]) + 1; //perform policy financials difference calculations var policy = $scope.getPolicyFormData(); var oldPolicy = $scope.oldPolicy = await u.getGlobal("fetchPolicyHistory")(policy["POLH_SYS_ID"], parseFloat(policy["POLH_END_NO"]), (parseFloat(policy["POLH_RENEW_SER_NO"]))); if (oldPolicy) { u.setGlobal("oldPolicy", oldPolicy); switch ($scope.endorsementData["END_FLAG"]) { case "FC": //FULL CANCELLATION $("#btn_update_cover").prop("disabled", false); $("#btn_add_cover").prop("disabled", false); $("#btn_risk_cover").prop("disabled", false); u.getGlobal("DisableFields")(false); $scope.fullCancellationSetup(); break; case "IC"://INTERNAL CANCELLATION $scope.internalCancellationSetup(); break; case "CC"://CUSTOMER CANCELLATION $scope.customerCancellationSetup(); break; //case "P": case "PC"://PRO RATED renewal $scope.internalProRatedCancellationSetup(newNumberOfDays); u.formReadWrite(); break; case "PS"://PARTIAL SUSPENSION $scope.partialSuspension(endNo); break; case "TS"://TOTAL SUSPENSION $scope.totalSuspension(endNo); break; case "EP": $scope.generalEndorsementSetup(newNumberOfDays); u.formReadWrite(); $("#POLH_POL_END_DATE").prop("disabled", false); break; case "PP": $scope.generalEndorsementSetup(newNumberOfDays); u.formReadWrite(); $("#POLH_POL_START_DATE").prop("disabled", false); $("#POLH_POL_END_DATE").prop("disabled", false); break; default: $scope.generalEndorsementSetup(newNumberOfDays); u.formReadWrite(); $("#btn_add_risk").prop("disabled", false); $("#btn_edit_risk").prop("disabled", false); $("#btn_update_cover").prop("disabled", false); $("#btn_add_cover").prop("disabled", false); $("#btn_reset_cover").prop("disabled", false); $("#POLH_POL_START_DATE").prop("disabled", false); $("#POLH_POL_END_DATE").prop("disabled", false); $("#btn_risk_cover").prop("disabled", false); $("#btn_remove_liab_risk").prop("disabled", false); $("#btn_remove_risk").prop("disabled", false); $("#btn_add_pvt").prop("disabled", false); $("#btn_update_pvt").prop("disabled", false); break; } $("#POLH_TXN_STATE").val("E"); $("#POLH_END_NO").val(endNo); $scope.PolicyCalculations(); var newPolicy = $scope.getPolicyFormData(); //before we add an endorsement to the grid we will need to check if there is an endorsement in the grid that is an open state /*------------------------------------------------------ * add if there is no other that is in the opened state *-----------------------------------------------------*/ // if (!$scope.isOpen) { var treaty = newPolicy.INS_RI_TTY_HEAD; formData = $scope.financialDiff(newPolicy, oldPolicy); formData.END_STATUS = "U"; formData.END_CRTE_BY = u.getUserCode(); formData.END_CRTE_DATE = u.get_date(); formData.END_TXN_STATE = "O"; formData.END_POL_SYS_ID = u.fieldVal("#POLH_SYS_ID"); newPolicy.INS_RI_TTY_HEAD = treaty; //Add to grid $scope.endorsementGrid.addRowData(undefined, formData); } else { u.hide_confirm(); return u.modalInfo( "The current policy in an open endorsement state. You cannot add another endorsement until the current endorsement is closed." + " To close the current endorsement, please save your endorsement changes and approve the policy."); } } else { return u.growl_info("Unable to endorse policy, policy history records could not be fetched."); } //save policy $scope.loader(async function () { var polhData = newPolicy; //Obtain policy endorsement grid data polhData["MS_UDW_ENDORSEMENTS"] = u.get_grid_data($scope.endorsementGrid, true); u.getGlobal("savePolicy")(polhData, async function () { const data = {}; //move policy to the endorsed state data.userCode = u.getUserCode(); data.processId = $("#POLH_UID").val(); data.command = $("#SelPolicyProcess").val(); const formData = u.parse_form("#endorsementForm"); data.userId = u.getUserId(); data.comment = $scope.endorsementData.END_REASON; //Todo: clarification needed data.flag = WorkflowConstants.Underwriting; data.startDate = formData.startDate; data.endDate = formData.dueDate; data.isSystem = true; data.identityId = u.getUserId(); u.form_text_Gold_color(); u.form_reset("#endorsementForm"); $("#PolicyEndorsementModal").modal("hide"); data.notify = $("#emailYn").is(":checked"); //const response = await u.executeCommand(data); //if (response.state) { // //u.modalSuccess(response.message); // u.form_text_Gold_color(); // u.form_reset("#endorsementForm"); // $("#PolicyEndorsementModal").modal("hide"); // u.setGridColumn($scope.endorsementGrid, { // "END_STATUS": "A" // }); //} else { // u.growl_error(response.message); //} polhData = {}; u.growl_success("Policy successfully endorsed."); }); }); }); }); $scope.internalCancellationSetup = function () { //$("#POLH_TXN_STATE").val("X"); var endNo = $scope.endorsementData["END_NO"]; $("#POLH_NET_PREM_BC").val(0); $("#POLH_NET_PREM_FC").val(0); $("#POLH_NET_SI_BC").val(0); $("#POLH_NET_SI_FC").val(0); $("#POLH_POL_DISC_BC").val(0); $("#POLH_POL_DISC_FC").val(0); //$("#POLH_POL_PREM_BC").val(u.fieldVal("#POLH_NET_PREM_BC") - proRatdPolPremBc); $("#POLH_POL_PREM_BC").val(0); //$("#POLH_POL_PREM_FC").val(u.fieldVal("#POLH_NET_PREM_FC") - proRatdPolPremFc); $("#POLH_POL_PREM_FC").val(0); /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ // Risks u.setGridColumn($scope.pvtGrid, { "PVT_POLH_END_NO": endNo.toFixed(0), "PVT_TOT_PREM_FC": 0, "PVT_TOT_PREM_FC": 0, "PVT_RI_PREM_FC": 0, "PVT_RI_PREM_BC": 0, "INS_UWD_RISK_COVERS": (val) => { var covers = typeof val === "string" ? u.parseJson(val || "[]") : val || []; for (let i in covers) { const c = covers[i]; c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_ANNL_BC = 0; c.RCOV_ANNL_FC = 0; } return JSON.stringify(covers); }, //"INS_UDW_LIABILITY_FEES": function (val) { // var fees = u.parseJson(val); // fees.ForEach(f => { // f.LIA_FEE_END_NO = endNo; // f.LIA_FEE_BC_AMOUNT = $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" // ? 0 // : f.LIA_FEE_BC_AMOUNT; // f.LIA_FEE_FC_AMOUNT = $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" // ? 0 // : f.LIA_FEE_FC_AMOUNT; // }); // return JSON.stringify(fees); //} }); //Commissions u.setGridColumn($scope.intermCom_grid, { "CMM_END_NO": endNo, "CMM_COM_AMT_FC": 0, "CMM_COM_AMT_BC": 0 }); //Prem Register u.setGridColumn($scope.premiumreg_grid, { "PR_END_NO": endNo }); //Risk Fees //u.setGridColumn($scope.riskFees_grid, // { "LIA_FEE_END_NO": endNo, "LIA_FEE_FC_AMOUNT": 0, "LIA_FEE_BC_AMOUNT": 0 }); //Pol fees summary u.setGridColumn($scope.polfees_grid, { "POL_FEE_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; }, "POL_FEE_BC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; } }); }; $scope.generalEndorsementSetup = function (numberOfDays) { var endNo = $scope.endorsementData["END_NO"]; //const proRate = numberOfDays / 365; //const proRatdNetPremFc = u.fieldVal("#POLH_NET_PREM_FC") * proRate; //const proRatdNetPremBc = u.fieldVal("#POLH_NET_PREM_BC") * proRate; //const proRatdPolPremFc = u.fieldVal("#POLH_POL_PREM_FC") * proRate; //const proRatdPolPremBc = u.fieldVal("#POLH_POL_PREM_BC") * proRate; //$("#POLH_NET_PREM_BC").val(u.fieldVal("#POLH_NET_PREM_BC") - proRatdNetPremBc); //$("#POLH_NET_PREM_FC").val(u.fieldVal("#POLH_NET_PREM_FC") - proRatdNetPremFc); //$("#POLH_POL_PREM_BC").val(u.fieldVal("#POLH_NET_PREM_BC") - proRatdPolPremBc); //$("#POLH_POL_PREM_FC").val(u.fieldVal("#POLH_NET_PREM_FC") - proRatdPolPremFc); //$("#POLH_POL_DISC_BC").val(0); //$("#POLH_POL_DISC_FC").val(0); /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ // Risks u.setGridColumn($scope.pvtGrid, { "PVT_POLH_END_NO": endNo.toFixed(2), "INS_UWD_RISK_COVERS": function (val) { var covers = typeof val === "string" ? u.parseJson(val) : val; covers.ForEach(c => { c.RPCOV_END_NO = endNo; }); return JSON.stringify(covers); }, //"INS_UDW_LIABILITY_FEES": function (val) { // var fees = u.parseJson(val); // fees.ForEach(f => { // f.LIA_FEE_END_NO = endNo; // }); // return JSON.stringify(fees); //} }); //Risk Covers //u.setGridColumn($scope.cover_grid, { "RPCOV_END_NO": endNo }); //Commissions u.setGridColumn(u.getGlobal("udwAgntCommGrid"), { "CMM_END_NO": endNo }); //policy documents u.setGridColumn(u.getGlobal("udwPolDocsGrid"), { "PF_PH_END_NO": endNo }); //Risk Fees //u.setGridColumn($scope.riskFees_grid, { "LIA_FEE_END_NO": endNo }); //Pol fees summary u.setGridColumn(u.getGlobal("udwPolFeesGrid"), { "POL_FEE_FEE_END_NO": endNo }); }; $scope.fullCancellationSetup = function () { //$("#POLH_TXN_STATE").val("X"); var endNo = parseInt($scope.endorsementData["END_NO"]); $("#POLH_NET_PREM_BC").val(0); $("#POLH_NET_PREM_FC").val(0); $("#POLH_POL_DISC_BC").val(0); $("#POLH_POL_DISC_FC").val(0); $("#POLH_POL_LOAD_BC").val(0); $("#POLH_POL_LOAD_FC").val(0); $("#POLH_POL_PREM_BC").val(0); $("#POLH_POL_PREM_FC").val(0); $("#POLH_POL_COMM_BC").val(0); $("#POLH_POL_COMM_FC").val(0); $("#POLH_COINS_PREM_BC").val(0); $("#POLH_COINS_PREM_FC").val(0); $("#POLH_COINS_COM_BC").val(0); $("#POLH_COINS_COM_FC").val(0); /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ //Vehicle Risks u.setGridColumn($scope.pvtGrid, { "PVT_POLH_END_NO": endNo.toFixed(0), "PVT_TOT_PREM_BC": 0, "PVT_TOT_PREM_FC": 0, "PVT_RI_PREM_FC": 0, "PVT_RI_PREM_BC": 0, "PVT_RISK_PREM_FC": 0, "PVT_RISK_PREM_BC": 0, "INS_UWD_RISK_COVERS": function (val) { const covers = typeof (val) === "string" ? u.parseJson(val) : val || []; covers.forEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_DISC_BC = 0; c.RCOV_DISC_FC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; }); return JSON.stringify(covers); }, //"INS_UDW_LIABILITY_FEES": function (val) { // var fees = u.parseJson(val); // fees.ForEach(f => { // f.LIA_FEE_END_NO = endNo; // f.LIA_FEE_BC_AMOUNT = 0; // f.LIA_FEE_FC_AMOUNT = 0; // }); // return JSON.stringify(fees); //} }); //RI summary u.setGridColumn($scope.reinsurance_grid, { //"VEH_POLH_END_NO": endNo, "TTH_TOTAL_PREM_BC": 0, "TTH_TOTAL_PREM_FC": 0, "INS_RI_TTY_ALLOCATION": function (val) { const allocations = u.parseJson(val || "[]"); allocations.ForEach(a => { a.TTA_TTY_PREM_BC = 0; a.TTA_TTY_PREM_FC = 0; a.TTA_TTY_COMM_BC = 0; a.TTA_TTY_COMM_FC = 0; var shares = u.parseJson(a.INS_RI_TTY_SHARE); shares.ForEach(share => { share.TTS_SHARE_PREM_BC = 0; share.TTS_SHARE_PREM_FC = 0; share.TTS_RI_COMM_BC = 0; share.TTS_RI_COMM_FC = 0; share.TTS_TAX_BC = 0; share.TTS_TAX_FC = 0; }); a.INS_RI_TTY_SHARE = shares.ToJson(); }); return allocations.ToJson(); } }); //Commissions u.setGridColumn(u.getGlobal("udwAgntCommGrid"), { "CMM_END_NO": endNo, "CMM_COM_AMT_FC": 0, "CMM_COM_AMT_BC": 0 }); //policy documents u.setGridColumn(u.getGlobal("udwPolDocsGrid"), { "PF_PH_END_NO": endNo }); //Pol fees summary u.setGridColumn(u.getGlobal("udwPolFeesGrid"), { "POL_FEE_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; }, "POL_FEE_BC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; } }); }; $scope.internalProRatedCancellationSetup = function (numberOfDays) { var endNo = parseInt($scope.endorsementData["END_NO"]); //SET THE END DATE AND START OF THE POLICY AND RISK COVERS TO THE SELECTED START DATE AND END DATE FOR THE ENDORSEMENT const endTermDate = $scope.endorsementData["END_TERM_DATE"]; const endEfctvData = $scope.endorsementData["END_EFCTV_DATE"]; //$("#POLH_TXN_STATE").val("X"); //perform prorating of the policy premiums //iterate through all risks and covers and update their start date and end date as well as their pro rating their premiums $scope.invalidEnd = false; /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ //Vehicle Risks $scope.invalidRiskDate = false; const premBasis = $("#POLH_PREM_BASIS").val(); u.setGridColumn($scope.pvtGrid, { "PVT_POLH_END_NO": () => endNo, "PVT_START_DATE": function (date, row) { //obtain the sys id of the current risk const returnDate = date; if (u.dateBefore(date, $scope.endorsementData["END_EFCTV_DATE"])) { $scope.invalidEnd = true; //u.growl_warning("The start date of vehicle risks cannot can come before the effective of endorsement"); return date; } return returnDate; }, "PVT_END_DATE": function (date, row) { //obtain the sys id of the current risk const returnDate = date; if (u.dateAfter(date, $scope.endorsementData["END_TERM_DATE"])) { //returnDate = $scope.endorsementData["END_TERM_DATE"]; $scope.invalidEnd = true; //u.growl_warning("The end date of vehicle risks cannot can come after the end date of endorsement"); return date; } return returnDate; }, "PVT_TOT_PREM_FC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "PVT_TOT_PREM_BC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "PVT_RISK_PREM_FC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "PVT_RISK_PREM_BC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "PVT_RI_PREM_BC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "PVT_RI_PREM_FC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "PVT_LOAD_FC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "PVT_LOAD_BC": function (val, row) { var numDays = parseInt(row["PVT_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "INS_UWD_RISK_COVERS": function (val, row) { const covers = typeof val === "string" ? u.parseJson(val || "[]") : val || []; var proRataValue = 0; var numDays = row["PVT_PERIOD_DAYS"]; switch (premBasis) { case "FP": break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); proRataValue = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); proRataValue = parseFloat(proRata / numDays); break; } for (let i in covers) { const c = covers[i]; c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_FC || 0) - (parseFloat(c.RCOV_GROSS_PREM_FC || 0) * proRataValue); c.RCOV_GROSS_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_BC || 0) - (parseFloat(c.RCOV_GROSS_PREM_BC || 0) * proRataValue); c.RCOV_ANNL_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_FC || 0) - (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataValue); c.RCOV_ANNL_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_BC || 0) - (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataValue); c.RCOV_NET_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_FC || 0) - (parseFloat(c.RCOV_NET_PREM_FC || 0) * proRataValue); c.RCOV_NET_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_BC || 0) - (parseFloat(c.RCOV_NET_PREM_BC || 0) * proRataValue); c.RCOV_LOAD_FC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_FC || 0) ? 0 : parseFloat(c.RCOV_LOAD_FC || 0) - (parseFloat(c.RCOV_LOAD_FC || 0) * proRataValue); c.RCOV_LOAD_BC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_BC || 0) ? 0 : parseFloat(c.RCOV_LOAD_BC || 0) - (parseFloat(c.RCOV_LOAD_BC || 0) * proRataValue); } return JSON.stringify(covers); }, //"INS_UDW_LIABILITY_FEES": function (val) { // var fees = u.parseJson(val); // fees.ForEach(f => { // f.LIA_FEE_END_NO = endNo; // f.LIA_FEE_BC_AMOUNT = $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" // ? 0 // : f.LIA_FEE_BC_AMOUNT; // f.LIA_FEE_FC_AMOUNT = $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" // ? 0 // : f.LIA_FEE_FC_AMOUNT; // }); // return JSON.stringify(fees); //} }); if ($scope.invalidEnd) { return false; } //policy documents u.setGridColumn(u.getGlobal("udwPolDocsGrid"), { "PF_PH_END_NO": endNo }); //Commissions u.setGridColumn(u.getGlobal("udwAgntCommGrid"), { "CMM_END_NO": endNo }); //Pol fees summary u.setGridColumn(u.getGlobal("udwPolFeesGrid"), { "POL_FEE_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; }, "POL_FEE_BC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; } }); }; $scope.totalSuspension = function (endNo) { $("#POLH_SUSPND_YN").val("Y"); var suspensionStartDate = $scope.endorsementData.END_EFCTV_DATE; var suspensionEndDate = $scope.endorsementData.END_TERM_DATE; $("#POLH_SUS_FROM_DATE").val(suspensionStartDate); $("#POLH_SUS_TO_DATE").val(suspensionEndDate); var days = u.totalDbDateDays(suspensionEndDate, suspensionStartDate); $("#POLH_SUSPND_PERIOD").val(days); //loop through all risks and update suspension information u.setGridColumn($scope.pvtGrid, { "PVT_POLH_END_NO": endNo, "PVT_SUS_TO_DATE": function (val) { return suspensionEndDate; }, "PVT_SUS_FROM_DATE": function (val) { return suspensionStartDate; }, "PVT_SUSPND_YN": function (val) { return "Y"; }, "PVT_SUSPND_PERIOD": function (val) { return days; }, "INS_UWD_RISK_COVERS": function (val) { const covers = typeof val === "string" ? u.parseJson(val || "[]") : val; for (let i in covers) { const c = covers[i]; c.RPCOV_END_NO = endNo; } return JSON.stringify(covers); } }); }; $scope.partialSuspension = function (endNo) { //loop through all risks and update suspension information u.setGridColumn($scope.motor_grid, { "PVT_POLH_END_NO": endNo, "INS_UWD_RISK_COVERS": function (val) { const covers = typeof val == "string" ? u.parseJson(val || "[]") : val; for (let i in covers) { const c = covers[i]; c.RPCOV_END_NO = endNo; } return JSON.stringify(covers); } }); }; $scope.financialDiff = function (newPolicy, oldPolicy) { $scope.endorsementData = u.get_grid_data($scope.endorsementGrid) .FirstOrDefault(e => e.END_TXN_STATE == "O" && e.END_STATUS === "A") || $scope.endorsementData; var ed = $scope.endorsementData, n = 0, o = 0; if (!ed) { return false; } //we need to obtain the history information of the current policy $scope.oldPolicy = u.getGlobal("oldPolicy") || $scope.oldPolicy || oldPolicy; ed = u.getGlobal("endorsementDifferencesCalculation")(newPolicy, $scope.oldPolicy, $scope.endorsementData); /*------------------------------- * CO-INSURANCE LEADER ENDORSEMENT *------------------------------*/ u.getGlobal("CoInsuranceLeaderEndorsment")(newPolicy, $scope.oldPolicy, ed); /*------------------------------- * TREATY SHARE ENDORSEMENT *------------------------------*/ newPolicy.INS_RI_TTY_HEAD = newPolicy.INS_RI_TTY_HEAD.Where(c => c.TTH_ADJ_YN !== "Y").ToList() || []; $scope.oldPolicy.INS_RI_TTY_HEAD = $scope.oldPolicy.INS_RI_TTY_HEAD.Where(c => c.TTH_ADJ_YN !== "Y").ToList() || []; u.getGlobal("TreatyShareEndorsement")(newPolicy, $scope.oldPolicy, ed); console.log(ed); //update endorsement grid u.setGridColumn($scope.endorsementGrid, { "END_PREM_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_PREM_DIFF_FC || 0; }, "END_PREM_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_PREM_DIFF_BC || 0; }, "END_COMMSSN_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COMMSSN_DIFF_FC || 0; }, "END_COMMSSN_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COMMSSN_DIFF_BC || 0; }, "END_FEE_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_FEE_DIFF_FC || 0; }, "END_FEE_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_FEE_DIFF_BC || 0; }, "END_DISC_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_DISC_DIFF_FC || 0; }, "END_DISC_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_DISC_DIFF_BC || 0; }, "END_LOAD_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_LOAD_DIFF_FC || 0; }, "END_LOAD_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_LOAD_DIFF_BC || 0; }, "END_SI_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_SI_DIFF_FC || 0; }, "END_SI_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_SI_DIFF_BC || 0; }, "END_COINS_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_DIFF_FC || 0; }, "END_COINS_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_DIFF_BC || 0; }, "END_COINS_COMM_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_COMM_DIFF_FC || 0; }, "END_COINS_COMM_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_COMM_DIFF_BC || 0; }, "MS_COL_ENDORSEMENT": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.MS_COL_ENDORSEMENT || []; }, "MS_RI_SHARE_ENDORSEMENT": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.MS_RI_SHARE_ENDORSEMENT || []; } }); //show endorsement premium $("#endPremSummary").show(); var endNetTCustomerFc = parseFloat(ed.END_PREM_DIFF_FC || 0) /*+ parseFloat(ed.END_FEE_FC || 0)).toFixed(2)*/; $("#endNetCustomerFc").text(`${$("#POLH_CURRENCY").val()} ${endNetTCustomerFc}`); //hide net to customer premium $("#netCustomerFc").parents("h3").hide(0); //obtain financiall differences for each risk var newPolicyRisks = newPolicy["INS_UDW_PVT_RISK"]; var oldPolicyRisks = $scope.oldPolicy["INS_UDW_PVT_RISK"]; ed["UDW_RISK_ENDSMNT_DTLS"] = []; //check if there are more new risks or more old risks var moreOldRisks = oldPolicyRisks.length > newPolicyRisks.length; var moreNewRisks = newPolicyRisks.length > oldPolicyRisks.length; //todo: use one loop for all if (moreNewRisks) { for (n; n < newPolicyRisks.length; n++) { for (o; o < oldPolicyRisks.length; o++) { if (newPolicyRisks[n]["PVT_SYS_ID"] == oldPolicyRisks[o]["PVT_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_VEH_SYS_ID: newPolicyRisks[n]["PVT_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_SI_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_SI_FC"] || 0), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_SI_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_SI_BC"] || 0), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_FC"] || 0), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_BC"] || 0), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_FC"] || 0), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_BC"] || 0), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_LOAD_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_LOAD_FC"] || 0), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_LOAD_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_LOAD_BC"] || 0), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_DISC_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_DISC_FC"] || 0), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_DISC_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_DISC_BC"] || 0), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); break; } if (o === (oldPolicyRisks.length - 1)) { //we have reached the last risk and there is no match ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_VEH_SYS_ID: newPolicyRisks[n]["PVT_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_SI_FC"] || 0), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_SI_BC"] || 0), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_FC"] || 0), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_BC"] || 0), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_FC"] || 0), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_BC"] || 0), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_LOAD_FC"] || 0), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_LOAD_BC"] || 0), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_DISC_FC"] || 0), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_DISC_BC"] || 0), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); } } } } else if (moreOldRisks) { for (o; o < newPolicyRisks.length; o++) { for (n; n < oldPolicyRisks.length; n++) { if (newPolicyRisks[n]["PVT_SYS_ID"] == oldPolicyRisks[o]["PVT_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_VEH_SYS_ID: newPolicyRisks[n]["PVT_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_SI_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_SI_FC"] || 0), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_SI_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_SI_BC"] || 0), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_FC"] || 0), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_BC"] || 0), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_FC"] || 0), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_BC"] || 0), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_LOAD_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_LOAD_FC"] || 0), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_LOAD_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_LOAD_BC"] || 0), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_DISC_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_DISC_FC"] || 0), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_DISC_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_DISC_BC"] || 0), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); break; } if (n === (newPolicyRisks.length - 1)) { //we have reached the last risk and there is no match ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_VEH_SYS_ID: oldPolicyRisks[o]["PVT_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(oldPolicyRisks[o]["PVT_SI_FC"] || 0), RED_SI_DIFF_BC: parseFloat(oldPolicyRisks[o]["PVT_SI_BC"] || 0), RED_PREM_DIFF_FC: parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_FC"] || 0), RED_PREM_DIFF_BC: parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_BC"] || 0), RED_FEE_DIFF_FC: parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_FC"] || 0), RED_FEE_DIFF_BC: parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_BC"] || 0), RED_LOAD_DIFF_FC: parseFloat(oldPolicyRisks[o]["PVT_LOAD_FC"] || 0), RED_LOAD_DIFF_BC: parseFloat(oldPolicyRisks[o]["PVT_LOAD_BC"] || 0), RED_DISC_DIFF_FC: parseFloat(oldPolicyRisks[o]["PVT_DISC_FC"] || 0), RED_DISC_DIFF_BC: parseFloat(oldPolicyRisks[o]["PVT_DISC_BC"] || 0), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); } } } } else { for (n; n < newPolicyRisks.length; n++) { for (o; o < oldPolicyRisks.length; o++) { if (newPolicyRisks[n]["PVT_SYS_ID"] == oldPolicyRisks[o]["PVT_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_VEH_SYS_ID: newPolicyRisks[n]["PVT_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_SI_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_SI_FC"] || 0), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_SI_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_SI_BC"] || 0), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_FC"] || 0), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_TOT_PREM_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_TOT_PREM_BC"] || 0), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_FC"] || 0), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_COMP_FEE_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_COMP_FEE_BC"] || 0), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_LOAD_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_LOAD_FC"] || 0), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_LOAD_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_LOAD_BC"] || 0), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["PVT_DISC_FC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_DISC_FC"] || 0), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["PVT_DISC_BC"] || 0) - parseFloat(oldPolicyRisks[o]["PVT_DISC_BC"] || 0), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); break; } } } } /* * CO-INSURANCE STUFF */ u.getGlobal("facInEndorsementUpdate")(); u.setGlobal("policyChanges", true); return ed; }; u.disableViaElement("#RCOV_USER_PREM_YN", "#RCOV_ANNL_PREM_FC"); u.disableViaElement("#RCOV_RATE_CHANGE", "#RCOV_RATE"); u.disableViaElement("#RCOV_SI_CHANGE", "#RCOV_SI_FC"); u.setGlobalStatic("ProductUnendorse", async function () { /*---------------------------------- * UNDO ENDORSMENT FOR PRODUCT RISK *--------------------------------*/ const CurrentProduct = u.parse_form("#polheaderForm") || {}; if (!("EX").includes(CurrentProduct.POLH_TXN_STATE)) return u.growl_warning("Endorsements can not undo!!!"); u.modalConfirmationAsync("Are you sure you want to undo endorsement on this policy?", async function () { $("#policyCalculationsModal").modal(); setTimeout(async function () { const data = { polSysId: CurrentProduct.POLH_SYS_ID, endNo: parseFloat(CurrentProduct.POLH_END_NO) - 1, rnwNo: CurrentProduct.POLH_RENEW_SER_NO }; let response = await s.policyUnendorseAsync(data); if (response.state) { let Unendorsed = response.data || {}; u.getGlobalStatic("productSearchFill")(Unendorsed); u.form_text_Green_color(); $scope.premiumSummarizer(); u.growl_success("Policy successfully unendorsed."); //let processRevert = await u.revertProcess(Unendorsed.POLH_UID); //if (processRevert.state) { // $("#netPremSummary h3").show(); // $("#netCustomerBc").text(Unendorsed.POLH_CURRENCY + " " + Unendorsed.POLH_POL_PREM_FC); // $("#netCustomerFc").text(Unendorsed.POLH_CURRENCY + " " + Unendorsed.POLH_POL_PREM_BC); // $("#endNetCustomerFc").text(" "); // $("#endNetCustomerBc").text(" "); // u.growl_success("Policy successfully unendorsed."); //} else { // u.growl_error(processRevert.message); //} } else { u.growl_error(response.message); } $("#policyCalculationsModal").modal("hide"); }); }); }); }); })(window.$, window.service, window.utility, {}); (function (s, u) { s.add({ save_areas: function (areas, success, error) { u.post(this.backend + "api/area/save", areas, success, error); }, get_areas: function (success, error) { u.get(this.backend + "api/area", success, error); }, search_area: function (query, success, error) { u.get(this.backend + "api/area/search/" + query, success, error); }, get_area_lov: function (success, error) { u.get(this.backend + "api/area/lov", success, error); }, check_area_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, check_area_lov_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, get_lov_regions: function (success, error) { u.get(this.backend + "api/regions/lov", success, error); }, check_region_code: function (code, success, error) { u.get(this.backend + "api/regions/check/" + code, success, error); }, getRegionAreas: function (regCode, success, error) { u.get(`${this.backend}api/area/areaLov/${regCode}`, success, error); }, get_disasterType_lov: function (success, error) { u.get(this.backend + "api/disastertypes/lov", success, error); }, get_disasterCategory_lov: function (code, success, error) { u.get(this.backend + "api/disastercategory/lov/" + code, success, error); } }); })(window.service, window.utility); (function (s, u) { s.add({ save_locations: function (locations, success, error) { u.post(this.backend + "api/location/save", locations, success, error); }, get_locations: function (success, error) { u.get(this.backend + "api/location", success, error); }, search_location: function (query, success, error) { u.get(this.backend + "api/location/search/" + query, success, error); }, get_lov_areas: function (success, error) { u.get(this.backend + "api/area/lov", success, error); }, check_location_code: function (code, success, error) { u.get(this.backend + "api/location/check/" + code, success, error); }, check_area_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, getAreaLocations: function (areaCode, success, error) { u.get(`${this.backend}api/location/locationLov/${areaCode}`, success, error); } }); })(window.service, window.utility); (function (s, u) { s.add({ save_short_period: function (classbusinesses, success, error) { u.post(this.backend + "api/shortperiod/save", classbusinesses, success, error); }, get_short_periods: function (success, error) { u.get(this.backend + "api/shortperiod", success, error); }, search_short_period: function (query, success, error) { u.get(this.backend + "api/shortperiod/search/" + query, success, error); }, check_short_period_code: function (code, success, error) { u.get(this.backend + "api/shortperiod/check/" + code, success, error); }, get_class_business: function (success, error) { u.get(this.backend + "api/classbusiness/lov", success, error); }, get_lov_product: function (success, error) { u.get(this.backend + "api/product/lov", success, error); }, get_short_period: function (data, success, error) { u.get(`${this.backend}api/shortperiod/${data.prdCode}/${data.days}`, success, error); }, getShortPeriodsAsync: async function (classCode) { return await u.getAsync(`${this.app}api/shortperiod/class/${classCode}`); } }); })(window.service, window.utility); (function (s, u) { s.add({ get_policys: function (success, error) { u.get(this.backend + "api/policyengineerCAR", success, error); }, risk_end_deletion: function (sysID, endNo, success, error) { u.get(this.backend + "api/policyengineerCAR/endDeletion/" + sysID + "/" + endNo, success, error); }, get_customer: function (code, success, error) { u.get(`${this.backend}api/customer/${code}`, success, error); }, get_lov_company: function (success, error) { u.get(this.backend + "api/company/lov", success, error); }, get_lov_channel: function (success, error) { u.get(this.backend + "api/channel/lov", success, error); }, get_lov_office: function (success, error) { u.get(this.backend + "api/office/lov", success, error); }, get_lov_product_type: function (success, error) { u.get(this.backend + "api/classbusiness/lov", success, error); }, get_lov_cover_type: function (success, error) { u.get(this.backend + "api/cover/lov", success, error); }, get_lov_ins_source: function (success, error) { u.get(this.backend + "api/insurancesource/lov", success, error); }, get_lov_broker_agent: function (success, error) { u.get(this.backend + "api/intermediary/lov", success, error); }, get_lov_business_source: function (success, error) { u.get(this.backend + "api/SourceBusiness/lov", success, error); }, get_lov_customer: function (success, error) { u.get(this.backend + "api/Customer/lov", success, error); }, get_lov_currency: function (success, error) { u.get(this.backend + "api/exchangerate/lov", success, error); }, get_lov_Intermediary_Comm: function (code, success, error) { u.post(this.backend + "api/IntermediaryCommission/lov/", code, success, error); }, get_lov_cedent: function (success, error) { u.get(this.backend + "api/customercategory/lov", success, error); }, get_lov_com: function (success, error) { u.get(this.backend + "api/company/lov", success, error); }, get_lov_member_com: function (success, error) { u.get(this.backend + "api/customercategory/lov", success, error); }, get_lov_regions: function (success, error) { u.get(this.backend + "api/regions/lov", success, error); }, get_lov_occupancy: function (success, error) { u.get(this.backend + "api/occupancy/lov", success, error); }, get_lov_eqzone: function (success, error) { u.get(this.backend + "api/fireeqzone/lov", success, error); }, check_company_code: function (code, success, error) { u.get(this.backend + "api/company/check/" + code, success, error); }, check_intermediary_code: function (code, success, error) { u.get(this.backend + "api/intermediary/check/" + code, success, error); }, check_office_code: function (code, success, error) { u.get(this.backend + "api/office/check/" + code, success, error); }, check_product_code: function (code, success, error) { u.get(this.backend + "api/classbusiness/check/" + code, success, error); }, check_channel_code: function (code, success, error) { u.get(this.backend + "api/channel/check/" + code, success, error); }, check_insurance_source_code: function (code, success, error) { u.get(this.backend + "api/insurancesource/check/" + code, success, error); }, check_subproduct_code: function (code, success, error) { u.get(this.backend + "api/product/check/" + code, success, error); }, check_business_source_code: function (code, success, error) { u.get(this.backend + "api/SourceBusiness/check/" + code, success, error); }, check_customer_code: function (code, success, error) { u.get(this.backend + "api/Customer/check/" + code, success, error); }, check_area_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, check_location_code: function (code, success, error) { u.get(this.backend + "api/location/check/" + code, success, error); }, check_occupancy_code: function (code, success, error) { u.get(this.backend + "api/occupancy/check/" + code, success, error); }, getAddRiskCovers: function (data, success, error) { u.post(this.backend + "api/RisksCovers/additionalCovers", data, success, error); }, getRiskDefaulCovers: function (data, success, error) { u.post(this.backend + "api/RisksCovers/defaultCovers", data, success, error); }, getRiskCoversLOV: function (data, success, error) { u.post(this.backend + "api/RisksCovers/RiskCoversLOV", data, success, error); }, getProdtRisk: function (data, success, error) { u.post(this.backend + "api/RisksCovers/productRisk", data, success, error); }, getArea: function (data, success, error) { u.post(this.backend + "api/area/areaLov", data, success, error); }, getLocation: function (data, success, error) { u.post(this.backend + "api/location/locationLov", data, success, error); }, get_customers: function (success, error) { u.get(this.backend + "api/customer", success, error); }, //search_customer: function (query, success, error) { // u.get(this.backend + "api/customer/search/" + query, success, error); //}, getRiskFees: function (data, success, error) { u.post(this.backend + "api/productriskfee/RiskFees", data, success, error); }, get_lov_risk: function (success, error) { u.get(this.backend + "api/firerisk/lov", success, error); }, get_lov_ricustomer: function (success, error) { u.get(this.backend + "api/customer/rilov", success, error); }, get_lov_fdzoneAsync: async function (data) { return await u.getAsync(`${this.backend}api/disastercategory/lov/Flood/${data.region}`, data); }, getDefaultAddOnProductCoversAsync: async function (data) { return await u.postAsync(this.backend + "api/addonproduct/defaultCovers", data); }, get_lov_PExcessAsync: async function (data) { return await u.getAsync(`${this.backend}api/product/excess/lov/${data.SubClass}`); }, get_PExcessAsync: async function (data) { return await u.getAsync(`${this.backend}api/product/excess/${data}`); }, getAddOnRiskCoversLOV: function (data, success, error) { u.post(this.backend + "api/addonproduct/riskCoversLOV", data, success, error); }, getLocationRisks: function (code, success, error) { u.get(this.backend + `api/locationrisk/locationRisksLov/${code}`, success, error); }, getProductRisks: function (code, success, error) { u.get(this.backend + `api/productrisk/productRisksLov/${code}`, success, error); } }); })(window.service, window.utility); (function (s, u) { s.add({ getPolicyRef: function (query, success, error) { u.get(this.backend + `api/pvt/policyref/${query}`, success, error); }, searchPolicyRef: function(data, success, error) { u.post(this.backend + "api/pvt/search", data, success, error); }, getPending: function(data, success, error) { u.post(this.backend + "api/pvt/pending", data, success, error); }, getCobLov: function (success, error) { u.get(this.backend + `api/classbusiness/lov`, success, error); } }); })(window.service, window.utility);