(function($, s, u, $scope) { $(function() { u.getGlobal("policyHeaderInit")(); u.getGlobal("tabsInit")(); // oilgas Risk Grid $scope.oilgas_grid = u.getGlobal("oilgasLocationgrid"); // Oil & Gas Interest Details Grid $scope.olintDetails_grid = u.getGlobal("oilgasInterestgrid"); // Cover Grid $scope.cover_grid = u.getGlobal("udwCoverGrid"); // Risk Covers **** $scope.riskCovers_grid = u.default_grid("#gridAddNewCover", "#gridAddNewCoverPager", "Risk Covers", ["Code", "Name", "Sum Insured", "Deft Rate", "Deft Premium", "Covers"], [ { name: "RCOV_CODE", index: "RCOV_CODE", width: 150 }, { name: "RCOV_NAME", index: "RCOV_NAME", width: 150 }, u.currencyColumn("RCOV_SI_FC"), { name: "RCOV_RATE", index: "RCOV_RATE", width: 150 }, u.currencyColumn("RCOV_GROSS_PREM_FC"), ], function (selId) { }, function (selId) { const grid = $scope.riskCovers_grid; let data = u.getRow(selId, grid) || {}; u.form_reset("#coverForm"); u.fill_form(data, "#coverForm"); $("#RCOV_SI_FC").trigger("blur"); $("#AddNewCoverModal").modal("hide"); }); $scope.riskFees_Lov_grid = u.default_grid("#gridAddNewFees", "#gridAddNewFeesPager", "Risk fees LOV", ["Code", "Name", "Amount"], [ { name: "PRF_FEE_CODE", index: "PRF_FEE_CODE", width: 150 }, { name: "FEE_NAME", index: "FEE_NAME", width: 200 }, { name: "PRF_FEE_AMOUNT", index: "PRF_FEE_AMOUNT", width: 150 }, ], function (selId) { }, function (selId) { const grid = $scope.riskFees_Lov_grid; let data = u.getRow(selId, grid) || {}; data = { OLS_FEE_CODE: data.PRF_FEE_CODE, OLS_FEE_NAME: data.FEE_NAME, OLS_FEE_FC_AMOUNT: data.PRF_FEE_AMOUNT, OLS_FEE_BC_AMOUNT: data.PRF_FEE_AMOUNT, OLS_FEE_RK_NO: data.PRF_SYS_ID, OLS_FEE_CURR_RATE: parseFloat($("#POLH_CURRENCY_RATE").val() || 0) }; u.form_reset("#riskfeesForm"); $scope.RiskFeesCalculate(data); u.fill_form(data, "#riskfeesForm"); $("#AddNewFeesModal").modal("hide"); }); // Premium Summary $scope.premium_grid = u.getGlobal("udwPremSumGrid"); // Premium Register Summary $scope.premiumreg_grid = u.getGlobal("udwPremRegGrid"); // Premium Fees Summary $scope.fees_grid = u.getGlobal("udwFeesGrid"); /*--------------------------- * FEES GRIDS *--------------------------*/ $scope.riskFees_grid = u.default_grid("#gridCompOilGasFees", "#gridCompOilGasFeesPager", "Applicable Fees Summary", [ "Code", "Fee Name", "FC Amount", "BC Amount", "Risk SYS ID", "Risk No", "Risk Code", "End No.", "Rnw No.", "Status", "Fee SYS ID", "Polh SYS ID" ], [ { name: "OLS_FEE_CODE", index: "OLS_FEE_CODE", width: 150 }, { name: "OLS_FEE_NAME", index: "OLS_FEE_NAME", width: 200 }, u.currencyColumn("OLS_FEE_FC_AMOUNT"), u.currencyColumn("OLS_FEE_BC_AMOUNT"), { name: "OLS_FEE_RK_SYS_ID", index: "OLS_FEE_RK_SYS_ID", width: 150 }, { name: "OLS_FEE_RK_NO", index: "OLS_FEE_RK_NO", width: 150, hidden: true }, { name: "OLS_FEE_RK_CODE", index: "OLS_FEE_RK_CODE", width: 150, hidden: true }, { name: "OLS_FEE_END_NO", index: "OLS_FEE_END_NO", width: 150 }, { name: "OLS_FEE_RNW_NO", index: "OLS_FEE_RNW_NO", width: 150 }, { name: "OLS_FEE_STATUS", index: "OLS_FEE_STATUS", width: 150 }, { name: "OLS_FEE_SYS_ID", index: "OLS_FEE_SYS_ID", width: 150 }, { name: "OLS_FEE_POL_SYS_ID", index: "OLS_FEE_POL_SYS_ID", width: 150, hidden: true }, ], function (selId) { const grid = $scope.riskFees_grid; let data = u.getRow(selId, grid) || {}; u.form_reset("#riskfeesForm"); u.fill_form(data, "#riskfeesForm"); }); // Applicable Policy Fees Summary $scope.polfees_grid = 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"); // Agent/Broker Commission $scope.intermCom_grid = u.getGlobal("udwAgntCommGrid"); // Product Risk Grid **** $scope.prodRisks_grid = u.getGlobal("udwSubClassGrid"); // Customer Dialog $scope.customer_grid = u.getGlobal("udwCustSearchGrid"); //Intermediary Commission $scope.interComm_grid = u.getGlobal("udwAgntCommGrid"); // Coinsurnace Member or FAC Inward Business Grid $scope.grdfacInward_grid = u.getGlobal("udwFacInwGrid");3; // Coinsurnace Member or FAC Invward Participants Grid $scope.grdInwdParticipant_grid = u.getGlobal("udwInwdPartGrid"); // Coinsurance Leader Business Grid $scope.grdCoinsLeader_grid = u.getGlobal("udwCoInsLdrGrid"); // Policy Discount/Loading $scope.polhdiscloading_grid = u.getGlobal("udwPolDiscLoadingGrid"); // Risk Discount/Loading // Risk Discount/Loading RiskDiscLoadModal btnRiskDiscLoad gridRiskDiscLoad riskdiscload_grid $scope.riskdiscload_grid = u.getGlobal("udwRskDiscLoadGrid"); //THIS IS THE CORRECT DEFFINITION FOR THE RISK DISCOUNT AND LOADING GRID $scope.riskdiscloading_grid = u.getGlobal("udwRskDiscLoadingGrid"); // Policy Documents Grid $scope.polFileGrid = u.getGlobal("udwPolDocsGrid"); // Area Grid **** $scope.area_grid = u.default_grid("#gridArea", "#gridAreaPager", "Area", ["Code", "Name"], [ { name: "ARE_CODE", index: "ARE_CODE", width: 150 }, { name: "ARE_NAME", index: "ARE_NAME", width: 350 }, ], //Retrive Grid data into form input fields on row click.. function(sel_id) { var grid = $scope.area_grid; var sel_id = grid.jqGrid("getGridParam", "selrow"); $("form input[name='ARE_CODE']").data("update", true); u.fill_form({ OLS_AREA_CODE: grid.jqGrid("getCell", sel_id, "ARE_CODE"), OLS_AREA_NAME: grid.jqGrid("getCell", sel_id, "ARE_NAME"), }, "#oilgasForm"); }, //Retrive Grid data into form input fields on row double click.... XXX function(sel_id) { var grid = $scope.area_grid; var sel_id = grid.jqGrid("getGridParam", "selrow"); $("form input[name='ARE_CODE']").data("update", true); u.fill_form({ OLS_AREA_CODE: grid.jqGrid("getCell", sel_id, "ARE_CODE"), OLS_AREA_NAME: grid.jqGrid("getCell", sel_id, "ARE_NAME"), }, "#oilgasForm"); // hide modal on double click $("#areaLovModal").modal("hide"); }), // Location Grid **** $scope.loc_grid = u.default_grid("#gridLoc", "#gridLocPager", "Location", ["Code", "Name"], [ { name: "LOC_CODE", index: "LOC_CODE", width: 150 }, { name: "LOC_NAME", index: "LOC_NAME", width: 350 }, ], //Retrive Grid data into form input fields on row click.. function(sel_id) { var grid = $scope.loc_grid; var sel_id = grid.jqGrid("getGridParam", "selrow"); $("form input[name='PLOC_LOC_CODE']").data("update", true); u.fill_form({ OLS_LOC_CODE: grid.jqGrid("getCell", sel_id, "LOC_CODE"), OLS_LOC_NAME: grid.jqGrid("getCell", sel_id, "LOC_NAME"), }, "#oilgasForm"); }, //Retrive Grid data into form input fields on row double click.... XXX function(sel_id) { var grid = $scope.loc_grid; var sel_id = grid.jqGrid("getGridParam", "selrow"); $("form input[name='PLOC_LOC_CODE']").data("update", true); u.fill_form({ OLS_LOC_CODE: grid.jqGrid("getCell", sel_id, "LOC_CODE"), OLS_LOC_NAME: grid.jqGrid("getCell", sel_id, "LOC_NAME"), }, "#oilgasForm"); // hide modal on double click $("#locationLovModal").modal("hide"); }), $scope.policy_risk_search_grid = u.default_grid("#gridPolicyRiskSearch", "#gridPolicyRiskSearchPager", "Policy Risk List", [ "Policy ID", "Region Name", "Area Name", "Location Name", "Location Description", "Location Address","Modified By", "Modified Date" ], [ { name: "OLS_POLH_SYS_ID", index: "OLS_POLH_SYS_ID", width: 150 }, { name: "OLS_REGION_NAME", index: "OLS_REGION_NAME", width: 150 }, { name: "OLS_AREA_NAME", index: "OLS_AREA_NAME", width: 150 }, { name: "OLS_LOC_NAME", index: "OLS_LOC_NAME", width: 150 }, { name: "OLS_LOC_DESC", index: "OLS_LOC_DESC", width: 150 }, { name: "OLS_LOC_ADDRS", index: "OLS_LOC_ADDRS", width: 150 }, { name: "OLS_MOD_BY", index: "OLS_MOD_BY", width: 150 }, u.dateTimeDate("OLS_MOD_DATE") ], function(id) { }), $scope.users_grid = u.default_grid("#grdUserRILimit", "#grdUserRILimitPager", "Users Underwriting Limit List", [ "ID", "User Code", "Product Code", "Udw SI Limit", "Udw Prem Limit", "Canc. SI Limit", "Canc. Prem Limit", "RI Allowed YN", "Adjusted RI","Modified By","Modified Date" ], [ { name: "URL_SYS_ID", index: "URL_SYS_ID", width: 100, hidden: true }, { name: "URL_USR_CODE", index: "URL_USR_CODE", width: 100 }, { name: "URL_PROD_CODE", index: "URL_PROD_CODE", width: 200 }, u.currencyColumn("URL_UDW_SI_LIM"), u.currencyColumn("URL_UDW_PREM_LIM"), // u.currencyColumn("URL_CANL_SI_LIM"), u.currencyColumn("URL_CANL_PREM_LIM"), { name: "URL_RI_ALL_YN", index: "URL_RI_ALL_YN", width: 150 }, { name: "URL_ADJ_RI_YN", index: "URL_ADJ_RI_YN", width: 150 }, { name: "URL_MOD_BY", index: "URL_MOD_BY", width: 150 }, u.dateTimeColumn("URL_MOD_DATE") ], //Retrive Grid data into form input fields on row click.. function(selId) { }), $scope.saving = false; /*------------------------------------------ * Tabs Layout function call using Jquery *----------------------------------------*/ // $("#tabs").tabs({ beforeLoad: function(event, ui) { ui.jqXHR.fail(function() { ui.panel.html( "Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo."); }); } }); /*---------------------- * 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 null; } switch ($scope.dialog_data.type) { case "btn_area": if ($("#OLS_REGION_CODE").val() === "") return u.growl_info("Please select a region"); $scope.lov.call_dialog("Select Area", "getArea", $scope.dialog_data, $("#OLS_REGION_CODE").val() ); break; case "btn_location": if ($("#OLS_AREA_CODE").val() === "") return u.growl_info("Select an area"); $scope.lov.call_dialog("Select Location", "getLocation", $scope.dialog_data, $("#OLS_AREA_CODE").val() ); break; case "btn_region": $scope.lov.call_dialog("Select Location", "get_lov_region", $scope.dialog_data); 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 "btn_facinw_cedent": $scope.lov.call_dialog("Select Cedent Company", "get_lov_cedent", $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_combination": $scope.lov.call_dialog("Select RI Combination", "getRiCombinationLov", $scope.dialog_data); break; case "btn_oilGas_risk": $scope.lov.call_dialog("Select Risk", "get_lov_risk", $scope.dialog_data, $("#POLH_SUB_CLASS_CODE").val()); break; } }); /*--------------------------- * Policy Risk List Search *-------------------------*/ $("#btnQueryPolicyRisk").click(function() { var queryTxt = $("#txtPolRiskSearch").val(); if (queryTxt != null && queryTxt.length > 0) { s.get_policy_risk(queryTxt, function(result) { /* * clear grid before populating */ $scope.policy_risk_search_grid.jqGrid("clearGridData"); for (var i in result) { $scope.policy_risk_search_grid.addRowData(result[i].OLS_POLH_SYS_ID, result[i]); } }, function(err) { }); } else { /*-------------------------------- * clear grid before populating *------------------------------*/ $scope.policy_risk_search_grid.jqGrid("clearGridData"); //fetch all s.get_policy_risk(function(polhs) { for (var i in polhs) { $scope.policy_risk_search_grid.addRowData(polhs[i].OLS_POLH_SYS_ID, polhs[i]); } }); } }); $("#btn_PolicyRisk_lov").on("click", function() { $("#policyRiskLovModal").modal(); }); $("form select[name='OLS_EXCESS_APP']").change(function() { if ($(this).val() === "Y") { $("#btn_excess").removeAttr("disabled"); } else { $("#OLS_EXCESS_PERC").val(""); $("#btn_excess").prop("disabled", "disabled"); } }); /*-------------------------------------------------- * add Area base on Region *------------------------------------------------*/ // $("#btn_Area").on("click", function() { if ($("#OLS_REGION_CODE").val() == "") { u.growl_warning("Region is not selected, Please check and try again"); } else { $scope.area_grid.jqGrid("clearGridData"); $("#areaLovModal").modal(); } }); function getAreaLov() { /* obtain parameter for our request */ var areaData = { PRD_CODE: $("#OLS_REGION_CODE").val(), }; // var grid = $scope.area_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getArea(areaData, function(result) { if (result && result.length && result.length > 0) { //clear Grid $scope.area_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { $scope.area_grid.addRowData(result[i]["ARE_CODE"], result[i]); } } }); } $("#btnQueryArea").on("click", function() { getAreaLov(); }); /*-------------------------------------------------- * add Location base on Area *------------------------------------------------*/ // $("#btn_Loc").on("click", function() { if ($("#OLS_AREA_CODE").val() == "") { u.growl_warning("Area is not selected, Please check and try again"); } else { $scope.loc_grid.jqGrid("clearGridData"); $("#locationLovModal").modal(); } }); function getLocationLov() { /* obtain parameter for our request */ var locationData = { PRD_CODE: $("#OLS_AREA_CODE").val() }; // var grid = $scope.loc_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getLocation(locationData, function(result) { if (result && result.length && result.length > 0) { //clear Grid $scope.loc_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { $scope.loc_grid.addRowData(result[i]["LOC_CODE"], result[i]); } } }); } $("#btnQueryLocation").on("click", function() { getLocationLov(); }); /*-------------------------------------------------- * add product base on class of business *------------------------------------------------*/ // function getProductRiskLov() { /* obtain parameter for our request */ var prodRiskData = { PRD_CODE: $("#POLH_CLASS_CODE").val(), }; // var grid = $scope.prodRisks_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getProdtRisk(prodRiskData, function(result) { if (result && result.length && result.length > 0) { //clear Grid $scope.prodRisks_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { $scope.prodRisks_grid.addRowData(result[i]["RISK_CODE"], result[i]); } } }); } /*-------------------------------------------------- * Get Risk compulsory Fees *------------------------------------------------*/ // function getRiskComPulsoryFess() { /* obtain parameter for our request */ var riskFeesData = { CLASS_CODE: $("#POLH_CLASS_CODE").val(), PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), }; // var grid = $scope.riskFees_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getRiskFees(riskFeesData, function(result) { if (result && result.length && result.length > 0) { //clear Grid //$scope.riskFees_grid.jqGrid('clearGridData'); //fill grid for (var i in result) { result[i]["OLS_FEE_FC_AMOUNT"] = result[i]["PRF_FEE_AMOUNT"]; result[i]["OLS_FEE_BC_AMOUNT"] = result[i]["PRF_FEE_AMOUNT"]; result[i]["OLS_FEE_CODE"] = result[i]["PRF_FEE_CODE"]; result[i]["OLS_FEE_NAME"] = result[i]["FEE_NAME"]; result[i]["OLS_FEE_RK_NO"] = result[i]["PRF_SYS_ID"]; result[i]["OLS_FEE_RK_CODE"] = $("#OLS_RISK_CODE").val(); result[i]["OLS_FEE_RK_SYS_ID"] = $("#OLS_SYS_ID").val(); result[i]["OLS_FEE_CRTE_BY"] = "Admin"; result[i]["OLS_FEE_CRTE_DATE"] = Date.now(); result[i]["OLS_FEE_STATUS"] = "U"; // // $scope.riskFees_grid.jqGrid('setCell', result[i], 'RISK_CODE', ); $scope.riskFees_grid.jqGrid("clearGridData"); $scope.riskFees_grid.addRowData(result[i]["OLS_FEE_CODE"], result[i]); } } var compFeedata = u.get_grid_data($scope.riskFees_grid); var linq = Enumerable.From(compFeedata); var result = linq.GroupBy(function(x) { return x.OLS_FEE_CODE; }) .Select(function(x) { console.log(x); return { POL_FEE_CODE: x.Key(), POL_FEE_NAME: x.source[0]["OLS_FEE_NAME"], POL_FEE_FC_AMOUNT: x.Sum(function(y) { return y.OLS_FEE_FC_AMOUNT | 0; }), POL_FEE_BC_AMOUNT: x.Sum(function(y) { return y.OLS_FEE_BC_AMOUNT | 0; }), POL_FEE_END_NO: 0 //$("#POL_END_NO").val() }; }).ToArray(); $scope.polfees_grid.jqGrid("clearGridData"); for (var i in result) $scope.polfees_grid.addRowData(result[i].OLS_FEE_CODE, result[i]); }); } $("#btn_GetCompFees").on("click", function() { //getRiskComPulsoryFess(); }); /*-------------------------------------------------- * add Cover *------------------------------------------------*/ // /*-------------------------------------------------- *get Risks Cover lists fucnction *------------------------------------------------*/ // /*-------------------------------- * Cover Edit/Update Function *------------------------------*/ // /*----------------------------------- * exporting of the grid to excel Condition & Clauses *----------------------------------*/ $("#export-cover-btn").click(function() { /* * function to export grid data into excel */ u.excel_export($scope.cover_grid, ["ID"], "Cover_List_Excel"); }); //refresh Cover, Risk and policy Values on closing the Risk Cover Modal //Calculate Policy Premium Summary to be displayed in a grid $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); var vatBc = 0; var vatFc = 0; //policy discount and loading summary var polDiscLoadData = u.get_grid_data($scope.riskdiscloading_grid); console.log(polDiscLoadData); 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 parseFloat(y.DL_AMT_FC || 0); }).toFixed(2), BC_AMOUNT: x.Sum(function(y) { return 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); $("#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_VAT_AMT_FC").val(vatFc); $("#POLH_VAT_AMT_BC").val(vatBc); var vatData = { CODE: "VAT", DESCRIPTION: "Value Added Tax", FC_AMOUNT: vatFc || 0, BC_AMOUNT: vatBc || 0, TYPE: "P" }; $scope.PremSummary_grid.addRowData(vatData.ID, vatData); }; $("#premSum").click($scope.premiumSummarizer); $scope.PremiumCalculator = function() { //Declare variables var riskPrem = 0; var feesPrem = 0; var riskBasicPrem = $("#POLH_NET_PREM_FC").val(); // var coverCode; var coverPremium = 0; var grossPremFc = 0; var grossPremBc = 0; var totalRiskPrem = 0; var totalriskBasicPrem = 0; var currRate = parseFloat($("#POLH_CURRENCY_RATE").val() || 0); //Risk Grid var RisksGrid = $scope.oilgas_grid; //Cover Grid var covgrid = $scope.cover_grid; var rowIds = covgrid.jqGrid("getDataIDs"); var riskRowIds = RisksGrid.jqGrid("getDataIDs"); var riskRow = u.getSelRow(RisksGrid); var riskId = RisksGrid.jqGrid("getCell", riskRow, "OLS_SYS_ID"); // iterate through the rows and check if it exists for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get the risk sys ID from the covers grid var getcovRiskId = covgrid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); //get Cover type of the cover var coverType = covgrid.jqGrid("getCell", currRow, "RCOV_TYPE"); if (getcovRiskId === riskId) { coverCode = covgrid.jqGrid("getCell", currRow, "RCOV_CODE"); coverPremium = parseFloat(covgrid.jqGrid("getCell", currRow, "RCOV_NET_PREM_FC")); } } //Discount Loading Calculation totalriskBasicPrem += riskBasicPrem; grossPremFc += riskBasicPrem; grossPremBc = (grossPremFc * currRate); var prems = [grossPremFc, grossPremBc, riskBasicPrem, riskPrem]; console.log(prems); return prems; }; // $scope.individualRiskPremiumCalculator = function() { //Declare variables var riskPrem = 0; var feesPrem = 0; var riskBasicPrem = 0; // var coverCode; var coverPremium = 0; var grossPremFc = 0; var grossPremBc = 0; var totalRiskPrem = 0; var totalriskBasicPrem = 0; var currRate = parseFloat($("#POLH_CURRENCY_RATE").val() || 0); //Risk Grid var RisksGrid = $scope.oilgas_grid; //Cover Grid var covgrid = $scope.cover_grid; var rowIds = covgrid.jqGrid("getDataIDs"); var riskRowIds = RisksGrid.jqGrid("getDataIDs"); var riskRow = u.getSelRow(RisksGrid); var riskId = RisksGrid.jqGrid("getCell", riskRow, "OLS_SYS_ID"); // iterate through the rows and check if it exists for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get the risk sys ID from the covers grid var getcovRiskId = covgrid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); //get Cover type of the cover var coverType = covgrid.jqGrid("getCell", currRow, "RCOV_TYPE"); if (getcovRiskId === riskId) { coverCode = covgrid.jqGrid("getCell", currRow, "RCOV_CODE"); coverPremium = parseFloat(covgrid.jqGrid("getCell", currRow, "RCOV_NET_PREM_FC") || 0); } } grossPremFc += coverPremium; grossPremBc = (grossPremFc * currRate); var prems = [grossPremFc, grossPremBc, riskBasicPrem, riskPrem]; console.log(prems); return prems; }; // Cover level SI and Premium Calculations: /*----------------------------------- * exporting of the grid to excel *----------------------------------*/ $("#export-oilgas-btn").click(function() { /* * function to export grid data into excel */ u.excel_export($scope.oilgas_grid, ["ID"], "oilgas_List_Excel"); }); //document.getElementById("OLS_RI_EML_BASIS").onchange = function () { // document.getElementById("OLS_EML").disabled = !this.checked; //}; $("#btn_Reset_Risk").on("click", function() { u.modal_confirmation("Are you sure you want to clear all data from the form?", function(e) { u.form_reset("#oilgasForm"); u.hideWarning(); u.growl_success("Form successfully cleared"); }); }); //document.getElementById("RCOV_RATE").addEventListener("focusout", rateFunction); //document.getElementById("RCOV_SI_FC").addEventListener("focusout", rateFunction); //document.getElementById("RCOV_SI_FC").addEventListener("focusout", premiumEntry); $scope.hideShowRiskDetails = function() { //get the selected Risk ID var riskgrid = $scope.oilgas_grid; var selId = riskgrid.jqGrid("getGridParam", "selrow"); var RiskId = riskgrid.jqGrid("getCell", selId, "OLS_SYS_ID"); //get the Risk Details data var dtlsgrid = $scope.olintDetails_grid; var rowIds = dtlsgrid.jqGrid("getDataIDs"); // iterate through the risk details rows to hide or show details for (var i = 0, len = rowIds.length; i < len; i++) { //get value of the cell or column in an array var currRow = rowIds[i]; var getRiskDtlsId = dtlsgrid.jqGrid("getCell", currRow, "OLINT_OLS_SYS_ID"); if (getRiskDtlsId != RiskId) { //hide if covers are not for the selected risk $("#" + currRow).hide(); } else if (getRiskDtlsId == RiskId) { //Show if covers are for the selected risk $("#" + currRow).show(); } } }; function premiumEntry() { var grid = $scope.cover_grid; var sel_Id = grid.jqGrid("getGridParam", "selrow"); var userpremium = grid.jqGrid("getCell", sel_Id, "CVR_USER_PREMIUM"); if (userpremium == "Y") { document.getElementById("RCOV_GROSS_PREM_FC").disabled = false; //$('#RCOV_GROSS_PREM_FC').prop('disabled', false); } else { document.getElementById("RCOV_GROSS_PREM_FC").disabled = true; }; } function rateFunction() { //alert("Input field lost focus."); var grossPremFC = ""; var grossPremBC = ""; var NetPremFC = ""; var NetPremBC = ""; var ExchangeRate = $("#OLS_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); $("#RCOV_GROSS_PREM_FC").val(grossPremFC); $("#RCOV_GROSS_PREM_BC").val(grossPremFC); $("#RCOV_NET_PREM_FC").val(NetPremFC); $("#RCOV_NET_PREM_BC").val(NetPremFC); } } function updateCovers() { var grid = $scope.cover_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var coverCode = grid.jqGrid("getCell", rowId, "RCOV_SYS_ID"); if (coverCode == $("#RCOV_SYS_ID").val()) { // CURR_RATE = parseFloat($("#OLS_CURRENCY_RATE").val()).toFixed(2); if (CURR_RATE == "" || CURR_RATE == 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 / CURR_RATE).toFixed(2); var coverGrossPremFc = parseFloat($("#RCOV_GROSS_PREM_FC").val()).toFixed(2); var coverGrossPremBc = parseFloat(coverGrossPremFc / CURR_RATE).toFixed(2); var coverNetPremFc = parseFloat($("#RCOV_NET_PREM_FC").val()).toFixed(2); var coverNetPremBc = parseFloat(coverNetPremFc / CURR_RATE).toFixed(2); var coverDisFc = 0; coverDisFc = parseFloat($("#RCOV_DISC_FC").val()).toFixed(2); var coverDisBc = 0; coverDisBc = parseFloat(coverDisFc / CURR_RATE).toFixed(2); var coverLoadFc = parseFloat($("#RCOV_LOAD_FC").val()).toFixed(2); var coverLoadBc = parseFloat(coverLoadFc / CURR_RATE).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.SumCoverRiskValues(); u.hide_confirm(); u.growl_success("Risk Cover updated"); } } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } } 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"]; $scope.riskCovers_grid.addRowData(result[i]["RCOV_CODE"], result[i]); } } }); } $scope.generalEndorsementSetup_old = function (numberOfDays) { var endNo = $scope.endorsementData["END_NO"]; /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ // Risks u.setGridColumn($scope.oilgas_grid, { "OLS_POLH_END_NO": endNo }); //Risk Covers u.setGridColumn($scope.cover_grid, { "RPCOV_END_NO": endNo }); //Commissions u.setGridColumn($scope.intermCom_grid, { "CMM_END_NO": endNo }); //Prem Register u.setGridColumn($scope.premiumreg_grid, { "PR_END_NO": endNo }); //policy documents u.setGridColumn($scope.polFileGrid, { "PF_PH_END_NO": endNo }); //Risk Fees u.setGridColumn($scope.riskFees_grid, { "OLS_FEE_END_NO": endNo }); //Pol fees summary u.setGridColumn($scope.polfees_grid, { "POL_FEE_END_NO": endNo }); }; $scope.internalCancellationSetup_old = function () { 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(0); $("#POLH_POL_PREM_FC").val(0); /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ // Risks u.setGridColumn($scope.oilgas_grid, { "OLS_POLH_END_NO": endNo, "OLS_TOT_PREM_BC": 0, "OLS_TOT_PREM_FC": 0, "OLS_NCD_AMNT_BC": 0, "OLS_NCD_AMNT_FC": 0 }); //Risk Covers u.setGridColumn($scope.cover_grid, { "RPCOV_END_NO": endNo, "RCOV_GROSS_PREM_FC": 0, "RCOV_GROSS_PREM_BC": 0, "RCOV_LOAD_FC": 0, "RCOV_LOAD_BC": 0, "RCOV_NET_PREM_FC": 0, "RCOV_NET_PREM_BC": 0 }); //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, { "OLS_FEE_END_NO": endNo, "OLS_FEE_FC_AMOUNT": 0, "OLS_FEE_BC_AMOUNT": 0 }); //Pol fees summary u.setGridColumn($scope.polfees_grid, { "POL_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": 0, "POL_FEE_BC_AMOUNT": 0 }); }; $("#btn_open_oilgas_risk").click(function () { if (u.form_validation("#polheaderForm")) { $("#oilgasModal").modal(); $("#OLS_CURRENCY").val($("#POLH_CURRENCY").val()); $("#OLS_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); $("#OLS_VALUE_ADDED_TAX_PERC").val($("#POLH_VAT_PERC").val()); $("#OLS_VALUE_ADDED_TAX_YN").val($("#POLH_VAT_YN").val()); //obtain the treaty setup for the selected product s.getProductTreaty($("#POLH_SUB_CLASS_CODE").val(), $("#POLH_POL_UW_YEAR").val(), $("#POLH_CURRENCY").val(), function (response) { if (response.state && response.data) { $scope.treatyData = response.data; u.growl_success("Treaty successfully fetched for the selected product"); } else { u.growl_error("Treaty not setup for the selected underwriting year"); } }); } else { u.growl_warning("Please fill the Policy Header form and try again"); }; }); $("#premSum_old").click($scope.premiumSummarizer); $("#btn_oilgas_OnClose").click(function () { if (u.grid_empty($scope.oilgas_grid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { $("#oilgasModal").modal("hide"); u.hide_confirm(); }); } else { $("#oilgasModal").modal("hide"); } }); $("#btn_add_oilgas_details").on("click", async function () { if (u.form_validation("#oilgasForm")) { u.modalConfirmationAsync("Are you sure you want to add the Oil & Gas details Details?", async function () { var seq = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); if (!u.get_grid_data($scope.oilgas_grid).Any(v => v.OLS_SYS_ID === seq)) { $("#OLS_SYS_ID").val(seq); var rowIds = $scope.oilgas_grid.jqGrid("getDataIDs"); /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ var Code = []; /*------------------------------------------------------------ * iterate through the rows and check duplicate each of them *----------------------------------------------------------*/ 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 cellValue = $scope.oilgas_grid.jqGrid("getCell", currRow, "OLS_SYS_ID"); Code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ if ($.inArray($("#OLS_SYS_ID").val(), Code) < 0) { var FormData = u.parse_form("#oilgasForm"); FormData.OLS_POLH_END_NO = $("#POLH_END_NO").val(); FormData.OLS_STATUS = "U"; FormData.OLS_CRTE_BY = u.getUserCode(); FormData.OLS_RIPML = ($("#OLS_RIPML").is(":checked")) ? "Y" : "N"; //FormData.OLS_RI_EML_BASIS = ($("#OLS_RI_EML_BASIS").is(":checked")) ? "Y" : "N"; FormData.OLS_CRTE_DATE = u.get_date(); //$scope.oilgas_grid.addRowData(FormData.ID, FormData); $scope.oilgas_grid.addRowData(FormData.ID, FormData); //Add defaulf covers afer adding the Risk getDefaultRiskCovers(); getRiskComPulsoryFess(); u.hide_confirm(); u.growl_success("Oil & Gas details successfully added to grid"); u.form_reset("#oilgasForm"); $("#oilgasModal").modal("hide"); } else { u.hide_confirm(); u.growl_warning("Oil & Gas with code " + cellValue + " Already exists"); } } else { u.growl_warning("Duplicate risk id"); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_oilgas_risk").on("click", function () { if (u.grid_empty($scope.oilgas_grid)) return u.growl_info("Oil & Gas details grid is empty"); if (u.form_validation("#oilgasForm")) { u.modal_confirmation("Are you sure you want to update the selected Oil & Gas details?", function () { var grid = $scope.oilgas_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = grid.jqGrid("getCell", rowId, "OLS_SYS_ID"); if (code === $("#OLS_SYS_ID").val()) { var data = u.parse_form("#oilgasForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } $scope.premiumSummarizer(); u.hide_confirm(); u.growl_success("Oil & Gas details updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $("#btn_remove_oilgas_risk").on("click", function () { if (u.grid_empty($scope.oilgas_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.oilgas_grid; var row_id = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", row_id, "OLS_STATUS"); var RiskNo = grid.jqGrid("getCell", row_id, "OLS_SYS_ID"); var covGrid = $scope.cover_grid; var covRowIds = covGrid.jqGrid("getDataIDs"); 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") { for (var i = 0, len = covRowIds.length; i < len; i++) { var covCurrRow = covRowIds[i]; //get value of the cell or column in an array var getCovRiskID = covGrid.jqGrid("getCell", covCurrRow, "RCOV_RISK_NO"); if (getCovRiskID == RiskNo) { covGrid.jqGrid("delRowData", covCurrRow); } } grid.jqGrid("delRowData", row_id); u.hide_confirm(); //u.growl_hide("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ if (recordStatus == "A") { for (var i = 0, len = covRowIds.length; i < len; i++) { var covCurrRow = covRowIds[i]; //get value of the cell or column in an array var getCovRiskID = covGrid.jqGrid("getCell", covCurrRow, "RCOV_RISK_NO"); if (getCovRiskID == RiskNo) { covGrid.jqGrid("setCell", covCurrRow, "RCOV_STATUS", "D"); $("#" + covCurrRow, "#gridAppCovers").css({ color: "red" }); } } grid.jqGrid("setCell", row_id, "OLS_STATUS", "D"); $("#" + row_id, "#gridoilgasRisks").css({ color: "red" }); u.hide_confirm(); u.growl_hide("Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { for (var i = 0, len = covRowIds.length; i < len; i++) { var covCurrRow = covRowIds[i]; //get value of the cell or column in an array var getCovRiskID = covGrid.jqGrid("getCell", covCurrRow, "RCOV_RISK_NO"); if (getCovRiskID == RiskNo) { covGrid.jqGrid("setCell", covCurrRow, "RCOV_STATUS", "A"); $("#" + covCurrRow, "#gridAppCovers").css({ color: "black" }); } } $("#" + row_id, "#gridoilgasRisks").css({ color: "black" }); grid.jqGrid("setCell", row_id, "OLS_STATUS", "A"); u.hide_confirm(); u.growl_hide("Data successfully restored"); } }); }); $("#btn_open_olint_details").click(function () { if (u.grid_empty($scope.oilgas_grid)) return u.growl_info("The grid is empty"); var grid = $scope.oilgas_grid; var selId = grid.jqGrid("getGridParam", "selrow"); var RiskId = grid.jqGrid("getCell", selId, "OLS_SYS_ID"); if (!RiskId) return u.growl_warning("No risk has been selected, please select a risk to continue"); if (RiskId == $("#OLS_SYS_ID").val()) { $("#OLINTDetailsModal").modal(); $scope.hideShowRiskDetails(); } else { u.growl_warning("No Risk selected, Please check and try again"); }; }); $("#btn_add_olint_details").on("click", function () { if (u.form_validation("#olintDetailsForm")) { if ($("input[name='OLINT_ITEM_NAME']").val() === "") return u.modalAlert("Please Enter Item Name"); u.modal_confirmation("Are you sure you want to add the Interest Details?", function () { var rowIds = $scope.olintDetails_grid.jqGrid("getDataIDs"); /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ var Code = []; /*------------------------------------------------------------ * iterate through the rows and check duplicate each of them *----------------------------------------------------------*/ 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 cellValue = $scope.olintDetails_grid.jqGrid("getCell", currRow, "OLINT_ITEM_NAME"); Code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ if ($.inArray($("#OLINT_ITEM_NAME").val(), Code) < 0) { var FormData = u.parse_form("#olintDetailsForm"); FormData.OLINT_STATUS = "U"; FormData.OLINT_CRTE_BY = u.getUserCode(); FormData.OLINT_CRTE_DATE = u.get_date(); $scope.olintDetails_grid.addRowData(FormData.OLINT_ITEM_NAME, FormData); u.hide_confirm(); u.growl_success("Interest Details successfully added to grid"); } else { u.hide_confirm(); u.growl_warning("Interest Details with code " + cellValue + " Already exists"); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_olint_details").on("click", function () { if (u.grid_empty($scope.olintDetails_grid)) return u.growl_info("Interest details grid is empty"); if (u.form_validation("#olintDetailsForm")) { u.modal_confirmation("Are you sure you want to update the selected?", function () { var grid = $scope.olintDetails_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = grid.jqGrid("getCell", rowId, "OLINT_SYS_ID"); if (code === $("#OLINT_SYS_ID").val()) { var data = u.parse_form("#olintDetailsForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Interest Details updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $("#btn_olintDetails_OnClose").click(function () { if (u.grid_empty($scope.olintDetails_grid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { $("#OLINTDetailsModal").modal("hide"); u.hide_confirm(); }); } else { $("#OLINTDetailsModal").modal("hide"); } }); $("#btn_remove_olint_details").on("click", function () { if (u.grid_empty($scope.olintDetails_grid)) return u.growl_info("The grid is empty"); var grid = $scope.olintDetails_grid; var row_id = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", row_id, "OLINT_STATUS"); var Code = grid.jqGrid("getCell", row_id, "OLINT_SYS_ID"); 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", row_id); u.hide_confirm(); u.growl_hide("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus == "A") { grid.jqGrid("setCell", row_id, "OLINT_STATUS", "D"); $("#" + row_id, "#gridOLINTDetails").css({ color: "red" }); u.hide_confirm(); u.growl_hide( "Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $("#" + row_id, "#gridOLINTDetails").css({ color: "black" }); grid.jqGrid("setCell", row_id, "OLINT_STATUS", "A"); u.hide_confirm(); u.growl_hide("Data successfully restored"); } }); }); $("#btn_add_cover_old").on("click", function () { if (u.form_validation("#coverForm")) { if ($("input[name='RCOV_CODE']").val() === "") { u.modalAlert("Please Select Risk Cover"); } u.modal_confirmation("Are you sure you want to add the Cover?", function () { /* obtain parameter for our request */ var productRiskData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), //PRD_CV_DFT: 'Y', CUR_RATE: $("#POLH_CURRENCY_RATE").val(), RCOV_CODE: $("#RCOV_CODE").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 RiskCode = grid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); var riskCov = coverCode + RiskCode; // alert(riskCov); CodeArray.push(riskCov); } //send parameters and get Default covers from the database s.getAddRiskCovers(productRiskData, function (result) { if (result && result.length && result.length > 0) { for (var i in result) { //alert(JSON.stringify(result)); result[i]["RCOV_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; result[i]["RCOV_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; result[i]["RCOV_RI_YN"] = result[i]["MS_UDW_COVERS"]["CVR_RI_OLSLICABLE"]; result[i]["CVR_USER_PREMIUM"] = result[i]["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; result[i]["RCOV_PREM_REFUND"] = result[i]["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; result[i]["RCOV_RATE_CHANGE"] = result[i]["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; result[i]["RCOV_SI_CHANGE"] = result[i]["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; result[i]["RCOV_COVER_LEVEL"] = result[i]["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; result[i]["RCOV_RISK_SYS_ID"] = $("#OLS_SYS_ID").val(); result[i]["RCOV_RISK_NO"] = $("#OLS_RISK_ID").val(); result[i]["RCOV_SI_FC"] = $("#RCOV_SI_FC").val(); var deftCoverCode = result[i].RCOV_CODE; var newRiskCode = $("#OLS_SYS_ID").val(); var verifyRiskCover = deftCoverCode + newRiskCode; //alert(verifyRiskCover); //add if Cover is not found in the Grid// if ($.inArray(verifyRiskCover, CodeArray) < 0) { //fill in default covers if not in the grid $scope.cover_grid.addRowData(result[i].ID, result[i]); u.growl_success("Risk Cover successfully added"); u.hide_confirm(); } else { u.growl_warning( "Cover exists for this Risk, you cannot add same Cover " + deftCoverCode); u.hide_confirm(); } } // } else { u.hide_confirm(); u.growl_error("Error occured, please check and try again"); } }); }); } else { u.hide_confirm(); u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_cover_old").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(); }); } }); $("#btn_remove_cover_old").on("click", function () { if (u.grid_empty($scope.cover_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.cover_grid; var row_id = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", row_id, "RCOV_STATUS"); var Code = grid.jqGrid("getCell", row_id, "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", row_id); u.hide_confirm(); u.growl_hide("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ if (recordStatus == "A") { grid.jqGrid("setCell", row_id, "RCOV_STATUS", "D"); $("#" + row_id, "#grdCover").css({ color: "red" }); u.hide_confirm(); u.growl_hide("Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $("#" + row_id, "#grdCover").css({ color: "black" }); grid.jqGrid("setCell", row_id, "RCOV_STATUS", "A"); u.hide_confirm(); u.growl_hide("Data successfully restored"); } }); }); $("#btn_risk_cover_old").click(function () { if (u.grid_empty($scope.oilgas_grid)) return u.growl_info("The grid is empty"); var grid = $scope.oilgas_grid; var selId = grid.jqGrid("getGridParam", "selrow"); var RiskId = grid.jqGrid("getCell", selId, "OLS_SYS_ID"); if (!RiskId) return u.growl_warning("No risk has been selected, please select a risk to continue"); if (RiskId == $("#OLS_SYS_ID").val()) { $("#RiskCoverModal").modal(); //Hide covers not related to selected risk $scope.hideShowCovers(); } else { u.growl_warning("No Risk selected, Please check and try again"); }; }); $("#btnRiskCoverOk_old").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 { //$scope.SumCoverRiskValues(); //$scope.premiumSummarizer(); $scope.PolicyCalculations(); $("#RiskCoverModal").modal("hide"); } }); $("#btn_add_riskdiscloading_old").on("click", function () { if (u.form_validation("#riskdiscloadingForm")) { //if ($("input[name='DL_CODE']").val() === "") return u.modalAlert("Please Enter Policy Excess No"); u.modal_confirmation("Are you sure you want to add the Risk Discount/Loading Details?", function () { var rowIds = $scope.riskdiscloading_grid.jqGrid("getDataIDs"); /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ // var code = []; /*------------------------------------------------------------ * iterate through the rows and check duplicate each of them *----------------------------------------------------------*/ // for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; /*------------------------------------------------ * get value of the cell or column in an array *----------------------------------------------*/ //DL_CODE var cellValue = $scope.riskdiscloading_grid.jqGrid("getCell", currRow, "DL_CODE"); code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray($("#DL_CODE").val(), code) < 0) { var formData = u.parse_form("#riskdiscloadingForm"); formData.DL_STATUS = "U"; formData.DL_CRTE_BY = u.getUserCode(); formData.DL_CRTE_DATE = u.get_date(); $scope.riskdiscloading_grid.addRowData(formData.ID, formData); u.hide_confirm(); u.growl_success("Risk Discount/Loading successfully added to grid"); u.form_reset("#riskdiscloadingForm"); $scope.discLoadingUpdates(); } else { u.hide_confirm(); u.growl_warning("Risk Discount/Loading with code " + cellValue + " Already exists"); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_remove_riskdiscloadings_old").on("click", function () { if (u.grid_empty($scope.riskdiscloading_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.riskdiscloading_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "DL_STATUS"); var code = grid.jqGrid("getCell", rowId, "DL_CODE"); 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, "DL_STATUS", "D"); $("#" + rowId, "#grdRiskDiscloading").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, "#grdRiskDiscloading").css({ color: "black" }); grid.jqGrid("setCell", rowId, "DL_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } $scope.discLoadingUpdates(); }); }); $("#btn_update_riskdiscloading_old").on("click", function () { if (u.grid_empty($scope.riskdiscloading_grid)) return u.growl_info("Excess grid is empty"); if (u.form_validation("#riskdiscloadingForm")) { u.modal_confirmation("Are you sure you want to update the selected Discount/Loading?", function () { var grid = $scope.riskdiscloading_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = grid.jqGrid("getCell", rowId, "DL_CODE"); if (code === $("input[name='DL_CODE']").val()) { var data = u.parse_form("#riskdiscloadingForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Risk Discount/Loading updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } $scope.discLoadingUpdates(); }); } }); $("#btnQueryRiskCoverLov_old").on("click", function () { getRiskCoversLov(); }); $("#btnAddNewCover_old").on("click", function () { if ($("#POLH_CLASS_CODE").val() == "") { u.growl_warning("Product Code is empty, Please check and try again"); } else { $("#AddNewCoverModal").modal(); } }); $("#btn_risk_discloading").click(function () { if (u.grid_empty($scope.oilgas_grid)) return u.modalAlert("The risk Grid is empty!!!"); if (u.getSelRow($scope.oilgas_grid)) { $("#DL_RISK_SYS_ID").val(u.getCell($scope.oilgas_grid, u.getSelRow($scope.oilgas_grid), "OLS_SYS_ID")); $scope.hideShowDiscountLoading(); $("#riskDiscloadingModal").modal(); } else { u.growl_info("Please select a risk"); } }); $("#btnRiskDLdLOV_old").on("click", function () { $("#RiskDiscLoadModal").modal(); var grid = $scope.riskdiscload_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get from the database s.discountloadingList(function (result) { if (result && result.length && result.length > 0) { //clear Grid $scope.riskdiscload_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { $scope.riskdiscload_grid.addRowData(result[i]["MMO_CODE"], result[i]); } } }); }); u.setGlobalStatic("productSearchFill_Old", function (policyData) { $scope.reset(); u.getGlobal("searchFill")(policyData, function (policy) { // Filling risk u.clear_grid_data($scope.oilgas_grid); if (policy.INS_UDW_OIL_GAS) { } u.clear_grid_data($scope.cover_grid); u.clear_grid_data($scope.riskFees_grid); for (var i in policy.INS_UDW_OIL_GAS) { $scope.oilgas_grid.addRowData(policy.INS_UDW_OIL_GAS[i].ID, policy.INS_UDW_OIL_GAS[i]); // Get risk covers for (var x in policy.INS_UDW_OIL_GAS[i].INS_UWD_RISK_COVERS) { //get Cover Names policy.INS_UDW_OIL_GAS[i].INS_UWD_RISK_COVERS[x]["RCOV_NAME"] = policy.INS_UDW_OIL_GAS[i].INS_UWD_RISK_COVERS[x]["MS_UDW_COVERS"]["CVR_NAME"]; //get Covers $scope.cover_grid.addRowData(policy.INS_UDW_OIL_GAS[i].INS_UWD_RISK_COVERS[x].RCOV_RISK_SYS_ID, policy.INS_UDW_OIL_GAS[i].INS_UWD_RISK_COVERS[x]); } //Filling Risk fees for (var r in policy.INS_UDW_OIL_GAS[i].INS_UDW_OLS_FEES) { //get Fee Names policy.INS_UDW_OIL_GAS[i].INS_UDW_OLS_FEES[r]["OLS_FEE_NAME"] = policy.INS_UDW_OIL_GAS[i].INS_UDW_OLS_FEES[r]["MS_COMPULSORY_FEES"]["FEE_NAME"]; //Fill Fees Grid $scope.riskFees_grid.addRowData(policy.INS_UDW_OIL_GAS[i].INS_UDW_OLS_FEES[r].ID, policy.INS_UDW_OIL_GAS[i].INS_UDW_OLS_FEES[r]); } for (var d in policy.INS_UDW_OIL_GAS[i].INS_UDW_RISK_DISCLOAD) { //get Discount/Loading $scope.riskdiscloading_grid.addRowData(policy.INS_UDW_OIL_GAS[i].INS_UDW_RISK_DISCLOAD[d].ID, policy.INS_UDW_OIL_GAS[i].INS_UDW_RISK_DISCLOAD[d]); } u.gridPopulate($scope.olintDetails_grid, policy.INS_UDW_OIL_GAS[i].INS_UDW_OIL_GAS_INTEREST); } $scope.PolicyCalculations(); }); }); $("#RCOV_GROSS_PREM_FC").prop("disabled", true); $("#RCOV_NET_PREM_FC").prop("disabled", true); $("#btnEndorse_old").on("click", function () { 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!"); u.modal_confirmation("Are you sure you want to pass a endorsement on the Policy?", function (e) { /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ // var code = []; /*--------------------------------------------------------------- * iterate through the rows and obtain all end transaction states *--------------------------------------------------------------*/ // u.setGridColumn($scope.endorsementGrid, { "END_TXN_STATE": function (state) { code.push(state); } }); //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"); if ($.inArray("O", code) < 0) { formData.END_STATUS = "U"; formData.END_CRTE_BY = u.getUserCode(); formData.END_CRTE_DATE = u.get_date(); formData.END_TXN_STATE = "O"; //formData.END_NO = u.fieldVal("#POLH_END_NO") + 1; formData.END_POL_SYS_ID = u.fieldVal("#POLH_SYS_ID"); //ADD TO GRID $scope.endorsementGrid.addRowData(formData.ID, formData); u.hide_confirm(); u.modalInfo( "You have successfully passed your endorsement on this Policy. You will not be able to pass another endorsement until the current " + "endorsement is closed. Please save your changes, confirm and approve the endorsed policy to close the endorsement."); u.form_reset("#endorsementForm"); } else { u.hide_confirm(); return u.modalInfo( "The current Policy in an open endorsement state. You cannot add another endorsement until the current endorsement state is closed." + " To close the current endorsement, please save your endorsement changes and approve the policy."); } $scope.endorsementData = formData; var endNo = $scope.endorsementData["END_NO"]; //diasable key policy action buttons $("#btn_add_oilgas_details").prop("disabled", "disabled"); $("#btn_remove_oilgas_risk").prop("disabled", "disabled"); $("#btn_update_cover").prop("disabled", "disabled"); $("#btn_add_cover").prop("disabled", "disabled"); $("#btn_remove_cover").prop("disabled", "disabled"); $("#btn_reset_cover").prop("disabled", "disabled"); $("#OLS_START_DATE").prop("disabled", "disabled"); $("#OLS_END_DATE").prop("disabled", "disabled"); //$("#").prop("disabled", "disabled"); //$("#").prop("disabled", "disabled"); //$("#").prop("disabled", "disabled"); //obtain the pro rated premium and use for adjustment //alert(u.totalDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"])) var newNumberOfDays = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]) + 1; //perform policy financials difference calculations var policy = $scope.getPolicyFormData(); s.getPolicyHistory(policy["POLH_SYS_ID"], (parseFloat(policy["POLH_END_NO"])), function (oldPolicy) { $scope.financialDiff(policy, oldPolicy); /*--------------------------------- * check endorsement propoerties *------------------------------*/ if ($scope.selectedEndorsement["END_INCRS_SUM_INSRD_YN"] === "Y" ) { //endorsement allows the user to increase the sum insured of the policy $("#btn_update_cover").removeAttr("disabled"); $("#btn_add_cover").removeAttr("disabled"); $("#btn_remove_cover").removeAttr("disabled"); $("#btn_reset_cover").removeAttr("disabled"); } else if ($scope.selectedEndorsement["END_DCRS_SUN_INSRD_YN"] === "Y" ) { //endorsement allows the user to decrease the sum insured of the policy $("#btn_update_cover").removeAttr("disabled"); $("#btn_add_cover").removeAttr("disabled"); $("#btn_remove_cover").removeAttr("disabled"); $("#btn_reset_cover").removeAttr("disabled"); } else if ($scope.selectedEndorsement["END_ADD_RSK_YN"] === "Y" ) { //endorsement allows the user to add a new risk to the policy $("#btn_add_oilgas_details").removeAttr("disabled"); } else if ($scope.selectedEndorsement["END_RMV_RSK_YN"] === "Y" ) { //endorsement allows the user to remove a risk from the policy $("#btn_remove_oilgas_risk").removeAttr("disabled"); } else if ($scope.selectedEndorsement["END_FULL_CANC_YN"] === "Y" ) { //endorsement allows the user to perform a full cancellation of the policy } else if ($scope.selectedEndorsement["END_PRO_RTD_CANC_YN"] === "Y" ) { //endorsement allows the user to cancel the policy for a preiod $("#OLS_START_DATE").removeAttr("disabled"); $("#OLS_END_DATE").removeAttr("disabled"); } else if ($scope.selectedEndorsement["END_CHNG_PERIOD_YN"] === "Y" ) { //endorsement allows the user to edit the start and end dates of the policy risks $("#OLS_START_DATE").removeAttr("disabled"); $("#OLS_END_DATE").removeAttr("disabled"); } switch ($scope.endorsementData["END_FLAG"]) { case "IC": //INTERNAL CANCELLATION $scope.internalCancellationSetup(); $scope.SumCoverRiskValues(); $scope.premiumSummarizer(); $scope.policyCommissionSummarizer(); break; case "CC": //CUSTOMER CANCELLATION $scope.customerCancellationSetup(); $scope.SumCoverRiskValues(); $scope.premiumSummarizer(); $scope.policyCommissionSummarizer(); break; case "R": //RENEWAL endNo = 0; $scope.SumCoverRiskValues(); $scope.premiumSummarizer(); $scope.policyCommissionSummarizer(); $scope.renewal(); case "PRC": //PRO RATED renewal u.formReadWrite(); $scope.SumCoverRiskValues(); $scope.premiumSummarizer(); $scope.policyCommissionSummarizer(); break; default: $scope.generalEndorsementSetup(newNumberOfDays); u.formReadWrite(); $scope.SumCoverRiskValues(); $scope.premiumSummarizer(); $scope.policyCommissionSummarizer(); break; } u.form_text_Gold_color(); u.growl_success( "The Policy is ready for Endorsement, Please perform your changes and SAVE to continue"); $("#POLH_TXN_STATE").val("E"); $("#POLH_END_NO").val(endNo); u.hide_confirm(); $("#PolicyEndorsementModal").modal("hide"); console.log($scope.endorsementData); }); }); }); //document.getElementById("POLH_POL_START_DATE").addEventListener("focusout", fxnPolPeriodDays); //document.getElementById("POLH_POL_END_DATE").addEventListener("focusout", fxnPolPeriodDays); $("#POLH_POL_START_DATE").blur(function () { //var addYear = u.dateFastForward($(this).val(), 1, "year"); //if (u.field_empty("#POLH_POL_END_DATE")) { // $("#POLH_POL_END_DATE").val(addYear); //} }); function fxnPolPeriodDays() { //alert("Input field lost focus."); var sDate = $("#POLH_POL_START_DATE").val(); var eDate = $("#POLH_POL_END_DATE").val(); $("#OLS_START_DATE").val(sDate); $("#OLS_END_DATE").val(eDate); var sdte = new Date(sDate); var polUWY = u.getYear(sDate); $("#POLH_POL_UW_YEAR").val(polUWY); $("#OLS_UW_YEAR").val(polUWY); var polPeriodDays = u.totalDays(eDate, sDate); if (polPeriodDays > 0) { $("#POLH_POL_DAYS").val(polPeriodDays); $("#OLS_PERIOD_DAYS").val(polPeriodDays); } else if ((polPeriodDays <= 0)) { u.growl_warning("Policy End date cannot be less than or equal to start date"); //reset end date and no. of days $("#POLH_POL_END_DATE").val(""); $("#POLH_POL_DAYS").val(""); // $("#OLS_END_DATE").val(""); $("#OLS_PERIOD_DAYS").val(""); } } //---//Risk period days document.getElementById("OLS_START_DATE").addEventListener("focusout", fxnRiskPeriodDays); document.getElementById("OLS_END_DATE").addEventListener("focusout", fxnRiskPeriodDays); function fxnRiskPeriodDays() { //alert("Input field lost focus."); var polStartDate = new Date($("#POLH_POL_START_DATE").val()); var PolEndDate = new Date($("#POLH_POL_END_DATE").val()); var riskStartDate = new Date($("#OLS_START_DATE").val()); var riskEndDate = new Date($("#OLS_END_DATE").val()); var riskPeriodDays = u.get_dateDifference(riskStartDate, riskEndDate); if (u.get_dateDifference(polStartDate, riskStartDate) < 0) { u.growl_warning("Risk Start date cannot be less than Policy start date"); } else if (u.get_dateDifference(PolEndDate, riskEndDate) > 0) { u.growl_warning("Risk End date cannot be greater than Policy End date"); } else { if (riskPeriodDays > 0) { $("#OLS_PERIOD_DAYS").val(riskPeriodDays); } } if ((riskPeriodDays <= 0)) { u.growl_warning("Risk End date cannot be less than or equal to start date"); //reset end date and no. of days $("#OLS_START_DATE").val(""); $("#OLS_END_DATE").val(""); } else if ((riskPeriodDays > 365)) { u.growl_warning("Risk period cannot be greater than 365 days, please check and try again"); } // alert(diffDays(StartDate, EndDate)); } $("#btn_Participant_old").click(function () { //obthain the id of the selected fac details var grid = $scope.grdfacInward_grid; var selRow = $scope.selectedfac = grid.jqGrid("getGridParam", "selrow"); if (selRow) { //obtain the companies that have been assigned to selected treaty details var facString = grid.jqGrid("getCell", selRow, "INS_RI_FAC_INW_COMPANY") || "[]"; console.log(facString); var facJson = []; if (facString.length <= 0) { // } facJson = JSON.parse(facString); console.log(facJson); for (var i in facJson) { $scope.grdInwdParticipant_grid.addRowData(facJson[i].ID, facJson[i]); } $("#PartipantsModal").modal(); } else { u.growl_warning("No FAC Detail selected, Please check and try again"); } }); /*----------------------------------- * PRODUCT LOV EVENT TRIGGER FUNCTIONS *----------------------------------*/ u.lovCodeVal("form input[name='POLH_CURRENCY']", "checkCurrencyCode", "input[name='POLH_CURRENCY_RATE']", function () { u.getGlobalStatic("CurrencyChanges")(); }); u.lovCodeVal("form input[name='POLH_INS_SOURCE']", "check_insurance_source_code", "form input[name='INSUR_NAME']", async function (code) { await u.getGlobalStatic("InsuranceSourceChange")(); }); /*----------------------------- * RISK CALCULATION FUNCTIONS *----------------------------*/ $scope.GetFees = async function (fees) { const riskFees = await s.getRiskFeesAsync(fees) || []; riskFees.ForEach(x => { x.OLS_FEE_CODE = x.PRF_FEE_CODE; x.OLS_FEE_FC_AMOUNT = x.PRF_FEE_AMOUNT; x.OLS_FEE_BC_AMOUNT = x.PRF_FEE_AMOUNT; x.OLS_FEE_RK_NO = x.PRF_SYS_ID; x.OLS_FEE_NAME = x.FEE_NAME; x.OLS_FEE_CRTE_BY = u.getUserCode(); x.OLS_FEE_CRTE_DATE = Date.now(); x.OLS_FEE_STATUS = "U"; }); return riskFees; }; $scope.GetDiscountload = async function (dl) { let result = await s.getDefaultDiscountLoadAsync(dl) || {}; result = result.state ? result.data : []; result.ForEach(x => { x.DL_CRTE_BY = u.getUserCode(); x.DL_CRTE_DATE = u.get_datetime(); }); return result; }; $scope.riDisciption = function (v) { const product = u.parse_form("#polheaderForm") || {}; let data = { SubClass: product.PDT_NAME, Region: v.OLS_REGION_NAME, Area: v.OLS_AREA_NAME, Address: v.OLS_LOC_ADDRS } let result = u.getGlobal("riDiscriptionConcat")(data); return result; } $scope.RIItems = function (product) { let result = []; product.INS_UDW_OIL_GAS = (typeof (product.INS_UDW_OIL_GAS) === "string" ? JSON.parse(product.INS_UDW_OIL_GAS || "[]") : product.INS_UDW_OIL_GAS) || []; let Y = product.INS_UDW_OIL_GAS.Where(x => x.OLS_RIC_YN === "Y").ToList(); let N = product.INS_UDW_OIL_GAS.Where(x => x.OLS_RIC_YN === "N").ToList(); N.ForEach(x => { let Data = { RI_DESCRIPTION: $scope.riDisciption(x), RI_SI_FC: x.OLS_RI_SI_FC || 0, RI_SI_BC: x.OLS_RI_SI_BC || 0, RI_PREM_BC: x.OLS_RI_PREM_BC || 0, RI_PREM_FC: x.OLS_RI_PREM_FC || 0, TOT_SI_FC: x.OLS_SI_FC || 0, TOT_SI_BC: x.OLS_SI_BC || 0, TOT_PREM_BC: x.OLS_TOT_PREM_BC || 0, TOT_PREM_FC: x.OLS_TOT_PREM_FC || 0, RISK_ID: x.OLS_SYS_ID, EML_PERC: x.OLS_EML, FROM_DATE: x.OLS_START_DATE, TO_DATE: x.OLS_END_DATE, UW_YEAR: x.OLS_UW_YEAR || product.POLH_POL_UW_YEAR, RI_STATUS: x.OLS_STATUS }; result.Add(Data); }); Y.GroupBy(e => e.OLS_RIC_CODE).Select(q => { return { RI_DESCRIPTION: $scope.riDisciption(q), RI_SI_FC: parseFloat(q.Sum(y => parseFloat(y.OLS_RI_SI_FC || 0))).toFixed(2) || 0, RI_SI_BC: parseFloat(q.Sum(y => parseFloat(y.OLS_RI_SI_BC || 0))).toFixed(2) || 0, RI_PREM_FC: parseFloat(q.Sum(y => parseFloat(y.OLS_RI_PREM_FC || 0))).toFixed(2) || 0, RI_PREM_BC: parseFloat(q.Sum(y => parseFloat(y.OLS_RI_PREM_BC || 0))).toFixed(2) || 0, TOT_SI_FC: parseFloat(q.Sum(y => parseFloat(y.OLS_SI_FC || 0))).toFixed(2) || 0, TOT_SI_BC: parseFloat(q.Sum(y => parseFloat(y.OLS_SI_FC || 0))).toFixed(2) || 0, TOT_PREM_FC: parseFloat(q.Sum(y => parseFloat(y.OLS_TOT_PREM_FC || 0))).toFixed(2) || 0, TOT_PREM_BC: parseFloat(q.Sum(y => parseFloat(y.OLS_TOT_PREM_BC || 0))).toFixed(2) || 0, RISK_ID: q.FirstOrDefault().OLS_SYS_ID, EML_PERC: q.FirstOrDefault().OLS_EML, FROM_DATE: q.FirstOrDefault().OLS_START_DATE, TO_DATE: q.FirstOrDefault().OLS_END_DATE, UW_YEAR: q.FirstOrDefault().OLS_UW_YEAR || product.POLH_POL_UW_YEAR, RI_STATUS: q.FirstOrDefault().OLS_STATUS }; }).ToArray().ForEach(v => { result.Add(v); }); return result; }; $scope.LocationStatus = function (location, status) { location.OLS_STATUS = status; location.INS_UDW_OIL_GAS_INTEREST = (typeof (location.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(location.INS_UDW_OIL_GAS_INTEREST || "[]") : location.INS_UDW_OIL_GAS_INTEREST) || []; location.INS_UDW_OIL_GAS_INTEREST.ForEach(x => { x.OLINT_STATUS = location.OLS_STATUS; x.INS_UWD_RISK_COVERS = (typeof (x.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(x.INS_UWD_RISK_COVERS || "[]") : x.INS_UWD_RISK_COVERS) || []; x.INS_UWD_RISK_COVERS.ForEach(c => { c.RCOV_STATUS = x.OLINT_STATUS; c.INS_UDW_COVER_DISCLOAD = (typeof (c.INS_UDW_COVER_DISCLOAD) === "string" ? JSON.parse(c.INS_UDW_COVER_DISCLOAD || "[]") : c.INS_UDW_COVER_DISCLOAD) || []; c.INS_UDW_COVER_DISCLOAD.ForEach(a => { a.DL_STATUS = c.RCOV_STATUS; }); }); x.INS_UDW_OIL_GAS_FEES = (typeof (x.INS_UDW_OIL_GAS_FEES) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_FEES || "[]") : x.INS_UDW_OIL_GAS_FEES) || []; x.INS_UDW_OIL_GAS_FEES.ForEach(u => { u.OLS_FEE_STATUS = x.OLINT_STATUS; }); x.INS_UDW_RISK_DISCLOAD = (typeof (x.INS_UDW_RISK_DISCLOAD) === "string" ? JSON.parse(x.INS_UDW_RISK_DISCLOAD || "[]") : x.INS_UDW_RISK_DISCLOAD) || []; x.INS_UDW_RISK_DISCLOAD.ForEach(a => { a.DL_STATUS = c.OLINT_STATUS; }); }); return location; }; $scope.PremiumBasisRate = async function (v) { v.OLINT_SUB_CLASS_CODE = v.OLINT_SUB_CLASS_CODE || $("#POLH_SUB_CLASS_CODE").val(); v.OLINT_PERIOD_DAYS = parseFloat(v.OLINT_PERIOD_DAYS || 0) || parseFloat($("#POLH_POL_DAYS").val() || 0); switch (v.OLINT_PREMIUM_BASIS) { case "PR": v.OLINT_PRO_RATE = ((v.OLINT_PERIOD_DAYS == 364 || v.OLINT_PERIOD_DAYS == 366) ? 1 : v.OLINT_PERIOD_DAYS / 366) || 0; break; case "SP": v.OLINT_PRO_RATE = /*(v.OLINT_SUB_CLASS_CODE && v.OLINT_PERIOD_DAYS) ? (await $scope.SP(v.OLINT_SUB_CLASS_CODE, v.OLINT_PERIOD_DAYS) * 0.01) :*/ 0; break; case "FP": v.OLINT_PRO_RATE = 1; break; default: v.OLINT_PRO_RATE = 0; break; }; return v.OLINT_PRO_RATE; }; $scope.coverSumInsuredCalculate = function (c) { /*-------------------------- * CHECK IF COVER IS BASE *-----------------------**/ switch (c.RCOV_BASE_SI_YN) { case "Y": c.RCOV_SI_FC = parseFloat(parseFloat(c.RCOV_SI_BC || 0) / parseFloat(c.RCOV_CURR_RATE || 0)).toFixed(2) || 0; c.RCOV_SI_BC = parseFloat(c.RCOV_SI_BC || 0) || 0; break; case "N": c.RCOV_SI_FC = parseFloat(c.RCOV_SI_FC || 0) || 0; c.RCOV_SI_BC = parseFloat(parseFloat(c.RCOV_SI_FC || 0) * parseFloat(c.RCOV_CURR_RATE || 0)).toFixed(2) || 0; break; default: c.RCOV_SI_BC = 0; c.RCOV_SI_BC = 0; break; } }; $scope.coverAnnualPremiumCalculate = function (c) { /*-------------------------- * CHECK IF COVER IS BASE *-----------------------**/ switch (c.RCOV_BASE_PREM_YN) { case "Y": c.RCOV_ANNL_PREM_FC = parseFloat(parseFloat(c.RCOV_ANNL_PREM_BC || 0) / parseFloat(c.RCOV_CURR_RATE || 0)).toFixed(2) || 0; c.RCOV_ANNL_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0) || 0; break; case "N": c.RCOV_ANNL_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0) || 0; c.RCOV_ANNL_PREM_BC = parseFloat(parseFloat(c.RCOV_ANNL_PREM_FC || 0) * parseFloat(c.RCOV_CURR_RATE || 0)).toFixed(2) || 0; break; default: c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; break; } /*-------------------------- * CHECK IF COVER IS RATED *-----------------------**/ switch (c.RCOV_RATED_YN) { case "Y": c.RCOV_ANNL_PREM_FC = parseFloat(parseFloat(c.RCOV_SI_FC || 0) * parseFloat(c.RCOV_RATE || 0) * 0.01).toFixed(2) || 0; c.RCOV_ANNL_PREM_BC = parseFloat(parseFloat(c.RCOV_SI_BC || 0) * parseFloat(c.RCOV_RATE || 0) * 0.01).toFixed(2) || 0; break; case "N": c.RCOV_ANNL_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0); c.RCOV_ANNL_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0); break; default: c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; break; } }; $scope.coverWeightSumInsuredCalculate = function (c) { c.RCOV_SI_FC = parseFloat(parseFloat(c.RCOV_SI_FC || 0) * parseFloat(c.RCOV_SI_WEIGHT !== undefined ? parseFloat(c.RCOV_SI_WEIGHT || 1) : 1)).toFixed(2) || 0; c.RCOV_SI_BC = parseFloat(parseFloat(c.RCOV_SI_BC || 0) * parseFloat(c.RCOV_SI_WEIGHT !== undefined ? parseFloat(c.RCOV_SI_WEIGHT || 1) : 1)).toFixed(2) || 0; c.RCOV_SI_WEIGHT = 1; }; $scope.coverWeightAnnualPremiumCalculate = function (c) { c.RCOV_ANNL_PREM_FC = parseFloat(parseFloat(c.RCOV_ANNL_PREM_FC || 0) * parseFloat(c.RCOV_ANNL_PREM_WEIGHT !== undefined ? parseFloat(c.RCOV_ANNL_PREM_WEIGHT || 1) : 1)).toFixed(2) || 0; c.RCOV_ANNL_PREM_BC = parseFloat(parseFloat(c.RCOV_ANNL_PREM_BC || 0) * parseFloat(c.RCOV_ANNL_PREM_WEIGHT !== undefined ? parseFloat(c.RCOV_ANNL_PREM_WEIGHT || 1) : 1)).toFixed(2) || 0; c.RCOV_ANNL_PREM_WEIGHT = 1; }; $scope.coverWeightGrossPremiumCalculate = function (c) { c.RCOV_GROSS_PREM_FC = parseFloat(parseFloat(c.RCOV_GROSS_PREM_FC || 0) * parseFloat(c.RCOV_GROSS_PREM_WEIGHT !== undefined ? parseFloat(c.RCOV_GROSS_PREM_WEIGHT || 1) : 1)).toFixed(2) || 0; c.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(c.RCOV_GROSS_PREM_BC || 0) * parseFloat(c.RCOV_GROSS_PREM_WEIGHT !== undefined ? parseFloat(c.RCOV_GROSS_PREM_WEIGHT || 1) : 1)).toFixed(2) || 0; c.RCOV_GROSS_PREM_WEIGHT = 1; }; $scope.coverGrossPremiumCalculate = function (c) { /*-------------------------- * GROSS PREMIUM CALCULATION *-----------------------**/ c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC * (c.RCOV_CODE !== "800704" ? parseFloat(c.RCOV_PRO_RATE || 0) : 1)).toFixed(2) || 0; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC * (c.RCOV_CODE !== "800704" ? parseFloat(c.RCOV_PRO_RATE || 0) : 1)).toFixed(2) || 0; }; $scope.coverDiscountCalculate = function (c) { /*------------------------------------------ * COVER DISCOUNT UNIT FUNCTION CALCULATION *-----------------------------------------*/ c.INS_UDW_COVER_DISCLOAD = (typeof (c.INS_UDW_COVER_DISCLOAD) === "string" ? JSON.parse(c.INS_UDW_COVER_DISCLOAD || "[]") : c.INS_UDW_COVER_DISCLOAD) || []; c.INS_UDW_COVER_DISCLOAD = u.getGlobal("CoverDiscountLoading")(c.INS_UDW_COVER_DISCLOAD, c.RCOV_GROSS_PREM_FC, c.RCOV_GROSS_PREM_BC); c.RCOV_DISC_FC = parseFloat(c.INS_UDW_COVER_DISCLOAD.Where(d => d.DL_TYPE === "D" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_FC || 0))).toFixed(2) || 0; c.RCOV_DISC_BC = parseFloat(c.INS_UDW_COVER_DISCLOAD.Where(d => d.DL_TYPE === "D" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_BC || 0))).toFixed(2) || 0; c.RCOV_LOAD_FC = parseFloat(c.INS_UDW_COVER_DISCLOAD.Where(d => d.DL_TYPE === "L" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_FC || 0))).toFixed(2) || 0; c.RCOV_LOAD_BC = parseFloat(c.INS_UDW_COVER_DISCLOAD.Where(d => d.DL_TYPE === "L" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_BC || 0))).toFixed(2) || 0; c.RCOV_DL_FC = parseFloat(parseFloat(c.RCOV_LOAD_FC || 0) - parseFloat(c.RCOV_DISC_FC || 0)) || 0; c.RCOV_DL_BC = parseFloat(parseFloat(c.RCOV_LOAD_BC || 0) - parseFloat(c.RCOV_DISC_BC || 0)) || 0; c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC || 0) + parseFloat(c.RCOV_DL_FC || 0); c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC || 0) + parseFloat(c.RCOV_DL_BC || 0); }; $scope.coverCalculate = function (c) { /*--------------------------------- * COVER UNIT FUNCTION CALCULATION *-------------------------------*/ $scope.coverSumInsuredCalculate(c); $scope.coverWeightSumInsuredCalculate(c); $scope.coverAnnualPremiumCalculate(c); $scope.coverWeightAnnualPremiumCalculate(c); $scope.coverGrossPremiumCalculate(c); $scope.coverWeightGrossPremiumCalculate(c); $scope.coverDiscountCalculate(c); }; $scope.DiscountLoadCalculate = function (d) { d.DL_AMT_FC = parseFloat(parseFloat(parseFloat(d.DL_RATE || 0) * 0.01) * parseFloat(d.DL_PREM_FC || 0)).toFixed(2) || 0; d.DL_AMT_BC = parseFloat(parseFloat(parseFloat(d.DL_RATE || 0) * 0.01) * parseFloat(d.DL_PREM_BC || 0)).toFixed(2) || 0; }; $scope.RiskFeesCalculate = function (z) { z.OLS_FEE_BC_AMOUNT = parseFloat(z.OLS_FEE_BC_AMOUNT || 0).toFixed(2) || 0; z.OLS_FEE_FC_AMOUNT = parseFloat(parseFloat(z.OLS_FEE_BC_AMOUNT || 0) / parseFloat(z.OLS_FEE_CURR_RATE || 0)).toFixed(2) || 0; }; $scope.RiskDiscountLoadCalculate = function (b) { b.OLINT_DISC_FC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "D" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_FC || 0))).toFixed(2) || 0; b.OLINT_DISC_BC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "D" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_BC || 0))).toFixed(2) || 0; b.OLINT_LOAD_FC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "L" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_FC || 0))).toFixed(2) || 0; b.OLINT_LOAD_BC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "L" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_BC || 0))).toFixed(2) || 0; b.OLINT_DL_AMT_FC = parseFloat(parseFloat(b.OLINT_LOAD_FC || 0) - parseFloat(b.OLINT_DISC_FC || 0)).toFixed(2) || 0; b.OLINT_DL_AMT_BC = parseFloat(parseFloat(b.OLINT_LOAD_BC || 0) - parseFloat(b.OLINT_DISC_BC || 0)).toFixed(2) || 0; }; $scope.RiskPremiumCalculate = function (b) { b.OLINT_PRM_FC = parseFloat(parseFloat(b.OLINT_GROSS_PRM_FC || 0) + parseFloat(b.OLINT_DL_AMT_FC || 0)).toFixed(2) || 0; b.OLINT_PRM_BC = parseFloat(parseFloat(b.OLINT_GROSS_PRM_BC || 0) + parseFloat(b.OLINT_DL_AMT_BC || 0)).toFixed(2) || 0; b.OLINT_RI_PREM_FC = parseFloat(b.OLINT_PRM_FC || 0).toFixed(2) || 0; b.OLINT_RI_PREM_BC = parseFloat(b.OLINT_PRM_BC || 0).toFixed(2) || 0; b.OLINT_NET_PREM_FC = parseFloat(parseFloat(b.OLINT_PRM_FC || 0) + parseFloat(b.OLINT_FEES_FC || 0)) || 0; b.OLINT_NET_PREM_BC = parseFloat(parseFloat(b.OLINT_PRM_BC || 0) + parseFloat(b.OLINT_FEES_BC || 0)) || 0; }; $scope.RiskCalculate = function (b) { /*----------------------------------- * THIS IS WHERE THE TRANSITION STARTS *----------------------------------*/ b.OLINT_SI_FC = parseFloat(b.INS_UWD_RISK_COVERS.Where(d => !("DX").includes(d.RCOV_STATUS) && d.RCOV_RI_SI_YN === "Y").Sum(x => parseFloat(x.RCOV_SI_FC || 0))).toFixed(2) || 0; b.OLINT_SI_BC = parseFloat(b.INS_UWD_RISK_COVERS.Where(d => !("DX").includes(d.RCOV_STATUS) && d.RCOV_RI_SI_YN === "Y").Sum(x => parseFloat(x.RCOV_SI_BC || 0))).toFixed(2) || 0; b.OLINT_GROSS_PRM_FC = parseFloat(b.INS_UWD_RISK_COVERS.Where(d => !("DX").includes(d.RCOV_STATUS) && d.RCOV_RI_PREM_YN === "Y").Sum(x => parseFloat(x.RCOV_NET_PREM_FC || 0))).toFixed(2) || 0; b.OLINT_GROSS_PRM_BC = parseFloat(b.INS_UWD_RISK_COVERS.Where(d => !("DX").includes(d.RCOV_STATUS) && d.RCOV_RI_PREM_YN === "Y").Sum(x => parseFloat(x.RCOV_NET_PREM_BC || 0))).toFixed(2) || 0; b.INS_UDW_RISK_DISCLOAD = (typeof (b.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(b.INS_UDW_RISK_DISCLOAD || "[]") : b.INS_UDW_RISK_DISCLOAD) || []; b.INS_UDW_RISK_DISCLOAD.ForEach(x => { x.DL_PREM_FC = parseFloat(b.OLINT_GROSS_PRM_FC || 0); x.DL_PREM_BC = parseFloat(b.OLINT_GROSS_PRM_BC || 0); $scope.DiscountLoadCalculate(x); }); b.INS_UDW_OIL_GAS_FEES = (typeof (b.INS_UDW_OIL_GAS_FEES) === "string" ? JSON.parse(b.INS_UDW_OIL_GAS_FEES || "[]") : b.INS_UDW_OIL_GAS_FEES) || []; b.INS_UDW_OIL_GAS_FEES.ForEach(z => { z.OLS_FEE_CURR_RATE = parseFloat(b.OLINT_CURR_RATE || 0); $scope.RiskFeesCalculate(z); }); b.OLINT_FEES_FC = parseFloat(b.INS_UDW_OIL_GAS_FEES.Where(d => d.OLS_FEE_STATUS !== "D").Sum(x => parseFloat(x.OLS_FEE_FC_AMOUNT || 0))).toFixed(2) || 0; b.OLINT_FEES_BC = parseFloat(b.INS_UDW_OIL_GAS_FEES.Where(d => d.OLS_FEE_STATUS !== "D").Sum(x => parseFloat(x.OLS_FEE_BC_AMOUNT || 0))).toFixed(2) || 0; $scope.RiskDiscountLoadCalculate(b); $scope.RiskPremiumCalculate(b); b.OLINT_RI_SI_FC = parseFloat(b.OLINT_SI_FC || 0) * (b.OLINT_RI_EML === "Y" ? parseFloat(b.OLINT_EML_SI || 0) * 0.01 : 1); b.OLINT_RI_SI_BC = parseFloat(b.OLINT_SI_BC || 0) * (b.OLINT_RI_EML === "Y" ? parseFloat(b.OLINT_EML_SI || 0) * 0.01 : 1); }; $scope.LocationCalculate = function (x) { x.OLS_FEES_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(e => parseFloat(e.OLINT_FEES_FC || 0))).toFixed(2) || 0; x.OLS_FEES_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(e => parseFloat(e.OLINT_FEES_BC || 0))).toFixed(2) || 0; x.OLS_SI_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_SI_FC || 0))).toFixed(2) || 0; x.OLS_SI_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_SI_BC || 0))).toFixed(2) || 0; x.OLS_DISC_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(e => parseFloat(e.OLINT_DISC_FC || 0))).toFixed(2) || 0; x.OLS_DISC_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(e => parseFloat(e.OLINT_DISC_BC || 0))).toFixed(2) || 0; x.OLS_LOAD_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(e => parseFloat(e.OLINT_LOAD_FC || 0))).toFixed(2) || 0; x.OLS_LOAD_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(e => parseFloat(e.OLINT_LOAD_BC || 0))).toFixed(2) || 0; x.OLS_RISK_PREM_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_GROSS_PRM_FC || 0))).toFixed(2) || 0; x.OLS_RISK_PREM_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_GROSS_PRM_BC || 0))).toFixed(2) || 0; x.OLS_RI_SI_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_RI_SI_FC || 0))).toFixed(2) || 0; x.OLS_RI_SI_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_RI_SI_BC || 0))).toFixed(2) || 0; x.OLS_TOT_PREM_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_PRM_FC || 0))).toFixed(2) || 0; x.OLS_TOT_PREM_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_PRM_BC || 0))).toFixed(2) || 0; x.OLS_NET_PREM_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_NET_PREM_FC || 0))).toFixed(2) || 0; x.OLS_NET_PREM_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_NET_PREM_BC || 0))).toFixed(2) || 0; x.OLS_RI_PREM_FC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_RI_PREM_FC || 0))).toFixed(2) || 0; x.OLS_RI_PREM_BC = parseFloat(x.INS_UDW_OIL_GAS_INTEREST.Where(d => d.OLINT_STATUS !== "D").Sum(x => parseFloat(x.OLINT_RI_PREM_BC || 0))).toFixed(2) || 0; x.OLS_ADJ_PREM_FC = 0; x.OLS_ADJ_PREM_BC = 0; }; $scope.oilGasRecalculate = async function (product) { product = (typeof (product) === 'string' ? JSON.parse(product || '{}') : product) || {}; product.POLH_CURRENCY_RATE = parseFloat(product.POLH_CURRENCY_RATE || 0) || 0; product.INS_UDW_OIL_GAS = (typeof (product.INS_UDW_OIL_GAS) === 'string' ? JSON.parse(product.INS_UDW_OIL_GAS || '[]') : product.INS_UDW_OIL_GAS) || []; product.INS_UDW_OIL_GAS = product.INS_UDW_OIL_GAS.map(async (x) => { x.OLS_CURRENCY = product.POLH_CURRENCY; x.OLS_CURRENCY_RATE = product.POLH_CURRENCY_RATE; x.OLS_UW_YEAR = product.POLH_POL_UW_YEAR; x.OLS_SUB_CLASS_CODE = product.POLH_SUB_CLASS_CODE; x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST = x.INS_UDW_OIL_GAS_INTEREST.map(async (b) => { b.OLINT_CURRENCY = x.OLS_CURRENCY; b.OLINT_CURR_RATE = x.OLS_CURRENCY_RATE; b.OLINT_SUB_CLASS_CODE = x.OLS_SUB_CLASS_CODE; b.OLINT_UW_YEAR = x.OLS_UW_YEAR; b.OLINT_START_DATE = /*b.OLINT_START_DATE ||*/ product.POLH_POL_START_DATE; b.OLINT_END_DATE = /*b.OLINT_END_DATE ||*/ product.POLH_POL_END_DATE; b.OLINT_PERIOD_DAYS = /*b.OLINT_PERIOD_DAYS ||*/ product.POLH_POL_DAYS; b.OLINT_PREMIUM_BASIS = /*b.OLINT_PREMIUM_BASIS ||*/ product.POLH_PREM_BASIS; b.OLINT_PRO_RATE = await $scope.PremiumBasisRate(b); b.INS_UWD_RISK_COVERS = (typeof (b.INS_UWD_RISK_COVERS) == "string" ? JSON.parse(b.INS_UWD_RISK_COVERS || "[]") : b.INS_UWD_RISK_COVERS) || []; b.INS_UWD_RISK_COVERS.ForEach(c => { c.RCOV_PRO_RATE = b.OLINT_PRO_RATE; c.RCOV_CURR_RATE = b.OLINT_CURR_RATE; $scope.coverCalculate(c); }); $scope.RiskCalculate(b); return b; }); x.INS_UDW_OIL_GAS_INTEREST = await Promise.all(x.INS_UDW_OIL_GAS_INTEREST); $scope.LocationCalculate(x); return x; }); product.INS_UDW_OIL_GAS = await Promise.all(product.INS_UDW_OIL_GAS); return product; }; $scope.rawOilGas = function () { const product = u.parse_form("#polheaderForm") || {}; /*----------------------------------- * GETS ALL REMAINING PRODUCT MODELS *---------------------------------*/ u.getGlobal("Product")(product); product.INS_UDW_OIL_GAS = u.get_grid_data(u.getGlobal("oilgasLocationgrid")) || []; product.INS_UDW_OIL_GAS/*.Where(g => g.OLS_STATUS !== "D")*/.ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST/*.Where(j => j.OLINT_STATUS !== "D")*/.ForEach(z => { z.INS_UWD_RISK_COVERS = (typeof (z.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(z.INS_UWD_RISK_COVERS || "[]") : z.INS_UWD_RISK_COVERS) || []; z.INS_UWD_RISK_COVERS/*.Where(d => d.RCOV_STATUS !== "D")*/.ForEach(b => { b.INS_UDW_COVER_DISCLOAD = (typeof (b.INS_UDW_COVER_DISCLOAD) === "string" ? JSON.parse(b.INS_UDW_COVER_DISCLOAD || "[]") : b.INS_UDW_COVER_DISCLOAD) || []; b.INS_UDW_COVER_DISCLOAD.ForEach(c => { delete c.MS_SYS_LOADINGS_DISCOUNTS; }); delete b.MS_UDW_COVERS; }); z.INS_UDW_RISK_DISCLOAD = (typeof (z.INS_UDW_RISK_DISCLOAD) === "string" ? JSON.parse(z.INS_UDW_RISK_DISCLOAD || "[]") : z.INS_UDW_RISK_DISCLOAD) || []; z.INS_UDW_OIL_GAS_FEES = (typeof (z.INS_UDW_OIL_GAS_FEES) === "string" ? JSON.parse(z.INS_UDW_OIL_GAS_FEES || "[]") : z.INS_UDW_OIL_GAS_FEES) || []; }); }); product.MS_UDW_ENDORSEMENTS = u.get_grid_data(u.getGlobal("udwEndsmntGrid", true)) || []; product.INS_RI_FAC_OUTWARD = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")) || []; product.PremiumSummary = u.get_grid_data(u.getGlobal("udwPremSumGrid")) || []; return product; }; $scope.rawInsuranceSourceCalculation = function (product) { switch (product.POLH_INS_SOURCE) { case "COL": product.INS_COINS_LEADER.ForEach(c => { c.INS_SOURCE = product.POLH_INS_SOURCE; c.CIL_POL_SI_FC = product.POLH_POL_SI_FC || 0; c.CIL_POL_SI_BC = product.POLH_POL_SI_BC || 0; c.CIL_POL_PREM_FC = product.POLH_POL_PREM_FC || 0; c.CIL_POL_PREM_BC = product.POLH_POL_PREM_BC || 0; u.getGlobal("InsuranceSourse")(c); }); product.COINS_LEADER_SINGLE = product.INS_COINS_LEADER.FirstOrDefault() || {}; product.POLH_COINS_SI_FC = parseFloat(parseFloat(product.COINS_LEADER_SINGLE.CIL_SHARE_SI_FC || 0)).toFixed(2); product.POLH_COINS_SI_BC = parseFloat(parseFloat(product.COINS_LEADER_SINGLE.CIL_SHARE_SI_BC || 0)).toFixed(2); product.POLH_COINS_PREM_FC = parseFloat(parseFloat(product.COINS_LEADER_SINGLE.CIL_SHARE_PREM_FC || 0)).toFixed(2); product.POLH_COINS_PREM_BC = parseFloat(parseFloat(product.COINS_LEADER_SINGLE.CIL_SHARE_PREM_BC || 0)).toFixed(2); product.POLH_COINS_COM_FC = 0; product.POLH_COINS_COM_BC = 0; break; case "FIN": case "COM": product.INS_RI_FAC_INWARD.ForEach(c => { c.INS_SOURCE = product.POLH_INS_SOURCE; c.FINW_SI_FC = product.POLH_POL_SI_FC || 0; c.FINW_SI_BC = product.POLH_POL_SI_BC || 0; c.FINW_PREM_FC = parseFloat(product.POLH_POL_PREM_FC || 0) - parseFloat(product.POLH_FEE_FC || 0); c.FINW_PREM_BC = parseFloat(product.POLH_POL_PREM_BC || 0) - parseFloat(product.POLH_FEE_BC || 0); u.getGlobal("InsuranceSourse")(c); }); product.POLH_COINS_SI_FC = parseFloat(product.INS_RI_FAC_INWARD.Where(d => d.FINW_STATUS !== "D").Sum(r => parseFloat(r.FINW_SI_FC || 0)) || 0).toFixed(2) || 0; product.POLH_COINS_SI_BC = parseFloat(product.INS_RI_FAC_INWARD.Where(d => d.FINW_STATUS !== "D").Sum(r => parseFloat(r.FINW_SI_BC || 0)) || 0).toFixed(2) || 0; product.POLH_COINS_PREM_FC = parseFloat(product.INS_RI_FAC_INWARD.Where(d => d.FINW_STATUS !== "D").Sum(r => parseFloat(r.FINW_PREM_FC || 0)) || 0).toFixed(2) || 0; product.POLH_COINS_PREM_BC = parseFloat(product.INS_RI_FAC_INWARD.Where(d => d.FINW_STATUS !== "D").Sum(r => parseFloat(r.FINW_PREM_BC || 0)) || 0).toFixed(2) || 0; product.POLH_COINS_COM_FC = parseFloat(product.INS_RI_FAC_INWARD.Where(d => d.FINW_STATUS !== "D").Sum(r => parseFloat(r.FINW_COMM_FC || 0)) || 0).toFixed(2) || 0; product.POLH_COINS_COM_BC = parseFloat(product.INS_RI_FAC_INWARD.Where(d => d.FINW_STATUS !== "D").Sum(r => parseFloat(r.FINW_COMM_BC || 0)) || 0).toFixed(2) || 0; break; default: product.POLH_COINS_SI_FC = 0; product.POLH_COINS_SI_BC = 0; product.POLH_COINS_PREM_FC = 0; product.POLH_COINS_PREM_BC = 0; product.POLH_COINS_COM_FC = 0; product.POLH_COINS_COM_BC = 0; break; } }; $scope.rawOilGasCalculation = function (product) { product.POLH_POL_SI_FC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_SI_FC || 0)) || 0).toFixed(2) || 0; product.POLH_POL_SI_BC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_SI_BC || 0)) || 0).toFixed(2) || 0; product.POLH_GROSS_PREM_FC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_RISK_PREM_FC || 0))).toFixed(2) || 0; product.POLH_GROSS_PREM_BC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_RISK_PREM_BC || 0))).toFixed(2) || 0; product.POLH_FEE_FC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(y => parseFloat(y.OLS_FEES_FC || 0)) || 0).toFixed(2) || 0; product.POLH_FEE_BC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(y => parseFloat(y.OLS_FEES_BC || 0)) || 0).toFixed(2) || 0; product.POLH_POL_DISC_FC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_DISC_FC || 0)) || 0).toFixed(2) || 0; product.POLH_POL_DISC_BC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_DISC_BC || 0)) || 0).toFixed(2) || 0; product.POLH_POL_LOAD_FC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_LOAD_FC || 0)) || 0).toFixed(2) || 0; product.POLH_POL_LOAD_BC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_LOAD_BC || 0)) || 0).toFixed(2) || 0; product.POLH_NET_PREM_FC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_NET_PREM_FC || 0))).toFixed(2) || 0; product.POLH_NET_PREM_BC = parseFloat(product.INS_UDW_OIL_GAS.Where(d => d.OLS_STATUS !== "D").Sum(r => parseFloat(r.OLS_NET_PREM_BC || 0))).toFixed(2) || 0; product.POLH_POL_PREM_FC = parseFloat(product.POLH_NET_PREM_FC || 0); product.POLH_POL_PREM_BC = parseFloat(product.POLH_NET_PREM_BC || 0); u.getGlobal("rawInsuranceSourceCalculation")(product); product.INS_UWD_INTERMEDIARY_COMM.ForEach(c => { c.CMM_PREM_AMT_FC = parseFloat(product.POLH_NET_PREM_FC || 0); c.CMM_PREM_AMT_BC = parseFloat(product.POLH_NET_PREM_BC || 0); c.CMM_COM_AMT_FC = parseFloat(c.CMM_PREM_AMT_FC * (c.CMM_COM_PERC * 0.01)).toFixed(2) || 0; c.CMM_COM_AMT_BC = parseFloat(c.CMM_PREM_AMT_BC * (c.CMM_COM_PERC * 0.01)).toFixed(2) || 0; }); product.POLH_POL_COMM_FC = parseFloat(product.INS_UWD_INTERMEDIARY_COMM.Where(c => c.CMM_STATUS !== "D").Sum(y => parseFloat(y.CMM_COM_AMT_FC || 0))).toFixed(2) || 0; product.POLH_POL_COMM_BC = parseFloat(product.INS_UWD_INTERMEDIARY_COMM.Where(c => c.CMM_STATUS !== "D").Sum(y => parseFloat(y.CMM_COM_AMT_BC || 0))).toFixed(2) || 0; return product; }; $scope.rawOilGasPremium = function (product, fullCalculation = true) { /*------------------------------ * POLICY GROSS PREMIUM SUMMARY *----------------------------*/ product.PremiumSummary = []; product.PremiumSummary.Add({ CODE: "GRSPREM", DESCRIPTION: "Gross Premiums", FC_AMOUNT: product.POLH_GROSS_PREM_FC, BC_AMOUNT: product.POLH_GROSS_PREM_BC, TYPE: "P" }); /*-------------------------------- * POLICY DISCOUNT LOADING SUMMARY *------------------------------*/ product.DiscLoadSummary = []; product.INS_UDW_OIL_GAS = (typeof (product.INS_UDW_OIL_GAS) === "string" ? JSON.parse(product.INS_UDW_OIL_GAS || "[]") : product.INS_UDW_OIL_GAS) || []; product.INS_UDW_OIL_GAS.Where(g => g.OLS_STATUS !== "D").ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST.Where(j => j.OLINT_STATUS !== "D").ForEach(z => { z.INS_UDW_RISK_DISCLOAD = (typeof (z.INS_UDW_RISK_DISCLOAD) === "string" ? JSON.parse(z.INS_UDW_RISK_DISCLOAD || "[]") : z.INS_UDW_RISK_DISCLOAD) || []; z.INS_UDW_RISK_DISCLOAD.Where(c => c.DL_STATUS !== "D").ForEach(v => { product.DiscLoadSummary.Add(v); }); }); }); product.DiscLoadSummary.GroupBy(e => e.DL_CODE).Select(b => { return { CODE: b.Key(), DESCRIPTION: b.source[0]["DL_NAME"], FC_AMOUNT: b.Where(c => c.DL_STATUS !== "D").Sum(y => parseFloat(y.DL_AMT_FC || 0)).toFixed(2), BC_AMOUNT: b.Where(c => c.DL_STATUS !== "D").Sum(y => parseFloat(y.DL_AMT_BC || 0)).toFixed(2), TYPE: b.source[0]["DL_TYPE"] }; }).ToArray().ForEach(h => product.PremiumSummary.Add(h)); if (fullCalculation) { /*--------------------- * FEES RECALCULATION *-------------------*/ product.FeeSummary = []; product.INS_UDW_POL_FEES.Where(v => v.POL_FEE_STATUS === "A").ForEach(x => { x.POL_FEE_STATUS = "D"; x.POL_FEE_FC_AMOUNT = 0; x.POL_FEE_BC_AMOUNT = 0; }); product.INS_UDW_OIL_GAS.Where(g => g.OLS_STATUS !== "D").ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST.Where(j => j.OLINT_STATUS !== "D").ForEach(z => { z.INS_UDW_OIL_GAS_FEES = (typeof (z.INS_UDW_OIL_GAS_FEES) === "string" ? JSON.parse(z.INS_UDW_OIL_GAS_FEES || "[]") : z.INS_UDW_OIL_GAS_FEES) || []; z.INS_UDW_OIL_GAS_FEES.Where(c => c.OLS_FEE_STATUS !== "D").ForEach(v => { product.FeeSummary.Add(v); }); }); }); product.INS_UDW_POL_FEES = !product.FeeSummary.Any() ? product.INS_UDW_POL_FEES.Where(x => x.POL_FEE_STATUS !== "U").ToList() : product.INS_UDW_POL_FEES; product.FeeSummary.GroupBy(e => e.OLS_FEE_CODE).Select(q => { return { POL_FEE_CODE: q.Key(), POL_FEE_NAME: q.source[0]["OLS_FEE_NAME"], POL_FEE_FC_AMOUNT: parseFloat(q.Where(c => c.OLS_FEE_STATUS !== "D").Sum(y => parseFloat(y.OLS_FEE_FC_AMOUNT || 0))).toFixed(2) || 0, POL_FEE_BC_AMOUNT: parseFloat(q.Where(c => c.OLS_FEE_STATUS !== "D").Sum(y => parseFloat(y.OLS_FEE_BC_AMOUNT || 0))).toFixed(2) || 0, POL_FEE_STATUS: q.Any(x => x.OLS_FEE_STATUS === "A") ? "A" : "U", POL_FEE_CRTE_DATE: q.source[0]["OLS_FEE_CRTE_DATE"], POL_FEE_CRTE_BY: q.source[0]["OLS_FEE_CRTE_BY"], POL_FEE_MOD_BY: q.source[0]["OLS_FEE_MOD_BY"], POL_FEE_POL_SYS_ID: product.POLH_SYS_ID, POL_FEE_MOD_DATE: q.source[0]["OLS_FEE_MOD_DATE"], POL_FEE_FEE_END_NO: q.source[0]["OLS_FEE_END_NO"], POL_RNW_NO: q.source[0]["OLS_FEE_RNW_NO"] }; }).ToArray().ForEach(h => { product.INS_UDW_POL_FEES.Where(b => b.POL_FEE_CODE == h.POL_FEE_CODE).FirstOrDefault(v => { v.POL_FEE_NAME = h.POL_FEE_NAME; v.POL_FEE_FC_AMOUNT = h.POL_FEE_FC_AMOUNT; v.POL_FEE_BC_AMOUNT = h.POL_FEE_BC_AMOUNT; v.POL_FEE_STATUS = v.POL_FEE_SYS_ID ? "A" : (h.POL_FEE_STATUS || "U"); }); if (!product.INS_UDW_POL_FEES.Where(b => b.POL_FEE_CODE == h.POL_FEE_CODE).Any()) { product.INS_UDW_POL_FEES.Add(h); } }); } /*--------------------- * POLICY FEES SUMMARY *-------------------*/ product.INS_UDW_POL_FEES.GroupBy(e => e.POL_FEE_CODE).Select(b => { return { CODE: b.Key(), DESCRIPTION: b.source[0]["POL_FEE_NAME"], FC_AMOUNT: b.Where(c => c.POL_FEE_STATUS !== "D").Sum(y => parseFloat(y.POL_FEE_FC_AMOUNT || 0)).toFixed(2), BC_AMOUNT: b.Where(c => c.POL_FEE_STATUS !== "D").Sum(y => parseFloat(y.POL_FEE_BC_AMOUNT || 0)).toFixed(2), TYPE: "F" }; }).ToArray().ForEach(h => product.PremiumSummary.Add(h)); /*--------------------------- * POLICY SUM INSURED SUMMARY *--------------------------*/ product.PremiumSummary.Add({ CODE: "SI", DESCRIPTION: "Sum Issured", FC_AMOUNT: product.POLH_POL_SI_FC || 0, BC_AMOUNT: product.POLH_POL_SI_BC || 0, TYPE: "S" }); /*---------------- * POLICY SUMMARY *---------------*/ product.PremiumSummary = product.PremiumSummary.GroupBy(x => x.CODE).Select(d => { return { CODE: d.Key(), DESCRIPTION: d.source[0]["DESCRIPTION"], FC_AMOUNT: d.Sum(y => parseFloat(y.FC_AMOUNT || 0)).toFixed(2), BC_AMOUNT: d.Sum(y => parseFloat(y.BC_AMOUNT || 0)).toFixed(2), TYPE: d.source[0]["TYPE"] }; }); return product; }; $scope.rawOilGasMainPopulate = function (policy) { u.clear_grid_data($scope.oilgas_grid); policy.INS_UDW_OIL_GAS = (typeof (policy.INS_UDW_OIL_GAS) === "string" ? JSON.parse(policy.INS_UDW_OIL_GAS || "[]") : policy.INS_UDW_OIL_GAS) || []; policy.INS_UDW_OIL_GAS.ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST.ForEach(e => { e.INS_UWD_RISK_COVERS = (typeof (e.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(e.INS_UWD_RISK_COVERS || "[]") : e.INS_UWD_RISK_COVERS) || []; e.INS_UWD_RISK_COVERS.ForEach(r => { r.MS_UDW_COVERS = (typeof (r.MS_UDW_COVERS) === "string" ? JSON.parse(r.MS_UDW_COVERS || "{}") : r.MS_UDW_COVERS) || {}; r.RCOV_NAME = r.MS_UDW_COVERS.CVR_NAME || r.RCOV_NAME; delete r.MS_UDW_COVERS; }); e.INS_UDW_OIL_GAS_FEES = (typeof (e.INS_UDW_OIL_GAS_FEES) === "string" ? JSON.parse(e.INS_UDW_OIL_GAS_FEES || "[]") : e.INS_UDW_OIL_GAS_FEES) || []; e.INS_UDW_OIL_GAS_FEES.ForEach(v => { v.OLS_FEE_NAME = v.OLS_FEE_NAME; }); e.INS_UDW_RISK_DISCLOAD = (typeof (e.INS_UDW_RISK_DISCLOAD) === "string" ? JSON.parse(e.INS_UDW_RISK_DISCLOAD || "[]") : e.INS_UDW_RISK_DISCLOAD) || []; }); $scope.oilgas_grid.addRowData(x.OLS_SYS_ID, x); }); $("#riskdetailBadge").text(policy.INS_UDW_OIL_GAS.Where(x => x.OLS_STATUS !== "D").Count() || 0); }; $scope.rawOilGasPopulate = function (policy) { $scope.rawOilGasMainPopulate(policy); u.getGlobal("ProductPopulate")(policy); u.getGlobal("SummaryPopulate")(policy); }; $scope.search_fill = function (policyData) { u.getGlobal("searchFill")(policyData, function (policy) { policy = u.getGlobal("rawOilGasPremium")(policy, false); $scope.rawOilGasPopulate(policy); u.getGlobal("ButtonControl")(policy); }); } u.setGlobal("rawOilGas", $scope.rawOilGas); u.setGlobal("rawOilGasCalculation", $scope.rawOilGasCalculation); u.setGlobal("rawOilGasPremium", $scope.rawOilGasPremium); u.setGlobal("rawOilGasPopulate", $scope.rawOilGasPopulate); u.setGlobal("rawInsuranceSourceCalculation", $scope.rawInsuranceSourceCalculation); u.setGlobalStatic("productSearchFill", $scope.search_fill); u.setGlobal("ButtonControl", function (Product, endorsement) { Product.MS_UDW_ENDORSEMENTS = Product.MS_UDW_ENDORSEMENTS ? Product.MS_UDW_ENDORSEMENTS : []; endorsement = endorsement ? endorsement : (Product.MS_UDW_ENDORSEMENTS.Where(x => (x.END_NO == parseFloat(Product.MS_UDW_ENDORSEMENTS.Max(n => n.END_NO))) && (x.END_TXN_STATE === "O")).FirstOrDefault() || {}); switch (Product.POLH_TXN_STATE) { case "E": { switch (endorsement.END_FLAG) { case "EP": { u.getGlobal("EndorsementElement")(true); u.getGlobal("LocationElement")(true); $("#POLH_POL_START_DATE").prop("disabled", true); /*--------------------------------------------------------------- * Default short period for extention of period during endorsement *--------------------------------------------------------------**/ $("#POLH_PREM_BASIS").prop("disabled", true).val("SP"); } break; case "PP": { u.getGlobal("EndorsementElement")(true); u.getGlobal("LocationElement")(true); /*------------------------------------------------------------------------------------ * Default short period rates for policy dates less than 270 during uw and endorsement *----------------------------------------------------------------------------------**/ let DaysCheck = (Product.POLH_POL_DAYS < 270); $("#POLH_PREM_BASIS").prop("disabled", DaysCheck).val(DaysCheck ? "SP" : "PR"); } break; default: u.getGlobal("EndorsementElement")(true); u.getGlobal("LocationElement")(false); $("#POLH_POL_START_DATE").prop("disabled", true); $("#POLH_POL_END_DATE").prop("disabled", true); /*------------------------------------------------------------------------------------ * Default short period rates for policy dates less than 270 during uw and endorsement *----------------------------------------------------------------------------------**/ let DaysCheck = (Product.POLH_POL_DAYS < 270); $("#POLH_PREM_BASIS").prop("disabled", DaysCheck).val(DaysCheck ? "SP" : "PR"); break; } /*--------------------------------------------- * MOTOR ALLOW COVER UPDATE FOR ENDORSEMENT *--------------------------------------------- */ $("#btn_risk_cover").prop("disabled", false); } break; case "A": case "S": { u.getGlobal("EndorsementElement")(false); u.getGlobal("LocationElement")(false); } break; case "X": { u.getGlobal("EndorsementElement")(false); u.getGlobal("LocationElement")(false); u.form_text_Red_color(); } break; case "C": case "P": { u.getGlobal("EndorsementElement")(false); u.getGlobal("LocationElement")(false); u.getGlobal("DisableFields")(true); u.form_text_Green_color(); } } }); 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 || {}; let Product = u.getGlobal("rawOilGasCalculation")(Unendorsed) || {}; let productSummary = u.getGlobal("rawOilGasPremium")(Product); u.fill_form(productSummary, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(productSummary); u.getGlobal("ButtonControl")(productSummary); u.growl_success("Policy successfully unendorsed.") //let processRevert = await u.revertProcess(Product.POLH_UID); //if (processRevert.state) { // u.growl_success("Policy successfully unendorsed."); //} else { // u.growl_error(processRevert.message); //} } else { u.growl_error(response.message); } $("#policyCalculationsModal").modal("hide"); }); }); }); u.setGlobalStatic("productRecalculateFill", async function () { let Product = u.getGlobal("rawOilGas")() || {}; let oilGasRecalculate = await $scope.oilGasRecalculate(Product); let RIdata = $scope.RIItems(oilGasRecalculate); let treaty = await u.getGlobal("getTreaty")(oilGasRecalculate); oilGasRecalculate.INS_RI_TTY_HEAD = u.getGlobal("RiCalculations")(RIdata, treaty); oilGasRecalculate = u.getGlobal("rawOilGasCalculation")(oilGasRecalculate) || []; oilGasRecalculate = u.getGlobal("rawOilGasPremium")(oilGasRecalculate); u.fill_form(oilGasRecalculate, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(oilGasRecalculate); }); u.setGlobalStatic("RecalculateFill", async function () { /*------------------------------------------ * PREMIUM BASIS PROPERTY && TREATY PROPERTY *-----------------------------------------*/ let days = $("#POLH_POL_DAYS").val(); let subClassCode = $("#POLH_SUB_CLASS_CODE").val(); let premiumBasis = $("#POLH_PREM_BASIS").val(); let currency = $("#POLH_CURRENCY").val(); let year = $("#POLH_POL_UW_YEAR").val(); if (days.length && subClassCode.length && premiumBasis.length && currency.length && year.length) await u.getGlobalStatic("productRecalculateFill")(); }); u.setGlobalStatic("InsuranceSourceChange", async function () { /*----------------------------------------------------------- * I HAVE TO PREVENT THE RECALCULATION OF INS SOURCE RESELECT *----------------------------------------------------------*/ let Product = u.getGlobal("rawOilGas")() || {}; if (Product.INS_UDW_OIL_GAS.Any()) { Product.INS_UDW_OIL_GAS = Product.INS_UDW_OIL_GAS.map(async (x) => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST = x.INS_UDW_OIL_GAS_INTEREST.map(async (z) => { z.INS_UWD_RISK_COVERS = (typeof (z.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(z.INS_UWD_RISK_COVERS || "[]") : z.INS_UWD_RISK_COVERS) || []; z.INS_UWD_RISK_COVERS = z.INS_UWD_RISK_COVERS.Where(d => d.RCOV_STATUS !== "U").ToList(); z.INS_UWD_RISK_COVERS = z.INS_UWD_RISK_COVERS.map(n => { n.RCOV_STATUS = "X"; return n; }); let covers = await u.getGlobal("GetCovers")() || []; covers.ForEach(x => { x.RCOV_RISK_SYS_ID = z.OLINT_SYS_ID; x.RCOV_RISK_NO = z.OLINT_RISK_NO; x.RCOV_CRTE_BY = u.getUserCode(); x.RPCOV_END_NO = z.OLINT_POLH_END_NO || Product.POLH_END_NO; x.RPCOV_RNW_NO = z.OLINT_POLH_RNW_NO || Product.POLH_RENEW_SER_NO; }); z.INS_UWD_RISK_COVERS = [...z.INS_UWD_RISK_COVERS, ...covers]; return z; }); x.INS_UDW_OIL_GAS_INTEREST = await Promise.all(x.INS_UDW_OIL_GAS_INTEREST); return x; }); Product.INS_UDW_OIL_GAS = await Promise.all(Product.INS_UDW_OIL_GAS); /*------------------------------------------------- * REPPOPULATE THE GRID AND RECALCULATE THE RECORDS *------------------------------------------------*/ u.fill_form(Product, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(Product); await u.getGlobalStatic("RecalculateFill")(); }; }); u.setGlobalStatic("EndorsementPremiumRecalculate", async function () { let EnPolicy = u.getGlobal("rawOilGas")() || {}; EnPolicy.INS_UDW_OIL_GAS = (typeof (EnPolicy.INS_UDW_OIL_GAS) === "string" ? JSON.parse(EnPolicy.INS_UDW_OIL_GAS || "[]") : EnPolicy.INS_UDW_OIL_GAS) || []; EnPolicy.INS_UDW_OIL_GAS.ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; }); if (EnPolicy.POLH_TXN_STATE === "E") { let Product = u.getGlobal("rawOilGasCalculation")(EnPolicy) || {}; Product.MS_UDW_ENDORSEMENTS = (typeof (Product.MS_UDW_ENDORSEMENTS) === "string" ? JSON.parse(Product.MS_UDW_ENDORSEMENTS) : Product.MS_UDW_ENDORSEMENTS) || []; if (Product.MS_UDW_ENDORSEMENTS.Any(e => e.END_TXN_STATE == "O")) { let Endorsement = Product.MS_UDW_ENDORSEMENTS.FirstOrDefault(e => e.END_TXN_STATE == "O") || {}; const oldPolicy = await u.getGlobal("fetchPolicyHistory")(Product.POLH_SYS_ID, parseFloat(Endorsement.END_NO) - 1, Product.POLH_RENEW_SER_NO); switch (Endorsement.END_FLAG) { case "EP": case "PP": case "GE": let NowProduct = JSON.parse(JSON.stringify(Product)); $scope.RIProduct = await $scope.ProductDifference(NowProduct, oldPolicy); Product.MS_UDW_ENDORSEMENTS = $scope.RIProduct.MS_UDW_ENDORSEMENTS || []; break; default: $scope.RIProduct = {}; break; } Product = u.getGlobal("rawOilGasPremium")(Product, false); u.fill_form(Product, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(Product); } } else if (EnPolicy.POLH_TXN_STATE === "S") { await u.getGlobalStatic("RecalculateFill")(); } }); u.setGlobalStatic("CancelationPremiumRecalculate", async function () { let EnPolicy = u.getGlobal("rawOilGas")() || {}; EnPolicy.INS_UDW_OIL_GAS = (typeof (EnPolicy.INS_UDW_OIL_GAS) === "string" ? JSON.parse(EnPolicy.INS_UDW_OIL_GAS || "[]") : EnPolicy.INS_UDW_OIL_GAS) || []; EnPolicy.INS_UDW_OIL_GAS.ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; }); if (EnPolicy.POLH_TXN_STATE === "X") { EnPolicy.MS_UDW_ENDORSEMENTS = (typeof (EnPolicy.MS_UDW_ENDORSEMENTS) === "string" ? JSON.parse(EnPolicy.MS_UDW_ENDORSEMENTS) : EnPolicy.MS_UDW_ENDORSEMENTS) || []; if (EnPolicy.MS_UDW_ENDORSEMENTS.Any(e => e.END_TXN_STATE === "O")) { /*-------------------------------- * RISK POLICY PREMIUM CALCULATION *-------------------------------*/ let productCalculation = u.getGlobal("rawOilGasCalculation")(EnPolicy) || {}; let productSummary = u.getGlobal("rawOilGasPremium")(productCalculation); let rIdata = $scope.RIItems(productSummary); let treaty = await u.getGlobal("getTreaty")(productSummary); productSummary.INS_RI_TTY_HEAD = u.getGlobal("RiCalculations")(rIdata, treaty); let endorsement = productSummary.MS_UDW_ENDORSEMENTS.FirstOrDefault(e => e.END_TXN_STATE === "O") || {}; $scope.oldPolicy = u.getGlobal("cancelationHistory"); switch (endorsement.END_FLAG) { case "IC": case "FC": let newEndorsement = $scope.FinancialDifference(JSON.parse(JSON.stringify(productSummary)), {}, endorsement); productSummary.MS_UDW_ENDORSEMENTS = productSummary.MS_UDW_ENDORSEMENTS.Where(x => x.END_TXN_STATE !== "O").ToList() || []; productSummary.MS_UDW_ENDORSEMENTS.Add(newEndorsement); break; case "PC": productSummary = await $scope.internalProRatedCancellationSetup(productSummary); break; default: break; } productSummary = u.getGlobal("rawOilGasPremium")(productSummary, false); u.fill_form(productSummary, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(productSummary); } } }); u.setGlobalStatic("CurrencyChanges", async function (Product, endorsement) { /*---------------- * TREATY PROPERTY *---------------*/ let currency = $("#POLH_CURRENCY").val(); let year = $("#POLH_POL_UW_YEAR").val(); let subProduct = $("#POLH_SUB_CLASS_CODE").val(); if (currency.length && year.length && subProduct.length) await u.getGlobalStatic("productRecalculateFill")(); }); u.setGlobalStatic("PolicyPeriodDays", function () { let sDate = $("#POLH_POL_START_DATE").val() || u.get_datetime(); let eDate = $("#POLH_POL_END_DATE").val() || u.subtract(u.dateFastForward(sDate, 2, "years"), "1", "d"); /*u.dateFastForward(sDate, 1, "years");*/ let polPeriodDays = parseFloat(u.totalDays(eDate, sDate) || 0); let policyTermsDays = parseInt(u.getGlobal("productTerms")()) || 365; if (polPeriodDays <= 0 || polPeriodDays > policyTermsDays) { $("#POLH_POL_END_DATE").val(""); $("#POLH_POL_DAYS").val(""); u.growl_warning(`Policy End date cannot be less than or equal to start date or more than ${policyTermsDays} days`); } else { let startDateTime = u.addTime(sDate); $("#POLH_POL_START_DATE").val(startDateTime); let endDateTime = u.addTimeOption(eDate, { hour: 0, minute: 0, second: 0, millisecond: 0 }); $("#POLH_POL_END_DATE").val(endDateTime); let polUwy = u.getYear(startDateTime); $("#POLH_POL_UW_YEAR").val(polUwy); if (polPeriodDays >= (policyTermsDays - 4) || polPeriodDays == policyTermsDays) { $("#POLH_POL_DAYS").val((policyTermsDays - 2)); } else { $("#POLH_POL_DAYS").val(polPeriodDays); } } }); u.setGlobalStatic("ResetPolicy", $scope.reset); $scope.reset = function () { u.form_reset("#oilgasForm"); u.form_reset("#policyFilesForm"); u.clear_grid_data($scope.oilgas_grid); }; u.setGlobalStatic("oilAndGasReset", $scope.reset); $("#btn_Reset").on("click", function () { u.modal_confirmation("Are you sure you want to clear all data from the form?", function (e) { $scope.reset(); $("#btn_Save").prop("disabled", "false"); $("#btnDelete").prop("disabled", "false"); $("#btnProcessPolicy").prop("disabled", "false"); u.hideWarning(); u.growl_success("Form successfully cleared"); }); }); /*--------------- * Policy DETAILS *--------------*/ /*------------------------ * OIL GAS LOCATION DETAILS *------------------------*/ $("#btn_add_location").click(function () { if (!u.form_validation("#polheaderForm")) { $("#tabs").tabs({ active: 0 }); return u.growl_warning("Please fill the fields that are marked red"); } $scope.treatyData = $scope.treatyData ? $scope.treatyData : u.getGlobal("treatyData"); /*--------------------------- * POLICY HEAD FORM DATA *--------------------------*/ const product = u.parse_form("#polheaderForm") || {}; if (!$scope.treatyData) { s.getProductTreaty(product.POLH_SUB_CLASS_CODE, product.POLH_POL_UW_YEAR, product.POLH_CURRENCY, function (response) { if (response.state && response.data) { $scope.treatyData = response.data; u.growl_success("Treaty successfully fetched for the selected product"); } else { u.growl_error("Treaty not setup for the current underwriting year."); } }, function () { u.growl_error("Server Error: -Error fetching treaty data, please contact system admin."); }); } $("#btnLocationDetailReset").show(); $("#btn_add_location_details").show(); $("#btn_update_location_details").hide(); u.form_reset("#oilgasForm"); let data = { OLS_CURRENCY: product.POLH_CURRENCY, OLS_CURRENCY_RATE: product.POLH_CURRENCY_RATE, OLS_STATUS: "U", OLS_SYS_ID: "", //PLOC_START_DATE: product.POLH_POL_START_DATE, //PLOC_END_DATE: product.POLH_POL_END_DATE, //PLOC_RIC_YN: "N" }; u.fill_form(data, "#oilgasForm"); $("#oilgasModal").modal(); }); $("#btn_edit_location").click(function () { let grid = $scope.oilgas_grid; if (u.grid_empty(grid)) return u.growl_info("Location grid is empty"); $("#btnLocationDetailReset").hide(); $("#btn_add_location_details").hide(); $("#btn_update_location_details").show(); let rowId = u.getSelRow(grid); if (rowId) { u.form_reset("#oilgasForm"); let data = u.getRow(rowId, grid) || {}; if (data.OLS_STATUS === "D") return u.growl_warning("Deleted records can not be edited"); u.fill_form(data, "#oilgasForm"); //$("#PLOC_REG_CODE").trigger("blur"); //$("#PLOC_AREA_CODE").trigger("blur"); $("#oilgasModal").modal(); } else { u.hide_confirm(); return u.growl_warning("Please select the correct row to edit"); }; }); $("#btn_remove_location_details").on("click", function () { let grid = $scope.oilgas_grid; if (u.grid_empty(grid)) return u.modalAlert("Grid is empty!!!"); let rowId = u.getSelRow(grid); let Result = u.getRow(rowId, grid) || {}; /*-------------------------------- * AT LEAST A RECORD SHOULD EXIST *--------------------------------*/ let NotDeletedLocation = u.get_grid_data(grid).Where(x => x.OLS_STATUS !== "D").ToList(); let location = (NotDeletedLocation.Count() === 1) && (Result.OLS_STATUS !== "D"); if (location) { return u.modalWarning(`Record should exist for this policy`); } var recordStatus = Result.OLS_STATUS; /*--------------------------------- * Display modal message *------------------------------*/ u.modal_confirmation("Are you sure you want to remove the Record?", async function (e) { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ if (recordStatus == "U") { grid.jqGrid("delRowData", rowId); Result = {}; u.hide_confirm(); u.form_reset("#locationForm"); u.growl_success("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ if (recordStatus == "A") { Result = $scope.LocationStatus(Result, "D"); 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") { Result = $scope.LocationStatus(Result, "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } /*---------------------------- * POLICY PREMIUM CALCULATION *----------------------------*/ let rawPolicy = u.getGlobal("rawOilGas")() || {}; rawPolicy.INS_UDW_OIL_GAS = (typeof (rawPolicy.INS_UDW_OIL_GAS) === "string" ? JSON.parse(rawPolicy.INS_UDW_OIL_GAS || "[]") : rawPolicy.INS_UDW_OIL_GAS) || []; rawPolicy.INS_UDW_OIL_GAS = rawPolicy.INS_UDW_OIL_GAS.Where(b => b.OLS_SYS_ID != Result.OLS_SYS_ID).ToList(); if (Object.keys(Result).length) rawPolicy.INS_UDW_OIL_GAS.Add(Result); let policy = await $scope.oilGasRecalculate(rawPolicy); let productCalculation = u.getGlobal("rawOilGasCalculation")(policy) || {}; let productSummary = u.getGlobal("rawOilGasPremium")(productCalculation); let rIdata = $scope.RIItems(policy); let treaty = await u.getGlobal("getTreaty")(productSummary); policy.INS_RI_TTY_HEAD = u.getGlobal("RiCalculations")(rIdata, treaty); u.fill_form(productSummary, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(productSummary); //if (productSummary.POLH_TXN_STATE === "E") await u.getGlobalStatic("EndorsementPremiumRecalculate")(); }); }); $("#btn_open_location_interest").click(async function () { const grid = $scope.oilgas_grid; if (u.grid_empty(grid)) return u.growl_info("Grid is empty!"); let selId = u.getSelRow(grid); let data = selId ? u.getRow(selId, grid) : {}; let formData = u.parse_form("#oilgasForm") || {}; if (data.OLS_SYS_ID == formData.OLS_SYS_ID) { u.form_reset("#olintDetailsForm"); u.clear_grid_data($scope.olintDetails_grid); const data = u.getRow(selId, grid); data.INS_UDW_OIL_GAS_INTEREST = (typeof (data.INS_UDW_OIL_GAS_INTEREST) == "string" ? JSON.parse(data.INS_UDW_OIL_GAS_INTEREST || "[]") : data.INS_UDW_OIL_GAS_INTEREST) || []; data.INS_UDW_OIL_GAS_INTEREST.ForEach(x => { $scope.olintDetails_grid.addRowData(x.OLINT_SYS_ID, x); }); $("#OLINTDetailsModal").modal(); } else { u.growl_info("No Record selected, Please check and try again"); } }); $("#btn_add_location_details").on("click", async function () { if (u.form_validation("#oilgasForm")) { let result = u.get_grid_data($scope.oilgas_grid) || []; const formData = u.parse_form("#oilgasForm") || {}; if (result.Any(x => x.OLS_REGION_CODE === formData.OLS_REGION_CODE && x.OLS_AREA_CODE === formData.OLS_AREA_CODE && x.OLS_LOC_CODE === formData.OLS_LOC_CODE)) { return u.growl_warning(`There already exists in the grid a record with the same Region, District, and Location. Please make sure you are not making a duplicate entry`); } /*--------------------------- * POLICY HEAD FORM DATA *--------------------------*/ const product = u.parse_form("#polheaderForm") || {}; u.modalConfirmationAsync("Are you sure you want to add the Location Details?", async function () { formData.OLS_SYS_ID = await s.getSequenceAsync("PROD_RISK_SEQ"); formData.OLS_POLH_SYS_ID = product.POLH_SYS_ID; formData.OLS_POLH_END_NO = product.POLH_END_NO; formData.OLS_POLH_RNW_NO = product.POLH_RENEW_SER_NO; formData.OLS_STATUS = "U"; formData.OLS_CRTE_BY = u.getUserCode(); formData.OLS_CRTE_DATE = u.get_date(); formData.OLS_RIPML = ($("#OLS_RIPML").is(":checked")) ? "Y" : "N"; $scope.oilgas_grid.addRowData(formData.OLS_SYS_ID, formData); u.hide_confirm(); u.growl_success("Location successfully added to grid"); $("#oilgasModal").modal("hide"); u.form_reset("#oilgasForm"); }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_location_details").on("click", function () { if (u.grid_empty($scope.oilgas_grid)) return u.growl_info("Location grid is empty"); if (u.form_validation("#oilgasForm")) { u.modal_confirmation("Are you sure you want to update the selected Location?", function () { const grid = $scope.oilgas_grid; let rowId = u.getSelRow(grid); let data = rowId ? u.getRow(rowId, grid) : {}; let formData = u.parse_form("#oilgasForm") || {}; if (data.OLS_SYS_ID == formData.OLS_SYS_ID) { data = u.objectSpread(data, formData); for (let i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } grid.refresh(); u.hide_confirm(); u.growl_success("Record updated successfully"); $("#oilgasModal").modal("hide"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $("#btnLocationDetailReset").click(function () { u.form_reset("#oilgasForm"); let data = { OLS_STATUS: "U", OLS_SYS_ID: "" }; u.fill_form(data, "#oilgasForm"); }); /*------------------------------ * OIL GAS INTEREST RISK DETAILS *-----------------------------*/ $("#btn_add_interest").on("click", async function () { if (u.form_validation("#olintDetailsForm")) { let risks = u.get_grid_data($scope.olintDetails_grid) || []; const formData = u.parse_form("#olintDetailsForm") || {}; if (risks.Any(x => x.OLINT_RISK_CODE === formData.OLINT_RISK_CODE)) return u.growl_warning("The selected risk already exists in the grid"); /*--------------------------- * POLICY HEAD FORM DATA *--------------------------*/ const product = u.parse_form("#polheaderForm") || {}; u.modal_confirmation("Are you sure you want to add the Interest Details?", async function () { formData.OLINT_SYS_ID = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); formData.OLINT_STATUS = "U"; formData.OLINT_POLH_END_NO = product.POLH_END_NO; formData.OLINT_POLH_RNW_NO = product.POLH_RENEW_SER_NO; formData.OLINT_CURR_RATE = parseFloat(product.POLH_CURRENCY_RATE || 0).toFixed(2) || 0; formData.OLINT_EML_SI = formData.OLINT_EML_SI || 0; formData.OLINT_START_DATE = formData.OLINT_START_DATE ? formData.OLINT_START_DATE : product.POLH_POL_START_DATE; formData.OLINT_END_DATE = formData.OLINT_END_DATE ? formData.OLINT_END_DATE : product.POLH_POL_END_DATE; formData.OLINT_PERIOD_DAYS = formData.OLINT_PERIOD_DAYS ? formData.OLINT_PERIOD_DAYS : product.POLH_POL_DAYS; formData.OLINT_SUB_CLASS_CODE = formData.OLINT_SUB_CLASS_CODE ? formData.OLINT_SUB_CLASS_CODE : product.POLH_SUB_CLASS_CODE; formData.OLINT_UW_YEAR = formData.OLINT_UW_YEAR ? formData.OLINT_UW_YEAR : product.POLH_POL_UW_YEAR; formData.OLINT_PREMIUM_BASIS = formData.OLINT_PREMIUM_BASIS ? formData.OLINT_PREMIUM_BASIS : product.POLH_PREM_BASIS; formData.OLINT_PRO_RATE = await $scope.PremiumBasisRate(formData); /*----------- * FETCH FEES *-----------*/ const riskFees = { CLASS_CODE: product.POLH_CLASS_CODE, PRD_CODE: product.POLH_SUB_CLASS_CODE, LEVEL: "R" }; formData.INS_UDW_OIL_GAS_FEES = await $scope.GetFees(riskFees) || []; formData.INS_UDW_OIL_GAS_FEES.ForEach(x => { x.OLS_FEE_RK_SYS_ID = formData.OLINT_SYS_ID; x.OLS_FEE_CURR_RATE = formData.OLINT_CURR_RATE || 0; x.OLS_FEE_END_NO = formData.OLINT_POLH_END_NO || product.POLH_END_NO; x.OLS_FEE_RNW_NO = formData.OLINT_POLH_RNW_NO || product.POLH_RENEW_SER_NO; x.OLS_FEE_RK_CODE = formData.OLINT_RISK_CODE; $scope.RiskFeesCalculate(x); }); /*--------- * FETCH DL *----------*/ const riskDL = { PRD_CODE: product.POLH_SUB_CLASS_CODE, DEF: 'Y' }; formData.INS_UDW_RISK_DISCLOAD = await $scope.GetDiscountload(riskDL) || []; formData.INS_UDW_RISK_DISCLOAD.ForEach(x => { x.DL_RISK_SYS_ID = formData.OLINT_SYS_ID; x.DL_PREM_FC = formData.OLINT_GROSS_PRM_FC; x.DL_PREM_BC = formData.OLINT_GROSS_PRM_BC; x.DL_END_NO = formData.OLINT_POLH_END_NO || product.POLH_END_NO; x.DL_RNW_NO = formData.OLINT_POLH_RNW_NO || product.POLH_RENEW_SER_NO; $scope.DiscountLoadCalculate(x); }); /*------------- * FETCH COVERS *------------*/ formData.INS_UWD_RISK_COVERS = await u.getGlobal("GetCovers")() || []; formData.INS_UWD_RISK_COVERS.ForEach(x => { x.RCOV_RISK_SYS_ID = formData.OLINT_SYS_ID; x.RCOV_RISK_NO = formData.OLINT_RISK_NO; x.RCOV_CRTE_BY = u.getUserCode(); x.RPCOV_END_NO = formData.OLINT_POLH_END_NO || product.POLH_END_NO; x.RPCOV_RNW_NO = formData.OLINT_POLH_RNW_NO || product.POLH_RENEW_SER_NO; }); $scope.RiskCalculate(formData); $scope.olintDetails_grid.addRowData(formData.OLINT_SYS_ID, formData); u.hide_confirm(); u.growl_success("Interest successfully added to grid"); }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_interest").on("click", function () { if (u.grid_empty($scope.olintDetails_grid)) return u.growl_info("Interest grid is empty"); if (u.form_validation("#olintDetailsForm")) { u.modal_confirmation("Are you sure you want to update the selected Interest?", async function () { const grid = $scope.olintDetails_grid; const rowId = u.getSelRow(grid); let data = u.getRow(rowId, grid) || {}; const formData = u.parse_form("#olintDetailsForm") || {}; if (data.OLINT_SYS_ID == formData.OLINT_SYS_ID) { /*--------------------------- * POLICY HEAD FORM DATA *--------------------------*/ const product = u.parse_form("#polheaderForm") || {}; /*--------------- * RISK FORM DATA *--------------*/ formData.OLINT_START_DATE = formData.OLINT_START_DATE ? formData.OLINT_START_DATE : product.POLH_POL_START_DATE; formData.OLINT_END_DATE = formData.OLINT_END_DATE ? formData.OLINT_END_DATE : product.POLH_POL_END_DATE; formData.OLINT_PERIOD_DAYS = formData.OLINT_PERIOD_DAYS ? formData.OLINT_PERIOD_DAYS : product.POLH_POL_DAYS; formData.OLINT_SUB_CLASS_CODE = formData.OLINT_SUB_CLASS_CODE ? formData.OLINT_SUB_CLASS_CODE : product.POLH_SUB_CLASS_CODE; formData.OLINT_UW_YEAR = formData.OLINT_UW_YEAR ? formData.OLINT_UW_YEAR : product.POLH_POL_UW_YEAR; formData.OLINT_PREMIUM_BASIS = formData.OLINT_PREMIUM_BASIS ? formData.OLINT_PREMIUM_BASIS : product.POLH_PREM_BASIS; data = u.objectSpread(data, formData); data.OLINT_CURR_RATE = parseFloat(product.POLH_CURRENCY_RATE || 0).toFixed(2) || 0; data.OLINT_PRO_RATE = await $scope.PremiumBasisRate(data); /*---------------- * CALCULATE RISK *---------------*/ data.INS_UWD_RISK_COVERS.ForEach(x => { x.RCOV_PRO_RATE = data.OLINT_PRO_RATE; x.RCOV_CURR_RATE = data.OLINT_CURR_RATE; x.RCOV_ANNL_PREM_WEIGHT = 1; $scope.coverCalculate(x); }); $scope.RiskCalculate(data); for (let i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } grid.refresh(); u.hide_confirm(); u.growl_success("Interest Details updated"); //u.form_reset("#interestForm"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $("#btn_remove_interest").on("click", function () { if (u.grid_empty($scope.olintDetails_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.olintDetails_grid; const rowId = u.getSelRow(grid); let data = u.getRow(rowId, grid) || {}; let recordStatus = data.OLINT_STATUS; /*--------------------------------- * 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, "OLINT_STATUS", "D"); $(`#${rowId}`, "#gridOLINTDetails").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}`, "#gridOLINTDetails").css({ color: "black" }); grid.jqGrid("setCell", rowId, "OLINT_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } }); }); $("#btn_reset_interest").on("click", function () { u.form_reset("#olintDetailsForm"); }); $("#btn_risk_cover").click(async function () { const grid = $scope.olintDetails_grid; const selId = u.getSelRow(grid); let data = u.getRow(selId, grid) || {}; const formData = u.parse_form("#olintDetailsForm") || {}; if (data.OLINT_RISK_CODE == formData.OLINT_RISK_CODE) { u.form_reset("#coverForm"); u.clear_grid_data(u.getGlobal("udwCoverGrid")); const data = u.getRow(selId, $scope.olintDetails_grid); data.INS_UWD_RISK_COVERS = (typeof (data.INS_UWD_RISK_COVERS) == "string" ? JSON.parse(data.INS_UWD_RISK_COVERS || "[]") : data.INS_UWD_RISK_COVERS) || []; /*------------------------------------ * THIS IS WHERE THE TRANSITION STARTS *----------------------------------*/ data.INS_UWD_RISK_COVERS.OrderByDescending(x => x.RCOV_RI_SI_YN).Where(d => d.RCOV_STATUS !== "X").ForEach(x => { u.getGlobal("udwCoverGrid").addRowData(x.RCOV_SYS_ID, x); }); $("#RiskCoverModal").modal(); } else { u.growl_warning("No Risk selected, Please check and try again"); }; }); $("#btn_risk_discloading").click(function () { const grid = $scope.olintDetails_grid; if (u.grid_empty(grid)) return u.modalAlert("The risk Grid is empty!!!"); let selId = u.getSelRow(grid); if (selId) { u.form_reset("#riskdiscloadingForm"); u.clear_grid_data(u.getGlobal("udwRskDiscLoadingGrid")); const data = u.getRow(selId, $scope.olintDetails_grid); data.INS_UDW_RISK_DISCLOAD = (typeof (data.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(data.INS_UDW_RISK_DISCLOAD || "[]") : data.INS_UDW_RISK_DISCLOAD) || []; data.INS_UDW_RISK_DISCLOAD.ForEach(x => { u.getGlobal("udwRskDiscLoadingGrid").addRowData(x.DL_SYS_ID, x); }); $("#riskDiscloadingModal").modal(); } else { u.growl_info("Please select a risk"); } }); $("#btnRiskFees").click(function () { const grid = $scope.olintDetails_grid; const selId = u.getSelRow(grid); const data = selId ? u.getRow(selId, grid) : {}; if (selId) { u.form_reset("#riskfeesForm"); u.clear_grid_data($scope.riskFees_grid); data.INS_UDW_OIL_GAS_FEES = (typeof (data.INS_UDW_OIL_GAS_FEES) == "string" ? JSON.parse(data.INS_UDW_OIL_GAS_FEES || "[]") : data.INS_UDW_OIL_GAS_FEES) || []; data.INS_UDW_OIL_GAS_FEES.ForEach(x => { $scope.riskFees_grid.addRowData(x.OLS_FEE_SYS_ID, x); }); $("#riskFeesModal").modal(); } else { u.growl_warning("No Risk selected, Please check and try again"); }; }); $("#btnInterestOk").click(function () { const grid = $scope.olintDetails_grid; if (/*u.grid_empty(grid)*/ false) { $("#OLINTDetailsModal").modal("hide"); } else { /*--------------------------------- * PREVENT RECALCULATE AT APPROVAL *----------------------------------*/ if ($("#POLH_TXN_STATE").val() == "P") return $("#OLINTDetailsModal").modal("hide"); const result = u.get_grid_data(grid) || []; $("#policyCalculationsModal").modal(); setTimeout(async function () { const selId = u.getSelRow($scope.oilgas_grid); let productResult = u.getRow(selId, $scope.oilgas_grid) || {}; productResult.INS_UDW_OIL_GAS_INTEREST = u.get_grid_data(grid) || []; $scope.LocationCalculate(productResult); for (let i in productResult) $scope.oilgas_grid.jqGrid("setCell", selId, i, productResult[i]); u.form_reset("#olintDetailsForm"); u.clear_grid_data(grid); $("#OLINTDetailsModal").modal("hide"); $("#policyCalculationsModal").modal("hide"); /*---------------------------- * POLICY PREMIUM CALCULATION *--------------------------*/ let rawPolicy = u.getGlobal("rawOilGas")() || {}; let policy = u.getGlobal("rawOilGasCalculation")(rawPolicy) || {}; let productSummary = u.getGlobal("rawOilGasPremium")(policy); let rIdata = $scope.RIItems(productSummary); let treaty = await u.getGlobal("getTreaty")(productSummary); productSummary.INS_RI_TTY_HEAD = u.getGlobal("RiCalculations")(rIdata, treaty); u.fill_form(productSummary, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(productSummary); //if (productSummary.POLH_TXN_STATE === "E") await u.getGlobalStatic("EndorsementPremiumRecalculate")(); //if (productSummary.POLH_TXN_STATE === "X") await u.getGlobalStatic("CancelationPremiumRecalculate")(); grid.refresh(); u.setGlobal("policyChanges", true); }, 500); } }); $("#OLINT_RI_EML").change(function () { let result = $("#OLINT_RI_EML").val() === "N"; $("#OLINT_EML_SI").prop("disabled", result).val(result ? "0" : ($("#OLINT_EML_SI").val() || "100")); }); u.percentFieldValidation("#OLINT_EML_SI"); /*--------------------------- * OIL GAS RISK COVER DETAILS *---------------------------*/ $("#RCOV_SI_FC, #RCOV_RATE, #RCOV_ANNL_PREM_FC").blur(async function () { /*---------------------------- * SELECTED RISK GRID DATA *--------------------------**/ let grid = $scope.olintDetails_grid; let selId = u.getSelRow(grid); let gridData = selId ? u.getRow(selId, grid) : {}; gridData.OLINT_PREMIUM_BASIS = gridData.OLINT_PREMIUM_BASIS || $("#POLH_PREM_BASIS").val(); /*---------------------------- * SELECTED COVER GRID DATA *--------------------------**/ let coverGrid = $scope.cover_grid; const rowId = u.getSelRow(coverGrid); let coverGridData = rowId ? u.getRow(rowId, coverGrid) : {}; /*------------------------- * COVER SELECTED FORM DATA *----------------------**/ let c = u.parse_form("#coverForm") || {}; c.RCOV_PRO_RATE = await $scope.PremiumBasisRate(gridData); c.RCOV_CURR_RATE = parseFloat($("#POLH_CURRENCY_RATE").val()); c.RCOV_ANNL_PREM_WEIGHT = 1; /*---------------------------- * ONLY FOR ADDING NEW COVERS *-------------------------**/ coverGridData = c.RCOV_CODE === coverGridData.RCOV_CODE ? coverGridData : {}; //c = { ...coverGridData, ...c }; c = u.objectSpread(coverGridData, c); $scope.coverCalculate(c); u.fill_form(c, "#coverForm", false); }); $("#btn_add_cover").on("click", function () { if (u.form_validation("#coverForm")) { let coverData = u.get_grid_data($scope.cover_grid) || []; let formData = u.parse_form("#coverForm") || {}; if (coverData.Any(x => x.RCOV_CODE === formData.RCOV_CODE)) return u.growl_warning(`Record with code ${formData.RCOV_CODE} already exists`); u.modal_confirmation("Are you sure you want to add the Cover?", function () { const productRiskData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), CUR_RATE: $("#POLH_CURRENCY_RATE").val(), RCOV_CODE: $("#RCOV_CODE").val() }; s.getAddRiskCovers(productRiskData, function (result) { if (result && result.length && result.length > 0) { let fetchedCover = result.Where(x => x.RCOV_CODE === formData.RCOV_CODE).FirstOrDefault() || {}; let Risk = u.getRow(u.getSelRow($scope.olintDetails_grid), $scope.olintDetails_grid) || {}; formData.RCOV_SYS_ID = fetchedCover.RCOV_SYS_ID; formData = u.objectSpread(JSON.parse(JSON.stringify(fetchedCover)), formData); formData.MS_UDW_COVERS = (typeof (formData.MS_UDW_COVERS) === "string" ? JSON.parse(formData.MS_UDW_COVERS || "{}") : formData.MS_UDW_COVERS) || {}; formData.RCOV_NAME = formData.MS_UDW_COVERS.CVR_NAME || formData.RCOV_NAME; formData.RCOV_RISK_SYS_ID = Risk.OLINT_SYS_ID; formData.RCOV_CRTE_BY = u.getUserCode(); formData.RCOV_STATUS = "U"; formData.RPCOV_END_NO = Risk.OLINT_POLH_END_NO; formData.RPCOV_RNW_NO = Risk.OLINT_POLH_RNW_NO; $scope.cover_grid.addRowData(undefined, formData); u.hide_confirm(); u.growl_success("Record successfully added"); u.form_reset("#coverForm"); } else { u.hide_confirm(); u.growl_error("Error occured, please check and try again"); } }); }); } else { u.hide_confirm(); u.growl_error("Please fill out the fields that are marked red"); } }); $("#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?", async function () { /*------------------------ * SELECTED RISK GRID DATA *-----------------------**/ let gridData = u.getRow(u.getSelRow($scope.olintDetails_grid), $scope.olintDetails_grid); gridData.OLINT_PREMIUM_BASIS = gridData.OLINT_PREMIUM_BASIS || $("#POLH_PREM_BASIS").val(); gridData.OLINT_PERIOD_DAYS = gridData.OLS_PERIOD_DAYS || $("#POLH_POL_DAYS").val(); gridData.OLINT_SUB_CLASS_CODE = gridData.OLS_SUB_CLASS_CODE || $("#POLH_SUB_CLASS_CODE").val(); let grid = $scope.cover_grid; const rowId = u.getSelRow(grid); let Product = { POLH_CURRENCY_RATE: parseFloat($("#POLH_CURRENCY_RATE").val() || 0).toFixed(2) || 0, POLH_POL_DAYS: parseFloat($("#POLH_POL_DAYS").val() || 0) || 0, POLH_PREM_BASIS: $("#POLH_PREM_BASIS").val(), POLH_SUB_CLASS_CODE: $("#POLH_SUB_CLASS_CODE").val() }; let result = u.getRow(rowId, grid) || {}; let data = u.parse_form("#coverForm") || {}; if (result.RCOV_SYS_ID == data.RCOV_SYS_ID) { if (Product.POLH_CURRENCY_RATE == "" || Product.POLH_CURRENCY_RATE == 0) { u.hide_confirm(); u.growl_warning("The Currency Rate cannot be zero (0) please check and try again"); } else { //let c = { ...result, ...data }; let c = u.objectSpread(result, data); c.RCOV_PRO_RATE = await $scope.PremiumBasisRate(gridData); c.RCOV_CURR_RATE = parseFloat($("#POLH_CURRENCY_RATE").val()); c.RCOV_ANNL_PREM_WEIGHT = 1; $scope.coverCalculate(c); for (let i in c) grid.jqGrid("setCell", rowId, i, c[i]); //let coverData = u.get_grid_data(grid) || []; //u.clear_grid_data(grid); //coverData.ForEach(g => { // g.RCOV_SI_FC = c.RCOV_TYPE === "O" ? parseFloat(c.RCOV_SI_FC || 0) : g.RCOV_SI_FC; // g.RCOV_SI_BC = c.RCOV_TYPE === "O" ? parseFloat(g.RCOV_SI_FC * parseFloat($("#POLH_CURRENCY_RATE").val() || 1)).toFixed(2) : g.RCOV_SI_BC; // grid.addRowData(g.RCOV_SYS_ID, g); //}); grid.refresh(); u.hide_confirm(); u.growl_success("Risk Cover updated"); u.form_reset("#coverForm"); } } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } u.hide_confirm(); }); } }); $("#btn_remove_cover").on("click", function () { if (u.grid_empty($scope.cover_grid)) return u.modalAlert("Grid is empty!!!"); let grid = $scope.cover_grid; const rowId = u.getSelRow(grid); const data = u.getRow(rowId, grid) || {}; var recordStatus = data.RCOV_STATUS; /*--------------------------------- * Checks if cover is not defaulted *--------------------------------*/ if (data.RCOV_DFT === "Y") return u.growl_warning("Default covers can not be deleted"); 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}`, "#gridAppCovers").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}`, "#gridAppCovers").css({ color: "black" }); grid.jqGrid("setCell", rowId, "RCOV_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } u.form_reset("#coverForm"); }); }); $("#btnRiskCoverOk").click(function () { const grid = u.getGlobal("udwCoverGrid"); if (false) { $("#RiskCoverModal").modal("hide"); } else { /*--------------------------------- * PREVENT RECALCULATE AT APPROVAL *----------------------------------*/ if ($("#POLH_TXN_STATE").val() == "P") return $("#RiskCoverModal").modal("hide"); const result = u.get_grid_data(grid) || []; $("#policyCalculationsModal").modal(); setTimeout(function () { const rowId = u.getSelRow($scope.olintDetails_grid); let productResult = u.getRow(rowId, $scope.olintDetails_grid) || {}; /*------------------------------------ * THIS IS WHERE THE TRANSITION STARTS *----------------------------------*/ productResult.INS_UWD_RISK_COVERS = productResult.INS_UWD_RISK_COVERS.Where(d => d.RCOV_STATUS === "X").ToList(); productResult.INS_UWD_RISK_COVERS = [...result, ...productResult.INS_UWD_RISK_COVERS]; productResult.OLINT_CURR_RATE = $("#POLH_CURRENCY_RATE").val(); $scope.RiskCalculate(productResult); for (let i in productResult) { $scope.olintDetails_grid.jqGrid("setCell", rowId, i, productResult[i]); } $scope.olintDetails_grid.refresh(); $("#RiskCoverModal").modal("hide"); $("#policyCalculationsModal").modal("hide"); u.form_reset("#coverForm"); u.clear_grid_data(u.getGlobal("udwCoverGrid")); }, 500); u.setGlobal("policyChanges", true); } }); $("#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" ? JSON.parse(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 risk"); } }); $("#btnQueryRiskCoverLov").on("click", async function () { const riskCoverData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val() }; const grid = $scope.riskCovers_grid; let result = await s.getRiskCoversLovAsync(riskCoverData); if (result && result.length && result.length > 0) { grid.jqGrid("clearGridData"); u.bigDataPopulate(grid, result); } }); $("#btnAddNewCover").on("click", function () { if ($("#POLH_CLASS_CODE").val() == "") { u.growl_warning("Product Code is empty, Please check and try again"); } else { $("#AddNewCoverModal").modal(); } }); /*--------------------------- * OIL GAS RISK COVER DETAILS *---------------------------*/ $("#btn_add_riskdiscloading").on("click", function () { if (u.form_validation("#riskdiscloadingForm")) { u.modal_confirmation("Are you sure you want to add the Risk Discount/Loading Details?", function () { let discountLoadData = u.get_grid_data($scope.riskdiscloading_grid) || []; const formData = u.parse_form("#riskdiscloadingForm") || {}; if (discountLoadData.Any(x => x.DL_CODE === formData.DL_CODE)) return u.growl_warning(`Record with code ${formData.DL_CODE} already exists`); /*-------------- * GET RISK DATA *------------**/ let Risk = u.getRow(u.getSelRow($scope.olintDetails_grid), $scope.olintDetails_grid) || {}; /*------------------ * GET DL FORM DATA *----------------**/ formData.DL_STATUS = "U"; formData.DL_CRTE_BY = u.getUserCode(); formData.DL_CRTE_DATE = u.get_date(); formData.DL_PREM_FC = Risk.OLINT_GROSS_PRM_FC; formData.DL_PREM_BC = Risk.OLINT_GROSS_PRM_BC; formData.DL_END_NO = Risk.OLINT_POLH_END_NO; formData.DL_RNW_NO = Risk.OLINT_POLH_RNW_NO; $scope.DiscountLoadCalculate(formData); $scope.riskdiscloading_grid.addRowData(undefined, formData); u.hide_confirm(); u.growl_success("Record successfully added to grid"); u.form_reset("#riskdiscloadingForm"); }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_riskdiscloading").on("click", function () { if (u.grid_empty($scope.riskdiscloading_grid)) return u.growl_info("Grid is empty"); if (u.form_validation("#riskdiscloadingForm")) { u.modal_confirmation("Are you sure you want to update the selected Discount/Loading?", function () { const grid = $scope.riskdiscloading_grid; const rowId = u.getSelRow(grid); let result = u.getRow(rowId, grid) || {}; if (result.DL_CODE === $("#riskdiscloadingForm").find("input[name='DL_CODE']").val()) { const data = u.parse_form("#riskdiscloadingForm"); for (let i in data) grid.jqGrid("setCell", rowId, i, data[i]); grid.refresh(); u.hide_confirm(); u.growl_success("Risk Discount/Loading updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $("#btn_remove_riskdiscloadings").on("click", function () { if (u.grid_empty($scope.riskdiscloading_grid)) return u.modalAlert("Grid is empty!!!"); let grid = $scope.riskdiscloading_grid; let rowId = u.getSelRow(grid); let Result = u.getRow(rowId, grid) || {}; if (Result.DL_CODE === $("#riskdiscloadingForm").find("input[name='DL_CODE']").val()) { var recordStatus = Result.DL_STATUS; /*---------------------------------------- * PREVENT DELETE OF DEFAULT DISCOUNT LOAD *---------------------------------------*/ if (Result.DL_DFT === "Y") return u.growl_warning("Default Discount/Load can not be deleted!!!"); /*--------------------------------- * 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, "DL_STATUS", "D"); $(`#${rowId}`, "#grdRiskDiscloading").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}`, "#grdRiskDiscloading").css({ color: "black" }); grid.jqGrid("setCell", rowId, "DL_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } }); } }); $("#btnDiscountLoadinOk").click(function () { const grid = $scope.riskdiscloading_grid; if (/*u.grid_empty(grid)*/ false) { $("#riskDiscloadingModal").modal("hide"); } else { const result = u.get_grid_data(grid); $("#policyCalculationsModal").modal(); setTimeout(async function () { let rowId = u.getSelRow($scope.olintDetails_grid); let productResult = u.getRow(rowId, $scope.olintDetails_grid); /*------------------------------------ * THIS IS WHERE THE TRANSITION STARTS *----------------------------------*/ productResult.INS_UDW_RISK_DISCLOAD = (typeof (productResult.INS_UDW_RISK_DISCLOAD) === "string" ? JSON.parse(productResult.INS_UDW_RISK_DISCLOAD || "[]") : productResult.INS_UDW_RISK_DISCLOAD) || []; productResult.INS_UDW_RISK_DISCLOAD = productResult.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_STATUS === "X").ToList(); productResult.INS_UDW_RISK_DISCLOAD = [...result, ...productResult.INS_UDW_RISK_DISCLOAD]; $scope.RiskDiscountLoadCalculate(productResult); $scope.RiskPremiumCalculate(productResult); for (let i in productResult) $scope.olintDetails_grid.jqGrid("setCell", rowId, i, productResult[i]); u.form_reset("#riskdiscloadingForm"); u.clear_grid_data($scope.riskdiscloading_grid); $("#riskDiscloadingModal").modal("hide"); $("#policyCalculationsModal").modal("hide"); }, 500); } }); $("#RSK_DL_CODE").change(async function () { let data = u.parse_form("#riskdiscloadingForm"); /*---------------------------------------- * PREVENT DEFAULT RATE OR PERCENTAGE FETCH *---------------------------------------*/ //if (data.DL_DFT !== "Y") return; /*----------------------- * RISK DL LOV GRID DATA *---------------------*/ let dlLovGrid = u.getGlobal("udwRskDiscLoadGrid"); let dlLovRowId = u.getSelRow(dlLovGrid); let dlLovData = dlLovRowId ? (u.getRow(dlLovRowId, dlLovGrid) || {}) : {}; /*----------- * RISK DATA *----------*/ let riskGrid = $scope.olintDetails_grid; let rowId = u.getSelRow(riskGrid); let riskData = rowId ? (u.getRow(rowId, riskGrid) || {}) : {}; /*------------ * DL LOV DATA *----------**/ //data = { ...data, ...dlLovData }; data = u.objectSpread(data, dlLovData); data.DL_PREM_FC = riskData.OLINT_GROSS_PRM_FC; data.DL_PREM_BC = riskData.OLINT_GROSS_PRM_BC; data.DL_RISK_SYS_ID = riskData.OLINT_SYS_ID; $scope.DiscountLoadCalculate(data); u.fill_form(data, "#riskdiscloadingForm", false); }); /*--------------------------- * OIL GAS RISK FEES DETAILS *---------------------------*/ $("#feesOk").click(function () { const grid = $scope.riskFees_grid; if (false) { $("#riskFeesModal").modal("hide"); } else { const result = u.get_grid_data(grid) || []; $("#policyCalculationsModal").modal(); setTimeout(async function () { const rowId = u.getSelRow($scope.olintDetails_grid); let productResult = u.getRow(rowId, $scope.olintDetails_grid) || {}; /*------------------------------------ * THIS IS WHERE THE TRANSITION STARTS *----------------------------------*/ productResult.INS_UDW_OIL_GAS_FEES = productResult.INS_UDW_OIL_GAS_FEES.Where(d => d.OLS_FEE_STATUS === "X").ToList(); result.ForEach(x => { productResult.INS_UDW_OIL_GAS_FEES.Add(x) }); productResult.OLINT_CURR_RATE = $("#POLH_CURRENCY_RATE").val(); $scope.RiskCalculate(productResult); for (let i in productResult) { $scope.olintDetails_grid.jqGrid("setCell", rowId, i, productResult[i]); } $scope.olintDetails_grid.refresh(); u.form_reset("#riskfeesForm"); u.clear_grid_data($scope.riskFees_grid); $("#riskFeesModal").modal("hide"); $("#policyCalculationsModal").modal("hide"); }, 500); } }); $("#btn_add_fees").on("click", function () { if (u.form_validation("#riskfeesForm")) { let feesData = u.get_grid_data($scope.riskFees_grid) || []; const formData = u.parse_form("#riskfeesForm") || {}; if (feesData.Any(x => x.OLS_FEE_CODE === formData.OLS_FEE_CODE)) return u.growl_warning(`Record with code ${formData.OLS_FEE_CODE} already exists`); u.modal_confirmation("Are you sure you want to add the record?", function () { /*--------------------- * GET RISK DATA *-------------------**/ let Risk = u.getRow(u.getSelRow($scope.olintDetails_grid), $scope.olintDetails_grid) || {}; /*------------------ * GET FEES FORM DATA *----------------**/ formData.OLS_FEE_STATUS = "U"; formData.OLS_FEE_CRTE_BY = u.getUserCode(); formData.OLS_FEE_CRTE_DATE = u.get_date(); formData.OLS_FEE_END_NO = Risk.OLINT_POLH_END_NO; formData.OLS_FEE_RNW_NO = Risk.OLINT_POLH_RNW_NO; formData.OLS_FEE_RK_SYS_ID = Risk.OLINT_SYS_ID; formData.OLS_FEE_RK_CODE = Risk.OLINT_RISK_CODE; formData.OLS_FEE_CURR_RATE = parseFloat($("#POLH_CURRENCY_RATE").val() || 0) || parseFloat(Risk.OLINT_CURR_RATE || 0); $scope.RiskFeesCalculate(formData); $scope.riskFees_grid.addRowData(undefined, formData); u.hide_confirm(); u.growl_success("Record successfully added to grid"); u.form_reset("#riskfeesForm"); }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_fees").on("click", function () { if (u.grid_empty($scope.riskFees_grid)) return u.growl_info("Grid is empty"); if (u.form_validation("#riskfeesForm")) { u.modal_confirmation("Are you sure you want to update the selected record?", function () { const grid = $scope.riskFees_grid; const rowId = u.getSelRow(grid); let data = rowId ? u.getRow(rowId, grid) : {}; let formData = u.parse_form("#riskfeesForm") || {}; if (data.OLS_FEE_CODE === formData.OLS_FEE_CODE) { data = u.objectSpread(data, formData); for (let i in data) grid.jqGrid("setCell", rowId, i, data[i]); grid.refresh(); u.hide_confirm(); u.growl_success("Record updated successfully"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $("#btn_remove_fees").on("click", function () { if (u.grid_empty($scope.riskFees_grid)) return u.modalAlert("Grid is empty!!!"); let grid = $scope.riskFees_grid; let rowId = u.getSelRow(grid); let Result = rowId ? u.getRow(rowId, grid) : {}; let formData = u.parse_form("#riskfeesForm") || {}; if (Result.OLS_FEE_CODE === formData.OLS_FEE_CODE) { /*---------------------------------- * PREVENT DELETE OF DEFAULT RECORD *---------------------------------*/ if (Result.DL_DFT === "Y") return u.growl_warning("Default Discount/Load can not be deleted!!!"); /*----------------------- * Display modal message *---------------------*/ u.modal_confirmation("Are you sure you want to remove the Record?", function (e) { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ if (Result.OLS_FEE_STATUS == "U") { grid.jqGrid("delRowData", rowId); u.hide_confirm(); u.growl_success("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ if (Result.OLS_FEE_STATUS == "A") { grid.jqGrid("setCell", rowId, "OLS_FEE_STATUS", "D"); $(`#${rowId}`, "#gridCompOilGasFees").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 (Result.OLS_FEE_STATUS == "D") { $(`#${rowId}`, "#gridCompOilGasFees").css({ color: "black" }); grid.jqGrid("setCell", rowId, "OLS_FEE_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } }); } }); $("#btnQueryRiskFeesLov").on("click", async function () { const riskFeesData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), LEVEL: "R" }; const grid = $scope.riskFees_Lov_grid; let result = await s.getRiskFeesLovAsync(riskFeesData); if (result && result.length && result.length > 0) { grid.jqGrid("clearGridData"); u.bigDataPopulate(grid, result); } }); $("#btnAddNewFees").on("click", function () { if ($("#POLH_CLASS_CODE").val() == "") { u.growl_warning("Product Code is empty, Please check and try again"); } else { $("#AddNewFeesModal").modal(); } }); $("#riskFeesLovOk").on("click", function () { const grid = $scope.riskFees_Lov_grid; const selId = u.getSelRow(grid); let data = selId ? u.getRow(selId, grid) : {}; data = { OLS_FEE_CODE: data.PRF_FEE_CODE, OLS_FEE_NAME: data.FEE_NAME, OLS_FEE_FC_AMOUNT: data.PRF_FEE_AMOUNT, OLS_FEE_BC_AMOUNT: data.PRF_FEE_AMOUNT, OLS_FEE_RK_NO: data.PRF_SYS_ID, OLS_FEE_CURR_RATE: parseFloat($("#POLH_CURRENCY_RATE").val() || 0) }; $scope.RiskFeesCalculate(data); u.form_reset("#riskfeesForm"); u.fill_form(data, "#riskfeesForm"); $("#AddNewFeesModal").modal("hide"); }); /*----------------------- * Endorsement functions *-----------------------*/ $scope.setEndorsementNumberOilGas = function (product) { product.INS_UDW_OIL_GAS.ForEach(x => { x.OLS_POLH_END_NO = product.POLH_END_NO; x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) == "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || '[]') : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST.ForEach(z => { z.OLINT_POLH_END_NO = x.OLS_POLH_END_NO; z.INS_UWD_RISK_COVERS = (typeof (z.INS_UWD_RISK_COVERS) == "string" ? JSON.parse(z.INS_UWD_RISK_COVERS || '[]') : z.INS_UWD_RISK_COVERS) || []; z.INS_UWD_RISK_COVERS.ForEach(b => { b.RPCOV_END_NO = z.OLINT_POLH_END_NO; b.INS_UDW_COVER_DISCLOAD = (typeof (b.INS_UDW_COVER_DISCLOAD) == "string" ? JSON.parse(b.INS_UDW_COVER_DISCLOAD || "[]") : b.INS_UDW_COVER_DISCLOAD) || []; b.INS_UDW_COVER_DISCLOAD.ForEach(c => { c.DL_END_NO = b.RPCOV_END_NO; }); }); z.INS_UDW_RISK_DISCLOAD = (typeof (z.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(z.INS_UDW_RISK_DISCLOAD || '[]') : z.INS_UDW_RISK_DISCLOAD) || []; z.INS_UDW_RISK_DISCLOAD.ForEach(w => { w.DL_END_NO = z.OLINT_POLH_END_NO; }); z.INS_UDW_OIL_GAS_FEES = (typeof (z.INS_UDW_OIL_GAS_FEES) == "string" ? JSON.parse(z.INS_UDW_OIL_GAS_FEES || '[]') : z.INS_UDW_OIL_GAS_FEES) || []; z.INS_UDW_OIL_GAS_FEES.ForEach(b => { b.OLS_FEE_END_NO = z.OLINT_POLH_END_NO; }); }); }); }; $scope.oilGasLocationEndorsmentDifference = function (NPol, OPol, End) { /*------------------------------------------------------- * REMOVE OLD LOCATION ENDORSEMENT DIFFERENCE CALCULATION *------------------------------------------------------*/ End.UDW_RISK_ENDSMNT_DTLS = (typeof (End.UDW_RISK_ENDSMNT_DTLS) === "string" ? JSON.parse(End.UDW_RISK_ENDSMNT_DTLS || "[]") : End.UDW_RISK_ENDSMNT_DTLS) || []; End.UDW_RISK_ENDSMNT_DTLS = End.UDW_RISK_ENDSMNT_DTLS.Any() ? End.UDW_RISK_ENDSMNT_DTLS.filter(b => b.RED_SYS_ID) : []; End.UDW_RISK_ENDSMNT_DTLS.ForEach(x => { x.RED_STATUS = "X" }); let PolRisk = (NPol.INS_UDW_OIL_GAS.Count() > OPol.INS_UDW_OIL_GAS.Count() ? NPol.INS_UDW_OIL_GAS : NPol.INS_UDW_OIL_GAS) || []; PolRisk.ForEach(x => { let Oloc = OPol.INS_UDW_OIL_GAS.Where(v => v.OLS_SYS_ID == x.OLS_SYS_ID).FirstOrDefault() || {}; let Nloc = NPol.INS_UDW_OIL_GAS.Where(v => v.OLS_SYS_ID == x.OLS_SYS_ID).FirstOrDefault() || {}; End.UDW_RISK_ENDSMNT_DTLS.Add({ RED_PLOC_SYS_ID: Nloc.OLS_SYS_ID, RED_POL_SYS_ID: NPol.OLS_POLH_SYS_ID, RED_END_NO: NPol.OLS_POLH_END_NO, RED_SI_DIFF_FC: parseFloat(Nloc.OLS_SI_FC || 0) - parseFloat(Oloc.OLS_SI_FC || 0), RED_SI_DIFF_BC: parseFloat(Nloc.OLS_SI_BC || 0) - parseFloat(Oloc.OLS_SI_BC || 0), RED_PREM_DIFF_FC: parseFloat(Nloc.OLS_RISK_PREM_FC || 0) - parseFloat(Oloc.OLS_RISK_PREM_FC || 0), RED_PREM_DIFF_BC: parseFloat(Nloc.OLS_RISK_PREM_BC || 0) - parseFloat(Oloc.OLS_RISK_PREM_BC || 0), RED_FEE_DIFF_FC: (parseFloat(Nloc.OLS_FEES_FC || 0) - parseFloat(Oloc.OLS_FEES_FC || 0)) || 0, RED_FEE_DIFF_BC: (parseFloat(Nloc.OLS_FEES_BC || 0) - parseFloat(Oloc.OLS_FEES_BC || 0)) || 0, RED_LOAD_DIFF_FC: parseFloat(Nloc.OLS_LOAD_FC || 0) - parseFloat(Oloc.OLS_LOAD_FC || 0), RED_LOAD_DIFF_BC: parseFloat(Nloc.OLS_LOAD_BC || 0) - parseFloat(Oloc.OLS_LOAD_BC || 0), RED_DISC_DIFF_FC: parseFloat(Nloc.OLS_DISC_FC || 0) - parseFloat(Oloc.OLS_DISC_FC || 0), RED_DISC_DIFF_BC: parseFloat(Nloc.OLS_DISC_BC || 0) - parseFloat(Oloc.OLS_DISC_BC || 0), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); }); } $scope.ProductDifference = async function (Product, PrevProduct) { let NowProduct = JSON.parse(JSON.stringify(Product)); let OpenEndorsment = NowProduct.MS_UDW_ENDORSEMENTS.Where(x => x.END_TXN_STATE === "O").FirstOrDefault() || {}; OpenEndorsment.END_EFCTV_DATE = NowProduct.POLH_POL_START_DATE; OpenEndorsment.END_TERM_DATE = NowProduct.POLH_POL_END_DATE; NowProduct.MS_UDW_ENDORSEMENTS = NowProduct.MS_UDW_ENDORSEMENTS.Where(x => x.END_TXN_STATE !== "O").ToList() || []; let Endorsement = $scope.FinancialDifference(NowProduct, PrevProduct, OpenEndorsment); NowProduct.MS_UDW_ENDORSEMENTS.Add(Endorsement); return NowProduct; }; $scope.FinancialDifference = function (NPol, OPol, Endorsement) { if (!Endorsement) return u.modalInfo("Could not find endorsement information, please make sure the policy is in the endorsed state"); let End = Object.assign({}, Endorsement) || {}; NPol.INS_UDW_OIL_GAS = (typeof (NPol.INS_UDW_OIL_GAS) === "string" ? JSON.parse(NPol.INS_UDW_OIL_GAS || "[]") : NPol.INS_UDW_OIL_GAS) || []; OPol.INS_UDW_OIL_GAS = (typeof (OPol.INS_UDW_OIL_GAS) === "string" ? JSON.parse(OPol.INS_UDW_OIL_GAS || "[]") : OPol.INS_UDW_OIL_GAS) || []; /*------------------------ * POLICY HEAD ENDORSEMENT *-----------------------*/ u.getGlobal("policyHeadEndorsment")(NPol, OPol, End); /*--------------------- * LOCATION ENDORSEMENT *--------------------*/ $scope.oilGasLocationEndorsmentDifference(NPol, OPol, End) /*------------------------------- * CO-INSURANCE LEADER ENDORSEMENT *------------------------------*/ u.getGlobal("CoInsuranceLeaderEndorsment")(NPol, OPol, End); /*------------------------------- * TREATY SHARE ENDORSEMENT *------------------------------*/ NPol.INS_RI_TTY_HEAD = (typeof (NPol.INS_RI_TTY_HEAD) === "string" ? JSON.parse(NPol.INS_RI_TTY_HEAD || "[]") : NPol.INS_RI_TTY_HEAD) || []; NPol.INS_RI_TTY_HEAD = NPol.INS_RI_TTY_HEAD.Where(c => (c.TTH_ADJ_YN !== "Y") && (c.TTH_STATUS !== "D")).ToList() || []; OPol.INS_RI_TTY_HEAD = (typeof (OPol.INS_RI_TTY_HEAD) === "string" ? JSON.parse(OPol.INS_RI_TTY_HEAD || "[]") : OPol.INS_RI_TTY_HEAD) || []; OPol.INS_RI_TTY_HEAD = OPol.INS_RI_TTY_HEAD.Where(c => (c.TTH_ADJ_YN !== "Y") && (c.TTH_STATUS !== "D")).ToList() || []; u.getGlobal("TreatyShareEndorsement")(NPol, OPol, End); u.setGlobal("policyChanges", true); return End; }; $scope.fullCancellationSetup = async function (Product) { let Endorsement = Product.MS_UDW_ENDORSEMENTS.Where(x => x.END_TXN_STATE === "O").FirstOrDefault() || {}; Product.INS_UDW_OIL_GAS = (typeof (Product.INS_UDW_OIL_GAS) === 'string' ? JSON.parse(Product.INS_UDW_OIL_GAS || '[]') : Product.INS_UDW_OIL_GAS) || []; Product.INS_UDW_OIL_GAS = Product.INS_UDW_OIL_GAS.map(async (x) => { x.OLS_CURRENCY = Product.POLH_CURRENCY; x.OLS_CURRENCY_RATE = Product.POLH_CURRENCY_RATE; x.OLS_SUB_CLASS_CODE = Product.POLH_SUB_CLASS_CODE; x.OLS_UW_YEAR = Product.POLH_POL_UW_YEAR; x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) == "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || '[]') : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST = x.INS_UDW_OIL_GAS_INTEREST.map(async (z) => { z.OLINT_CURRENCY = x.OLS_CURRENCY; z.OLINT_CURR_RATE = x.OLS_CURRENCY_RATE; z.OLINT_SUB_CLASS_CODE = x.OLS_SUB_CLASS_CODE; z.OLINT_UW_YEAR = x.OLS_UW_YEAR; z.OLINT_START_DATE = z.OLINT_START_DATE || Product.POLH_POL_START_DATE; z.OLINT_END_DATE = z.OLINT_END_DATE || Product.POLH_POL_END_DATE; z.OLINT_PERIOD_DAYS = z.OLINT_PERIOD_DAYS || Product.POLH_POL_DAYS; z.OLINT_PREMIUM_BASIS = z.OLINT_PREMIUM_BASIS || Product.POLH_PREM_BASIS; z.OLINT_PRO_RATE = await $scope.PremiumBasisRate(z); z.INS_UWD_RISK_COVERS = (typeof (z.INS_UWD_RISK_COVERS) == "string" ? JSON.parse(z.INS_UWD_RISK_COVERS || '[]') : z.INS_UWD_RISK_COVERS) || []; z.INS_UWD_RISK_COVERS.ForEach(b => { b.RCOV_ANNL_PREM_WEIGHT = -1; b.RCOV_PRO_RATE = z.OLINT_PRO_RATE; b.RCOV_CURR_RATE = z.OLINT_CURR_RATE; $scope.coverCalculate(b); }); z.INS_UDW_OIL_GAS_FEES = (typeof (z.INS_UDW_OIL_GAS_FEES) == "string" ? JSON.parse(z.INS_UDW_OIL_GAS_FEES || '[]') : z.INS_UDW_OIL_GAS_FEES) || []; z.INS_UDW_OIL_GAS_FEES.ForEach(b => { b.OLS_FEE_FC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? -parseFloat(b.OLS_FEE_FC_AMOUNT || 0) : 0; b.OLS_FEE_BC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? -parseFloat(b.OLS_FEE_BC_AMOUNT || 0) : 0; }); z.INS_UDW_RISK_DISCLOAD = (typeof (z.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(z.INS_UDW_RISK_DISCLOAD || '[]') : z.INS_UDW_RISK_DISCLOAD) || []; $scope.RiskCalculate(z); return z; }); x.INS_UDW_OIL_GAS_INTEREST = await Promise.all(x.INS_UDW_OIL_GAS_INTEREST); $scope.LocationCalculate(x); return x; }); Product.INS_UDW_OIL_GAS = await Promise.all(Product.INS_UDW_OIL_GAS); Product = u.getGlobal("rawOilGasCalculation")(Product) || {}; u.getGlobal("rawOilGasPremium")(Product); let NowProduct = JSON.parse(JSON.stringify(Product)); let RIProduct = await $scope.ProductDifference(NowProduct, {}); Product.MS_UDW_ENDORSEMENTS = RIProduct.MS_UDW_ENDORSEMENTS || []; return Product; }; $scope.internalCancellationSetup = async function (Product) { let Endorsement = JSON.parse(JSON.stringify(Product.MS_UDW_ENDORSEMENTS.Where(x => x.END_TXN_STATE === "O").FirstOrDefault())) || {}; Product.INS_UDW_OIL_GAS = (typeof (Product.INS_UDW_OIL_GAS) === 'string' ? JSON.parse(Product.INS_UDW_OIL_GAS || '[]') : Product.INS_UDW_OIL_GAS) || []; Product.INS_UDW_OIL_GAS = Product.INS_UDW_OIL_GAS.map(async (x) => { x.OLS_CURRENCY = Product.POLH_CURRENCY; x.OLS_CURRENCY_RATE = Product.POLH_CURRENCY_RATE; x.OLS_SUB_CLASS_CODE = Product.POLH_SUB_CLASS_CODE; x.OLS_UW_YEAR = Product.POLH_POL_UW_YEAR; x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) == "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || '[]') : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST = x.INS_UDW_OIL_GAS_INTEREST.map(async (z) => { z.OLINT_CURRENCY = x.OLS_CURRENCY; z.OLINT_CURR_RATE = x.OLS_CURRENCY_RATE; z.OLINT_SUB_CLASS_CODE = x.OLS_SUB_CLASS_CODE; z.OLINT_UW_YEAR = x.OLS_UW_YEAR; z.OLINT_START_DATE = z.OLINT_START_DATE || Product.POLH_POL_START_DATE; z.OLINT_END_DATE = z.OLINT_END_DATE || Product.POLH_POL_END_DATE; z.OLINT_PERIOD_DAYS = z.OLINT_PERIOD_DAYS || Product.POLH_POL_DAYS; z.OLINT_PREMIUM_BASIS = z.OLINT_PREMIUM_BASIS || Product.POLH_PREM_BASIS; z.OLINT_PRO_RATE = await $scope.PremiumBasisRate(z); z.INS_UWD_RISK_COVERS = (typeof (z.INS_UWD_RISK_COVERS) == "string" ? JSON.parse(z.INS_UWD_RISK_COVERS || '[]') : z.INS_UWD_RISK_COVERS) || []; z.INS_UWD_RISK_COVERS.ForEach(b => { b.RCOV_ANNL_PREM_WEIGHT = 0; b.RCOV_PRO_RATE = z.OLINT_PRO_RATE; b.RCOV_CURR_RATE = z.OLINT_CURR_RATE; $scope.coverCalculate(b); }); z.INS_UDW_OIL_GAS_FEES = (typeof (z.INS_UDW_OIL_GAS_FEES) == "string" ? JSON.parse(z.INS_UDW_OIL_GAS_FEES || '[]') : z.INS_UDW_OIL_GAS_FEES) || []; z.INS_UDW_OIL_GAS_FEES.ForEach(b => { b.OLS_FEE_FC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? 0 : b.OLS_FEE_FC_AMOUNT; b.OLS_FEE_BC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? 0 : b.OLS_FEE_BC_AMOUNT; }); z.INS_UDW_RISK_DISCLOAD = (typeof (z.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(z.INS_UDW_RISK_DISCLOAD || '[]') : z.INS_UDW_RISK_DISCLOAD) || []; $scope.RiskCalculate(z); return z; }); x.INS_UDW_OIL_GAS_INTEREST = await Promise.all(x.INS_UDW_OIL_GAS_INTEREST); $scope.LocationCalculate(x); return x; }); Product.INS_UDW_OIL_GAS = await Promise.all(Product.INS_UDW_OIL_GAS); Product = u.getGlobal("rawOilGasCalculation")(Product) || {}; u.getGlobal("rawOilGasPremium")(Product); let NowProduct = JSON.parse(JSON.stringify(Product)); let RIProduct = await $scope.ProductDifference(NowProduct, {}); Product.MS_UDW_ENDORSEMENTS = RIProduct.MS_UDW_ENDORSEMENTS || []; return Product; }; $scope.generalEndorsementSetup = async function (Product) { let Endorsement = Product.MS_UDW_ENDORSEMENTS.Where(x => x.END_TXN_STATE === "O").FirstOrDefault() || {}; Product.INS_UDW_OIL_GAS.ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) == "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || '[]') : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST.ForEach(z => { z.INS_UWD_RISK_COVERS = (typeof (z.INS_UWD_RISK_COVERS) == "string" ? JSON.parse(z.INS_UWD_RISK_COVERS || '[]') : z.INS_UWD_RISK_COVERS) || []; z.INS_UWD_RISK_COVERS.ForEach(b => { b.INS_UDW_COVER_DISCLOAD = (typeof (b.INS_UDW_COVER_DISCLOAD) == "string" ? JSON.parse(b.INS_UDW_COVER_DISCLOAD || "[]") : b.INS_UDW_COVER_DISCLOAD) || []; }); z.INS_UDW_OIL_GAS_FEES = (typeof (z.INS_UDW_OIL_GAS_FEES) == "string" ? JSON.parse(z.INS_UDW_OIL_GAS_FEES || '[]') : z.INS_UDW_OIL_GAS_FEES) || []; z.INS_UDW_OIL_GAS_FEES.ForEach(b => { b.OLS_FEE_FC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? 0 : b.OLS_FEE_FC_AMOUNT; b.OLS_FEE_BC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? 0 : b.OLS_FEE_BC_AMOUNT; }); z.INS_UDW_RISK_DISCLOAD = (typeof (z.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(z.INS_UDW_RISK_DISCLOAD || '[]') : z.INS_UDW_RISK_DISCLOAD) || []; }); }); Product = u.getGlobal("rawOilGasCalculation")(Product) || {}; u.getGlobal("rawOilGasPremium")(Product); let NowProduct = JSON.parse(JSON.stringify(Product)) || {}; let RIProduct = await $scope.ProductDifference(NowProduct, $scope.oldPolicy); Product.MS_UDW_ENDORSEMENTS = RIProduct.MS_UDW_ENDORSEMENTS || []; return Product; }; $scope.internalProRatedCancellationSetup = async function (Product) { let openEndorsment = Product.MS_UDW_ENDORSEMENTS.Where(x => x.END_TXN_STATE === "O").FirstOrDefault() || {}; Product.INS_UDW_OIL_GAS = (typeof (Product.INS_UDW_OIL_GAS) === 'string' ? JSON.parse(Product.INS_UDW_OIL_GAS || '[]') : Product.INS_UDW_OIL_GAS) || []; let usedProduct = JSON.parse(JSON.stringify(Product)) || {}; /*----------------------------------------------- * USED TIME PERIOD FOR THE PRO RATE CANCELLATION *----------------------------------------------*/ usedProduct.POLH_POL_START_DATE = usedProduct.POLH_POL_START_DATE; usedProduct.POLH_POL_END_DATE = openEndorsment.END_EFCTV_DATE; usedProduct.POLH_POL_DAYS = u.totalDays(usedProduct.POLH_POL_END_DATE, usedProduct.POLH_POL_START_DATE) || 0; usedProduct.INS_UDW_OIL_GAS = usedProduct.INS_UDW_OIL_GAS.map(async (x) => { x.OLS_CURRENCY = usedProduct.POLH_CURRENCY; x.OLS_CURRENCY_RATE = usedProduct.POLH_CURRENCY_RATE; x.OLS_SUB_CLASS_CODE = usedProduct.POLH_SUB_CLASS_CODE; x.OLS_UW_YEAR = usedProduct.POLH_POL_UW_YEAR; x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) == "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || '[]') : x.INS_UDW_OIL_GAS_INTEREST) || []; x.INS_UDW_OIL_GAS_INTEREST = x.INS_UDW_OIL_GAS_INTEREST.map(async (z) => { z.OLINT_CURRENCY = x.OLS_CURRENCY; z.OLINT_CURR_RATE = x.OLS_CURRENCY_RATE; z.OLINT_SUB_CLASS_CODE = x.OLS_SUB_CLASS_CODE; z.OLINT_UW_YEAR = x.OLS_UW_YEAR; z.OLINT_START_DATE = usedProduct.POLH_POL_START_DATE; z.OLINT_END_DATE = usedProduct.POLH_POL_END_DATE; z.OLINT_PERIOD_DAYS = usedProduct.POLH_POL_DAYS; z.OLINT_PREMIUM_BASIS = "PR"; z.OLINT_PRO_RATE = await $scope.PremiumBasisRate(z); z.INS_UWD_RISK_COVERS = (typeof (z.INS_UWD_RISK_COVERS) == "string" ? JSON.parse(z.INS_UWD_RISK_COVERS || '[]') : z.INS_UWD_RISK_COVERS) || []; z.INS_UWD_RISK_COVERS.ForEach(b => { b.RCOV_ANNL_PREM_WEIGHT = 1; b.RCOV_PRO_RATE = z.OLINT_PRO_RATE; b.RCOV_CURR_RATE = z.OLINT_CURR_RATE; $scope.coverCalculate(b); }); z.INS_UDW_OIL_GAS_FEES = (typeof (z.INS_UDW_OIL_GAS_FEES) == "string" ? JSON.parse(z.INS_UDW_OIL_GAS_FEES || '[]') : z.INS_UDW_OIL_GAS_FEES) || []; z.INS_UDW_OIL_GAS_FEES.ForEach(b => { b.OLS_FEE_FC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? -parseFloat(b.OLS_FEE_FC_AMOUNT || 0) : 0; b.OLS_FEE_BC_AMOUNT = Endorsement.END_POL_FEE_CANC_YN === 'Y' ? -parseFloat(b.OLS_FEE_BC_AMOUNT || 0) : 0; }); z.INS_UDW_RISK_DISCLOAD = (typeof (z.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(z.INS_UDW_RISK_DISCLOAD || '[]') : z.INS_UDW_RISK_DISCLOAD) || []; $scope.RiskCalculate(z); return z; }); x.INS_UDW_OIL_GAS_INTEREST = await Promise.all(x.INS_UDW_OIL_GAS_INTEREST); $scope.LocationCalculate(x); return x; }); usedProduct.INS_UDW_OIL_GAS = await Promise.all(usedProduct.INS_UDW_OIL_GAS); usedProduct = u.getGlobal("rawOilGasCalculation")(usedProduct) || {}; u.getGlobal("rawOilGasPremium")(usedProduct); let nowProduct = JSON.parse(JSON.stringify(usedProduct)); let RIProduct = await $scope.ProductDifference(nowProduct, $scope.oldPolicy); Product.MS_UDW_ENDORSEMENTS = RIProduct.MS_UDW_ENDORSEMENTS || []; return Product; }; $scope.loader = function (func) { $("#policyCalculationsModal").modal(); setTimeout(async function () { func(); $("#policyCalculationsModal").modal("hide"); }, 500); }; /*----------------------- * OIL GAS POLICY DETAILS *----------------------*/ $("#btn_Save").on("click", async function () { if (u.grid_empty($scope.oilgas_grid)) return u.growl_warning("Please add Location Details"); $("#policyCalculationsModal").modal(); setTimeout(async function () { let EnPolicy = u.getGlobal("rawOilGas")() || {}; EnPolicy.INS_UDW_OIL_GAS = (typeof (EnPolicy.INS_UDW_OIL_GAS) === "string" ? JSON.parse(EnPolicy.INS_UDW_OIL_GAS || "[]") : EnPolicy.INS_UDW_OIL_GAS) || []; EnPolicy.INS_UDW_OIL_GAS.ForEach(x => { x.INS_UDW_OIL_GAS_INTEREST = (typeof (x.INS_UDW_OIL_GAS_INTEREST) === "string" ? JSON.parse(x.INS_UDW_OIL_GAS_INTEREST || "[]") : x.INS_UDW_OIL_GAS_INTEREST) || []; }); /*---------------------------- * CHECKS IF NO LOCATION EXIST *----------------------------*/ let Location = EnPolicy.INS_UDW_OIL_GAS.every(x => x.OLS_STATUS === "D"); if (Location) { $("#policyCalculationsModal").modal("hide"); return u.modalWarning(`No location exist for this policy`); } /*------------------------------ * CHECKS IF LOCATION HAS RISKS *-----------------------------*/ let result = EnPolicy.INS_UDW_OIL_GAS.Where(x => !x.INS_UDW_OIL_GAS_INTEREST.Any()).FirstOrDefault() || {}; if (result.OLS_SYS_ID) { $("#policyCalculationsModal").modal("hide"); return u.modalWarning(`Location with identification ${result.OLS_SYS_ID} must at least have a risk`); } /*--------------------------- * CHECKS IF RISK HAVE COVERS *---------------------------*/ let coverExist = EnPolicy.INS_UDW_OIL_GAS.Where(x => !x.INS_UDW_OIL_GAS_INTEREST.Any(b => b.INS_UWD_RISK_COVERS.Any())).FirstOrDefault() || {}; if (coverExist.OLS_SYS_ID) { $("#policyCalculationsModal").modal("hide"); return u.modalWarning(`Location with identification ${coverExist.OLS_SYS_ID} must at least have a cover`); } /*------------------------------- * CHECKS IF PREMIUM IS NOT ZERO *-------------------------------*/ let HasPrem = EnPolicy.INS_UDW_OIL_GAS.Where(x => (parseFloat(x.OLS_RISK_PREM_FC || 0) == 0) && (x.OLS_STATUS !== "D")).FirstOrDefault() || {}; if (HasPrem.OLS_SYS_ID) { $("#policyCalculationsModal").modal("hide"); return u.modalWarning(`Location with identification ${HasPrem.OLS_SYS_ID} has a risk with zero premium`); } /*--------------------------------------- * POLICY SAVE/PREMIUM CALCULATION *--------------------------------------*/ let Product = u.getGlobal("rawOilGasCalculation")(EnPolicy) || {}; Product = u.getGlobal("rawOilGasPremium")(Product); if (Product.POLH_TXN_STATE === "E") { Product.MS_UDW_ENDORSEMENTS = (typeof (Product.MS_UDW_ENDORSEMENTS) === "string" ? JSON.parse(Product.MS_UDW_ENDORSEMENTS) : Product.MS_UDW_ENDORSEMENTS) || []; if (Product.MS_UDW_ENDORSEMENTS.Any(e => e.END_TXN_STATE == "O")) { let Endorsement = Product.MS_UDW_ENDORSEMENTS.FirstOrDefault(e => e.END_TXN_STATE == "O") || {}; const oldPolicy = await u.getGlobal("fetchPolicyHistory")(Product.POLH_SYS_ID, parseFloat(Endorsement.END_NO) - 1, Product.POLH_RENEW_SER_NO); switch (Endorsement.END_FLAG) { case "EP": case "PP": case "GE": let NowProduct = JSON.parse(JSON.stringify(Product)); $scope.RIProduct = await $scope.ProductDifference(NowProduct, oldPolicy); Product.MS_UDW_ENDORSEMENTS = $scope.RIProduct.MS_UDW_ENDORSEMENTS || []; break; default: $scope.RIProduct = {}; break; } u.getGlobal("savePolicy")(Product, function (result) { result = u.getGlobal("rawOilGasPremium")(result, false); u.fill_form(result, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(result); }); } } else { u.getGlobal("savePolicy")(Product, function (result) { result = u.getGlobal("rawOilGasPremium")(result, false); u.getGlobal("rawOilGasPopulate")(result); }); } }, 500); }); $("#btnEndorse").on("click", function () { 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"); /*------------------------------------------------------ * GETS THE ENTIRE POLICY DATA FROM ALL THE FORMS AND GRID * ----------------------------------------------------*/ let policy = u.getGlobal("rawOilGas")() || {}; if (policy.POLH_TXN_STATE === "X") return u.growl_warning("The policy is in cancellation stage, endorsements can not be passed!"); if (policy.POLH_TXN_STATE === "E") return u.growl_warning("The policy is already in the endorsed state, you cannot pass another endorsement on it!"); if (!("PD").includes(policy.POLH_TXN_STATE)) return u.growl_warning("Policy is not approved, Endorsements can only be passed on approved policies!"); /*------------------------------------------------------ * DISALLOW ENDORSEMENT IF THERE IS POLICY CANCELLATION * ----------------------------------------------------*/ let cancelledEndorsement = policy.MS_UDW_ENDORSEMENTS.Any(x => ("ICFCPC").includes(x.END_FLAG)); if (cancelledEndorsement) return u.growl_warning("The policy is cancelled, endorsement can not be passed!"); u.modal_confirmation("Are you sure you want to pass an endorsement on the Policy?", async function (e) { $scope.endorsementData = u.parse_form("#endorsementForm"); $scope.endorsementData.END_NO = parseFloat(policy.POLH_END_NO || 0) + 1; let newNumberOfDays = u.totalDbDateDays($scope.endorsementData.END_TERM_DATE, $scope.endorsementData.END_EFCTV_DATE) + 1; let oldPolicy = $scope.oldPolicy = await u.getGlobal("fetchPolicyHistory")(policy.POLH_SYS_ID, parseFloat(policy.POLH_END_NO), parseFloat(policy.POLH_RENEW_SER_NO)); if (oldPolicy) { let productCalculated = u.getGlobal("rawOilGasCalculation")(policy) || {}; productCalculated.POLH_TXN_STATE = 'E'; productCalculated.POLH_END_NO = $scope.endorsementData.END_NO; /*--------------------------------- * SET ENDORSEMENT NUMBER GLOBALLY *--------------------------------*/ u.getGlobal("setEndorsementNumber")(productCalculated); $scope.setEndorsementNumberOilGas(productCalculated); /*------------------------------------------------------ * Add if there is no other that is in the opened state *-----------------------------------------------------*/ let OpenEnd = productCalculated.MS_UDW_ENDORSEMENTS.Any(x => x.END_TXN_STATE === "O"); if (!OpenEnd) { $scope.endorsementData.END_STATUS = "U"; $scope.endorsementData.END_CRTE_BY = u.getUserCode(); $scope.endorsementData.END_CRTE_DATE = u.get_datetime(); $scope.endorsementData.END_TXN_STATE = "O"; $scope.endorsementData.END_POL_SYS_ID = productCalculated.POLH_SYS_ID; productCalculated.MS_UDW_ENDORSEMENTS.Add($scope.endorsementData); } 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."); } switch ($scope.endorsementData.END_FLAG) { case "FC": //FULL CANCELLATION productCalculated = await $scope.fullCancellationSetup(productCalculated); productCalculated.POLH_TXN_STATE = "X"; break; case "IC": //INTERNAL CANCELLATION productCalculated = await $scope.internalCancellationSetup(productCalculated); productCalculated.POLH_TXN_STATE = "X"; break; case "PC": //PRO RATED ENDORSEMENT productCalculated = await $scope.internalProRatedCancellationSetup(productCalculated, newNumberOfDays, $scope.endorsementData); productCalculated.POLH_TXN_STATE = "X"; u.formReadWrite(); break; case "PS"://PARTIAL SUSPENSION $scope.partialSuspension(productCalculated.POLH_END_NO); break; case "TS"://TOTAL SUSPENSION $scope.totalSuspension(productCalculated.POLH_END_NO); break; case "CC": //CUSTOMER CANCELLATION $scope.customerCancellationSetup(); break; default: productCalculated = await $scope.generalEndorsementSetup(productCalculated, $scope.endorsementData); u.formReadWrite(); break; }; $("#PolicyEndorsementModal").modal("hide"); /*------------- * save policy *------------*/ $scope.loader(async function () { u.getGlobal("savePolicy")(productCalculated, async function (result) { u.getGlobal("rawOilGasPremium")(result, false); $scope.rawOilGasPopulate(result); u.getGlobal("ButtonControl")(result, $scope.endorsementData); if (result.POLH_TXN_STATE === "X") u.form_text_Red_color(); if (result.POLH_TXN_STATE === "E") u.form_text_Gold_color(); const data = {}; const formData = u.parse_form("#endorsementForm"); //move policy to the endorsed state data.userCode = u.getUserCode(); data.userName = u.getUserName(); data.processId = result.POLH_UID || $("#POLH_UID").val(); data.command = $("#SelPolicyProcess").val(); data.comment = $scope.endorsementData.END_REASON; data.flag = WorkflowConstants.Underwriting; data.startDate = formData.startDate; data.endDate = formData.dueDate; data.identityId = u.getUserId(); data.isSystem = true; data.notify = formData.emailYn === "Y"; u.form_text_Gold_color(); u.form_reset("#endorsementForm"); $("#PolicyEndorsementModal").modal("hide"); //const response = await u.executeCommand(data); //if (response.state) { // //u.modalSuccess(response.message); // if (result.POLH_TXN_STATE === "E") u.form_text_Gold_color(); // u.form_reset("#endorsementForm"); // $("#PolicyEndorsementModal").modal("hide"); //} else { // u.growl_error(response.message); //} Product = {}; u.growl_success("Policy successfully endorsed."); }); }); } else { return u.growl_info("Unable to endorse policy, policy history records could not be fetched."); } }); }); $("#btn_coins_ok").on("click", async function () { var coinsSIfc = ""; var coinsSIbc = ""; var coinsPremfc = ""; var coinsPrembc = ""; coinsSIfc = ($("#CIL_SHARE_SI_FC").val() /*- $("#CIL_MEMBERS_SI_FC").val()*/); coinsSIbc = ($("#CIL_SHARE_SI_BC").val() /*- $("#CIL_MEMBERS_SI_BC").val()*/); coinsPremfc = ($("#CIL_SHARE_PREM_FC").val() /*- $("#CIL_MEMBERS_PREM_FC").val()*/); coinsPrembc = ($("#CIL_SHARE_PREM_BC").val() /*- $("#CIL_MEMBERS_PREM_BC").val()*/); $("#POLH_POL_SI_FC").val(coinsSIfc); $("#POLH_POL_SI_BC").val(coinsSIbc); $("#POLH_COINS_SI_FC").val(coinsSIfc); $("#POLH_COINS_SI_BC").val(coinsSIbc); $("#POLH_POL_PREM_FC").val(coinsPremfc); $("#POLH_POL_PREM_BC").val(coinsPrembc); $("#POLH_COINS_PREM_FC").val(coinsPremfc); $("#POLH_COINS_PREM_BC").val(coinsPrembc); /*----------------------------------- * POLICY PREMIUM CALCULATION *----------------------------------*/ let EnPolicy = u.getGlobal("rawOilGas")() || {}; let Product = u.getGlobal("rawOilGasCalculation")(EnPolicy) || {}; let productSummary = u.getGlobal("rawOilGasPremium")(Product); let RIdata = $scope.RIItems(productSummary); let treaty = await u.getGlobal("getTreaty")(productSummary); productSummary.INS_RI_TTY_HEAD = u.getGlobal("RiCalculations")(RIdata, treaty); u.fill_form(productSummary, "#polheaderForm", false); u.getGlobal("rawOilGasPopulate")(productSummary); if (Product.POLH_TXN_STATE === "E") await u.getGlobalStatic("EndorsementPremiumRecalculate")(); if (Product.POLH_TXN_STATE === "X") await u.getGlobalStatic("CancelationPremiumRecalculate")(); }); /*--------------------------- * Policy Discount/Loading *----------------------------*/ $("#btn_add_polhdisloading").on("click", function() { if (u.form_validation("#polhdiscloadingForm")) { //if ($("input[name='DL_CODE']").val() === "") return u.modalAlert("Please Enter Policy Excess No"); u.modal_confirmation("Are you sure you want to add the Policy Discount/Loading Details?", function() { var rowIds = $scope.polhdiscloading_grid.jqGrid("getDataIDs"); /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ // var code = []; /*------------------------------------------------------------ * iterate through the rows and check duplicate each of them *----------------------------------------------------------*/ // 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 cellValue = $scope.polhdiscloading_grid.jqGrid("getCell", currRow, "DL_CODE"); code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray($("#DL_CODE").val(), code) < 0) { var formData = u.parse_form("#polhdiscloadingForm"); formData.DL_STATUS = "U"; formData.DL_CRTE_BY = u.getUserCode(); formData.DL_CRTE_DATE = u.get_date(); $scope.polhdiscloading_grid.addRowData(formData.DL_CODE, formData); u.hide_confirm(); u.growl_success("Policy Discount/Loading successfully added to grid"); } else { u.hide_confirm(); u.growl_warning("Policy Discount/Loading with code " + cellValue + " Already exists"); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); // Deleting $("#btn_remove_polhdisloadings").on("click", function() { if (u.grid_empty($scope.polhdiscloading_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.polhdiscloading_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "DL_STATUS"); var code = grid.jqGrid("getCell", rowId, "DL_CODE"); 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.hide_confirm("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus == "A") { grid.jqGrid("setCell", rowId, "DL_STATUS", "D"); $("#" + rowId, "#grdPolhDiscloading").css({ color: "red" }); u.hide_confirm(); u.hide_confirm( "Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $("#" + rowId, "#grdPolhDiscloading").css({ color: "black" }); grid.jqGrid("setCell", rowId, "DL_STATUS", "A"); u.hide_confirm(); u.hide_confirm("Data successfully restored"); } }); }); // Updating $("#btn_update_polhdisloading").on("click", function() { if (u.grid_empty($scope.polhdiscloading_grid)) return u.growl_info("Excess grid is empty"); if (u.form_validation("#polhdiscloadingForm")) { u.modal_confirmation("Are you sure you want to update the selected Discount/Loading?", function() { var grid = $scope.polhdiscloading_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = grid.jqGrid("getCell", rowId, "DL_CODE"); if (code === $("input[name='DL_CODE']").val()) { var data = u.parse_form("#polhdiscloadingForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Policy Discount/Loading updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $scope.policyCommissionSummarizer = function() { //sum all commisions and update the policy commission field var commissions = u.get_grid_data($scope.intermCom_grid); var totalCommissionsFc = 0; var totalCommissionsBc = 0; for (var i in commissions) { totalCommissionsFc += parseFloat(commissions[i]["CMM_COM_AMT_FC"]); totalCommissionsBc += parseFloat(commissions[i]["CMM_COM_AMT_BC"]); } $("#POLH_POL_COMM_BC").val(totalCommissionsBc); $("#POLH_POL_COMM_FC").val(totalCommissionsFc); }; $scope.financialDiff = function (newPolicy, oldPolicy) { $scope.endorsementData = u.get_grid_data($scope.endorsementGrid).FirstOrDefault(e => e.END_TXN_STATE == "O") || $scope.endorsementData; var ed = $scope.endorsementData, n = 0, o = 0; //we need to obtain the history information of the current policy $scope.oldPolicy = oldPolicy; console.log("---------------------------------old Policy-----------------------------------------"); console.log(oldPolicy); console.log("---------------------------------new Policy-----------------------------------------"); console.log(newPolicy); //obtain premium differences ed.END_PREM_DIFF_FC = parseFloat(newPolicy["POLH_POL_PREM_FC"]) - parseFloat($scope.oldPolicy["POLH_POL_PREM_FC"]); ed.END_PREM_DIFF_BC = parseFloat(newPolicy["POLH_POL_PREM_BC"]) - parseFloat($scope.oldPolicy["POLH_POL_PREM_BC"]); alert("new prem: " + newPolicy["POLH_POL_PREM_FC"] + " | old prem:" + $scope.oldPolicy["POLH_POL_PREM_FC"] + " | diff = " + ed.END_PREM_DIFF_FC); //obtain commission differences ed.END_COMMSSN_DIFF_FC = parseFloat(newPolicy["POLH_POL_COMM_FC"]) - parseFloat($scope.oldPolicy["POLH_POL_COMM_FC"] || 0); ed.END_COMMSSN_DIFF_BC = parseFloat(newPolicy["POLH_POL_COMM_BC"]) - parseFloat($scope.oldPolicy["POLH_POL_COMM_BC"] || 0); //obtain fee differences ed.END_FEE_DIFF_FC = parseFloat(newPolicy["POLH_FEE_FC"]) - parseFloat($scope.oldPolicy["POLH_FEE_FC"]); ed.END_FEE_DIFF_BC = parseFloat(newPolicy["POLH_FEE_BC"]) - parseFloat($scope.oldPolicy["POLH_FEE_BC"]); //obtain discount differences ed.END_DISC_DIFF_FC = parseFloat(newPolicy["POLH_POL_DISC_FC"]) - parseFloat($scope.oldPolicy["POLH_POL_DISC_FC"]); ed.END_DISC_DIFF_BC = parseFloat(newPolicy["POLH_POL_DISC_BC"]) - parseFloat($scope.oldPolicy["POLH_POL_DISC_BC"]); //obtain loading differences ed.END_LOAD_DIFF_FC = parseFloat(newPolicy["POLH_POL_LOAD_FC"]) - parseFloat($scope.oldPolicy["POLH_POL_LOAD_FC"]); ed.END_LOAD_DIFF_BC = parseFloat(newPolicy["POLH_POL_LOAD_BC"]) - parseFloat($scope.oldPolicy["POLH_POL_LOAD_BC"]); //obtain suminsured differences ed.END_SI_DIFF_FC = parseFloat(newPolicy["POLH_POL_SI_FC"]) - parseFloat($scope.oldPolicy["POLH_POL_SI_FC"]); ed.END_SI_DIFF_BC = parseFloat(newPolicy["POLH_POL_SI_BC"]) - parseFloat($scope.oldPolicy["POLH_POL_SI_BC"]); //obtain coins differences ed.END_COINS_DIFF_FC = parseFloat(newPolicy["POLH_COINS_PREM_FC"]) - parseFloat($scope.oldPolicy["POLH_COINS_PREM_FC"]); ed.END_COINS_DIFF_BC = parseFloat(newPolicy["POLH_COINS_PREM_BC"]) - parseFloat($scope.oldPolicy["POLH_COINS_PREM_BC"]); /*------------------------------- * 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; }, "END_PREM_DIFF_BC": function(amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_PREM_DIFF_BC; }, "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; }, "END_FEE_DIFF_BC": function(amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_FEE_DIFF_BC; }, "END_DISC_DIFF_FC": function(amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_DISC_DIFF_FC; }, "END_DISC_DIFF_BC": function(amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_DISC_DIFF_BC; }, "END_LOAD_DIFF_FC": function(amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_LOAD_DIFF_FC; }, "END_LOAD_DIFF_BC": function(amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_LOAD_DIFF_BC; }, "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_VAT_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_VAT_DIFF_FC || 0; }, "END_VAT_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_VAT_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 || []; } }); //obtain financiall differences for each risk var newPolicyRisks = newPolicy["INS_UDW_OIL_GAS"]; var oldPolicyRisks = $scope.oldPolicy["INS_UDW_OIL_GAS"]; 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]["OLS_SYS_ID"] == oldPolicyRisks[o]["OLS_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_OLS_SYS_ID: newPolicyRisks[n]["OLS_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_SI_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_SI_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_LOAD_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_LOAD_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_DISC_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_DISC_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_DISC_BC"]), 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_OLS_SYS_ID: newPolicyRisks[n]["OLS_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); } } } } else if (moreOldRisks) { for (o; o < newPolicyRisks.length; o++) { for (n; n < oldPolicyRisks.length; n++) { if (newPolicy[n]["OLS_SYS_ID"] == oldPolicyRisks[o]["OLS_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_OLS_SYS_ID: newPolicyRisks[n]["OLS_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_SI_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_SI_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_LOAD_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_LOAD_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_DISC_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_DISC_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_DISC_BC"]), 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_OLS_SYS_ID: oldPolicyRisks[o]["OLS_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(oldPolicyRisks[o]["OLS_SI_FC"]), RED_SI_DIFF_BC: parseFloat(oldPolicyRisks[o]["OLS_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(oldPolicyRisks[o]["OLS_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(oldPolicyRisks[o]["OLS_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(oldPolicyRisks[o]["OLS_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(oldPolicyRisks[o]["OLS_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); } } } } else { for (n; n < newPolicyRisks.length; n++) { for (o; o < oldPolicyRisks.length; o++) { if (newPolicyRisks[n]["OLS_SYS_ID"] == oldPolicyRisks[o]["OLS_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_OLS_SYS_ID: newPolicyRisks[n]["OLS_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_SI_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_SI_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_TOT_PREM_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_COMP_FEE_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_LOAD_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_LOAD_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyRisks[n]["OLS_DISC_FC"]) - parseFloat(oldPolicyRisks[o]["OLS_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyRisks[n]["OLS_DISC_BC"]) - parseFloat(oldPolicyRisks[o]["OLS_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); break; } } } } return ed; }; $scope.getPolicyFormData = function() { var polhData = u.parse_form("#polheaderForm"); polhData.INS_UDW_OIL_GAS = u.get_grid_data($scope.oilgas_grid); polhData.INS_UDW_POLICY_DISCLOAD = u.get_grid_data($scope.polhdiscloading_grid); polhData.INS_COINS_LEADER = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")); var insUwdRiskDetails = u.get_grid_data($scope.olintDetails_grid); var insUwdRiskCovers = u.get_grid_data($scope.cover_grid); 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"] = JSON.parse(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"] = allocation["INS_RI_TTY_SHARE"] || "[]"; return allocation; }); return treaty; }, this); polhData["INS_RI_TTY_HEAD"] = treaties; for (var i in polhData.INS_UDW_OIL_GAS) { //loop through every risk and obtain the sys_id of the risk var id = polhData.INS_UDW_OIL_GAS[i]["OLS_SYS_ID"]; polhData.INS_UDW_OIL_GAS[i]["INS_UDW_OIL_GAS_INTEREST"] = []; polhData.INS_UDW_OIL_GAS[i]["INS_UWD_RISK_COVERS"] = []; polhData.INS_UDW_OIL_GAS[i]["INS_UDW_OLS_FEES"] = []; polhData.INS_UDW_OIL_GAS[i]["INS_UDW_RISK_DISCLOAD"] = []; for (var t in insUwdRiskDetails) { //find details which have the same risk sys_id if (insUwdRiskDetails[t]["OLINT_OLS_SYS_ID"] === id) { polhData.INS_UDW_OIL_GAS[i]["INS_UDW_OIL_GAS_INTEREST"].push(insUwdRiskDetails[t]); } } for (var c in insUwdRiskCovers) { //find covers which have the same risk sys_id if (insUwdRiskCovers[c]["RCOV_RISK_SYS_ID"] === id) { polhData.INS_UDW_OIL_GAS[i]["INS_UWD_RISK_COVERS"].push(insUwdRiskCovers[c]); } } for (var f in insUwdRiskFees) { //find risk fees which have the same the same risk sys_id if (insUwdRiskFees[f]["OLS_FEE_RK_SYS_ID"] === id) { polhData.INS_UDW_OIL_GAS[i]["INS_UDW_OLS_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_OIL_GAS[i]["INS_UDW_RISK_DISCLOAD"].push(insUwdRiskDiscountLoading[d]); } } } polhData.INS_RI_FAC_INWARD = u.get_grid_data($scope.grdfacInward_grid); for (var i in polhData.INS_RI_FAC_INWARD) { polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"] = JSON.parse(polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"]); } polhData.INS_UDW_OLS_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; }; /*----------------------------- * Save/Update Data *---------------------------*/ // /*------------------------------ * Policy Endorsement process *----------------------------*/ // $scope.endorsementGrid = u.getGlobal("udwEndsmntGrid"); /*--------------------------------------- * ADD ENDORSEMENT TO ENDORSEMENT GRID *------------------------------------*/ $("#btn_add_end").click(function() { if (u.form_validation("#endorsementForm")) { u.modal_confirmation("Are you sure you want to endorse this policy?", function() { var rowIds = $scope.endorsementGrid.jqGrid("getDataIDs"); /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ // var code = []; /*------------------------------------------------------------ * iterate through the rows and check duplicate each of them *----------------------------------------------------------*/ // for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; /*------------------------------------------------ * get value of the cell or column in an array *----------------------------------------------*/ //DL_CODE var cellValue = $scope.endorsementGrid.jqGrid("getCell", currRow, "END_TXN_STATE"); code.push(cellValue); } //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 ($.inArray("O", code) < 0) { var formData = u.parse_form("#endorsementForm"); formData.END_STATUS = "U"; formData.END_CRTE_BY = u.getUserCode(); formData.END_CRTE_DATE = u.get_date(); formData.END_TXN_STATE = "O"; formData.END_NO = parseInt($("#POLH_END_NO").val()) + 1; formData.END_POL_SYS_ID = $("#POLH_SYS_ID").val(); //ADD TO GRID $scope.endorsementGrid.addRowData(formData.ID, formData); u.hide_confirm(); u.growl_success( "Policy successfully added, you will not be able to add another endorsement until the current " + "open endorsement is closed. Please save your changes and approve the policy endorsement to close the endorsement"); u.form_reset("#endorsementForm"); } else { u.hide_confirm(); u.modalInfo( "The current Policy in an open endorsement state. You cannot add another endorsement until the current endorsement state is closed." + " To close the current endorsement, please save your endorsement changes and approve the policy."); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $scope.caclRi = function() { //obtain the policy header object var polHead = u.parse_form("#polheaderForm"); if (!$scope.treatyData) return u.growl_info("Ri Treaty setup data is empty please fetch treaty setup data"); //loop through all locations and apply treaty setup var locations = Enumerable.From(u.get_grid_data($scope.genaccident_grid)); locations.ForEach(function(location) { //calculate ri on each location var locationRiAllocationData = u.locationRiAllocation(polHead, { "RI_SI_FC": location.AAR_RI_SI_FC, "RI_SI_BC": location.AAR_RI_SI_BC, "RI_PREM_BC": location.AAR_RI_PREM_FC, "RI_PREM_FC": location.AAR_RI_PREM_BC }, $scope.treatyData); //console.log(locationRiAllocationData); //add treaty data into their respective tables //cleat treaty header grid u.clear_grid_data($scope.reinsurance_grid); //1. add treaty head record for each location $scope.reinsurance_grid.addRowData(location.ID, { TTH_ACC_SI_BC: location.AAR_RI_SI_BC, TTH_ACC_SI_FC: location.AAR_RI_SI_FC, TTH_ADJ_YN: null, TTH_CLASS_CODE: polHead.POLH_CLASS_CODE, TTH_COMB_LOC_ID: null, TTH_CRTE_BY: u.getUserCode(), TTH_CRTE_DATE: u.get_date(), TTH_EML_PERC: location.AAR_EML_PERC, TTH_FROM_DATE: location.AAR_START_DATE, TTH_INS_SRCE: polHead.POLH_INS_SOURCE, TTH_LOC_END_NO: polHead.POLH_END_NO, TTH_LOC_SYS_ID: null, TTH_MOD_BY: null, TTH_MOD_DATE: null, TTH_POLH_END_NO: polHead.POLH_END_NO || 0, TTH_POLH_SYS_ID: polHead.POLH_SYS_ID, TTH_POLNUM: polHead.POLH_DISPLAY_NO, TTH_REF_ID: location.AAR_SYS_ID, TTH_RISK_END_NO: polHead.POLH_END_NO, TTH_RISK_SYS_ID: location.AAR_SYS_ID, TTH_RI_ACC_YN: null, TTH_RI_PREM_BC: location.AAR_RI_PREM_BC, TTH_RI_PREM_FC: location.AAR_RI_PREM_FC, TTH_RI_SI_BC: location.AAR_RI_SI_BC, TTH_RI_SI_FC: location.AAR_RI_SI_FC, TTH_SC_CODE: polHead.POLH_SUB_CLASS_CODE, TTH_STATUS: "A", TTH_TOTAL_PREM_BC: location.AAR_TOT_PREM_BC, TTH_TOTAL_PREM_FC: location.AAR_TOT_PREM_FC, TTH_TOTAL_SI_BC: location.AAR_SI_BC, TTH_TOTAL_SI_FC: location.AAR_SI_FC, TTH_TO_DATE: location.AAR_END_DATE, TTH_UW_YEAR: location.AAR_UW_YEAR, INS_RI_TTY_ALLOCATION: JSON.stringify(locationRiAllocationData) }); }); }; $scope.renewal = function() { var renNo = parseInt($("#POLH_RENEW_SER_NO").val() || 0) + 1; $("#POLH_RENEW_SER_NO").val(renNo); //Risk Covers u.setGridColumn($scope.cover_grid, { "RPCOV_END_NO": 0 }); //Commissions u.setGridColumn($scope.intermCom_grid, { "CMM_END_NO": 0 }); //Prem Register u.setGridColumn($scope.premiumreg_grid, { "PR_END_NO": 0 }); //policy documents u.setGridColumn($scope.polFileGrid, { "PF_PH_END_NO": 0 }); //Risk Fees u.setGridColumn($scope.riskFees_grid, { "VEH_FEE_END_NO": 0 }); //Pol fees summary u.setGridColumn($scope.polfees_grid, { "POL_FEE_END_NO": 0 }); s.getProductTreaty($("#POLH_SUB_CLASS_CODE").val(), $("#POLH_POL_UW_YEAR").val(), $("#POLH_CURRENCY").val(), function(response) { if (response.state && response.data) { $scope.treatyData = response.data; $scope.caclRi(); u.growl_success("Treaty successfully fetched for the selected product"); } else { u.modalInfo( `Treaty not setup for underwriting year ${$("#POLH_POL_UW_YEAR").val()} for the product ${ $("#POLH_SUB_CLASS_CODE").val()} with currency ${$("#POLH_CURRENCY").val() }, please check RI treaty setup`); //Reset form $scope.reset(); } }, function(err) { u.modalInfo( `Error fetching treaty not setup for underwriting year ${$("#POLH_POL_UW_YEAR").val() } for the product ${$("#POLH_SUB_CLASS_CODE").val()} with currency ${$("#POLH_CURRENCY").val() }, renewal cannot continue. please try again later`); //Reset form $scope.reset(); }); }; /*--------------------------- *Endorsement Deletion process *-------------------------*/ $("#btnEndDeletion").click(function() { u.modal_confirmation("Are you sure you want to delete Endorsement?", function() { if (!u.field_empty("#POLH_SYS_ID") && !u.field_empty("#POLH_END_NO")) { s.risk_end_deletion($("#POLH_SYS_ID").val(), (parseInt($("#POLH_END_NO").val()) - 1), function(result) { if (result) { s.search_policy($("#POLH_SYS_ID").val(), function(data) { $scope.searched = true; $scope.result = data; if (data.length > 0) { $scope.search_fill(data[0]); } }); } else { u.growl_info("Unable to delete endorsement, please try again"); } u.hide_confirm(); }, function(err) { u.growl_error("Error fetching search results"); }); } else { u.growl_info("Invalid Policy, please check and try again!"); } }); }); /*-------------------- * Policy Form delete button *------------------*/ //$("#btnDelete").click(function() { // u.modal_confirmation("Are you sure you want to delete this policy?", // function() { // if ($("input[name='POLH_SYS_ID']").val().length <= 0) { // $scope.reset_setup(); // u.hide_confirm(); // } else { // if (!$scope.saving) { // $scope.saving = true; // var policy_data = u.parse_form("#polheaderForm"); // policy_data.POLH_STATUS = "D"; // s.save_policy(policy_data, // function(response) { // u.hide_confirm(); // $scope.saving = false; // if (response.state) { // u.growl_error("Policy Successfully Deleted"); // $scope.reset_setup(); // } else { // u.growl_error("Error deleting Policy"); // } // }, // function() { // u.hide_confirm(); // $scope.saving = false; // u.growl_error("Can not delete Policy at the moment please try again later"); // }); // } else { // u.growl_info("The application is busy please wait for the current process to finish"); // } // } // }); //}); /*------------------------------ * Refresh or Reset form *----------------------------*/ // /*----------------- * search grid *----------------*/ $scope.search_grid = u.default_grid("#grdSearchResults", "#grdSearchResultsPager", "Product Search Results", ["ID", "Policy No.", "Policy Display No.", "Policy State.", "index"], [ { name: "POLH_SYS_ID", index: "POLH_SYS_ID", hidden: true }, { name: "POLH_SYS_ID", index: "POLH_SYS_ID" }, { name: "POLH_DISPLAY_NO", index: "POLH_DISPLAY_NO" }, { name: "POLH_STATUS", index: "POLH_STATUS" }, { name: "index", id: true, index: "index", hidden: true } ], function(index) { $scope.selected_index = index; $scope.search_fill($scope.result[index]); }, function(index) { $scope.search_fill($scope.result[index]); u.clear_grid_data($scope.search_grid); $("#mySearchResultModal").modal("hide"); }); /*--------------------------- * Search *-------------------------*/ $("#btnQueryPolicy").click(function() { var query = $("#txtSearch").val(); if (query && query.length > 0 && query !== " ") { s.search_policy(query, function(result) { $scope.searched = true; $scope.result = result; if (result.length > 0) { if (result.length > 1) { /*display result of the search to the user in a modal*/ for (var i in result) { result[i].index = i; $scope.search_grid.addRowData(result[i].index, result[i]); } $("#mySearchResultModal").modal(); } else { $scope.search_fill(result[0]); } } else { u.growl_info("Policy No. not found, please make sure you enter the correct Policy No!"); } }, function(err) { u.growl_error("Error fetching search results"); }); } else { u.growl_info("Please check Policy No and try again!"); } }); /*------------------------------------- * setting datepicker for date fields *------------------------------------*/ u.set_datepicker(".date"); u.set_datepicker(".datetime"); //u.set_datetimepicker(".datetime"); u.set_datepicker("input[name='CUS_DOB']"); u.set_datepicker("#ENDORSE_DATE"); u.set_datepicker("#ENDORSE_EFF_DATE"); u.set_datepicker("#ENDORSE_TO_DATE"); u.set_datepicker("#NLB_FROM_DATE"); u.set_datepicker("#NLB_TO_DATE"); /*----------------------------- * LOV code validation *---------------------------*/ u.lovCodeVal("form input[name='POLH_CMP_CODE']", "check_company_code", "form input[name='CMP_NAME']"); u.lovCodeVal("form input[name='POLH_OFF_CODE']", "check_office_code", "form input[name='OFF_NAME']"); u.lovCodeVal("form input[name='POLH_CLASS_CODE']", "check_product_code", "form input[name='COB_NAME']"); //u.lovCodeVal("form input[name='POLH_SUB_CLASS_CODE']", "check_subproduct_code", "form input[name='PDT_NAME']"); //u.lovCodeVal("form input[name='POLH_SUB_CLASS_CODE']", "check_subproduct_code", "form input[name='PDT_NAME']", async function () { // if (($("#POLH_BIZ_SOURCE").val() === "BKM" || $("#POLH_BIZ_SOURCE").val() === "AGM") && !u.field_empty("#POLH_INTERMIDIARY")) { // u.modal_confirmation("Your current action might change commissions already set on this policy, do you want to continue? RESELECT intermediary after selecting and SAVE!!!", // async function () { }); // } //}); u.lovCodeVal("form input[name='POLH_CHANNEL_CODE']", "check_channel_code", "form input[name='MSC_NAME']"); u.lovCodeVal("form input[name='POLH_BIZ_SOURCE']", "check_business_source_code", "form input[name='SRB_NAME']"); u.lovCodeVal("input[name='POLH_CUST_CODE']", "check_customer_code", "input[name='CUS_OFFICIAL_NAME']", function(code) { /*fetch customer details after successful validation*/ s.get_customer(code, function(response) { //u.fill_form(response, "#polheaderForm"); u.setFieldVal("#POLH_CUST_NAME", response["CUS_OFFICIAL_NAME"]); u.setFieldVal("#POLH_CUST_ADRS", response["CUS_ADDRS2"]); u.setFieldVal("#POLH_CUST_TEL", response["CUS_PHONE1"]); }); }); u.lovCodeVal("form input[name='CUS_TYPE_CODE']", "check_customertype_code", "form input[name='CUS_TYPE_NAME']"); //Policy Period days calculations/ /* //Hide or show Covers in the Risk Covers (to filter out the covers for particular risk */ $scope.hideShowCovers = function() { //get the selected Risk ID var vehgrid = $scope.oilgas_grid; var selId = vehgrid.jqGrid("getGridParam", "selrow"); var RiskId = vehgrid.jqGrid("getCell", selId, "OLS_SYS_ID"); //get the Risk Cover data var covgrid = $scope.cover_grid; var rowIds = covgrid.jqGrid("getDataIDs"); // iterate through the risk cover rows to hide or show covers for (var i = 0, len = rowIds.length; i < len; i++) { //get value of the cell or column in an array var currRow = rowIds[i]; var getRiskCovId = covgrid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); if (getRiskCovId != RiskId) { //hide if covers are not for the selected risk $("#" + currRow).hide(); } else if (getRiskCovId == RiskId) { //Show if covers are for the selected risk $("#" + currRow).show(); } } }; // Cover level SI and Premium Calculations: $("#btn_get_Cover_Premiums").click(function() { //$scope.SumCoverRiskValues(); $scope.PolicyCalculations(); }); // calculate sum of cover amounts $scope.SumCoverRiskValues = function() { //Declare variables var riskSumSifc = 0; var riskSumSibc = 0; var sumGrossPremFc = 0; var sumGrossPremBc = 0; var sumAnnPremFc = 0; var sumAnnPremBc = 0; var sumNetPremFc = 0; var sumNetPremBc = 0; // var sumAnnPremFc = 0; // var sumAnnPremBc = 0; var sumLoadFc = 0; var sumLoadBc = 0; var sumDisFc = 0; var sumDisBc = 0; //Risk/OilGas Grid var riskgrid = $scope.oilgas_grid; var rowIdRisk = riskgrid.jqGrid("getDataIDs"); var grid = $scope.cover_grid; var rowIds = grid.jqGrid("getDataIDs"); //Risk/OilGas Grid // var riskgrid = $scope.oilgas_grid; var riskRowId = riskgrid.jqGrid("getGridParam", "selrow"); var riskId = riskgrid.jqGrid("getCell", riskRowId, "OLS_SYS_ID"); // iterate through the rows and check if it exists each of them for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get the risk sys ID from the covers grid var getoilgasID = grid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); //get Cover type of the cover var coverType = grid.jqGrid("getCell", currRow, "RCOV_TYPE"); if (getoilgasID != riskId) { $("#" + currRow).hide(); } else { // $("#" + currRow).show(); if (coverType == "O") { // if the cover type is own damage then the SI is added to to be considered as risk Sum insured riskSumSifc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_SI_FC")); riskSumSibc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_SI_BC")); } riskSumSifc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_SI_FC")); riskSumSibc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_SI_BC")); sumGrossPremFc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_GROSS_PREM_FC")); sumGrossPremBc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_GROSS_PREM_BC")); sumNetPremFc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_NET_PREM_FC")); sumNetPremBc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_NET_PREM_BC")); sumAnnPremFc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_ANNL_PREM_FC")); sumAnnPremBc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_ANNL_PREM_BC")); sumLoadFc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_LOAD_FC")); sumLoadBc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_LOAD_BC")); sumDisFc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_DISC_FC")); sumDisBc += parseFloat(grid.jqGrid("getCell", currRow, "RCOV_DISC_BC")); } } grid.jqGrid("footerData", "set", { 'RCOV_SI_FC': riskSumSifc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_SI_BC': riskSumSibc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_GROSS_PREM_FC': sumGrossPremFc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_GROSS_PREM_BC': sumGrossPremBc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_ANNL_PREM_FC': sumGrossPremFc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_ANNL_PREM_BC': sumGrossPremBc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_NET_PREM_FC': sumNetPremFc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_NET_PREM_BC': sumNetPremBc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_LOAD_FC': sumLoadFc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_LOAD_BC': sumLoadBc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_DISC_FC': sumDisFc.toFixed(2) }); grid.jqGrid("footerData", "set", { 'RCOV_DISC_BC': sumDisBc.toFixed(2) }); // set risk SI and Premiums values, //riskgrid.jqGrid("setCell", riskRowId, 'OLS_PREMIUM_FC', sumGrossPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_TOT_PREM_FC", sumGrossPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_TOT_PREM_BC", sumGrossPremBc.toFixed(2)); //RI VALUES riskgrid.jqGrid("setCell", riskRowId, "OLS_RI_PREM_FC", sumGrossPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_RI_PREM_BC", sumGrossPremBc.toFixed(2)); //riskgrid.jqGrid("setCell", riskRowId, "OLS_SUM_INSURED", riskSumSifc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_SI_FC", riskSumSifc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_SI_BC", riskSumSibc.toFixed(2)); //checkif we are to apply EML if (riskgrid.jqGrid("getCell", riskRowId, "OLS_EML_YN") === "Y") { var emplPerc = parseFloat(riskgrid.jqGrid("getCell", riskRowId, "OLS_EML_PERC") || 0); riskgrid.jqGrid("setCell", riskRowId, "OLS_RI_SI_FC", (parseFloat(riskgrid.jqGrid("getCell", riskRowId, "OLS_SI_FC")) * (emplPerc / 100)).toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_RI_SI_BC", (parseFloat(riskgrid.jqGrid("getCell", riskRowId, "OLS_SI_BC")) * (emplPerc / 100)).toFixed(2)); } else { riskgrid.jqGrid("setCell", riskRowId, "OLS_RI_SI_FC", parseFloat(riskgrid.jqGrid("getCell", riskRowId, "OLS_SI_FC")).toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_RI_SI_BC", parseFloat(riskgrid.jqGrid("getCell", riskRowId, "OLS_SI_BC")).toFixed(2)); } riskgrid.jqGrid("setCell", riskRowId, "OLS_NET_PREM_FC", sumNetPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_NET_PREM_BC", sumNetPremBc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_LOAD_FC", sumLoadFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_LOAD_BC", sumLoadBc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_DISC_FC", sumDisFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "OLS_DISC_BC", sumDisBc.toFixed(2)); // Policy Level SI and premium Calculations $scope.SumPolhAmounts(); }; //Policy Level SI and premium Calculations // calculate sum of Risk level amounts $scope.SumPolhAmounts = function() { //Declare variables var polGrossPremFc = 0; var polGrossPremBc = 0; var polNetPremFc = 0; var polNetPremBc = 0; var polLoadFc = 0; var polLoadBc = 0; var polDisFc = 0; var polDisBc = 0; var polSifc = 0; var polSibc = 0; var polSifc = 0; var polSibc = 0; var polSifc = 0; var polSibc = 0; // var polgrid = $scope.oilgas_grid; var polrowIds = polgrid.jqGrid("getDataIDs"); // iterate through the rows and check if it exists each of them for (var i = 0, len = polrowIds.length; i < len; i++) { var currRow = polrowIds[i]; // Sum risk level Amounts for Policy Level Amounts polSifc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_SI_FC")); polSibc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_SI_BC")); polGrossPremFc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_TOT_PREM_FC")); polGrossPremBc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_TOT_PREM_BC")); polNetPremFc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_NET_PREM_FC")); polNetPremBc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_NET_PREM_BC")); polLoadFc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_LOAD_FC")); polLoadBc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_LOAD_BC")); polDisFc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_DISC_FC")); polDisBc += parseFloat(polgrid.jqGrid("getCell", currRow, "OLS_DISC_BC")); } $("#POLH_POL_SI_FC").val(polSifc); $("#POLH_POL_SI_BC").val(polSibc); $("#POLH_POL_PREM_FC").val(polGrossPremFc); $("#POLH_POL_PREM_BC").val(polGrossPremBc); $("#POLH_NET_PREM_FC").val(polGrossPremFc); $("#POLH_NET_PREM_BC").val(polGrossPremBc); // $("#POLH_POL_LOAD_FC").val(polLoadFc); $("#POLH_POL_LOAD_BC").val(polLoadBc); $("#POLH_POL_DISC_FC").val(polDisFc); $("#POLH_POL_DISC_BC").val(polDisBc); }; //Commission Calculations function calculateIntermediaryComm() { //grdIntermediaryComm $scope.intermCom_grid var commgrid = $scope.intermCom_grid; var commrowIds = commgrid.jqGrid("getDataIDs"); var polPremFC = parseFloat($("#POLH_POL_PREM_FC").val() | 0); var polPremBC = parseFloat($("#POLH_POL_PREM_BC").val() | 0); // iterate through the rows if (polPremFC == 0) { } else if (u.grid_empty($scope.intermCom_grid)) { } else { for (var i = 0, len = commrowIds.length; i < len; i++) { var currRow = commrowIds[i]; // Sum risk level Amounts for Policy Level Amounts commgrid.jqGrid("setCell", currRow, "CMM_PREM_AMT_FC", polPremFC.toFixed(2)); commgrid.jqGrid("setCell", currRow, "CMM_PREM_AMT_BC", polPremBC.toFixed(2)); // comPerc = parseFloat(commgrid.jqGrid("getCell", currRow, "CMM_COM_PERC") | 0); var CommAmountFC = parseFloat(polPremFC * comPerc / 100); var CommAmountBC = parseFloat(polPremBC * comPerc / 100); //CommAmountFC CommAmountBC commgrid.jqGrid("setCell", currRow, "CMM_COM_AMT_FC", CommAmountFC.toFixed(2)); commgrid.jqGrid("setCell", currRow, "CMM_COM_AMT_BC", CommAmountBC.toFixed(2)); } } } /* Get default covers for the first time of loading the Risk Covers btn_add_risk_details */ function getDefaultRiskCovers() { if ($("#POLH_SUB_CLASS_CODE").val() == "") { u.growl_warning("The Risk Code cannot be null, Please check and try again"); } else { /* obtain parameter for our request */ var productRiskData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), CUR_RATE: $("#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 RiskCode = grid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); var riskCov = coverCode + RiskCode; //alert(riskCov); CodeArray.push(riskCov); } //send parameters and get Default covers from the database s.getRiskDefaulCovers(productRiskData, function(result) { if (result && result.length && result.length > 0) { for (var i in result) { //alert(JSON.stringify(result)); result[i]["RCOV_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; result[i]["RCOV_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; result[i]["RCOV_RI_YN"] = result[i]["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"]; result[i]["CVR_USER_PREMIUM"] = result[i]["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; result[i]["RCOV_PREM_REFUND"] = result[i]["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; result[i]["RCOV_RATE_CHANGE"] = result[i]["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; result[i]["RCOV_SI_CHANGE"] = result[i]["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; result[i]["RCOV_COVER_LEVEL"] = result[i]["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; result[i]["RCOV_RISK_SYS_ID"] = $("#OLS_SYS_ID").val(); result[i]["RCOV_RISK_NO"] = $("#OLS_RISK_ID").val(); //result[i]["RCOV_SI_FC"] = $("#RCOV_SI_FC").val(); var deftCoverCode = result[i].RCOV_CODE; var newRiskCode = $("#OLS_SYS_ID").val(); var verifyRiskCover = deftCoverCode + newRiskCode; //alert(verifyRiskCover); //add if Cover is not found in the Grid// if ($.inArray(verifyRiskCover, CodeArray) < 0) { //fill in default covers if not in the grid $scope.cover_grid.addRowData(result[i].ID, result[i]); } else { u.growl_warning("Cover exists for this Risk, you cannot add same Cover " + deftCoverCode); } } // //SumCoverRiskValues(); } }); } } //Get default Covers if not added $("#btn_get_DeftCovers").click(function() { getDefaultRiskCovers(); }); $("#companyOk").click(function() { if ($scope.selectedfac) { //obtain the compnaies that have been selected var companies = u.get_grid_data($scope.grdInwdParticipant_grid); console.log(companies); alert(JSON.stringify(companies)); //assign the set companies to the selected treaty detials $scope.grdfacInward_grid.jqGrid("setCell", $scope.selectedfac, "INS_RI_FAC_INW_COMPANY", JSON.stringify(companies)); } else { u.growl_info("No selected FAC to update"); } $("#PartipantsModal").modal("hide"); u.clear_grid_data($scope.grdInwdParticipant_grid); }); $("#PartipantsModal .close, #companyClose").click(function() { u.clear_grid_data($scope.riCompany_grid); }); /*-------------------------- * FAC Inward Modal *-------------------------*/ //$("#btnFACInward").on("click", // function() { // if (u.grid_empty($scope.reinsurance_grid)) return u.growl_info("Please enter location details first"); // $("#MemberIwardModal").modal(); // var message = "FAC Inward Details"; // $("#textCoinsMember").text(message); // }); /*------------------------- * FAC Inward Modal *-------------------------*/ //$("#btnCoInsMember").on("click", // function() { // if (u.grid_empty($scope.reinsurance_grid)) return u.growl_info("Please enter location details first"); // var message = "Co-Insurance Details"; // $("#textCoinsMember").text(message); // }); /*------------------------- * Coinsurance Leader Modal *-------------------------*/ //$("#btnCoInsLeader").on("click", // function() { // if (u.grid_empty($scope.reinsurance_grid)) return u.growl_info("Please enter location details first"); // $("#CoInsLeaderModal").modal(); // }); /*----------------------------------- * Fac Buttons Enable/Disable *----------------------------------*/ //$("#POLH_INS_SOURCE").change(function() { // var polins = $("#POLH_INS_SOURCE").val(); // //alert(polins) // if (polins === "") { // u.growl_warning("Please select the Policy Insurance Source"); // } else if (polins === "FIN") { // $("#btnFACInward").show(); // $("#btnCoInsMember").hide(); // $("#btnCoInsLeader").hide(); // } else if (polins === "COM") { // $("#btnFACInward").hide(); // $("#btnCoInsMember").show(); // $("#btnCoInsLeader").hide(); // } else if (polins === "COL") { // $("#btnFACInward").hide(); // $("#btnCoInsMember").hide(); // $("#btnCoInsLeader").show(); // } //}); //$("#POLH_INS_SOURCE").blur(function() { // var polins = $("#POLH_INS_SOURCE").val(); // //alert(polins) // if (polins === "") { // u.growl_warning("Please select the Policy Insurance Source"); // } else if (polins === "FIN") { // $("#btnFACInward").show(); // $("#btnCoInsMember").hide(); // $("#btnCoInsLeader").hide(); // } else if (polins === "COM") { // $("#btnFACInward").hide(); // $("#btnCoInsMember").show(); // $("#btnCoInsLeader").hide(); // } else if (polins === "COL") { // $("#btnFACInward").hide(); // $("#btnCoInsMember").hide(); // $("#btnCoInsLeader").show(); // } //}); //$scope.insSrcChange = function() { // var polins = $("#POLH_INS_SOURCE").val(); // if (polins === "DIR") { // $("#btnFACInward").hide(); // $("#btnCoInsMember").hide(); // $("#btnCoInsLeader").hide(); // } else if (polins === "FIN") { // $("#btnFACInward").show(); // $("#btnCoInsMember").hide(); // $("#btnCoInsLeader").hide(); // } else if (polins === "COM") { // $("#btnFACInward").hide(); // $("#btnCoInsMember").show(); // $("#btnCoInsLeader").hide(); // } else if (polins === "COL") { // $("#btnFACInward").hide(); // $("#btnCoInsMember").hide(); // $("#btnCoInsLeader").show(); // } //}; /*----------------------------------- * Fac Inward Calculations *----------------------------------*/ //document.getElementById("FINW_SHARE_PERC").addEventListener("focusout", FacInwardCal); //document.getElementById("FINW_COMM_PERC").addEventListener("focusout", FacInwardCal); //function FacInwardCal() { // var SharePremFC = ""; // var SharePremBC = ""; // var ShareSIFC = ""; // var ShareSIBC = ""; // var CommPercFC = ""; // var CommPercBC = ""; // if ($("#FINW_SHARE_PERC").val == "" || $("#FINW_COMM_PERC").val == "") { // u.growl_warning("FAC Share % and Commission % is null! "); // } else { // ShareSIFC = ($("#FINW_SHARE_PERC").val() / 100 * $("#FINW_ORIG_SI_FC").val()); // ShareSIBC = ($("#FINW_SHARE_PERC").val() / 100 * $("#FINW_ORIG_SI_BC").val()); // SharePremFC = ($("#FINW_SHARE_PERC").val() / 100 * $("#FINW_ORIG_PREM_FC").val()); // SharePremBC = ($("#FINW_SHARE_PERC").val() / 100 * $("#FINW_ORIG_PREM_BC").val()); // CommPercFC = ($("#FINW_COMM_PERC").val() * $("#FINW_ORIG_PREM_FC").val() / 100); // CommPercBC = ($("#FINW_COMM_PERC").val() * $("#FINW_ORIG_PREM_BC").val() / 100); // $("#FINW_SI_FC").val(ShareSIFC); // $("#FINW_SI_BC").val(ShareSIBC); // $("#FINW_PREM_FC").val(SharePremFC); // $("#FINW_PREM_BC").val(SharePremBC); // $("#FINW_COMM_FC").val(CommPercFC); // $("#FINW_COMM_BC").val(CommPercBC); // } //}; /*----------------------------------- * Fac Outward Calculations *----------------------------------*/ //document.getElementById("FOTW_SHARE_PERC").addEventListener("focusout", FacOutwardCal); // document.getElementById("FOTW_RI_COMM").addEventListener("focusout", FacOutwardCal); $("#FOTW_SHARE_PERC").blur(function () { FacOutwardCal(); }); $("#FOTW_RI_COMM").blur(function () { FacOutwardCal(); }); function FacOutwardCal() { var SharePremFC = ""; var SharePremBC = ""; var ShareSIFC = ""; var ShareSIBC = ""; var MemberSI = ""; var MemberPrem = ""; //var CommPercFC = ""; //var CommPercBC = ""; if ($("#FOTW_SHARE_PERC").val == "" || $("#FOTW_MEM_SHARE_PERC").val == "") { u.growl_warning("FAC Share % and Commission % is null! "); } else { $("#FOTW_MEM_SHARE_PERC").val(100 - $("#FOTW_SHARE_PERC").val()); ShareSIFC = ($("#FOTW_SHARE_PERC").val() / 100 * $("#FOTW_SHARE_SI_FC").val()); ShareSIBC = ($("#FOTW_SHARE_PERC").val() / 100 * $("#FOTW_SHARE_SI_BC").val()); SharePremFC = ($("#FOTW_SHARE_PERC").val() / 100 * $("#FOTW_SHARE_PREM_FC").val()); SharePremBC = ($("#FOTW_SHARE_PERC").val() / 100 * $("#FOTW_SHARE_PREM_BC").val()); MemberSI = ($("#FOTW_RI_PERC").val() / 100 * $("#FOTW_MEM_SI_FC").val()); MemberPrem = ($("#FOTW_RI_PERC").val() / 100 * $("#FOTW_MEM_PREM_FC").val()); //CommPercFC = ($('#FINW_COMM_PERC').val() * $('#FINW_ORIG_PREM_FC').val() / 100); //CommPercBC = ($('#FINW_COMM_PERC').val() * $('#FINW_ORIG_PREM_BC').val() / 100); $("#FOTW_MEM_SI_FC").val(ShareSIFC); $("#FOTW_MEM_SI_BC").val(ShareSIBC); $("#FOTW_MEM_PREM_FC").val(SharePremFC); $("#FOTW_MEM_PREM_BC").val(SharePremBC); $("#FOTW_RI_SHARE_SI").val(MemberSI); $("#FOTW_RI_SHARE_PREM").val(MemberPrem); //$('#FINW_COMM_FC').val(CommPercFC); //$('#FINW_COMM_BC').val(CommPercBC); var shareComm = $("#FOTW_MEM_PREM_FC").val() * ($("#FOTW_RI_COMM").val() / 100); $("#FOTW_RI_SHARE_COMM").val(shareComm); //$('#FOTW_RI_SHARE_COMM').val($('#FOTW_RI_COMM').val()); } }; /*----------------------------- * Discount & Loading function *-----------------------------*/ $scope.discLoadingUpdates = function() { //[grossPremFc=0, grossPremBc=1, vehBasicPrem=2, excessBoughtPrem = 3, ccLoadingPrem = 4, AddTPPDPrem = 5, RiskPrem = 6, TPBasicPrem = 7, extraSeatPrem = 8, ncdPrem = 9]; var disLoad = $scope.individualRiskPremiumCalculator(), grid = $scope.riskdiscloading_grid, currRate = parseFloat($("#POLH_CURRENCY_RATE").val() || 0); console.log(disLoad); //obtain the discount and loading grid data var rowIds = grid.jqGrid("getDataIDs"); var prem = 0, amnt = 0, netDlPrem = 0; for (var i in rowIds) { //obtain the percentage var perc = grid.jqGrid("getCell", rowIds[i], "DL_RATE"); //obtain the total premium to calculate the discount on - prem = ((DIS_LOAD[6]) || 0 + (DIS_LOAD[7] || 0)); switch (u.getCell(grid, rowIds[i], "DL_CODE")) { case "D002": //NORMAL DISCOUNT prem = (((disLoad[0]) || 0) - ((disLoad[9]) || 0)); break; case "L002": //NORMAL LOADING prem = ((disLoad[0]) || 0); break; } //check if the current row is a discount or it is a load amnt = u.getCell(grid, rowIds[i], "DL_TYPE") === "D" ? -(prem * (perc / 100)) : (prem * (perc / 100)); netDlPrem = ((disLoad[0] || 0)) + amnt; u.setCell(grid, rowIds[i], "DL_AMT_BC", (amnt * currRate)); u.setCell(grid, rowIds[i], "DL_AMT_FC", (amnt)); u.setCell(grid, rowIds[i], "DL_PREM_BC", (netDlPrem * currRate)); u.setCell(grid, rowIds[i], "DL_PREM_FC", (netDlPrem)); } }; //refresh Cover, Risk and policy Values on closing the Risk Cover Modal $("#btnCalcDisLoad").click($scope.discLoadingUpdates); /*------------------------------- * Risk Discount/Loading *--------------------------------*/ // /*----------------------------------- * Hide/Show Risk Discount & Loading *----------------------------------*/ $scope.hideShowDiscountLoading = function() { //get the selected Risk ID var prodgrid = $scope.oilgas_grid; var selId = prodgrid.jqGrid("getGridParam", "selrow"); var prodRiskId = prodgrid.jqGrid("getCell", selId, "OLS_SYS_ID"); //get the discount and loading data var discLopadingGrid = $scope.polhdiscloading_grid; var rowIds = discLopadingGrid.jqGrid("getDataIDs"); //iterate through the discounts and loading rows to hide or show them for (var i = 0, len = rowIds.length; i < len; i++) { //get value of the cell or column in an array var currRow = rowIds[i]; var getRiskCovId = discLopadingGrid.jqGrid("getCell", currRow, "DL_RISK_SYS_ID"); if (getRiskCovId !== prodRiskId) { //hide if covers are not for the selected risk $("#" + currRow).hide(); } else if (getRiskCovId === prodRiskId) { //Show if covers are for the selected risk $("#" + currRow).show(); } } }; /*--------------------------------------------- * EML Select Options *--------------------------------------------*/ $("#OLS_RI_EML_BASIS").change(function() { if ($(this).val() === "N") { $("#OLS_EML").attr("readonly", "readonly"); $("#OLS_EML").val(""); } else if ($(this).val() === "Y") { $("#OLS_EML").prop("readonly", false); } else { $("#OLS_EML").val(""); $("#OLS_EML").attr("readonly", "readonly"); } }); /*--------------------------------------------- * RE INSURANCE CALCULATIONS *--------------------------------------------*/ //$("#riTab").click(function () { // //obtain the policy header object // var polHead = u.parse_form("#polheaderForm"); // switch ($scope.treatyData["TH_RI_LEVEL"]) { // case "P": // //apply treaty setup to the policy header // var riData = u.policyRiAllocation(polHead, $scope.treatyData); // break; // case "L": // { // //loop through all locations and apply treaty setup // var locations = window.Enumerable.From(u.get_grid_data($scope.oilgas_grid)); // //check for ri combinations // const combined = locations.Where(loc => loc.OLS_RIC_YN === "Y"); // const distinctCombined = combined.Distinct(function (loc) { // return loc.OLS_RIC_CODE; // }); // //locations.ForEach(function (location) { // // //calculate ri on each location // // var locationRiAllocationData = u.locationRiAllocation(polHead, // // { // // "RI_SI_FC": location.OLS_RI_SI_FC, // // "RI_SI_BC": location.OLS_RI_SI_BC, // // "RI_PREM_BC": location.OLS_RI_PREM_BC, // // "RI_PREM_FC": location.OLS_RI_PREM_FC // // }, $scope.treatyData); // // //console.log(locationRiAllocationData); // // //add treaty data into their respective tables // // //cleat treaty header grid // // u.clear_grid_data($scope.reinsurance_grid); // // //1. add treaty head record for each location // // $scope.reinsurance_grid.addRowData(location.ID, { // // TTH_ACC_SI_BC: location.OLS_RI_SI_BC, // // TTH_ACC_SI_FC: location.OLS_RI_SI_FC, // // TTH_ADJ_YN: null, // // TTH_CLASS_CODE: polHead.POLH_CLASS_CODE, // // TTH_COMB_LOC_ID: null, // // TTH_CRTE_BY: u.getUserCode(), // // TTH_CRTE_DATE: u.get_date(), // // TTH_EML_PERC: location.OLS_EML_PERC, // // TTH_FROM_DATE: location.OLS_START_DATE, // // TTH_INS_SRCE: polHead.POLH_INS_SOURCE, // // TTH_LOC_END_NO: polHead.POLH_END_NO, // // TTH_LOC_SYS_ID: null, // // TTH_MOD_BY: null, // // TTH_MOD_DATE: null, // // TTH_POLH_END_NO: polHead.POLH_END_NO || 0, // // TTH_POLH_SYS_ID: polHead.POLH_SYS_ID, // // TTH_POLNUM: polHead.POLH_DISPLAY_NO, // // TTH_REF_ID: location.OLS_SYS_ID, // // TTH_RISK_END_NO: polHead.POLH_END_NO, // // TTH_RISK_SYS_ID: location.OLS_SYS_ID, // // TTH_RI_ACC_YN: null, // // TTH_RI_PREM_BC: location.OLS_RI_PREM_BC, // // TTH_RI_PREM_FC: location.OLS_RI_PREM_FC, // // TTH_RI_SI_BC: location.OLS_RI_SI_BC, // // TTH_RI_SI_FC: location.OLS_RI_SI_FC, // // TTH_SC_CODE: polHead.POLH_SUB_CLASS_CODE, // // TTH_STATUS: "A", // // TTH_TOTAL_PREM_BC: location.OLS_TOT_PREM_BC, // // TTH_TOTAL_PREM_FC: location.OLS_TOT_PREM_FC, // // TTH_TOTAL_SI_BC: location.OLS_SI_BC, // // TTH_TOTAL_SI_FC: location.OLS_SI_FC, // // TTH_TO_DATE: location.OLS_END_DATE, // // TTH_UW_YEAR: location.OLS_UW_YEAR, // // INS_RI_TTY_ALLOCATION: JSON.stringify(locationRiAllocationData) // // }); // //}); // var rate = 1; // if (polHead.POLH_INS_SOURCE != "DIR") { // switch (polHead.POLH_INS_SOURCE) { // case "COL": // if (u.field_empty("#CIL_OUR_PERC")) { // return u.growl_info( // "Please specify CO-Insurance Leader details, and click on the Reinsurance Details tab again"); // } // rate = $("#CIL_OUR_PERC").val() / 100; // break; // case "COM": // case "FIN": // if (u.field_empty("#FINW_SHARE_PERC")) { // return u.growl_info( // "Please specify CO-Insurance Member/FAC In Details, and click on the Reinsurance Details tab again"); // } // rate = $("#FINW_SHARE_PERC").val() / 100; // break; // default: // } // } // u.clear_grid_data($scope.reinsurance_grid); // //perform ri allocations for none combined locations // locations.Where(loc => (loc.OLS_RIC_YN === "N")).ForEach(function (location) { // //calculate ri on each location // var locationRiAllocationData = u.locationRiAllocation(polHead, // { // "RI_SI_FC": rate * location.OLS_RI_SI_FC, // "RI_SI_BC": rate * location.OLS_RI_SI_BC, // "RI_PREM_BC": rate * location.OLS_RI_PREM_BC, // "RI_PREM_FC": rate * location.OLS_RI_PREM_FC // }, // $scope.treatyData); // //console.log(locationRiAllocationData); // //add treaty data into their respective tables // //cleat treaty header grid // //1. add treaty head record for each location // $scope.reinsurance_grid.addRowData(location.ID, // { // TTH_ACC_SI_BC: (rate * location.OLS_RI_SI_BC).toFixed(2), // TTH_ACC_SI_FC: (rate * location.OLS_RI_SI_FC).toFixed(2), // TTH_ADJ_YN: null, // TTH_CLASS_CODE: polHead.POLH_CLASS_CODE, // TTH_COMB_LOC_ID: null, // TTH_CRTE_BY: u.getUserCode(), // TTH_CRTE_DATE: u.get_date(), // TTH_EML_PERC: location.OLS_EML, // TTH_FROM_DATE: location.OLS_START_DATE, // TTH_INS_SRCE: polHead.POLH_INS_SOURCE, // TTH_LOC_END_NO: polHead.POLH_END_NO, // TTH_LOC_SYS_ID: null, // TTH_MOD_BY: null, // TTH_MOD_DATE: null, // TTH_POLH_END_NO: polHead.POLH_END_NO || 0, // TTH_POLH_SYS_ID: polHead.POLH_SYS_ID, // TTH_POLNUM: polHead.POLH_DISPLAY_NO, // TTH_REF_ID: location.OLS_SYS_ID, // TTH_RISK_END_NO: polHead.POLH_END_NO, // TTH_RISK_SYS_ID: location.OLS_SYS_ID, // TTH_RI_ACC_YN: null, // TTH_RI_PREM_BC: (rate * location.OLS_RI_PREM_BC).toFixed(2), // TTH_RI_PREM_FC: (rate * location.OLS_RI_PREM_FC).toFixed(2), // TTH_RI_SI_BC: (rate * location.OLS_RI_SI_BC).toFixed(2), // TTH_RI_SI_FC: (rate * location.OLS_RI_SI_FC).toFixed(2), // TTH_SC_CODE: polHead.POLH_SUB_CLASS_CODE, // TTH_STATUS: "A", // TTH_TOTAL_PREM_BC: (rate * location.OLS_TOT_PREM_BC).toFixed(2), // TTH_TOTAL_PREM_FC: (rate * location.OLS_TOT_PREM_FC).toFixed(2), // TTH_TOTAL_SI_BC: (rate * location.OLS_SI_BC).toFixed(2), // TTH_TOTAL_SI_FC: (rate * location.OLS_SI_FC).toFixed(2), // TTH_TO_DATE: location.OLS_END_DATE, // TTH_UW_YEAR: location.OLS_UW_YEAR, // INS_RI_TTY_ALLOCATION: JSON.stringify(locationRiAllocationData) // }); // }); // //perform ri allocations for combined locations // distinctCombined.ForEach(function (location) { // var riSiFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_RI_SI_FC)).toFixed(2); // var riSiBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_RI_SI_BC)).toFixed(2); // var siFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_SI_FC)).toFixed(2); // var siBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_SI_BC)).toFixed(2); // var riPremFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_RI_PREM_FC)).toFixed(2); // var riPremBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_RI_PREM_BC)).toFixed(2); // var premFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_TOT_PREM_BC)).toFixed(2); // var premBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE) // .Sum(loc => parseFloat(loc.OLS_TOT_PREM_BC)).toFixed(2); // //calculate ri on each location // var locationRiAllocationData = u.locationRiAllocation(polHead, // { // "RI_SI_FC": rate * riSiFcTotal, // "RI_SI_BC": rate * riSiBcTotal, // "RI_PREM_BC": rate * riPremFcTotal, // "RI_PREM_FC": rate * riPremFcTotal // }, // $scope.treatyData); // //console.log(locationRiAllocationData); // //add treaty data into their respective tables // //cleat treaty header grid // //1. add treaty head record for each location // $scope.reinsurance_grid.addRowData(location.ID, // { // TTH_ACC_SI_BC: riSiBcTotal, // TTH_ACC_SI_FC: riSiFcTotal, // TTH_ADJ_YN: "N", // TTH_CLASS_CODE: polHead.POLH_CLASS_CODE, // TTH_COMB_LOC_ID: null, // TTH_CRTE_BY: u.getUserCode(), // TTH_CRTE_DATE: u.get_date(), // TTH_EML_PERC: location.OLS_EML, // TTH_FROM_DATE: location.OLS_START_DATE, // TTH_INS_SRCE: polHead.POLH_INS_SOURCE, // TTH_LOC_END_NO: polHead.POLH_END_NO, // TTH_LOC_SYS_ID: null, // TTH_MOD_BY: null, // TTH_MOD_DATE: null, // TTH_POLH_END_NO: polHead.POLH_END_NO || 0, // TTH_POLH_SYS_ID: polHead.POLH_SYS_ID, // TTH_POLNUM: polHead.POLH_DISPLAY_NO, // TTH_REF_ID: location.OLS_SYS_ID, // TTH_RISK_END_NO: polHead.POLH_END_NO, // TTH_RISK_SYS_ID: location.OLS_SYS_ID, // TTH_RI_ACC_YN: null, // TTH_RI_PREM_BC: riPremBcTotal, // TTH_RI_PREM_FC: riPremFcTotal, // TTH_RI_SI_BC: riSiBcTotal, // TTH_RI_SI_FC: riSiFcTotal, // TTH_SC_CODE: polHead.POLH_SUB_CLASS_CODE, // TTH_STATUS: "A", // TTH_TOTAL_PREM_BC: premBcTotal, // TTH_TOTAL_PREM_FC: premFcTotal, // TTH_TOTAL_SI_BC: siBcTotal, // TTH_TOTAL_SI_FC: siFcTotal, // TTH_TO_DATE: location.OLS_END_DATE, // TTH_UW_YEAR: location.OLS_UW_YEAR, // INS_RI_TTY_ALLOCATION: JSON.stringify(locationRiAllocationData) // }); // }); // } // break; // case "R": // { // var riskRiDataList = []; // var risks = Enumerable.From(u.get_grid_data($scope.riskFees_grid)); //todo: use correct risk risk grid // risks.ForEach(function (risk) { // //calculate ri on each risk // riskRiDataList.push(u.riskRiAllocation(policyHead, risk, $scope.treatyData)); // }) // } // break; // default: // break; // } //}); /*--------------------------------------------- * USER UNDERWRITING LIMITS *--------------------------------------------*/ function getUserLimitLov() { /* obtain parameter for our request */ var userLimitData = { //USER: u.getUserCode(), TT_SUB_CLASS: $("#POLH_SUB_CLASS_CODE").val(), }; // var grid = $scope.users_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 sub class/product 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 cellCode = grid.jqGrid("getCell", currRow, "URL_PROD_CODE"); //alert(cellCode); CodeArray.push(cellCode); } //send parameters and get motor Risks from the database s.getUserLimit(userLimitData, function(result) { if (result && result.length && result.length > 0) { //clear Grid $scope.users_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { result[i]["URL_SYS_ID"] = result[i]["URL_SYS_ID"]; result[i]["URL_USR_CODE"] = result[i]["URL_USR_CODE"]; result[i]["URL_PROD_CODE"] = result[i]["URL_PROD_CODE"]; result[i]["URL_UDW_SI_LIM"] = result[i]["URL_UDW_SI_LIM"]; result[i]["URL_UDW_PREM_LIM"] = result[i]["URL_UDW_PREM_LIM"]; result[i]["URL_CANL_SI_LIM"] = result[i]["URL_CANL_SI_LIM"]; result[i]["URL_CANL_PREM_LIM"] = result[i]["URL_CANL_PREM_LIM"]; result[i]["URL_RI_ALL_YN"] = result[i]["URL_RI_ALL_YN"]; result[i]["URL_ADJ_RI_YN"] = result[i]["URL_ADJ_RI_YN"]; if ($.inArray(CodeArray) < 0) { $scope.users_grid.addRowData(result[i].ID, result[i]); } else { u.growl_warning("Sub class exists for " + CodeArray); } } } }); } /* * Checking url for policy id and searching for policy */ /*$scope.query = $.url().param().id; if ($scope.query != null) { s.getOilGasById($scope.query, function(response) { if (response.state) { if (!jQuery.isEmptyObject(response.data)) { $scope.search_fill(response.data); u.growl_success("Policy details fetched successfully"); $("#btn_Save").prop("disabled", "true"); $("#btnDelete").prop("disabled", "true"); $("#btnProcessPolicy").prop("disabled", "true"); } } else { u.growl_error(response.message); } }); }*/ $("#OLS_RIC_YN").change(function() { switch ($(this).val()) { case "Y": $("#combination").show(0); $("#OLS_RIC_CODE").prop("required", "required"); break; case "N": $("#combination").hide(0); $("#OLS_RIC_CODE").val(""); $("#RIC_NAME").val(""); $("#OLS_RIC_CODE").removeAttr("required"); break; default: } }); $scope.RICalculations = function () { //loop through all locations and apply treaty setup const locations = u.get_grid_data($scope.oilgas_grid); //check for ri combinations const combined = locations.Where(loc => loc.OLS_RIC_YN === "Y"); const distinctCombined = combined.Distinct(function (loc) { return loc.LOS_RIC_CODE; }); var riData = []; //perform ri allocations for none combined locations locations.Where(loc => (loc.OLS_RIC_YN === "N")).ForEach(function (location) { riData.Add({ RI_DESCRIPTION: $scope.riDisciption(location), RI_SI_FC: location.OLS_RI_SI_FC, RI_SI_BC: location.OLS_RI_SI_BC, RI_PREM_BC: location.OLS_RI_PREM_BC, RI_PREM_FC: location.OLS_RI_PREM_FC, RISK_ID: location.OLS_SYS_ID, EML_PERC: location.OLS_EML, FROM_DATE: location.OLS_START_DATE, TO_DATE: location.OLS_END_DATE, TOT_SI_FC: location.OLS_SI_FC, TOT_SI_BC: location.OLS_SI_BC, TOT_PREM_BC: location.OLS_TOT_PREM_BC, TOT_PREM_FC: location.OLS_TOT_PREM_FC, UW_YEAR: location.OLS_UW_YEAR }); u.getGlobal("RiCalculations")(riData, $scope.treatyData); }); riData = []; //perform ri allocations for combined locations distinctCombined.ForEach(function (location) { var riSiFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_RI_SI_FC)).toFixed(2); var riSiBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_RI_SI_BC)).toFixed(2); var siFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_SI_FC)).toFixed(2); var siBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_SI_BC)).toFixed(2); var riPremFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_RI_PREM_FC)).toFixed(2); var riPremBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_RI_PREM_BC)).toFixed(2); var premFcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_TOT_PREM_BC)).toFixed(2); var premBcTotal = combined.Where(loc => loc.OLS_RIC_CODE == location.OLS_RIC_CODE).Sum(loc => parseFloat(loc.OLS_TOT_PREM_BC)).toFixed(2); riData.Add({ RI_DESCRIPTION: $scope.riDisciption(location), RI_SI_FC: riSiFcTotal, RI_SI_BC: riSiBcTotal, RI_PREM_BC: riPremBcTotal, RI_PREM_FC: riPremFcTotal, RISK_ID: location.OLS_SYS_ID, EML_PERC: location.OLS_EML, FROM_DATE: location.OLS_START_DATE, TO_DATE: location.OLS_END_DATE, TOT_SI_FC: siFcTotal, TOT_SI_BC: siBcTotal, TOT_PREM_BC: premBcTotal, TOT_PREM_FC: premFcTotal, UW_YEAR: location.OLS_UW_YEAR }); u.getGlobal("RiCalculations")(riData, $scope.treatyData); }); }; $scope.PolicyCalculations = function() { $scope.SumCoverRiskValues(); $scope.premiumSummarizer(); $scope.RICalculations(); }; $scope.renewalReSummarizer = function (policy) { var sumTotalPremFc = 0; var sumTotalPremBc = 0; var sumNetPremFc = 0; var sumNetPremBc = 0; var sumRiPremFc = 0; var sumRiPremBc = 0; var totalPremFc = 0, totalPremBc = 0, totalRiPremBc = 0, totalRiPremFc = 0, totalRiskPremBc = 0, totalRiskPremFc = 0; policy.INS_UDW_OIL_GAS.ForEach(loc => { loc.INS_UDW_OIL_GAS_INTEREST.ForEach(home => { var covers = home.INS_UWD_RISK_COVERS; covers.ForEach(c => { if (c.RCOV_STATUS !== "D") { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0); c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0); c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0); c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumNetPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumNetPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumTotalPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumTotalPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); if (c.RCOV_RI_PREM_YN === "Y") { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); } } }); home.OLINT_PRM_FC = sumNetPremFc; home.OLINT_PRM_BC = sumNetPremBc; home.OLINT_NET_PREM_FC = sumNetPremFc; home.OLINT_NET_PREM_BC = sumNetPremBc; home.OLINT_GROSS_PRM_FC = sumTotalPremFc; home.OLINT_GROSS_PRM_BC = sumTotalPremBc; home.OLINT_RI_PREM_FC = sumRiPremFc; home.OLINT_RI_PREM_BC = sumRiPremBc; }); loc.INS_UDW_HOME_OWNERS.ForEach(r => { totalPremBc += parseFloat(r.OLINT_GROSS_PRM_FC || 0); totalPremFc += parseFloat(r.OLINT_GROSS_PRM_BC || 0); totalRiPremBc += parseFloat(r.OLINT_RI_PREM_FC || 0); totalRiPremFc += parseFloat(r.OLINT_RI_PREM_BC || 0); totalRiskPremBc += parseFloat(r.OLINT_NET_PREM_FC || 0); totalRiskPremFc += parseFloat(r.OLINT_NET_PREM_BC || 0); }); loc.OLS_TOT_PREM_FC = totalPremFc; loc.OLS_TOT_PREM_BC = totalPremBc; loc.OLS_RISK_PREM_FC = totalRiskPremFc; loc.OLS_RISK_PREM_BC = totalRiskPremBc; loc.OLS_RI_PREM_FC = totalRiPremFc; loc.OLS_RI_PREM_BC = totalRiPremBc; }); return policy; }; /** * RENEWAL PROCESSING CHECK * @param {object} $scope.query query param object * @return null */ $scope.query = $.url().param(); if (!jQuery.isEmptyObject($scope.query)) { if ($scope.query.polid) { const newUrl = location.href.split("?")[0]; u.modalConfirmationAsync("Continue with renewal?", async function () { var response = await s.getPolicyAsync($scope.query.polid); if (response.state) { if (jQuery.isEmptyObject(response.data)) return u.growl_info("Policy not found"); if (response.data.POLH_TXN_STATE == "R") { return window.location.href = window.location.href + "?id=" + response.data.POLH_SYS_ID } var renPolicy = u.getGlobal("renewalProcess")(response.data); // fill policy header u.getGlobalStatic("productSearchFill")(renPolicy); renPolicy.INS_UDW_OIL_GAS.ForEach(b => { b.OLS_START_DATE = renPolicy.POLH_POL_START_DATE; b.OLS_END_DATE = renPolicy.POLH_POL_END_DATE; b.OLS_UW_YEAR = renPolicy.POLH_POL_UW_YEAR; b.OLS_POLH_END_NO = 0; b.OLS_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; b.INS_UDW_OIL_GAS_INTEREST = u.parseJson(b.INS_UDW_OIL_GAS_INTEREST); b.INS_UDW_OIL_GAS_INTEREST.ForEach(h => { h.OLINT_START_DATE = renPolicy.POLH_POL_START_DATE; h.OLINT_END_DATE = renPolicy.POLH_POL_END_DATE; h.OLINT_UW_YEAR = renPolicy.POLH_POL_UW_YEAR; h.OLINT_POLH_END_NO = 0; h.OLINT_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; h.INS_UWD_RISK_COVERS = u.parseJson(h.INS_UWD_RISK_COVERS); h.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = 0; c.RPCOV_RNW_NO = renPolicy.POLH_RENEW_SER_NO; if (c.MS_UDW_COVERS) { delete c.MS_UDW_COVERS; } }); h.INS_UDW_OIL_GAS_FEES = u.parseJson(h.INS_UDW_OIL_GAS_FEES); h.INS_UDW_OIL_GAS_FEES.ForEach(f => { f.OLS_FEE_RNW_NO = renPolicy.POLH_RENEW_SER_NO; f.OLS_FEE_END_NO = 0; if (f.MS_COMPULSORY_FEES) { delete f.MS_COMPULSORY_FEES; } }); }); }); var newRenPolicy = $scope.renewalReSummarizer(renPolicy); var treatyResult = await s.getProductTreatyAsync(renPolicy.POLH_SUB_CLASS_CODE, renPolicy.POLH_POL_UW_YEAR, renPolicy.POLH_CURRENCY); if (treatyResult.state && treatyResult.data) { u.setGlobal("treatyData", treatyResult.data); var riData = []; newRenPolicy.INS_UDW_OIL_GAS.ForEach(v => { let data = { RI_DESCRIPTION: $scope.riDisciption(v), RI_SI_FC: v.OLS_RI_SI_FC || 0, RI_SI_BC: v.OLS_RI_SI_BC || 0, RI_PREM_BC: v.OLS_RI_PREM_BC, RI_PREM_FC: v.OLS_RI_PREM_FC, RISK_ID: v.OLS_SYS_ID, EML_PERC: v.OLS_EML || 0, FROM_DATE: v.OLS_START_DATE, TO_DATE: v.OLS_END_DATE, TOT_SI_FC: v.OLS_SI_FC, TOT_SI_BC: v.OLS_SI_BC, TOT_PREM_BC: v.OLS_TOT_PREM_BC, TOT_PREM_FC: v.OLS_TOT_PREM_FC, UW_YEAR: v.OLS_UW_YEAR || renPolicy.POLH_POL_UW_YEAR, RI_STATUS: "U" }; riData.Add(data); }); //let riResult = await u.getGlobal("RIReCalculation")(newRenPolicy, riData); //var riHead = u.getGlobal("RICode")(newRenPolicy, riResult); let riHead = u.getGlobal("RiCalculations")(riData, treatyResult.data, newRenPolicy); riHead.ForEach(ri => { ri.TTH_POLH_END_NO = 0; ri.TTH_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; ri.TTH_CURRENCY = renPolicy.POLH_CURRENCY; ri.TTH_CURRENCY_RATE = renPolicy.POLH_CURRENCY_RATE; ri.INS_RI_TTY_ALLOCATION = u.parseJson(ri.INS_RI_TTY_ALLOCATION); ri.INS_RI_TTY_ALLOCATION.ForEach(a => { a.TTA_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; a.TTA_POLH_END_NO = 0; a.INS_RI_TTY_SHARE.ForEach(s => { s.TTS_END_NO = 0; s.TTS_RNW_NO = renPolicy.POLH_RENEW_SER_NO; }); }); }); newRenPolicy.INS_RI_TTY_HEAD = riHead; newRenPolicy.INS_RI_TTY_HEAD = riHead; delete newRenPolicy.MS_UDW_CLASS_OF_BUSINESS; delete newRenPolicy.MS_SYS_SOURCE_BUSINESS; delete newRenPolicy.MS_SYS_OFFICE; delete newRenPolicy.MS_SYS_CHANNEL; delete newRenPolicy.MS_SBU; delete newRenPolicy.MST_UWD_PRODUCT; delete newRenPolicy.INS_UDW_INSUR_SOURCE; delete newRenPolicy.MST_UWD_PRODUCT_COVERS; delete newRenPolicy.MS_UDW_CUSTOMERS; delete newRenPolicy.MS_SYS_INTERMEDIARY; if (newRenPolicy.MS_SYS_COMPANY) delete newRenPolicy.MS_SYS_COMPANY; newRenPolicy.INS_UDW_OIL_GAS.ForEach(b => { b.INS_UDW_OIL_GAS_INTEREST = u.parseJson(b.INS_UDW_OIL_GAS_INTEREST); b.INS_UDW_OIL_GAS_INTEREST.ForEach(h => { h.INS_UDW_OIL_GAS_FEES = u.parseJson(h.INS_UDW_OIL_GAS_FEES); h.INS_UWD_RISK_COVERS = u.parseJson(h.INS_UWD_RISK_COVERS); }); }); u.getGlobal("savePolicy")(newRenPolicy, function (result) { result = u.getGlobal("rawOilGasPremium")(result, false); u.getGlobal("rawOilGasPopulate")(result); $("#PolicyModal").modal({ keyboard: false, backdrop: 'static' }); $("#tabs").tabs({ active: 2 }); u.growl_success("Renewal calculations applied. Please continue"); u.form_text_Black_color(); }, true); } else { return u.modalInfo( `Treaty not setup for underwriting year: ${renPolicy.POLH_POL_UW_YEAR}. Please contact your administrator`); } } else { u.growl_error(response.message); } }); window.history.pushState('object', document.title, newUrl); } } }); })(window.$, window.service, window.utility, {}); (function (s, u) { s.add({ save_policy: function (policys, success, error) { u.post(this.backend + "api/policyoilgas/save", policys, success, error); }, get_policys: function (success, error) { u.get(this.backend + "api/policyoilgas", success, error); }, search_policy: function (query, success, error) { u.get(this.backend + "api/policyoilgas/search/" + query, success, error); }, confirmPolicy: function (polId, endNo, userCode, riYN, success, error) { u.get(this.backend + "api/Confirmation/ConfirmOilGasPolicy/" + polId + "/" + endNo + "/" + userCode + "/" + riYN, success, error); }, risk_end_deletion: function (sysID, endNo, userCode, success, error) { u.get(this.backend + "api/policyoilgas/endDeletion/" + sysID + "/" + endNo + "/" + userCode, success, error); }, unConfirm_Policy: function (polId, endNo, success, error) { u.get(this.backend + "api/Confirmation/unconfirm/" + polId + "/" + endNo + "/" + userCode, 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_area: function (success, error) { u.get(this.backend + "api/area/lov", success, error); }, get_lov_location: function (success, error) { u.get(this.backend + "api/location/lov", success, error); }, get_lov_region: function (success, error) { u.get(this.backend + "api/regions/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_eqzone: function (success, error) { u.get(this.backend + "api/fireeqzone/lov", success, error); }, get_lov_transit: function (success, error) { u.get(this.backend + "api/transit/lov", success, error); }, getArea: function (regCode, success, error) { // u.post(this.backend + "api/area/areaLov", data, success, error); u.get(this.backend + `api/area/areaLov/${regCode}`, success, error); }, //getLocation: function (data, success, error) { // u.post(this.backend+"api/location/locationLov", data, success, error); //}, getLocation: function (areaCode, success, error) { u.get(this.backend + `api/location/locationLov/${areaCode}`, success, error); }, get_lov_occupancy: function (success, error) { u.get(this.backend + "api/occupancy/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_region_code: function (code, success, error) { u.get(this.backend + "api/regions/check/" + code, success, error); }, get_customer: function (code, success, error) { u.get(this.backend + "api/Customer/" + 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_policy_risk: function (success, error) { u.get(this.backend + "api/policyoilgasrisk", success, error); }, get_lov_risk: function (code, success, error) { u.get(this.backend + "api/productrisk/productRisksLov/" + code, success, error); } }); })(window.service, window.utility);