(function (s, u) { s.add({ get_policys: function (success, error) { u.get(this.backend + "api/policyengineerCAR", success, error); }, risk_end_deletion: function (sysID, endNo, success, error) { u.get(this.backend + "api/policyengineerCAR/endDeletion/" + sysID + "/" + endNo, success, error); }, get_customer: function (code, success, error) { u.get(`${this.backend}api/customer/${code}`, success, error); }, get_lov_company: function (success, error) { u.get(this.backend + "api/company/lov", success, error); }, get_lov_channel: function (success, error) { u.get(this.backend + "api/channel/lov", success, error); }, get_lov_office: function (success, error) { u.get(this.backend + "api/office/lov", success, error); }, get_lov_product_type: function (success, error) { u.get(this.backend + "api/classbusiness/lov", success, error); }, get_lov_cover_type: function (success, error) { u.get(this.backend + "api/cover/lov", success, error); }, get_lov_ins_source: function (success, error) { u.get(this.backend + "api/insurancesource/lov", success, error); }, get_lov_broker_agent: function (success, error) { u.get(this.backend + "api/intermediary/lov", success, error); }, get_lov_business_source: function (success, error) { u.get(this.backend + "api/SourceBusiness/lov", success, error); }, get_lov_customer: function (success, error) { u.get(this.backend + "api/Customer/lov", success, error); }, get_lov_currency: function (success, error) { u.get(this.backend + "api/exchangerate/lov", success, error); }, get_lov_Intermediary_Comm: function (code, success, error) { u.post(this.backend + "api/IntermediaryCommission/lov/", code, success, error); }, get_lov_cedent: function (success, error) { u.get(this.backend + "api/customercategory/lov", success, error); }, get_lov_com: function (success, error) { u.get(this.backend + "api/company/lov", success, error); }, get_lov_member_com: function (success, error) { u.get(this.backend + "api/customercategory/lov", success, error); }, get_lov_regions: function (success, error) { u.get(this.backend + "api/regions/lov", success, error); }, get_lov_occupancy: function (success, error) { u.get(this.backend + "api/occupancy/lov", success, error); }, get_lov_eqzone: function (success, error) { u.get(this.backend + "api/fireeqzone/lov", success, error); }, check_company_code: function (code, success, error) { u.get(this.backend + "api/company/check/" + code, success, error); }, check_intermediary_code: function (code, success, error) { u.get(this.backend + "api/intermediary/check/" + code, success, error); }, check_office_code: function (code, success, error) { u.get(this.backend + "api/office/check/" + code, success, error); }, check_product_code: function (code, success, error) { u.get(this.backend + "api/classbusiness/check/" + code, success, error); }, check_channel_code: function (code, success, error) { u.get(this.backend + "api/channel/check/" + code, success, error); }, check_insurance_source_code: function (code, success, error) { u.get(this.backend + "api/insurancesource/check/" + code, success, error); }, check_subproduct_code: function (code, success, error) { u.get(this.backend + "api/product/check/" + code, success, error); }, check_business_source_code: function (code, success, error) { u.get(this.backend + "api/SourceBusiness/check/" + code, success, error); }, check_customer_code: function (code, success, error) { u.get(this.backend + "api/Customer/check/" + code, success, error); }, check_area_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, check_location_code: function (code, success, error) { u.get(this.backend + "api/location/check/" + code, success, error); }, check_occupancy_code: function (code, success, error) { u.get(this.backend + "api/occupancy/check/" + code, success, error); }, getAddRiskCovers: function (data, success, error) { u.post(this.backend + "api/RisksCovers/additionalCovers", data, success, error); }, getRiskDefaulCovers: function (data, success, error) { u.post(this.backend + "api/RisksCovers/defaultCovers", data, success, error); }, getRiskCoversLOV: function (data, success, error) { u.post(this.backend + "api/RisksCovers/RiskCoversLOV", data, success, error); }, getProdtRisk: function (data, success, error) { u.post(this.backend + "api/RisksCovers/productRisk", data, success, error); }, getArea: function (data, success, error) { u.post(this.backend + "api/area/areaLov", data, success, error); }, getLocation: function (data, success, error) { u.post(this.backend + "api/location/locationLov", data, success, error); }, get_customers: function (success, error) { u.get(this.backend + "api/customer", success, error); }, //search_customer: function (query, success, error) { // u.get(this.backend + "api/customer/search/" + query, success, error); //}, getRiskFees: function (data, success, error) { u.post(this.backend + "api/productriskfee/RiskFees", data, success, error); }, get_lov_risk: function (success, error) { u.get(this.backend + "api/firerisk/lov", success, error); }, get_lov_ricustomer: function (success, error) { u.get(this.backend + "api/customer/rilov", success, error); }, get_lov_fdzoneAsync: async function (data) { return await u.getAsync(`${this.backend}api/disastercategory/lov/Flood/${data.region}`, data); }, getDefaultAddOnProductCoversAsync: async function (data) { return await u.postAsync(this.backend + "api/addonproduct/defaultCovers", data); }, get_lov_PExcessAsync: async function (data) { return await u.getAsync(`${this.backend}api/product/excess/lov/${data.SubClass}`); }, get_PExcessAsync: async function (data) { return await u.getAsync(`${this.backend}api/product/excess/${data}`); }, getAddOnRiskCoversLOV: function (data, success, error) { u.post(this.backend + "api/addonproduct/riskCoversLOV", data, success, error); }, getLocationRisks: function (code, success, error) { u.get(this.backend + `api/locationrisk/locationRisksLov/${code}`, success, error); }, getProductRisks: function (code, success, error) { u.get(this.backend + `api/productrisk/productRisksLov/${code}`, success, error); } }); })(window.service, window.utility); (function (s, u) { s.add({ save_areas: function (areas, success, error) { u.post(this.backend + "api/area/save", areas, success, error); }, get_areas: function (success, error) { u.get(this.backend + "api/area", success, error); }, search_area: function (query, success, error) { u.get(this.backend + "api/area/search/" + query, success, error); }, get_area_lov: function (success, error) { u.get(this.backend + "api/area/lov", success, error); }, check_area_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, check_area_lov_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, get_lov_regions: function (success, error) { u.get(this.backend + "api/regions/lov", success, error); }, check_region_code: function (code, success, error) { u.get(this.backend + "api/regions/check/" + code, success, error); }, getRegionAreas: function (regCode, success, error) { u.get(`${this.backend}api/area/areaLov/${regCode}`, success, error); }, get_disasterType_lov: function (success, error) { u.get(this.backend + "api/disastertypes/lov", success, error); }, get_disasterCategory_lov: function (code, success, error) { u.get(this.backend + "api/disastercategory/lov/" + code, success, error); } }); })(window.service, window.utility); (function (s, u) { s.add({ save_locations: function (locations, success, error) { u.post(this.backend + "api/location/save", locations, success, error); }, get_locations: function (success, error) { u.get(this.backend + "api/location", success, error); }, search_location: function (query, success, error) { u.get(this.backend + "api/location/search/" + query, success, error); }, get_lov_areas: function (success, error) { u.get(this.backend + "api/area/lov", success, error); }, check_location_code: function (code, success, error) { u.get(this.backend + "api/location/check/" + code, success, error); }, check_area_code: function (code, success, error) { u.get(this.backend + "api/area/check/" + code, success, error); }, getAreaLocations: function (areaCode, success, error) { u.get(`${this.backend}api/location/locationLov/${areaCode}`, success, error); } }); })(window.service, window.utility); (function (s, u) { s.add({ save_short_period: function (classbusinesses, success, error) { u.post(this.backend + "api/shortperiod/save", classbusinesses, success, error); }, get_short_periods: function (success, error) { u.get(this.backend + "api/shortperiod", success, error); }, search_short_period: function (query, success, error) { u.get(this.backend + "api/shortperiod/search/" + query, success, error); }, check_short_period_code: function (code, success, error) { u.get(this.backend + "api/shortperiod/check/" + code, success, error); }, get_class_business: function (success, error) { u.get(this.backend + "api/classbusiness/lov", success, error); }, get_lov_product: function (success, error) { u.get(this.backend + "api/product/lov", success, error); }, get_short_period: function (data, success, error) { u.get(`${this.backend}api/shortperiod/${data.prdCode}/${data.days}`, success, error); }, getShortPeriodsAsync: async function (classCode) { return await u.getAsync(`${this.app}api/shortperiod/class/${classCode}`); } }); })(window.service, window.utility); (function($, s, u, $scope) { $(function() { u.setGlobal("EngLocationSummarizer", function() { var locationGrid = u.getGlobal("udwEngGrid"); const rowId = u.getSelRow(locationGrid); var totalSiFc = 0, totalSiBc = 0, totalRiSiBc = 0, totalRiSiFc = 0; var totalPremFc = 0, totalPremBc = 0, totalRiPremBc = 0, totalRiPremFc = 0, totalRiskPremBc = 0, totalRiskPremFc = 0; var totalDiscFc = 0, totalDiscBc = 0, totalLoadFc = 0, totalLoadBc = 0; //const engOtherRowId = u.getSelRow(u.getGlobal("udwEngCarGrid")); if (rowId) { //TPL covers summarization var carGrid = u.getGlobal("udwEngCarGrid") || null; if (carGrid._data.length > 0) { //const carRowId = u.getSelRow(u.getGlobal("udwEngCarGrid")); var carList = u.get_grid_data(u.getGlobal("udwEngCarGrid")); carList.ForEach(car => { const carTplList = typeof (car.INS_UDW_TPL) === "string" ? u.parseJson(car.INS_UDW_TPL) : car.INS_UDW_TPL || []; carTplList.ForEach(l => { const carTplCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(l.INS_UWD_RISK_COVERS) : l.INS_UWD_RISK_COVERS || []; carTplCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0); //totalSiFc += parseFloat(r.RCOV_SI_FC || 0); //totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } }); }); const carLopList = typeof (car.INS_UDW_LOP) === "string" ? u.parseJson(car.INS_UDW_LOP) : car.INS_UDW_LOP || []; carLopList.ForEach(l => { //LOP covers summarization const carLopCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(l.INS_UWD_RISK_COVERS) : l.INS_UWD_RISK_COVERS || []; carLopCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0); totalSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } }); }); //CPM risk summarization var carCpmRiskList = typeof (car.INS_UDW_CPM_RISK) === "string" ? u.parseJson(car.INS_UDW_CPM_RISK) : car.INS_UDW_CPM_RISK || []; carCpmRiskList.ForEach(r => { if (r.CPM_STATUS !== "D") { totalSiBc += parseFloat(r.CPM_SI_BC || 0); totalSiFc += parseFloat(r.CPM_SI_FC || 0); totalRiSiBc += parseFloat(r.CPM_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.CPM_RI_SI_FC || 0); totalPremBc += parseFloat(r.CPM_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.CPM_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.CPM_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.CPM_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.CPM_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.CPM_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.CPM_DISC_BC || 0); totalDiscFc += parseFloat(r.CPM_DISC_FC || 0); totalLoadBc += parseFloat(r.CPM_LOAD_BC || 0); totalLoadFc += parseFloat(r.CPM_LOAD_FC || 0); } }); }); // CAR Risk summarization const car = typeof (u.getCell(locationGrid, rowId, "INS_UDW_CAR_RISK")) === "string" ? u.parseJson(u.getCell(locationGrid, rowId, "INS_UDW_CAR_RISK")) : u.getCell(locationGrid, rowId, "INS_UDW_CAR_RISK") || []; car.ForEach(r => { if (r.CAR_STATUS !== "D") { totalSiBc += parseFloat(r.CAR_SI_BC || 0); totalSiFc += parseFloat(r.CAR_SI_FC || 0); totalRiSiBc += parseFloat(r.CAR_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.CAR_RI_SI_FC || 0); totalPremBc += parseFloat(r.CAR_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.CAR_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.CAR_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.CAR_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.CAR_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.CAR_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.CAR_DISC_BC || 0); totalDiscFc += parseFloat(r.CAR_DISC_FC || 0); totalLoadBc += parseFloat(r.CAR_LOAD_BC || 0); totalLoadFc += parseFloat(r.CAR_LOAD_FC || 0); } }); } var earGrid = u.getGlobal("udwEngEarGrid") || null; if (earGrid._data.length > 0) { //const earRowId = u.getSelRow(u.getGlobal("udwEngEarGrid")); var earList = u.get_grid_data(u.getGlobal("udwEngEarGrid")); earList.ForEach(ear => { const earTplList = typeof (ear.INS_UDW_TPL) ==="string" ? u.parseJson(ear.INS_UDW_TPL) : ear.INS_UDW_TPL || []; earTplList.ForEach(l => { const earTplCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(l.INS_UWD_RISK_COVERS) : l.INS_UWD_RISK_COVERS || []; earTplCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0); totalSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } }); }); const earLopList = typeof (ear.INS_UDW_LOP) ==="string" ? u.parseJson(ear.INS_UDW_LOP) : ear.INS_UDW_LOP || []; earLopList.ForEach(l => { const earLopCoverList = typeof (l.INS_UDW_POL_COVERS) === "string" ? u.parseJson(l.INS_UDW_POL_COVERS) : l.INS_UDW_POL_COVERS || []; earLopCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0); totalSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } }); }); var earCpmRiskList = typeof (ear.INS_UDW_CPM_RISK) === "string" ? u.parseJson(ear.INS_UDW_CPM_RISK) : ear.INS_UDW_CPM_RISK || []; earCpmRiskList.ForEach(r => { if (r.CPM_STATUS !== "D") { totalSiBc += parseFloat(r.CPM_SI_BC || 0); totalSiFc += parseFloat(r.CPM_SI_FC || 0); totalRiSiBc += parseFloat(r.CPM_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.CPM_RI_SI_FC || 0); totalPremBc += parseFloat(r.CPM_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.CPM_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.CPM_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.CPM_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.CPM_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.CPM_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.CPM_DISC_BC || 0); totalDiscFc += parseFloat(r.CPM_DISC_FC || 0); totalLoadBc += parseFloat(r.CPM_LOAD_BC || 0); totalLoadFc += parseFloat(r.CPM_LOAD_FC || 0); } }); }); //EAR RISK SUMMARIZATION const ear = typeof (u.getCell(locationGrid, rowId, "INS_UDW_EAR_RISK")) === "string" ? u.parseJson(u.getCell(locationGrid, rowId, "INS_UDW_EAR_RISK") || "[]") : u.getCell(locationGrid, rowId, "INS_UDW_EAR_RISK") || []; ear.ForEach(r => { if (r.EAR_STATUS !== "D") { totalSiBc += parseFloat(r.EAR_SI_BC || 0); totalSiFc += parseFloat(r.EAR_SI_FC || 0); totalRiSiBc += parseFloat(r.EAR_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.EAR_RI_SI_FC || 0); totalPremBc += parseFloat(r.EAR_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.EAR_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.EAR_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.EAR_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.EAR_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.EAR_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.EAR_DISC_BC || 0); totalDiscFc += parseFloat(r.EAR_DISC_FC || 0); totalLoadBc += parseFloat(r.EAR_LOAD_BC || 0); totalLoadFc += parseFloat(r.EAR_LOAD_FC || 0); } }); } var otherEngGrid = u.getGlobal("udwEngOtherGrid") || null; if (otherEngGrid._data.length > 0) { const otherEng = typeof (u.getCell(locationGrid, rowId, "INS_UDW_ENG_OTHER")) === "string" ? u.parseJson(u.getCell(locationGrid, rowId, "INS_UDW_ENG_OTHER") || "[]") : u.getCell(locationGrid, rowId, "INS_UDW_ENG_OTHER") || []; otherEng.ForEach(r => { if (r.ENG_OTHER_STATUS !== "D") { totalSiBc += parseFloat(r.ENG_OTHER_SI_BC || 0); totalSiFc += parseFloat(r.ENG_OTHER_SI_FC || 0); totalRiSiBc += parseFloat(r.ENG_OTHER_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.ENG_OTHER_RI_SI_FC || 0); totalPremBc += parseFloat(r.ENG_OTHER_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.ENG_OTHER_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.ENG_OTHER_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.ENG_OTHER_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.ENG_OTHER_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.ENG_OTHER_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.ENG_OTHER_DISC_BC || 0); totalDiscFc += parseFloat(r.ENG_OTHER_DISC_FC || 0); totalLoadBc += parseFloat(r.ENG_OTHER_LOAD_BC || 0); totalLoadFc += parseFloat(r.ENG_OTHER_LOAD_FC || 0); } }); } u.setCell(locationGrid, rowId, "ENG_SI_BC", totalSiBc); u.setCell(locationGrid, rowId, "ENG_SI_FC", totalSiFc); u.setCell(locationGrid, rowId, "ENG_TOT_PREM_FC", totalPremFc); u.setCell(locationGrid, rowId, "ENG_TOT_PREM_BC", totalPremBc); u.setCell(locationGrid, rowId, "ENG_RI_SI_FC", totalRiSiFc); u.setCell(locationGrid, rowId, "ENG_RI_SI_BC", totalRiSiBc); u.setCell(locationGrid, rowId, "ENG_RI_PREM_FC", totalRiPremFc); u.setCell(locationGrid, rowId, "ENG_RI_PREM_BC", totalRiPremBc); u.setCell(locationGrid, rowId, "ENG_RISK_PREM_FC", totalRiskPremFc); u.setCell(locationGrid, rowId, "ENG_RISK_PREM_BC", totalRiskPremBc); u.setCell(locationGrid, rowId, "ENG_DISC_FC", totalDiscFc); u.setCell(locationGrid, rowId, "ENG_DISC_BC", totalDiscBc); u.setCell(locationGrid, rowId, "ENG_LOAD_FC", totalLoadFc); u.setCell(locationGrid, rowId, "ENG_LOAD_BC", totalLoadBc); u.setCell(locationGrid, rowId, "ENG_ADJ_PREM_FC", 0.00); u.setCell(locationGrid, rowId, "ENG_ADJ_PREM_BC", 0.00); /*u.setCell($scope.locationGrid, rowId, "",); u.setCell($scope.locationGrid, rowId, "",); u.setCell($scope.locationGrid, rowId, "",); u.setCell($scope.locationGrid, rowId, "",);*/ } else { } }); $scope.valueAddTaxCalculation = function (v) { v.ENG_VALUE_ADDED_TAX_YN = v.ENG_VALUE_ADDED_TAX_YN || "N"; v.ENG_VALUE_ADDED_TAX_PERC = parseFloat(v.ENG_VALUE_ADDED_TAX_PERC || 0) || 0; v.ENG_VALUE_ADDED_TAX_FC = parseFloat(parseFloat(v.ENG_TOT_PREM_FC * parseFloat(v.ENG_VALUE_ADDED_TAX_PERC || 0) * 0.01).toFixed(2)) || 0; v.ENG_VALUE_ADDED_TAX_BC = parseFloat(parseFloat(v.ENG_TOT_PREM_BC * parseFloat(v.ENG_VALUE_ADDED_TAX_PERC || 0) * 0.01).toFixed(2)) || 0; v.ENG_VALUE_ADDED_TAX_RATE_FC = v.ENG_VALUE_ADDED_TAX_YN == "Y" ? parseFloat(v.ENG_VALUE_ADDED_TAX_FC) : 0; v.ENG_VALUE_ADDED_TAX_RATE_BC = v.ENG_VALUE_ADDED_TAX_YN == "Y" ? parseFloat(v.ENG_VALUE_ADDED_TAX_BC) : 0; }; u.setGlobal("EngLocationReSummarizer", function() { var totalSiFc = 0, totalSiBc = 0, totalRiSiBc = 0, totalRiSiFc = 0; var totalPremFc = 0, totalPremBc = 0, totalRiPremBc = 0, totalRiPremFc = 0, totalRiskPremBc = 0, totalRiskPremFc = 0; var totalDiscFc = 0, totalDiscBc = 0, totalLoadFc = 0, totalLoadBc = 0; const locations = u.get_grid_data(u.getGlobal("udwEngGrid")); locations.ForEach(location => { var carRisks = u.parseJson(location.INS_UDW_CAR_RISK); console.log(carRisks); //CAR carRisks.ForEach(car => { var carTplList = typeof (car.INS_UDW_TPL) === "string" ? u.parseJson(car.INS_UDW_TPL || "[]") : car.INS_UDW_TPL || []; console.log(carTplList); if (carTplList.length > 0 && !Array.isArray(carTplList)) { carTplList = u.parseJson(carTplList); } carTplList.ForEach(l => { const carTplCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(l.INS_UWD_RISK_COVERS || "[]") : l.INS_UWD_RISK_COVERS || []; carTplCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_FC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_FC || 0); } }); }); var carLopList = typeof (car.INS_UDW_LOP) === "string" ? u.parseJson(car.INS_UDW_LOP || "[]") : car.INS_UDW_LOP || []; if (carLopList.length > 0 && !Array.isArray(carTplList)) { carLopList = u.parseJson(carLopList); } carLopList.ForEach(l => { //LOP covers summarization const carLopCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(l.INS_UWD_RISK_COVERS || "[]") : l.INS_UWD_RISK_COVERS || []; carLopCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0); } }); }); //CPM risk summarization var carCpmRiskList = typeof (car.INS_UDW_CPM_RISK) === "string" ? u.parseJson(car.INS_UDW_CPM_RISK || "[]") : car.INS_UDW_CPM_RISK || []; carCpmRiskList.ForEach(r => { if (r.CPM_STATUS !== "D") { totalSiBc += parseFloat(r.CPM_SI_BC || 0); totalSiFc += parseFloat(r.CPM_SI_FC || 0); totalRiSiBc += parseFloat(r.CPM_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.CPM_RI_SI_FC || 0); totalPremBc += parseFloat(r.CPM_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.CPM_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.CPM_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.CPM_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.CPM_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.CPM_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.CPM_DISC_BC || 0); totalDiscFc += parseFloat(r.CPM_DISC_FC || 0); totalLoadBc += parseFloat(r.CPM_LOAD_BC || 0); totalLoadFc += parseFloat(r.CPM_LOAD_FC || 0); } }); if (car.CAR_STATUS !== "D") { totalSiBc += parseFloat(car.CAR_SI_BC || 0); totalSiFc += parseFloat(car.CAR_SI_FC || 0); totalRiSiBc += parseFloat(car.CAR_RI_SI_BC || 0); totalRiSiFc += parseFloat(car.CAR_RI_SI_FC || 0); totalPremBc += parseFloat(car.CAR_TOT_PREM_BC || 0); totalPremFc += parseFloat(car.CAR_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(car.CAR_RI_PREM_BC || 0); totalRiPremFc += parseFloat(car.CAR_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(car.CAR_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(car.CAR_RISK_PREM_FC || 0); totalDiscBc += parseFloat(car.CAR_DISC_BC || 0); totalDiscFc += parseFloat(car.CAR_DISC_FC || 0); totalLoadBc += parseFloat(car.CAR_LOAD_BC || 0); totalLoadFc += parseFloat(car.CAR_LOAD_FC || 0); } }); //EAR var earRisks = u.parseJson(location.INS_UDW_EAR_RISK); earRisks.ForEach(ear => { var earTplList = typeof (ear.INS_UDW_TPL) === "string" ? u.parseJson(ear.INS_UDW_TPL || "[]") : ear.INS_UDW_TPL || []; if (earTplList.length > 0 && !Array.isArray(earTplList)) { earTplList = u.parseJson(earTplList); } earTplList.ForEach(l => { const earTplCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(l.INS_UWD_RISK_COVERS) : l.INS_UWD_RISK_COVERS || []; earTplCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0); } }); }); var earLopList = typeof (ear.INS_UDW_LOP) === "string" ? u.parseJson(ear.INS_UDW_LOP || "[]") : ear.INS_UDW_LOP || []; if (earLopList.length > 0 && !Array.isArray(earTplList)) { earLopList = u.parseJson(earLopList); } earLopList.ForEach(l => { //LOP covers summarization const earLopCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(l.INS_UWD_RISK_COVERS) : l.INS_UWD_RISK_COVERS || []; earLopCoverList.ForEach(r => { if (r.RCOV_STATUS !== "D") { totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0); totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0); if (r.RCOV_RI_PREM_YN === "Y") { totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); } if (r.RCOV_RI_SI_YN === "Y") { totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0); totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiFc += parseFloat(r.RCOV_SI_FC || 0); totalSiBc += parseFloat(r.RCOV_SI_BC || 0); } totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0); totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0); totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0); totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0); totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0); totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0); } }); }); //CPM risk summarization var earCpmRiskList = typeof (ear.INS_UDW_CPM_RISK) === "string" ? u.parseJson(ear.INS_UDW_CPM_RISK || "[]") : ear.INS_UDW_CPM_RISK || []; earCpmRiskList.ForEach(r => { if (r.CPM_STATUS !== "D") { totalSiBc += parseFloat(r.CPM_SI_BC || 0); totalSiFc += parseFloat(r.CPM_SI_FC || 0); totalRiSiBc += parseFloat(r.CPM_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.CPM_RI_SI_FC || 0); totalPremBc += parseFloat(r.CPM_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.CPM_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.CPM_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.CPM_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.CPM_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.CPM_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.CPM_DISC_BC || 0); totalDiscFc += parseFloat(r.CPM_DISC_FC || 0); totalLoadBc += parseFloat(r.CPM_LOAD_BC || 0); totalLoadFc += parseFloat(r.CPM_LOAD_FC || 0); } }); if (ear.EAR_STATUS !== "D") { totalSiBc += parseFloat(ear.EAR_SI_BC || 0); totalSiFc += parseFloat(ear.EAR_SI_FC || 0); totalRiSiBc += parseFloat(ear.EAR_RI_SI_BC || 0); totalRiSiFc += parseFloat(ear.EAR_RI_SI_FC || 0); totalPremBc += parseFloat(ear.EAR_TOT_PREM_BC || 0); totalPremFc += parseFloat(ear.EAR_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(ear.EAR_RI_PREM_BC || 0); totalRiPremFc += parseFloat(ear.EAR_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(ear.EAR_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(ear.EAR_RISK_PREM_FC || 0); totalDiscBc += parseFloat(ear.EAR_DISC_BC || 0); totalDiscFc += parseFloat(ear.EAR_DISC_FC || 0); totalLoadBc += parseFloat(ear.EAR_LOAD_BC || 0); totalLoadFc += parseFloat(ear.EAR_LOAD_FC || 0); } }); //OTHER var otherRisks = u.parseJson(location.INS_UDW_ENG_OTHER); otherRisks.ForEach(r => { if (r.ENG_OTHER_STATUS !== "D") { totalSiBc += parseFloat(r.ENG_OTHER_SI_BC || 0); totalSiFc += parseFloat(r.ENG_OTHER_SI_FC || 0); totalRiSiBc += parseFloat(r.ENG_OTHER_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.ENG_OTHER_RI_SI_FC || 0); totalPremBc += parseFloat(r.ENG_OTHER_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.ENG_OTHER_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.ENG_OTHER_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.ENG_OTHER_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.ENG_OTHER_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.ENG_OTHER_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.ENG_OTHER_DISC_BC || 0); totalDiscFc += parseFloat(r.ENG_OTHER_DISC_FC || 0); totalLoadBc += parseFloat(r.ENG_OTHER_LOAD_BC || 0); totalLoadFc += parseFloat(r.ENG_OTHER_LOAD_FC || 0); } }); // Update location values location.ENG_TOT_PREM_FC = totalPremFc; location.ENG_TOT_PREM_BC = totalPremBc; location.ENG_RISK_PREM_FC = totalRiskPremFc; location.ENG_RISK_PREM_BC = totalRiskPremBc; location.ENG_SI_BC = totalSiBc; location.ENG_SI_FC = totalSiFc; location.ENG_RI_SI_FC = totalRiSiFc; location.ENG_RI_SI_BC = totalRiSiBc; location.ENG_RI_PREM_FC = totalRiPremFc; location.ENG_RI_PREM_BC = totalRiPremBc; location.ENG_DISC_FC = totalDiscFc; location.ENG_DISC_BC = totalDiscBc; location.ENG_LOAD_FC = totalLoadFc; location.ENG_LOAD_BC = totalLoadBc; /*----------------------------- * VALUE ADDED TASK CALCULATION *----------------------------*/ let policy = u.parse_form("#polheaderForm"); location.ENG_VALUE_ADDED_TAX_YN = policy.POLH_VAT_YN || location.ENG_VALUE_ADDED_TAX_YN; location.ENG_VALUE_ADDED_TAX_PERC = policy.POLH_VAT_PERC || parseFloat(location.ENG_VALUE_ADDED_TAX_PERC || 0) || 0; $scope.valueAddTaxCalculation(location); totalSiFc = 0; totalSiBc = 0; totalRiSiBc = 0; totalRiSiFc = 0; totalPremFc = 0; totalPremBc = 0; totalRiPremBc = 0; totalRiPremFc = 0; totalRiskPremBc = 0; totalRiskPremFc = 0; totalDiscFc = 0; totalDiscBc = 0; totalLoadFc = 0; totalLoadBc = 0; }); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.grid_populate(u.getGlobal("udwEngGrid"), "", locations); }); u.setGlobal("EngGetPolicyData", function() { var polhData = u.parse_form("#polheaderForm"); polhData.INS_UDW_ENGINEER_LOC = u.get_grid_data(u.getGlobal("udwEngGrid"), true); polhData.INS_COINS_LEADER = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")); polhData.INS_UDW_ENGINEER_LOC.ForEach(l => { //CAR l.INS_UDW_CAR_RISK = typeof (l.INS_UDW_CAR_RISK) === "string" ? u.parseJson(l.INS_UDW_CAR_RISK) : l.INS_UDW_CAR_RISK || []; l.INS_UDW_CAR_RISK.ForEach(car => { //covers car.INS_UWD_RISK_COVERS = typeof car.INS_UWD_RISK_COVERS === "string" ? u.parseJson(car.INS_UWD_RISK_COVERS) : car.INS_UWD_RISK_COVERS || []; car.INS_UWD_RISK_COVERS.ForEach(c => { c.RCOV_RISK_SYS_ID = car.CAR_SYS_ID; c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : c.INS_UDW_COVER_DISCLOAD || []; delete c.MS_UDW_COVERS; }); //cpm car.INS_UDW_CPM_RISK = typeof (car.INS_UDW_CPM_RISK) === "string" ? u.parseJson(car.INS_UDW_CPM_RISK) : car.INS_UDW_CPM_RISK || []; car.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_ENG_SYS_ID = car.CAR_SYS_ID; cpm.INS_UWD_RISK_COVERS = typeof cpm.INS_UWD_RISK_COVERS === "string" ? u.parseJson(cpm.INS_UWD_RISK_COVERS) : cpm.INS_UWD_RISK_COVERS || []; cpm.INS_UWD_RISK_COVERS.ForEach(c => { c.RCOV_RISK_SYS_ID = cpm.CPM_SYS_ID; c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : c.INS_UDW_COVER_DISCLOAD || []; delete c.MS_UDW_COVERS; }); }); //tpl car.INS_UDW_TPL = typeof (car.INS_UDW_TPL) === "string" ? u.parseJson(car.INS_UDW_TPL) : car.INS_UDW_TPL || []; car.INS_UDW_TPL.ForEach(loss => { loss.INS_UWD_RISK_COVERS = typeof (loss.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(loss.INS_UWD_RISK_COVERS) : loss.INS_UWD_RISK_COVERS || []; loss.INS_UWD_RISK_COVERS.ForEach(tpl => { tpl.RCOV_RISK_SYS_ID = loss.TPL_SYS_ID; if (tpl.MS_UDW_COVERS) { delete (tpl.MS_UDW_COVERS); } //tpl.UAC_CVR_CODE = tpl.UAC_CVR_CODE.split('.')[0]; tpl.INS_UDW_COVER_DISCLOAD = typeof tpl.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(tpl.INS_UDW_COVER_DISCLOAD) : tpl.INS_UDW_COVER_DISCLOAD || []; }); }); //lop car.INS_UDW_LOP = typeof (car.INS_UDW_LOP) === "string" ? u.parseJson(car.INS_UDW_LOP) : car.INS_UDW_LOP || []; car.INS_UDW_LOP.ForEach(profit => { profit.INS_UWD_RISK_COVERS = typeof (profit.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(profit.INS_UWD_RISK_COVERS) : profit.INS_UWD_RISK_COVERS || []; profit.INS_UWD_RISK_COVERS.ForEach(pol => { pol.RCOV_RISK_SYS_ID = profit.LOP_SYS_ID; if (pol.MS_UDW_COVERS) { delete (pol.MS_UDW_COVERS); } // pol.UAC_CVR_CODE = pol.UAC_CVR_CODE.split('.')[0]; pol.INS_UDW_COVER_DISCLOAD = typeof pol.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(pol.INS_UDW_COVER_DISCLOAD) : pol.INS_UDW_COVER_DISCLOAD || []; }); }); }); //EAR l.INS_UDW_EAR_RISK = typeof (l.INS_UDW_EAR_RISK) === "string" ? u.parseJson(l.INS_UDW_EAR_RISK) : l.INS_UDW_EAR_RISK || []; l.INS_UDW_EAR_RISK.ForEach(ear => { ear.INS_UWD_RISK_COVERS = typeof ear.INS_UWD_RISK_COVERS === "string" ? u.parseJson(ear.INS_UWD_RISK_COVERS) : ear.INS_UWD_RISK_COVERS || []; ear.INS_UWD_RISK_COVERS.ForEach(c => { c.RCOV_RISK_SYS_ID = ear.CAR_SYS_ID; c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : []; delete c.MS_UDW_COVERS; }); //cpm ear.INS_UDW_CPM_RISK = typeof (ear.INS_UDW_CPM_RISK) === "string" ? u.parseJson(ear.INS_UDW_CPM_RISK) : ear.INS_UDW_CPM_RISK || []; ear.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_ENG_SYS_ID = ear.CAR_SYS_ID; cpm.INS_UWD_RISK_COVERS = typeof cpm.INS_UWD_RISK_COVERS === "string" ? u.parseJson(cpm.INS_UWD_RISK_COVERS) : cpm.INS_UWD_RISK_COVERS || []; cpm.INS_UWD_RISK_COVERS.ForEach(c => { c.RCOV_RISK_SYS_ID = cpm.CPM_SYS_ID; c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : c.INS_UDW_COVER_DISCLOAD || []; delete c.MS_UDW_COVERS; }); }); //tpl ear.INS_UDW_TPL = typeof (ear.INS_UDW_TPL) === "string" ? u.parseJson(ear.INS_UDW_TPL) : ear.INS_UDW_TPL || []; ear.INS_UDW_TPL.ForEach(loss => { loss.INS_UWD_RISK_COVERS = typeof (loss.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(loss.INS_UWD_RISK_COVERS) : loss.INS_UWD_RISK_COVERS || []; loss.INS_UWD_RISK_COVERS.ForEach(tpl => { tpl.RCOV_RISK_SYS_ID = loss.TPL_SYS_ID; if (tpl.MS_UDW_COVERS) { delete (tpl.MS_UDW_COVERS); } //tpl.UAC_CVR_CODE = tpl.UAC_CVR_CODE.split('.')[0]; tpl.INS_UDW_COVER_DISCLOAD = typeof tpl.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(tpl.INS_UDW_COVER_DISCLOAD) : tpl.INS_UDW_COVER_DISCLOAD || []; }); }); //lop ear.INS_UDW_LOP = typeof (ear.INS_UDW_LOP) === "string" ? u.parseJson(ear.INS_UDW_LOP) : ear.INS_UDW_LOP || []; ear.INS_UDW_LOP.ForEach(profit => { profit.INS_UWD_RISK_COVERS = typeof (profit.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(profit.INS_UWD_RISK_COVERS) : profit.INS_UWD_RISK_COVERS || []; profit.INS_UWD_RISK_COVERS.ForEach(pol => { pol.RCOV_RISK_SYS_ID = profit.LOP_SYS_ID; if (pol.MS_UDW_COVERS) { delete (pol.MS_UDW_COVERS); } // pol.UAC_CVR_CODE = pol.UAC_CVR_CODE.split('.')[0]; pol.INS_UDW_COVER_DISCLOAD = typeof pol.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(pol.INS_UDW_COVER_DISCLOAD) : pol.INS_UDW_COVER_DISCLOAD || []; }); }); }); //OTHER l.INS_UDW_ENG_OTHER = typeof (l.INS_UDW_ENG_OTHER) === "string" ? u.parseJson(l.INS_UDW_ENG_OTHER) : l.INS_UDW_ENG_OTHER || []; l.INS_UDW_ENG_OTHER.ForEach(r => { r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string" ? u.parseJson(r.INS_UWD_RISK_COVERS) : r.INS_UWD_RISK_COVERS || []; r.INS_UWD_RISK_COVERS.ForEach(c => { c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : c.INS_UDW_COVER_DISCLOAD || []; delete c.MS_UDW_COVERS; }); }); //fees l.INS_UDW_ENGINEER_FEES = typeof (l.INS_UDW_ENGINEER_FEES) === "string" ? u.parseJson(l.INS_UDW_ENGINEER_FEES || "[]") : l.INS_UDW_ENGINEER_FEES || []; l.INS_UDW_ENGINEER_FEES.ForEach(f => { if (f.MS_COMPULSORY_FEES) { delete (f.MS_COMPULSORY_FEES); } }); }); //obtain policy endorsement grid data polhData["MS_UDW_ENDORSEMENTS"] = u.get_grid_data(u.getGlobal("udwEndsmntGrid")); polhData.INS_UDW_POLICY_DISCLOAD = u.get_grid_data(u.getGlobal("udwPolDiscLoadingGrid")); //var insUwdRiskDiscountLoading = u.get_grid_data($scope.riskdiscloading_grid); //retrieve treaty information var treaties = u.get_grid_data(u.getGlobal("udwRIGrid"), true); polhData["INS_RI_TTY_HEAD"] = u.parseJson(treaties); polhData.INS_RI_FAC_INWARD = u.get_grid_data(u.getGlobal("udwFacInwGrid")); for (var i in polhData.INS_RI_FAC_INWARD) { polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"] = u.parseJson(polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"]); } polhData.INS_UWD_INTERMEDIARY_COMM = u.get_grid_data(u.getGlobal("udwAgntCommGrid")); polhData.INS_UDW_POL_FEES = u.get_grid_data(u.getGlobal("udwPolFeesGrid")); polhData.INS_RI_FAC_OUTWARD = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")); return polhData; }); u.setGlobal("EngPolicyFill", function (policy) { //u.clear_grid_data(u.getGlobal("udwEngRskFeeGrid")); u.clear_grid_data(u.getGlobal("udwEngGrid")); //engineering location population policy.INS_UDW_ENGINEER_LOC.ForEach(location => { //fees location.INS_UDW_ENGINEER_FEES = location.INS_UDW_ENGINEER_FEES || []; if (location.INS_UDW_ENGINEER_FEES.length > 0) { u.grid_populate(u.getGlobal("udwEngRskFeeGrid"), "", location.INS_UDW_ENGINEER_FEES); } location.INS_UDW_ENGINEER_FEES = JSON.stringify(location.INS_UDW_ENGINEER_FEES); // CAR location.INS_UDW_CAR_RISK.ForEach(car => { //covers car.INS_UWD_RISK_COVERS.ForEach(cover => { cover.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); }); car.INS_UWD_RISK_COVERS = JSON.stringify(car.INS_UWD_RISK_COVERS); //cpm car.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.INS_UWD_RISK_COVERS.ForEach(cover => { cover.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); }); cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); }); car.INS_UDW_CPM_RISK = JSON.stringify(car.INS_UDW_CPM_RISK); //TPL car.INS_UDW_TPL.ForEach(loss => { loss.INS_UWD_RISK_COVERS.ForEach(tpl => { tpl.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); tpl.INS_UDW_COVER_DISCLOAD = JSON.stringify(tpl.INS_UDW_COVER_DISCLOAD); }); loss.INS_UWD_RISK_COVERS = JSON.stringify(loss.INS_UWD_RISK_COVERS); }); car.INS_UDW_TPL = JSON.stringify(car.INS_UDW_TPL); //LOP car.INS_UDW_LOP.ForEach(profit => { profit.INS_UWD_RISK_COVERS.ForEach(lop => { lop.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); lop.INS_UDW_COVER_DISCLOAD = JSON.stringify(lop.INS_UDW_COVER_DISCLOAD); }); profit.INS_UWD_RISK_COVERS = JSON.stringify(profit.INS_UWD_RISK_COVERS); }); car.INS_UDW_LOP = JSON.stringify(car.INS_UDW_LOP); }); location.INS_UDW_CAR_RISK = JSON.stringify(location.INS_UDW_CAR_RISK); //EAR location.INS_UDW_EAR_RISK.ForEach(ear => { //covers ear.INS_UWD_RISK_COVERS.ForEach(cover => { cover.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); }); ear.INS_UWD_RISK_COVERS = JSON.stringify(ear.INS_UWD_RISK_COVERS); //cpm ear.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.INS_UWD_RISK_COVERS.ForEach(cover => { cover.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); }); cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); }); ear.INS_UDW_CPM_RISK = JSON.stringify(ear.INS_UDW_CPM_RISK); //TPL ear.INS_UDW_TPL.ForEach(loss => { loss.INS_UWD_RISK_COVERS.ForEach(tpl => { tpl.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); tpl.INS_UDW_COVER_DISCLOAD = JSON.stringify(tpl.INS_UDW_COVER_DISCLOAD); }); loss.INS_UWD_RISK_COVERS = JSON.stringify(loss.INS_UWD_RISK_COVERS); }); ear.INS_UDW_TPL = JSON.stringify(ear.INS_UDW_TPL); //LOP ear.INS_UDW_LOP.ForEach(profit => { profit.INS_UWD_RISK_COVERS.ForEach(lop => { lop.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); lop.INS_UDW_COVER_DISCLOAD = JSON.stringify(lop.INS_UDW_COVER_DISCLOAD); }); profit.INS_UWD_RISK_COVERS = JSON.stringify(profit.INS_UWD_RISK_COVERS); }); ear.INS_UDW_LOP = JSON.stringify(ear.INS_UDW_LOP); }); location.INS_UDW_EAR_RISK = JSON.stringify(location.INS_UDW_EAR_RISK); //Other location.INS_UDW_ENG_OTHER.ForEach(engOther => { engOther.INS_UWD_RISK_COVERS.ForEach(cover => { cover.INS_UDW_COVER_DISCLOAD.ForEach(d => { if (d.MS_SYS_LOADINGS_DISCOUNTS) { d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || ""; delete (d.MS_SYS_LOADINGS_DISCOUNTS); } }); cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); }); engOther.INS_UWD_RISK_COVERS = JSON.stringify(engOther.INS_UWD_RISK_COVERS); }); location.INS_UDW_ENG_OTHER = JSON.stringify(location.INS_UDW_ENG_OTHER); }); u.clear_grid_data(u.getGlobal("udwPolFeesGrid")); u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", policy.INS_UDW_POL_FEES); u.grid_populate(u.getGlobal("udwEngGrid"), "", policy.INS_UDW_ENGINEER_LOC); u.clear_grid_data(u.getGlobal("udwEndsmntGrid")); u.grid_populate(u.getGlobal("udwEndsmntGrid"), "", policy.MS_UDW_ENDORSEMENTS); u.getGlobal("showRiskCount")(u.get_grid_data(u.getGlobal("udwEngGrid")).Where(x => x.ENG_STATUS !== "D")); }); u.setGlobal("EngPremCalculator", function() { //Declare variables var riskPremFc = 0; var riskPremBc = 0; var locationBasicPremFc = 0; var locationBasicPremBc = 0; var grossPremFc = 0; var grossPremBc = 0; //Risk Grid u.get_grid_data(u.getGlobal("udwEngGrid")).ForEach(location => { if (location.ENG_STATUS !== "D") { riskPremFc += parseFloat(location.ENG_RISK_PREM_FC); riskPremBc += parseFloat(location.ENG_RISK_PREM_BC); grossPremFc += parseFloat(location.ENG_TOT_PREM_FC); grossPremBc += parseFloat(location.ENG_TOT_PREM_BC); } }); //grossPremFc = locationBasicPremFc; //grossPremBc = locationBasicPremBc; var prems = [riskPremFc, riskPremBc, grossPremFc, grossPremBc]; // console.log(prems); return prems; }); u.setGlobal("EngPremSummarizer", 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 = u.getGlobal("EngPremCalculator")(); var PremSummary_grid = u.getGlobal("udwPremSumGrid"); var locationGrid = u.getGlobal("udwEngGrid"); u.clear_grid_data(PremSummary_grid); var data = { CODE: "GRSPREM", DESCRIPTION: "Gross Premium", FC_AMOUNT: ( parseFloat(premData[2] || 0)).toFixed(2), BC_AMOUNT: ( parseFloat(premData[3] || 0)).toFixed(2), TYPE: "P" }; PremSummary_grid.addRowData(data.ID, data); //var riskData = { // CODE: "RSKPREM", // DESCRIPTION: "Risk Premium", // FC_AMOUNT: ( // parseFloat(premData[2] || 0)).toFixed(2), // BC_AMOUNT: ( // parseFloat(premData[3] || 0) * currRate ).toFixed(2), // TYPE: "P" //}; //PremSummary_grid.addRowData(riskData.ID, riskData); //policy discount and loading summary var polDiscLoadData = []; var totalSumInsuredBc = 0; var totalSumInsuredFc = 0; let vatBc = 0; let vatFc = 0; //var polDiscLoadData = u.get_grid_data($scope.riskdiscloading_grid); var locationGridData = u.get_grid_data(locationGrid); //console.log(locationGridData); locationGridData.ForEach(loc => { totalSumInsuredBc += parseFloat(loc.ENG_SI_BC || 0); totalSumInsuredFc += parseFloat(loc.ENG_SI_FC || 0); vatBc += loc.ENG_VALUE_ADDED_TAX_RATE_BC || 0; vatFc += loc.ENG_VALUE_ADDED_TAX_RATE_FC || 0; //car var carRisks = typeof (loc.INS_UDW_CAR_RISK) === "string" ? u.parseJson(loc.INS_UDW_CAR_RISK) : loc.INS_UDW_CAR_RISK || []; if (carRisks.length > 0) { carRisks.ForEach(car => { //covers var covers = typeof (car.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(car.INS_UWD_RISK_COVERS || "[]") : car.INS_UWD_RISK_COVERS || []; if (covers !== null) { covers.ForEach(cover => { var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(cover.INS_UDW_COVER_DISCLOAD) : cover.INS_UDW_COVER_DISCLOAD || []; if (discLoadings !== null) { discLoadings.ForEach(discLoading => { if (discLoading.DL_STATUS !== "D") { polDiscLoadData.push(discLoading); } }); } }); } //cpm var cpmRisks = typeof (car.INS_UDW_CPM_RISK) === "string" ? u.parseJson(car.INS_UDW_CPM_RISK) : car.INS_UDW_CPM_RISK || []; if (cpmRisks !== null) { cpmRisks.ForEach(cpm => { var covers = typeof (cpm.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(cpm.INS_UWD_RISK_COVERS) : cpm.INS_UWD_RISK_COVERS || []; if (covers !== null) { covers.ForEach(cover => { var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(cover.INS_UDW_COVER_DISCLOAD) : cover.INS_UDW_COVER_DISCLOAD || []; if (discLoadings !== null) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } var tplRisks = typeof (car.INS_UDW_TPL) === "string" ? u.parseJson(car.INS_UDW_TPL) : car.INS_UDW_TPL || []; if (tplRisks.length > 0) { tplRisks.ForEach(loss => { var tplCovers = typeof (loss.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(loss.INS_UWD_RISK_COVERS) : loss.INS_UWD_RISK_COVERS || []; // tpl if (tplCovers !== null) { tplCovers.ForEach(tpl => { var discLoadings = typeof (tpl.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(tpl.INS_UDW_COVER_DISCLOAD) : tpl.INS_UDW_COVER_DISCLOAD || []; if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } var lopRisks = typeof (car.INS_UDW_LOP) === "string" ? u.parseJson(car.INS_UDW_LOP) : car.INS_UDW_LOP || []; if (lopRisks.length > 0) { lopRisks.ForEach(profit => { //lop var lopCovers = typeof (profit.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(profit.INS_UWD_RISK_COVERS) : profit.INS_UWD_RISK_COVERS || []; if (lopCovers !== null) { lopCovers.ForEach(lop => { var discLoadings = typeof (lop.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(lop.INS_UDW_COVER_DISCLOAD) : lop.INS_UDW_COVER_DISCLOAD || []; if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } }); } //ear // console.log(loc.INS_UDW_EAR_RISK); // console.log(typeof (loc.INS_UDW_EAR_RISK)); var earRisks = typeof (loc.INS_UDW_EAR_RISK) === "string" ? u.parseJson(loc.INS_UDW_EAR_RISK) : loc.INS_UDW_EAR_RISK || []; // console.log(earRisks); if (earRisks.length > 0) { earRisks.ForEach(ear => { //covers var covers = typeof (ear.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(ear.INS_UWD_RISK_COVERS) : ear.INS_UWD_RISK_COVERS || []; if (covers !== null) { covers.ForEach(cover => { var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(cover.INS_UDW_COVER_DISCLOAD) : cover.INS_UDW_COVER_DISCLOAD || []; if (discLoadings !== null) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } //cpm var cpmRisks = typeof (ear.INS_UDW_CPM_RISK) === "string" ? u.parseJson(ear.INS_UDW_CPM_RISK) : ear.INS_UDW_CPM_RISK || []; if (cpmRisks !== null) { cpmRisks.ForEach(cpm => { var covers = typeof (cpm.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(cpm.INS_UWD_RISK_COVERS) : cpm.INS_UWD_RISK_COVERS || []; if (covers !== null) { covers.ForEach(cover => { var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(cover.INS_UDW_COVER_DISCLOAD) : cover.INS_UDW_COVER_DISCLOAD || []; if (discLoadings !== null) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } var tplRisks = typeof (ear.INS_UDW_TPL) === "string" ? u.parseJson(ear.INS_UDW_TPL) : ear.INS_UDW_TPL || []; if (tplRisks.length > 0) { tplRisks.ForEach(loss => { var tplCovers = typeof (loss.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(loss.INS_UWD_RISK_COVERS) : loss.INS_UWD_RISK_COVERS || []; // tpl if (tplCovers !== null) { tplCovers.ForEach(tpl => { var discLoadings = typeof (tpl.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(tpl.INS_UDW_COVER_DISCLOAD) : tpl.INS_UDW_COVER_DISCLOAD || []; if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } //lop var lopRisks = typeof (ear.INS_UDW_LOP) === "string" ? u.parseJson(ear.INS_UDW_LOP) : ear.INS_UDW_LOP || []; if (lopRisks.length > 0) { lopRisks.ForEach(profit => { var lopCovers = typeof (profit.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(profit.INS_UWD_RISK_COVERS) : profit.INS_UWD_RISK_COVERS || []; if (lopCovers !== null) { lopCovers.ForEach(lop => { var discLoadings = typeof (lop.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(lop.INS_UDW_COVER_DISCLOAD) : lop.INS_UDW_COVER_DISCLOAD || []; if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } }); } //eng other var engOtherRisks = typeof (loc.INS_UDW_ENG_OTHER) === "string" ? u.parseJson(loc.INS_UDW_ENG_OTHER) : loc.INS_UDW_ENG_OTHER || []; if (engOtherRisks.length > 0) { engOtherRisks.ForEach(engOther => { var covers = typeof (engOther.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(engOther.INS_UWD_RISK_COVERS) : engOther.INS_UWD_RISK_COVERS || []; if (covers !== null) { covers.ForEach(cover => { var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string" ? u.parseJson(cover.INS_UDW_COVER_DISCLOAD) : cover.INS_UDW_COVER_DISCLOAD || []; if (discLoadings !== null) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } }); //var polDiscLoadData = u.get_grid_data($scope.coverDiscLoading_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 y.DL_TYPE === "D" ? -(parseFloat(y.DL_AMT_FC || 0)) : parseFloat(y.DL_AMT_FC || 0); }).toFixed(2), BC_AMOUNT: x.Sum(function (y) { return y.DL_TYPE === "D" ? -(parseFloat(y.DL_AMT_BC || 0)) : parseFloat(y.DL_AMT_BC || 0); }).toFixed(2), TYPE: x.source[0]["DL_TYPE"] }; }).ToArray(); for (var x in polDiscLoadings) PremSummary_grid.addRowData(polDiscLoadings[x].ID, polDiscLoadings[x]); //u.gridPopulate(PremSummary_grid, polDiscLoadings); //policy fee summary var compFeedata = u.get_grid_data(u.getGlobal("udwPolFeesGrid")).Where(x => x.POL_FEE_STATUS !== "D"); //console.log(compFeedata); var linq = Enumerable.From(compFeedata); //console.log(linq); 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)); }).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) PremSummary_grid.addRowData(result[i].ID, result[i]); var summaryData = u.get_grid_data(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 netCustomerFc = parseFloat(premData[0] || 0) + compFeedata.Sum(x => parseFloat(x.POL_FEE_FC_AMOUNT || 0)) + parseFloat(vatFc), netCustomerBc = parseFloat(premData[1] || 0) + compFeedata.Sum(x => parseFloat(x.POL_FEE_BC_AMOUNT || 0)) + parseFloat(vatBc); // 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_POL_SI_FC").val(totalSumInsuredFc); $("#POLH_POL_SI_BC").val(totalSumInsuredBc); $("#POLH_VAT_AMT_FC").val(vatFc); $("#POLH_VAT_AMT_BC").val(vatBc); var siData = { CODE: "SI", DESCRIPTION: "Sum Insured", FC_AMOUNT: totalSumInsuredFc, BC_AMOUNT: totalSumInsuredBc, TYPE: "" }; PremSummary_grid.addRowData(siData.ID, siData); var vatData = { CODE: "VAT", DESCRIPTION: "Value Added Tax", FC_AMOUNT: vatFc || 0, BC_AMOUNT: vatBc || 0, TYPE: "P" }; PremSummary_grid.addRowData(vatData.ID, vatData); switch ($("#POLH_INS_SOURCE").val()) { case "COL": { const coinsLeaderData = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")).FirstOrDefault(); $("POLH_COINS_SI_FC").val(parseFloat(coinsLeaderData.CIL_SHARE_SI_FC || 0)); $("POLH_COINS_SI_BC").val(parseFloat(coinsLeaderData.CIL_SHARE_SI_BC || 0)); $("#POLH_COINS_PREM_FC").val(parseFloat(coinsLeaderData.CIL_SHARE_PREM_FC || 0)); $("#POLH_COINS_PREM_BC").val(parseFloat(coinsLeaderData.CIL_SHARE_PREM_BC || 0)); $("#POLH_COINS_COM_FC").val(0); $("#POLH_COINS_COM_BC").val(0); } break; case "FIN": case "COM": { let coInsData = u.get_grid_data(u.getGlobal("udwFacInwGrid")).FirstOrDefault(); if (coInsData != null) { $("#POLH_COINS_SI_FC").val(parseFloat($("#POLH_POL_SI_FC").val() || 0)); $("#POLH_COINS_SI_BC").val(parseFloat($("#POLH_POL_SI_BC").val() || 0)); $("#POLH_COINS_PREM_FC").val(parseFloat($("#POLH_POL_PREM_FC").val() || 0) - parseFloat($("#POLH_FEE_FC").val() || 0)); $("#POLH_COINS_PREM_BC").val(parseFloat($("#POLH_POL_PREM_BC").val() || 0) - parseFloat($("#POLH_FEE_BC").val() || 0)); $("#POLH_COINS_COM_FC").val(parseFloat(coInsData.FINW_COMM_FC || 0)); $("#POLH_COINS_COM_BC").val(parseFloat(coInsData.FINW_COMM_BC || 0)); } } break; default: { $("#POLH_COINS_SI_FC").val(0); $("#POLH_COINS_SI_BC").val(0); $("#POLH_COINS_PREM_FC").val(0); $("#POLH_COINS_PREM_BC").val(0); $("#POLH_COINS_COM_FC").val(0); $("#POLH_COINS_COM_BC").val(0); } break; } u.form_reset("#engineeringForm"); u.setGlobal("policyChanges", true); }); u.setGlobal("EngGetAddOnDefaultCovers", async function(type) { //if ($("#POLH_SUB_CLASS_CODE").val() == "") { // u.growl_warning("Please select a product"); //} else { /* obtain parameter for our request */ var productRiskData = { PRD_CODE: type, CUR_RATE: $("#POLH_CURRENCY_RATE").val() }; // var grid = u.getGlobal("udwCoverGrid"); 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); } var riskId = 0; var engid = 0; // switch ($scope.coverTarget) { // case "CAR": // riskId = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid).CAR_SYS_ID; // engid = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid).CAR_ENG_SYS_ID; // break; // case "CPM": // riskId = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_SYS_ID; // engid = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_ENG_SYS_ID; // break; //} //$scope.cpmRiskGrid = u.getGlobal("udwEngCpmGrid"); //riskId = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_SYS_ID; //engid = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_ENG_SYS_ID; //send parameters and get Default covers from the database var result = await s.getDefaultAddOnProductCoversAsync(productRiskData); if (result && result.length && result.length > 0) { result.ForEach(c => { //alert(JSON.stringify(result)); c["RCOV_NAME"] = c["MS_UDW_COVERS"]["CVR_NAME"]; c["RCOV_TYPE"] = c["MS_UDW_COVERS"]["CVR_TYPE"]; c["RCOV_RI_YN"] = c["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"]; c["CVR_USER_PREMIUM"] = c["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; c["RCOV_PREM_REFUND"] = c["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; c["RCOV_RATE_CHANGE"] = c["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; c["RCOV_SI_CHANGE"] = c["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; c["RCOV_COVER_LEVEL"] = c["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; c["RCOV_RISK_SYS_ID"] = riskId; c["RCOV_RISK_NO"] = engid; //c["RCOV_SI_FC"] = $("#RCOV_SI_FC").val(); //var deftCoverCode = c.RCOV_CODE; //var newRiskCode = riskId; //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(c.ID, c); //} else { // u.growl_warning(`Cover exists for this Risk, you cannot add same Cover ${deftCoverCode}`); //} }); //SumCarCoverValues(); console.log(result); return result; } return []; }); $("#btn_cv_discloading").click(function () { //Open Modal const grid = u.getGlobal("udwCoverGrid"); if (u.grid_empty(grid)) return u.growl_info("Grid is empty!"); if ($("#RCOV_CODE").val() === "") return u.growl_info("Please select the cover for which you want to apply discounts/loadings"); //var discLoadGrid = u.getGlobal("udwCoverDiscLoading"); var discLoadGrid = u.getGlobal("RskCvDiscLoadingGrid"); u.clear_grid_data(discLoadGrid); var coverGrid = u.getGlobal("udwCoverGrid"); var selectedCover = u.getSelRow(coverGrid); var coverDiscLoads = coverGrid.jqGrid("getCell", selectedCover, "INS_UDW_COVER_DISCLOAD") || "[]"; coverDiscLoads = u.parseJson(coverDiscLoads); console.log(coverDiscLoads); if (coverDiscLoads.length > 0) { u.grid_populate(discLoadGrid, "", coverDiscLoads); } var grossPremFc = coverGrid.jqGrid("getCell", selectedCover, "RCOV_GROSS_PREM_FC"); var grossPremBc = coverGrid.jqGrid("getCell", selectedCover, "RCOV_GROSS_PREM_BC"); var rCovId = coverGrid.jqGrid("getCell", selectedCover, "RCOV_SYS_ID"); //u.fill_form({ // DL_PREM_BC: grossPremBc, // DL_PREM_FC: grossPremFc //}, "#coverdiscloadingForm"); u.fill_form({ DL_PREM_BC: grossPremBc, DL_PREM_FC: grossPremFc, DL_RCOV_SYS_ID: rCovId }, "#riskcoverdiscloadingForm"); $("#riskCvDiscloadingModal").modal(); }); $("#btn_risk_cover1").click(function () { if (u.grid_empty(u.getGlobal("udwEngCpmGrid"))) return u.growl_info("The grid is empty"); var grid = u.getGlobal("udwEngCpmGrid"); var rowId = u.getSelRow(grid); if (!rowId) return u.growl_warning("No risk has been selected, please select a CPM risk to continue"); u.clear_grid_data(u.getGlobal("udwCoverGrid")); var covers = []; covers = u.parseJson(u.getCell(grid, rowId, "INS_UWD_RISK_COVERS") || "[]"); //if (covers.length <= 0) { // covers = await u.getGlobalAsync("EngGetCpmDefaultCovers")(); //} console.log(covers); u.grid_populate(u.getGlobal("udwCoverGrid"), "", covers); //$scope.coverTarget = "CPM"; u.setGlobal("coverTarget", "CPM"); $("#RiskCoverModal").modal(); }); $("#btn_tpl_discloading").click(function () { if ($("form input[name='UAC_CVR_CODE']").val() === "") return u.growl_info("Please select the TPL cover for which you want to apply discounts/loadings"); var discLoadGrid = u.getGlobal("udwEngCoverDiscLoading"); u.clear_grid_data(discLoadGrid); var tplGrid = u.getGlobal("udwEngTplGrid"); var selectedTplCover = u.getSelRow(tplGrid); var coverDiscLoads = tplGrid.jqGrid("getCell", selectedTplCover, "INS_UDW_COVER_DISCLOAD") || "[]"; coverDiscLoads = u.parseJson(coverDiscLoads); //console.log(coverDiscLoads); if (coverDiscLoads.length > 0) { u.gridPopulate(discLoadGrid, coverDiscLoads); } var grossPremFc = tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_GROSS_PREM_FC"); var grossPremBc = tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_GROSS_PREM_BC"); u.fill_form({ DL_PREM_BC: grossPremBc, DL_PREM_FC: grossPremFc }, "#engCovDiscLoadingForm"); $("#engCoverDiscloadingModal").modal(); }); $("#btn_lop_discloading").click(function () { if ($("#LOP_UAC_CVR_CODE").val() === "") { if ($("#TPL_UAC_CVR_CODE").val() === "") { return u.growl_info( "Please select the Loss of Profit cover for which you want to apply discounts/loadings"); } } //if ($("form input[name='UAC_CVR_CODE']").val() === "") // return u.growl_info("Please select the Loss of Profit cover for which you want to apply discounts/loadings"); var discLoadGrid = u.getGlobal("udwEngCoverDiscLoading"); u.clear_grid_data(discLoadGrid); var lopGrid = u.getGlobal("udwEngLopGrid"); var selectedLopCover = u.getSelRow(lopGrid); var coverDiscLoads = lopGrid.jqGrid("getCell", selectedLopCover, "INS_UDW_COVER_DISCLOAD") || "[]"; coverDiscLoads = u.parseJson(coverDiscLoads); //console.log(coverDiscLoads); if (coverDiscLoads.length > 0) { u.gridPopulate(discLoadGrid, coverDiscLoads); } var grossPremFc = lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_GROSS_PREM_FC"); var grossPremBc = lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_GROSS_PREM_BC"); u.fill_form({ DL_PREM_BC: grossPremBc, DL_PREM_FC: grossPremFc }, "#engCovDiscLoadingForm"); $("#engCoverDiscloadingModal").modal(); }); $("#engCoverDiscLoadModalOk").click(function () { var discLoadGrid = u.getGlobal("udwEngCoverDiscLoading"); if (!u.grid_empty(discLoadGrid)) { var discLoads = u.get_grid_data(discLoadGrid); console.log(discLoads); var tplGrid = u.getGlobal("udwEngTplGrid"); var lopGrid = u.getGlobal("udwEngLopGrid"); if (u.getGlobal("tpl")) { if (u.get_grid_data(tplGrid).length > 0) { var selectedTplCover = u.getSelRow(tplGrid); var totalDiscountsFc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_FC)); var totalDiscountsBc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_BC)); var totalLoadingsFc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_FC)); var totalLoadingsBc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_BC)); var netPremFc = parseFloat(tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_NET_PREM_FC")); var netPremBc = parseFloat(tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_NET_PREM_BC")); netPremFc = netPremFc + parseFloat(totalLoadingsFc) - parseFloat(totalDiscountsFc); netPremBc = netPremBc + parseFloat(totalLoadingsBc) - parseFloat(totalDiscountsBc); u.setCell(tplGrid, selectedTplCover, "UAC_CVR_NET_PREM_FC", netPremFc); u.setCell(tplGrid, selectedTplCover, "UAC_CVR_NET_PREM_BC", netPremBc); u.setCell(tplGrid, selectedTplCover, "UAC_CVR_DISC_FC", totalDiscountsFc.toFixed(2)); u.setCell(tplGrid, selectedTplCover, "UAC_CVR_DISC_BC", totalDiscountsBc.toFixed(2)); u.setCell(tplGrid, selectedTplCover, "UAC_CVR_LOAD_FC", totalLoadingsFc.toFixed(2)); u.setCell(tplGrid, selectedTplCover, "UAC_CVR_LOAD_BC", totalLoadingsBc.toFixed(2)); u.setCell(tplGrid, selectedTplCover, "INS_UDW_COVER_DISCLOAD", JSON.stringify(discLoads)); } } if (u.getGlobal("lop")) { if (u.get_grid_data(lopGrid).length > 0) { var selectedLopCover = u.getSelRow(lopGrid); var totalDiscountssFc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_FC)); var totalDiscountssBc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_BC)); var totalLoadingssFc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_FC)); var totalLoadingssBc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_BC)); var netPremFcc = parseFloat(lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_NET_PREM_FC")); var netPremBcc = parseFloat(lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_NET_PREM_BC")); netPremFcc = netPremFcc + parseFloat(totalLoadingssFc) - parseFloat(totalDiscountssFc); netPremBcc = netPremBcc + parseFloat(totalLoadingssBc) - parseFloat(totalDiscountssBc); u.setCell(lopGrid, selectedLopCover, "UAC_CVR_NET_PREM_FC", netPremFcc); u.setCell(lopGrid, selectedLopCover, "UAC_CVR_NET_PREM_BC", netPremBcc); u.setCell(lopGrid, selectedLopCover, "UAC_CVR_DISC_FC", totalDiscountssFc.toFixed(2)); u.setCell(lopGrid, selectedLopCover, "UAC_CVR_DISC_BC", totalDiscountssBc.toFixed(2)); u.setCell(lopGrid, selectedLopCover, "UAC_CVR_LOAD_FC", totalLoadingssFc.toFixed(2)); u.setCell(lopGrid, selectedLopCover, "UAC_CVR_LOAD_BC", totalLoadingssBc.toFixed(2)); u.setCell(lopGrid, selectedLopCover, "INS_UDW_COVER_DISCLOAD", JSON.stringify(discLoads)); } } } u.clear_grid_data(discLoadGrid); u.form_reset("#engCovDiscLoadingForm"); $("#engCoverDiscloadingModal").modal("hide"); }); $("#btn_eng_cover_type").on("click", function () { $("#RiskDiscLoadModal").modal(); var grid = u.getGlobal("udwRskDiscLoadGrid"); 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 u.getGlobal("udwRskDiscLoadGrid").jqGrid("clearGridData"); //fill grid for (var i in result) { u.getGlobal("udwRskDiscLoadGrid").addRowData(result[i]["MMO_CODE"], result[i]); } } }); }); /*-------------------------------------------------- * ENG TPL/LOP Cover Discount/Loading *------------------------------------------------*/ // $("#btn_add_eng_coverdisloading").on("click", function () { if (u.form_validation("#coverdiscloadingForm")) { //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 Cover Discount/Loading Details?", function () { var rowIds = u.getGlobal("udwEngCoverDiscLoading").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 = u.getGlobal("udwEngCoverDiscLoading").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("#engCovDiscLoadingForm"); formData.DL_STATUS = "U"; formData.DL_CRTE_BY = u.getUserCode(); formData.DL_CRTE_DATE = u.get_date(); u.getGlobal("udwEngCoverDiscLoading").addRowData(formData.DL_CODE, formData); u.hide_confirm(); u.growl_success("Cover Discount/Loading successfully added to grid"); u.form_reset("#engCovDiscLoadingForm"); } else { u.hide_confirm(); u.growl_warning(`Cover Discount/Loading with code ${cellValue} Already exists`); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); // Deleting $("#btn_remove_eng_coverdisloadings").on("click", function () { if (u.grid_empty(u.getGlobal("udwEngCoverDiscLoading"))) return u.modalAlert("Grid is empty!!!"); var grid = u.getGlobal("udwEngCoverDiscLoading"); 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}`, "#grdEngCoverDiscloading").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}`, "#grdEngCoverDiscloading").css({ color: "black" }); grid.jqGrid("setCell", rowId, "DL_STATUS", "A"); u.hide_confirm(); u.hide_confirm("Data successfully restored"); } u.form_reset("#engCovDiscLoadingForm"); }); }); // Updating $("#btn_update_eng_coverdisloading").on("click", function () { if (u.grid_empty(u.getGlobal("udwEngCoverDiscLoading"))) return u.growl_info("Excess grid is empty"); if (u.form_validation("#engCovDiscLoadingForm")) { u.modal_confirmation("Are you sure you want to update the selected Discount/Loading?", function () { var grid = u.getGlobal("udwEngCoverDiscLoading"); 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("#engCovDiscLoadingForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Cover Discount/Loading updated"); u.form_reset("#udwEngCoverDiscLoading"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $("#ENG_REGION_CODE").change(async function () { var grid = u.getGlobal("udwEngGrid"); if ($("#ENG_FDZONE").val() === "") { let result = $(this).val(); await u.lovDropDownAsync("#ENG_FDZONE", "get_lov_fdzoneAsync", { "region": result || null }); if (u.getSelRow(grid)) { $("#ENG_FDZONE").val(grid.jqGrid("getCell", u.getSelRow(grid), "ENG_FDZONE") || ""); } } }); $("#btn_reset_location").click(function() { u.modal_confirmation("Are you sure you want to reset the location form?", function() { u.form_reset("#engineeringForm"); $("#ENG_CONST_FROM").val($("#POLH_POL_START_DATE").val()); $("#ENG_CONST_TO").val($("#POLH_POL_END_DATE").val()); $("#ENG_CONST_DAYS").val($("#POLH_POL_DAYS").val()); u.growl_success("Location form reset successfully"); }); }); $("#ENG_MAINT_YN").change(function() { if ($(this).val() === "Y") { $("#ENG_MAINT_FROM").attr("required", "required"); $("#ENG_MAINT_FROM").prop("readonly", false); $("#ENG_MAINT_FROM").val(u.dateFastForward($("#POLH_POL_END_DATE").val(), 1, "day")); $("#ENG_MAINT_TO").attr("required", "required"); $("#ENG_MAINT_TO").prop("readonly", false); } else if ($(this).val() === "N") { $("#ENG_MAINT_FROM").prop("required", false); $("#ENG_MAINT_FROM").attr("readonly", "readonly"); $("#ENG_MAINT_FROM").val(""); $("#ENG_MAINT_TO").val(""); $("#ENG_MAINT_TO").prop("required", false); $("#ENG_MAINT_TO").attr("readonly", "readonly"); $("#ENG_MAINT_DAYS").val(""); } }); $("#ENG_MAINT_FROM").blur(function() { if (u.dateBefore($(this).val(), $("#ENG_END_DATE").val())) { $(this).val(""); return u.growl_info("Maintenance period must start after the policy end date"); } }); $("#ENG_MAINT_TO").blur(function () { if (u.dateBefore($(this).val(), $("#ENG_MAINT_FROM").val())) { $(this).val(""); return u.growl_info("This must start after the Maintenance Start Date"); } if (u.field_empty("#ENG_MAINT_FROM")) { $(this).val(""); return u.growl_info("Please select a Maintenance Start Date"); } $("#ENG_MAINT_DAYS").val(`${u.totalDays($("#ENG_MAINT_TO").val(), $("#ENG_MAINT_FROM").val())} days`); }); /*--------------------------- * year drop down population *--------------------------*/ var year = parseInt(u.getYear(u.get_datetime()) - 1); $scope.populateYears = function () { for (let i = year; i >= 1945; i--) { $("#CPM_MANUF_YR").append(``); } }; $scope.populateYears(); $("#CPM_STND_BY").change(function () { if (!$(this).is(":checked")) { $("#CPM_CAP").attr("disabled", "disabled"); } else { $("#CPM_CAP").prop("disabled", false); } }); $("#btn_tpl_cover").click(function () { if (!u.getSelRow(u.getGlobal("udwEngTplRiskGrid"))) return u.growl_info("No TPL record selected"); //$("#CARTPLModal").modal(); $("#RiskCoverModal").modal(); u.setGlobal("coverTarget", "TPL"); }); $("#btn_lop_cover").click(function () { if (!u.getSelRow(u.getGlobal("udwEngLopRiskGrid"))) return u.growl_info("No Loss of Profit record selected"); // u.form_reset("#cartplForm"); // $("#CARLossopModal").modal(); u.setGlobal("coverTarget", "LOP"); $("#RiskCoverModal").modal(); }); $("#ENG_ESC_PERC").blur(function() { u.getGlobal("max100")("ENG_ESC_PERC"); }); $("#btn_remove_lop_risk").click(function () { var grid = u.getGlobal("udwEngLopRiskGrid"); if (u.grid_empty(grid)) return u.growl_info("LOP grid is empty"); var selLopId = u.getSelRow(grid); if (!selLopId) return u.growl_info("No LOP record selected"); var selLop = u.getRow(selLopId, grid); var lopRiskGrid = u.getGlobal("udwEngLopRiskGrid"); u.modal_confirmation("Are you sure you want to remove this LOP record?", function () { switch (selLop.LOP_STATUS) { case "U": grid.jqGrid("delRowData", selLopId); u.hide_confirm(); u.form_reset("#lopRiskForm"); u.growl_success("Selected LOP successfully deleted"); break; case "A": grid.jqGrid("setCell", selLopId, "LOP_STATUS", "D"); $(`#${rowId}`, "#gridLopRisk").css({ color: "red" }); u.hide_confirm(); u.form_reset("#lopRiskForm"); u.growl_info( "Selected row successfully marked for deletion, please click on the save button to save changes"); break; case "D": $(`#${rowId}`, "#gridLopRisk").css({ color: "black" }); grid.jqGrid("setCell", selLopId, "LOP_STATUS", "A"); u.hide_confirm(); u.form_reset("#lopRiskForm"); u.growl_success("LOP successfully restored"); break; } }); }); $("#btn_update_lop_risk").click(function () { var grid = u.getGlobal("udwEngLopRiskGrid"); if (u.grid_empty(grid)) return u.growl_info("LOP grid is empty"); var lop = u.getSelRow(grid); if (!lop) return u.growl_info("No LOP record selected"); u.modal_confirmation("Are you sure you want to update the selected LOP?", function () { var code = grid.jqGrid("getCell", rowId, "LOP_SYS_ID"); if (`${code}` === $("#LOP_SYS_ID").val()) { var data = u.parse_form("#lopRiskForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.form_reset("#lopRiskForm"); u.growl_success("Loss of Profit details updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); }); $("#btn_remove_tpl").click(function () { var grid = u.getGlobal("udwEngTplRiskGrid"); if (u.grid_empty(grid)) return u.growl_info("TPL grid is empty"); var selTplId = u.getSelRow(grid); if (!selTplId) return u.growl_info("No TPL record selected"); var selTpl = u.getRow(selTplId, grid); u.modal_confirmation("Are you sure you want to remove this TPL record?", function () { switch (selTpl.TPL_STATUS) { case "U": grid.jqGrid("delRowData", selTplId); u.hide_confirm(); u.form_reset("#tplRiskForm"); u.growl_success("Selected TPL successfully deleted"); break; case "A": grid.jqGrid("setCell", selTplId, "TPL_STATUS", "D"); $(`#${tpl}`, "#gridTplRisk").css({ color: "red" }); u.hide_confirm(); u.form_reset("#tplRiskForm"); u.growl_info( "Selected row successfully marked for deletion, please click on the save button to save changes"); break; case "D": u.setGridColumn(grid, { "INS_UWD_RISK_COVERS": function (val) { var covers = u.parseJson(val); covers.ForEach(c => { c.RCOV_STATUS = "A"; }); return JSON.stringify(covers); } }); $(`#${selTplId}`, "#gridTplRisk").css({ color: "black" }); grid.jqGrid("setCell", selTplId, "TPL_STATUS", "A"); u.hide_confirm(); u.form_reset("#tplRiskForm"); u.growl_success("tpl successfully restored"); break; } }); }); $("#btn_update_tpl").click(function () { var grid = u.getGlobal("udwEngTplRiskGrid"); if (u.grid_empty(grid)) return u.growl_info("TPL grid is empty"); var tpl = u.getSelRow(grid); if (!tpl) return u.growl_info("No TPL record selected"); u.modal_confirmation("Are you sure you want to update the selected TPL?", function () { var code = parseInt(grid.jqGrid("getCell", tpl, "TPL_SYS_ID")); if (code === parseInt($("#TPL_SYS_ID").val())) { var data = u.parse_form("#tplRiskForm"); for (var i in data) { grid.jqGrid("setCell", tpl, i, data[i]); } u.hide_confirm(); u.form_reset("#tplRiskForm"); u.growl_success("Third Party Loss details updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); }); /* * EXCESS FUNCTIONS */ $("#CPM_EXCESS_TYPE").change(async function () { u.getGlobal("excessTypeChange")("CPM_EXCESS_TYPE", "CPM_EXCESS_PERC", "CPM_EXCESS_MIN", "CPM_EXCESS_MAX", "CPM_EXCESS_NAR"); }); $("#CPM_EXCESS_PERC").blur(function () { u.getGlobal("excessAmtBlur")("CPM_EXCESS_PERC", "CPM_EXCESS_NAR", "CPM_EXCESS_TYPE", "CPM_EXCESS_MIN", "CPM_EXCESS_MAX"); }); $("#CPM_EXCESS_MIN").blur(function () { u.getGlobal("excessMinMaxBlur")("CPM_EXCESS_MIN", "CPM_EXCESS_NAR", "Min"); }); $("#CPM_EXCESS_MAX").blur(function () { u.getGlobal("excessMinMaxBlur")("CPM_EXCESS_MAX", "CPM_EXCESS_NAR", "Max"); }); $("#TPL_EXCESS_TYPE").change(async function () { u.getGlobal("excessTypeChange")("TPL_EXCESS_TYPE", "TPL_EXCESS_PERC", "TPL_EXCESS_MIN", "TPL_EXCESS_MAX", "TPL_EXCESS_NAR"); }); $("#TPL_EXCESS_PERC").blur(function () { u.getGlobal("excessAmtBlur")("TPL_EXCESS_PERC", "TPL_EXCESS_NAR", "TPL_EXCESS_TYPE", "TPL_EXCESS_MIN", "TPL_EXCESS_MAX"); }); $("#TPL_EXCESS_MIN").blur(function () { u.getGlobal("excessMinMaxBlur")("TPL_EXCESS_MIN", "TPL_EXCESS_NAR", "Min"); }); $("#TPL_EXCESS_MAX").blur(function () { u.getGlobal("excessMinMaxBlur")("TPL_EXCESS_MAX", "TPL_EXCESS_NAR", "Max"); }); $("#LOP_EXCESS_TYPE").change(async function () { u.getGlobal("excessTypeChange")("LOP_EXCESS_TYPE", "LOP_EXCESS_PERC", "LOP_EXCESS_MIN", "LOP_EXCESS_MAX", "LOP_EXCESS_NAR"); }); $("#LOP_EXCESS_PERC").blur(function () { u.getGlobal("excessAmtBlur")("LOP_EXCESS_PERC", "LOP_EXCESS_NAR", "LOP_EXCESS_TYPE", "LOP_EXCESS_MIN", "LOP_EXCESS_MAX"); }); $("#LOP_EXCESS_MIN").blur(function () { u.getGlobal("excessMinMaxBlur")("LOP_EXCESS_MIN", "LOP_EXCESS_NAR", "Min"); }); $("#LOP_EXCESS_MAX").blur(function () { u.getGlobal("excessMinMaxBlur")("LOP_EXCESS_MAX", "LOP_EXCESS_NAR", "Max"); }); //if ($("#POLH_SUB_CLASS_CODE").val() === "2002") { // $("#projectDiv").addClass("m-hide"); // $("#mainTDiv1").addClass("m-hide"); // $("#mainTDiv2").addClass("m-hide"); // $("#ENG_PROJ_CODE").prop("required", false); // $("#ENG_DESC").prop("required", false); // $("#ENG_CONST_SITE").prop("required", false); // $("#ENG_MAINT_YN").prop("required", false); // $("#locRightDiv").css("margin-left", "-100px"); //} $("#POLH_CURRENCY_RATE, #POLH_CURRENCY").on("change blur", function() { var rate = parseFloat($("#POLH_CURRENCY_RATE").val()); var currency = $("#POLH_CURRENCY").val(); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } if (!u.grid_empty(u.getGlobal("udwEngGrid"))) { var locations = u.get_grid_data(u.getGlobal("udwEngGrid")); locations.ForEach(loc => { //loc.ENG_RI_PREM_BC = parseFloat(loc.ENG_RI_PREM_FC || 0) * rate; //loc.ENG_RI_SI_BC = parseFloat(loc.ENG_RI_SI_FC || 0) * rate; //loc.ENG_COMMISSION_BC = parseFloat(loc.ENG_COMMISSION_FC || 0) * rate; //loc.ENG_COMP_FEE_BC = parseFloat(loc.ENG_COMP_FEE_FC || 0) * rate; //loc.ENG_LOAD_BC = parseFloat(loc.ENG_LOAD_FC || 0) * rate; //loc.ENG_DISC_BC = parseFloat(loc.ENG_DISC_FC || 0) * rate; //loc.ENG_ADJ_PREM_BC = parseFloat(loc.ENG_ADJ_PREM_FC || 0) * rate; //loc.ENG_RISK_PREM_BC = parseFloat(loc.ENG_RISK_PREM_FC || 0) * rate; //loc.ENG_TOT_PREM_BC = parseFloat(loc.ENG_TOT_PREM_FC || 0) * rate; loc.ENG_CURRENCY_RATE = rate; loc.ENG_CURRENCY = currency; //CAR loc.INS_UDW_CAR_RISK = u.parseJson(loc.INS_UDW_CAR_RISK); loc.INS_UDW_CAR_RISK.ForEach(car => { //car.CAR_RI_PREM_BC = parseFloat(car.CAR_RI_PREM_FC || 0) * rate; //car.CAR_RI_SI_BC = parseFloat(car.CAR_RI_SI_FC || 0) * rate; //car.CAR_COMMISSION_BC = parseFloat(car.CAR_COMMISSION_FC || 0) * rate; //car.CAR_COMP_FEE_BC = parseFloat(car.CAR_COMP_FEE_FC || 0) * rate; //car.CAR_LOAD_BC = parseFloat(car.CAR_LOAD_FC || 0) * rate; //car.CAR_DISC_BC = parseFloat(car.CAR_DISC_FC || 0) * rate; //car.CAR_ADJ_PREM_BC = parseFloat(car.CAR_ADJ_PREM_FC || 0) * rate; //car.CAR_RISK_PREM_BC = parseFloat(car.CAR_RISK_PREM_FC || 0) * rate; //car.CAR_TOT_PREM_BC = parseFloat(car.CAR_TOT_PREM_FC || 0) * rate; car.CAR_CURRENCY = currency; car.CAR_CURRENCY_RATE = rate; //car.CAR_CON_PRICE_BC = parseFloat(car.CAR_CON_PRICE_FC || 0) * rate; //car.CAR_ITEMS_SUPPLIED_BC = parseFloat(car.CAR_ITEMS_SUPPLIED_FC || 0) * rate; //car.CAR_DEBRIS_BC = parseFloat(car.CAR_DEBRIS_FC || 0) * rate; //CAR Covers car.INS_UWD_RISK_COVERS = u.parseJson(car.INS_UWD_RISK_COVERS); car.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //car.INS_UWD_RISK_COVERS = JSON.stringify(car.INS_UWD_RISK_COVERS); //CAR CPM car.INS_UDW_CPM_RISK = u.parseJson(car.INS_UDW_CPM_RISK); car.INS_UDW_CPM_RISK.ForEach(cpm => { //cpm.CPM_COMMISSION_BC = parseFloat(cpm.CPM_COMMISSION_FC || 0) * rate; //cpm.CPM_COMP_FEE_BC = parseFloat(cpm.CPM_COMP_FEE_FC || 0) * rate; //cpm.CPM_LOAD_BC = parseFloat(cpm.CPM_LOAD_FC || 0) * rate; //cpm.CPM_DISC_BC = parseFloat(cpm.CPM_DISC_FC || 0) * rate; //cpm.CPM_RI_PREM_BC = parseFloat(cpm.CPM_RI_PREM_FC || 0) * rate; //cpm.CPM_RI_SI_BC = parseFloat(cpm.CPM_RI_SI_FC || 0) * rate; //cpm.CPM_RISK_PREM_BC = parseFloat(cpm.CPM_RISK_PREM_FC || 0) * rate; //cpm.CPM_ADJ_PREM_BC = parseFloat(cpm.CPM_ADJ_PREM_FC || 0) * rate; //cpm.CPM_TOT_PREM_BC = parseFloat(cpm.CPM_TOT_PREM_FC || 0) * rate; cpm.CPM_CURRENCY_RATE = rate; cpm.CPM_CURRENCY = currency; cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS); cpm.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); }); //car.INS_UDW_CPM_RISK = JSON.stringify(car.INS_UDW_CPM_RISK); // CAR TPL car.INS_UDW_TPL = u.parseJson(car.INS_UDW_TPL); car.INS_UDW_TPL.ForEach(tpl => { tpl.INS_UWD_RISK_COVERS = u.parseJson(tpl.INS_UWD_RISK_COVERS); tpl.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //tpl.INS_UWD_RISK_COVERS = JSON.stringify(tpl.INS_UWD_RISK_COVERS); }); //car.INS_UDW_TPL = JSON.stringify(car.INS_UDW_TPL); // CAR LOP car.INS_UDW_LOP = u.parseJson(car.INS_UDW_LOP); car.INS_UDW_LOP.ForEach(lop => { lop.INS_UWD_RISK_COVERS = u.parseJson(lop.INS_UWD_RISK_COVERS); lop.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //lop.INS_UDW_POL_COVERS = JSON.stringify(lop.INS_UDW_POL_COVERS); }); //car.INS_UDW_LOP = JSON.stringify(car.INS_UDW_LOP); }); loc.INS_UDW_CAR_RISK = JSON.stringify(loc.INS_UDW_CAR_RISK); //EAR loc.INS_UDW_EAR_RISK = u.parseJson(loc.INS_UDW_EAR_RISK); loc.INS_UDW_EAR_RISK.ForEach(ear => { //ear.EAR_RI_PREM_BC = parseFloat(ear.EAR_RI_PREM_FC || 0) * rate; //ear.EAR_RI_SI_BC = parseFloat(ear.EAR_RI_SI_BC || 0) * rate; //ear.EAR_COMMISSION_BC = parseFloat(ear.EAR_COMMISSION_FC || 0) * rate; //ear.EAR_COMP_FEE_BC = parseFloat(ear.EAR_COMP_FEE_FC || 0) * rate; //ear.EAR_LOAD_BC = parseFloat(ear.EAR_LOAD_FC || 0) * rate; //ear.EAR_DISC_BC = parseFloat(ear.EAR_DISC_FC || 0) * rate; //ear.EAR_ADJ_PREM_BC = parseFloat(ear.EAR_ADJ_PREM_FC || 0) * rate; //ear.EAR_RISK_PREM_BC = parseFloat(ear.EAR_RISK_PREM_FC || 0) * rate; //ear.EAR_TOT_PREM_BC = parseFloat(ear.EAR_TOT_PREM_FC || 0) * rate; ear.EAR_CURRENCY = currency; ear.EAR_CURRENCY_RATE = rate; //CAR Covers ear.INS_UWD_RISK_COVERS = u.parseJson(ear.INS_UWD_RISK_COVERS); ear.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); ear.INS_UWD_RISK_COVERS = JSON.stringify(ear.INS_UWD_RISK_COVERS); //CAR CPM ear.INS_UDW_CPM_RISK = u.parseJson(ear.INS_UDW_CPM_RISK); ear.INS_UDW_CPM_RISK.ForEach(cpm => { //cpm.CPM_COMMISSION_BC = parseFloat(cpm.CPM_COMMISSION_FC || 0) * rate; //cpm.CPM_COMP_FEE_BC = parseFloat(cpm.CPM_COMP_FEE_FC || 0) * rate; //cpm.CPM_LOAD_BC = parseFloat(cpm.CPM_LOAD_FC || 0) * rate; //cpm.CPM_DISC_BC = parseFloat(cpm.CPM_DISC_FC || 0) * rate; //cpm.CPM_RI_PREM_BC = parseFloat(cpm.CPM_RI_PREM_FC || 0) * rate; //cpm.CPM_RI_SI_BC = parseFloat(cpm.CPM_RI_SI_FC || 0) * rate; //cpm.CPM_RISK_PREM_BC = parseFloat(cpm.CPM_RISK_PREM_FC || 0) * rate; //cpm.CPM_ADJ_PREM_BC = parseFloat(cpm.CPM_ADJ_PREM_FC || 0) * rate; //cpm.CPM_TOT_PREM_BC = parseFloat(cpm.CPM_TOT_PREM_FC || 0) * rate; cpm.CPM_CURRENCY_RATE = rate; cpm.CPM_CURRENCY = currency; cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS); cpm.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); }); //ear.INS_UDW_CPM_RISK = JSON.stringify(ear.INS_UDW_CPM_RISK); // EAR TPL ear.INS_UDW_TPL = u.parseJson(ear.INS_UDW_TPL); ear.INS_UDW_TPL.ForEach(tpl => { tpl.INS_UWD_RISK_COVERS = u.parseJson(tpl.INS_UWD_RISK_COVERS); tpl.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //tpl.INS_UWD_RISK_COVERS = JSON.stringify(tpl.INS_UWD_RISK_COVERS); }); //ear.INS_UDW_TPL = JSON.stringify(ear.INS_UDW_TPL); // EAR LOP ear.INS_UDW_LOP = u.parseJson(ear.INS_UDW_LOP); ear.INS_UDW_LOP.ForEach(lop => { lop.INS_UWD_RISK_COVERS = u.parseJson(lop.INS_UWD_RISK_COVERS); lop.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //lop.INS_UWD_RISK_COVERS = JSON.stringify(lop.INS_UWD_RISK_COVERS); }); //ear.INS_UDW_LOP = JSON.stringify(ear.INS_UDW_LOP); }); loc.INS_UDW_EAR_RISK = JSON.stringify(loc.INS_UDW_EAR_RISK); // ENG OTHERS loc.INS_UDW_ENG_OTHER = u.parseJson(loc.INS_UDW_ENG_OTHER); loc.INS_UDW_ENG_OTHER.ForEach(other => { //other.ENG_OTHER_RI_PREM_BC = parseFloat(other.ENG_OTHER_RI_PREM_FC || 0) * rate; //other.ENG_OTHER_RI_SI_BC = parseFloat(other.ENG_OTHER_RI_SI_FC || 0) * rate; //other.ENG_OTHER_COMMISSION_BC = parseFloat(other.ENG_OTHER_COMMISSION_FC || 0) * rate; //other.ENG_OTHER_COMP_FEE_BC = parseFloat(other.ENG_OTHER_COMP_FEE_FC || 0) * rate; //other.ENG_OTHER_LOAD_BC = parseFloat(other.ENG_OTHER_LOAD_FC || 0) * rate; //other.ENG_OTHER_DISC_BC = parseFloat(other.ENG_OTHER_DISC_FC || 0) * rate; //other.ENG_OTHER_ADJ_PREM_BC = parseFloat(other.ENG_OTHER_ADJ_PREM_FC || 0) * rate; //other.ENG_OTHER_RISK_PREM_BC = parseFloat(other.ENG_OTHER_RISK_PREM_FC || 0) * rate; other.ENG_OTHER_CURRENCY_RATE = rate; other.ENG_OTHER_CURRENCY = currency; // Covers other.INS_UWD_RISK_COVERS = u.parseJson(other.INS_UWD_RISK_COVERS); other.INS_UWD_RISK_COVERS.ForEach(cov => { cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2); cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2); cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2); cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2); cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2); cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD); cov.INS_UDW_COVER_DISCLOAD.ForEach(d => { d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2); }); }); //other.INS_UWD_RISK_COVERS = JSON.stringify(other.INS_UWD_RISK_COVERS); }); loc.INS_UDW_ENG_OTHER = JSON.stringify(loc.INS_UDW_ENG_OTHER); loc.INS_UDW_ENGINEER_FEES = u.parseJson(loc.INS_UDW_ENGINEER_FEES); loc.INS_UDW_ENGINEER_FEES.ForEach(fee => { fee.ENG_FEE_FC_AMOUNT = parseFloat(fee.ENG_FEE_BC_AMOUNT / rate).toFixed(2); }); }); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.grid_populate(u.getGlobal("udwEngGrid"), "", locations); // Policy fees update var polFees = u.get_grid_data(u.getGlobal("udwPolFeesGrid")); polFees.ForEach(x => { x.POL_FEE_FC_AMOUNT = (parseFloat(x.POL_FEE_BC_AMOUNT) / parseFloat(rate)).toFixed(2); }); u.clear_grid_data(u.getGlobal("udwPolFeesGrid")); u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees); u.getGlobal("RecalculatePremium")(); } }); $("#btn_close_location").click(function() { u.modal_confirmation("Are you sure you want to close this?", function() { u.form_reset("#engineeringForm"); $("#LocationModal").modal("hide"); }); }); u.setGlobal("engUpdateAddOnCovers", function() { const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays; proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } u.setGridColumn(u.getGlobal("udwEngGrid"), { "INS_UDW_CAR_RISK": function(val) { var carRisks = u.parseJson(val); console.log(carRisks); carRisks.ForEach(car => { var carTpl = u.parseJson(car.INS_UDW_TPL); if (carTpl.length > 0 && !Array.isArray(carTpl)) { carTpl = u.parseJson(carTpl); } carTpl.ForEach(tpl => { var covers = u.parseJson(tpl.INS_UWD_RISK_COVERS); covers.ForEach(c => { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc; c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc; c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc; }); tpl.INS_UWD_RISK_COVERS = JSON.stringify(covers); }); car.INS_UDW_TPL = JSON.stringify(carTpl); var carLop = u.parseJson(car.INS_UDW_LOP); if (carLop.length > 0 && !Array.isArray(carLop)) { carLop = u.parseJson(carLop); } carLop.ForEach(lop => { var covers = u.parseJson(lop.INS_UWD_RISK_COVERS); covers.ForEach(c => { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc; c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc; c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc; }); lop.INS_UWD_RISK_COVERS = JSON.stringify(covers); }); car.INS_UDW_LOP = JSON.stringify(carLop); }); return JSON.stringify(carRisks); }, "INS_UDW_EAR_RISK": function(val) { var earRisks = u.parseJson(val); earRisks.ForEach(ear => { var earTpl = u.parseJson(ear.INS_UDW_TPL); if (earTpl.length > 0 && !Array.isArray(earTpl)) { earTpl = u.parseJson(earTpl); } earTpl.ForEach(tpl => { var covers = u.parseJson(tpl.INS_UWD_RISK_COVERS); covers.ForEach(c => { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc; c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc; c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc; }); tpl.INS_UWD_RISK_COVERS = JSON.stringify(covers); }); ear.INS_UDW_TPL = JSON.stringify(earTpl); var earLop = u.parseJson(ear.INS_UDW_LOP); if (earLop.length > 0 && !Array.isArray(earLop)) { earLop = u.parseJson(earLop); } earLop.ForEach(lop => { var covers = u.parseJson(lop.INS_UWD_RISK_COVERS); covers.ForEach(c => { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc; c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc; c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc; }); lop.INS_UWD_RISK_COVERS = JSON.stringify(covers); }); ear.INS_UDW_LOP = JSON.stringify(earLop); }); return JSON.stringify(earRisks); } }); }); u.setGlobal("engGetFACCovers", async function(riskId) { var productRiskData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), RCOV_CODE: "60008" }; var result = await s.getRiskCoverByProduct(productRiskData); if (result.state) { if (result.data.length > 0) { result.ForEach(c => { //c["RCOV_NAME"] = c["MS_UDW_COVERS"]["CVR_NAME"]; //c["RCOV_TYPE"] = c["MS_UDW_COVERS"]["CVR_TYPE"]; //c["RCOV_RI_YN"] = c["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"]; //c["CVR_USER_PREMIUM"] = c["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; //c["RCOV_PREM_REFUND"] = c["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; //c["RCOV_RATE_CHANGE"] = c["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; //c["RCOV_SI_CHANGE"] = c["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; //c["RCOV_COVER_LEVEL"] = c["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; c["RCOV_RISK_SYS_ID"] = riskId; }); return result; } } }); u.setGlobal("engGetCoInsMemCovers", async function (riskId) { var productRiskData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), RCOV_CODE: "60010" //RCOV_CODE: "60018" }; var result = await s.getRiskCoverByProduct(productRiskData); if (result.state) { if (result.data.length > 0) { result.ForEach(c => { //c["RCOV_NAME"] = c["MS_UDW_COVERS"]["CVR_NAME"]; //c["RCOV_TYPE"] = c["MS_UDW_COVERS"]["CVR_TYPE"]; //c["RCOV_RI_YN"] = c["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"]; //c["CVR_USER_PREMIUM"] = c["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; //c["RCOV_PREM_REFUND"] = c["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; //c["RCOV_RATE_CHANGE"] = c["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; //c["RCOV_SI_CHANGE"] = c["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; //c["RCOV_COVER_LEVEL"] = c["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; c["RCOV_RISK_SYS_ID"] = riskId; }); return result; } } }); $("#POLH_POL_DAYS").blur(function() { const days = parseInt($(this).val()); if (!u.grid_empty(u.getGlobal("udwEngGrid"))) { u.setGridColumn(u.getGlobal("udwEngGrid"), { "ENG_PERIOD_DAYS": days.toFixed(0), "ENG_START_DATE": u.dbDate($("#POLH_POL_START_DATE").val()), "ENG_END_DATE": u.dbDate($("#POLH_POL_END_DATE").val()), "ENG_CONST_FROM": u.dbDate($("#POLH_POL_START_DATE").val()), "ENG_CONST_TO": u.dbDate($("#POLH_POL_END_DATE").val()), "INS_UDW_CAR_RISK": function (val) { var risks = u.parseJson(val); risks.ForEach(r => { r.CAR_PERIOD_DAYS = days; r.CAR_START_DATE = u.dbDate($("#POLH_POL_START_DATE").val()); r.CAR_END_DATE = u.dbDate($("#POLH_POL_END_DATE").val()); }); return JSON.stringify(risks); }, "INS_UDW_EAR_RISK": function(val) { var risks = u.parseJson(val); risks.ForEach(r => { r.EAR_PERIOD_DAYS = days; r.EAR_START_DATE = u.dbDate($("#POLH_POL_START_DATE").val()); r.EAR_END_DATE = u.dbDate($("#POLH_POL_END_DATE").val()); }); return JSON.stringify(risks); }, "INS_UDW_ENG_OTHER": function(val) { var risks = u.parseJson(val); risks.ForEach(r => { r.ENG_OTHER_PERIOD_DAYS = days; r.ENG_OTHER_START_DATE = u.dbDate($("#POLH_POL_START_DATE").val()); r.ENG_OTHER_END_DATE = u.dbDate($("#POLH_POL_END_DATE").val()); }); return JSON.stringify(risks); } }); u.getGlobal("RecalculatePremium")(); } }); $("#btn_coins_ok").click(function () { u.getGlobal("RecalculatePremium")(); }); $("#btn_facInward_Ok").click(function () { u.getGlobal("RecalculatePremium")(); u.form_reset("#facInwardForm"); $("#MemberIwardModal").modal("hide"); }); u.setGlobal("riskFeesLov", u.default_grid("#gridAddNewFees", "#gridAddNewFeesPager", "Risk Covers", ["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 = u.getGlobal("riskFeesLov"); let data = u.getRow(selId, grid) || {}; data = { ENG_FEE_CODE: data.PRF_FEE_CODE, ENG_FEE_NAME: data.FEE_NAME, ENG_FEE_FC_AMOUNT: data.PRF_FEE_AMOUNT, ENG_FEE_BC_AMOUNT: data.PRF_FEE_AMOUNT, ENG_FEE_RK_NO: data.PRF_SYS_ID }; u.form_reset("#riskfeessForm"); $scope.RiskFeesCalculate(data); //$("#RCOV_SI_FC").trigger("blur"); u.fill_form(data, "#riskfeessForm"); $("#AddNewFeesModal").modal("hide"); })); /* * fees functions */ $("#btnRiskFees").click(function () { if (!u.getSelRow(u.getGlobal("udwEngGrid"))) return u.growl_info("Select a risk"); u.clear_grid_data(u.getGlobal("udwEngRskFeeGrid")); u.grid_populate(u.getGlobal("udwEngRskFeeGrid"), "", u.parseJson(u.getGlobal("udwEngGrid").jqGrid("getCell", u.getSelRow(u.getGlobal("udwEngGrid")), "INS_UDW_ENGINEER_FEES"))); $("#engRiskFeesModal").modal(); }); $scope.RiskFeesCalculate = function (z) { z.ENG_FEE_BC_AMOUNT = parseFloat(z.ENG_FEE_BC_AMOUNT || 0).toFixed(2) || 0; z.ENG_FEE_FC_AMOUNT = parseFloat(parseFloat(z.ENG_FEE_BC_AMOUNT || 0) / parseFloat($("#POLH_CURRENCY_RATE").val() || 0)).toFixed(2) || 0; }; $("#btn_add_feess").on("click", function () { if (u.form_validation("#riskfeessForm")) { let feesData = u.get_grid_data(u.getGlobal("udwEngRskFeeGrid")) || []; const formData = u.parse_form("#riskfeessForm") || {}; if (feesData.Any(x => x.ENG_FEE_CODE === formData.ENG_FEE_CODE)) return u.growl_warning(`Fee with code ${formData.ENG_FEE_CODE} already exists`); u.modal_confirmation("Are you sure you want to add this fee?", function () { /*--------------------- * GET RISK DATA *-------------------**/ let Risk = u.getRow(u.getSelRow(u.getGlobal("udwEngGrid")), u.getGlobal("udwEngGrid")) || {}; /*------------------ * GET FEES FORM DATA *----------------**/ formData.ENG_FEE_STATUS = "U"; formData.ENG_FEE_CRTE_BY = u.getUserCode(); formData.ENG_FEE_CRTE_DATE = u.get_date(); formData.ENG_FEE_END_NO = Risk.ENG_POLH_END_NO; formData.ENG_FEE_RNW_NO = Risk.ENG_POLH_RNW_NO; formData.ENG_FEE_RK_SYS_ID = Risk.ENG_SYS_ID; //formData.ENG_FEE_RK_CODE = Risk.ENG_RISK_CODE; $scope.RiskFeesCalculate(formData); u.getGlobal("udwEngRskFeeGrid").addRowData(undefined, formData); if (!u.get_grid_data(u.getGlobal("udwPolFeesGrid")).Any(x => x.POL_FEE_CODE === formData.ENG_FEE_CODE)) { var compFeedata = [formData]; var linq = Enumerable.From(compFeedata); var data = linq.GroupBy(function (x) { return x.ENG_FEE_CODE; }) .Select(function (x) { //console.log(x); return { POL_FEE_CODE: x.Key(), POL_FEE_NAME: x.source[0]["ENG_FEE_NAME"], POL_FEE_FC_AMOUNT: x.Sum(function (y) { return parseFloat(y.ENG_FEE_FC_AMOUNT || 0); }), POL_FEE_BC_AMOUNT: x.Sum(function (y) { return parseFloat(y.ENG_FEE_BC_AMOUNT || 0); }), POL_FEE_END_NO: 0, //$("#POL_END_NO").val() POL_FEE_STATUS: "U" }; }).ToArray(); //u.getGlobal("udwPolFeesGrid").jqGrid("clearGridData"); u.getGlobal("udwPolFeesGrid").addRowData(data.POL_FEE_CODE, data); } u.hide_confirm(); u.growl_success("Fee successfully added"); u.form_reset("#riskfeessForm"); }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); $("#btn_update_feess").on("click", function () { if (u.grid_empty(u.getGlobal("udwEngRskFeeGrid"))) return u.growl_info("Grid is empty"); if (u.form_validation("#riskfeessForm")) { u.modal_confirmation("Are you sure you want to update the selected fee?", function () { const grid = u.getGlobal("udwEngRskFeeGrid"); const rowId = u.getSelRow(grid); let data = rowId ? u.getRow(rowId, grid) : {}; let formData = u.parse_form("#riskfeessForm") || {}; if (data.ENG_FEE_CODE === formData.ENG_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("Fee updated successfully"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } u.form_reset("#riskfeessForm"); }); } }); $("#btn_remove_feess").on("click", function () { if (u.grid_empty(u.getGlobal("udwEngRskFeeGrid"))) return u.modalAlert("Grid is empty!!!"); let grid = u.getGlobal("udwEngRskFeeGrid"); let rowId = u.getSelRow(grid); let Result = rowId ? u.getRow(rowId, grid) : {}; let formData = u.parse_form("#riskfeessForm") || {}; let polFees = u.get_grid_data(u.getGlobal("udwPolFeesGrid")); if (Result.ENG_FEE_CODE === formData.ENG_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 this fee?", function (e) { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ if (Result.ENG_FEE_STATUS == "U") { grid.jqGrid("delRowData", rowId); let newPolFees = []; polFees.ForEach(pf => { if (pf.POL_FEE_CODE !== Result.ENG_FEE_CODE && pf.POL_FEE_STATUS !== "U") { newPolFees.push(pf); } }); u.clear_grid_data(u.getGlobal("udwPolFeesGrid")); u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", newPolFees); u.hide_confirm(); u.growl_success("Selected fee successfully removed"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ if (Result.ENG_FEE_STATUS == "A") { grid.jqGrid("setCell", rowId, "ENG_FEE_STATUS", "D"); $(`#${rowId}`, "#gridEngiCompFees").css({ color: "red" }); polFees.ForEach(pf => { if (pf.POL_FEE_CODE === Result.ENG_FEE_CODE && pf.POL_FEE_STATUS === "A") { pf.POL_FEE_STATUS = "D"; } }); u.clear_grid_data(u.getGlobal("udwPolFeesGrid")); u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees); u.hide_confirm(); u.growl_success("Selected fee successfully marked for deletion, please click on the save button to save changes"); } else if (Result.ENG_FEE_STATUS == "D") { $(`#${rowId}`, "#gridEngiCompFees").css({ color: "black" }); grid.jqGrid("setCell", rowId, "ENG_FEE_STATUS", "A"); polFees.ForEach(pf => { if (pf.POL_FEE_CODE === Result.ENG_FEE_CODE && pf.POL_FEE_STATUS === "A") { pf.POL_FEE_STATUS = "A"; } }); u.clear_grid_data(u.getGlobal("udwPolFeesGrid")); u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees); u.hide_confirm(); u.growl_success("Fee successfully restored"); } u.form_reset("#riskfeessForm"); }); } }); $("#feesOk").click(function () { var fees = u.get_grid_data(u.getGlobal("udwEngRskFeeGrid")); var risks = u.get_grid_data(u.getGlobal("udwEngGrid")); if (fees.length <= 0) { var selLocationId = u.getSelRow(u.getGlobal("udwEngGrid")); var selLocation = u.getRow(selLocationId, u.getGlobal("udwEngGrid")) || {}; risks.ForEach(r => { if (parseInt(r.ENG_SYS_ID) == parseInt(selLocation.ENG_SYS_ID)) { r.INS_UDW_ENGINEER_FEES = []; } }); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.grid_populate(u.getGlobal("udwEngGrid"), "", risks); } else { risks.ForEach(r => { fees.ForEach(f => { if (f.ENG_FEE_STATUS != "D") { if (parseInt(r.ENG_SYS_ID) === parseInt(f.ENG_FEE_RK_SYS_ID)) { r.INS_UDW_ENGINEER_FEES = u.parseJson(r.INS_UDW_ENGINEER_FEES); r.INS_UDW_ENGINEER_FEES = r.INS_UDW_ENGINEER_FEES.Where(x => x.ENG_FEE_CODE !== f.ENG_FEE_CODE); r.INS_UDW_ENGINEER_FEES.push(f); var polFees = u.get_grid_data(u.getGlobal("udwPolFeesGrid")); if (!polFees.Any(x => x.POL_FEE_CODE === f.ENG_FEE_CODE)) { polFees.push({ POL_FEE_CODE: f.ENG_FEE_CODE, POL_FEE_NAME: f.ENG_FEE_NAME ? f.ENG_FEE_NAME : "", POL_FEE_FC_AMOUNT: parseFloat(f.ENG_FEE_FC_AMOUNT || 0), POL_FEE_BC_AMOUNT: parseFloat(f.ENG_FEE_BC_AMOUNT || 0), POL_FEE_END_NO: parseInt($("POLH_END_NO").val() || 0), POL_FEE_STATUS: "U" }); u.clear_grid_data(u.getGlobal("udwPolFeesGrid")); u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees); } } } }); }); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.grid_populate(u.getGlobal("udwEngGrid"), "", risks); u.clear_grid_data(u.getGlobal("udwEngRskFeeGrid")); } u.form_reset("#riskfeessForm"); $("#engRiskFeesModal").modal("hide"); }); $("#btnAddNewFeesEng").on("click", function () { if ($("#POLH_CLASS_CODE").val() == "") { u.growl_warning("Product Code is empty, Please check and try again"); } else { $("#AddNewFeesModal").modal(); } }); $("#btnQueryRiskFeesLov").on("click", async function () { const riskFeesData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), LEVEL: "R" }; const grid = u.getGlobal("riskFeesLov"); let result = await s.getRiskFeesLovAsync(riskFeesData); if (result && result.length && result.length > 0) { grid.jqGrid("clearGridData"); u.bigDataPopulate(grid, result); } }); $("#riskFeesLovOk").on("click", function () { const grid = u.getGlobal("riskFeesLov"); const selId = u.getSelRow(grid); let data = selId ? u.getRow(selId, grid) : {}; data = { ENG_FEE_CODE: data.PRF_FEE_CODE, ENG_FEE_NAME: data.FEE_NAME, ENG_FEE_FC_AMOUNT: data.PRF_FEE_AMOUNT, ENG_FEE_BC_AMOUNT: data.PRF_FEE_AMOUNT, ENG_FEE_RK_NO: data.PRF_SYS_ID, // ENG_FEE_CURR_RATE: parseFloat($("#POLH_CURRENCY_RATE").val() || 0) }; $scope.RiskFeesCalculate(data); u.form_reset("#riskfeessForm"); u.fill_form(data, "#riskfeessForm"); $("#AddNewFeesModal").modal("hide"); }); u.setGlobalStatic("ProductUnendorse", async function () { /*---------------------------------- * UNDO ENDORSMENT FOR PRODUCT RISK *--------------------------------*/ const CurrentProduct = u.parse_form("#polheaderForm") || {}; if (!("EX").includes(CurrentProduct.POLH_TXN_STATE)) return u.growl_warning("Endorsements can not undo!!!"); u.modalConfirmationAsync("Are you sure you want to undo endorsement on this policy?", async function () { $("#policyCalculationsModal").modal(); setTimeout(async function () { const data = { polSysId: CurrentProduct.POLH_SYS_ID, endNo: parseFloat(CurrentProduct.POLH_END_NO) - 1, rnwNo: CurrentProduct.POLH_RENEW_SER_NO }; let response = await s.policyUnendorseAsync(data); if (response.state) { let Unendorsed = response.data || {}; u.getGlobalStatic("productSearchFill")(Unendorsed); u.form_text_Green_color(); //$scope.premiumSummarizer(); u.growl_success("Policy successfully unendorsed.") //let processRevert = await u.revertProcess(Unendorsed.POLH_UID); //if (processRevert.state) { // $("#netPremSummary h3").show(); // $("#netCustomerBc").text(Unendorsed.POLH_CURRENCY + " " + Unendorsed.POLH_POL_PREM_FC); // $("#netCustomerFc").text(Unendorsed.POLH_CURRENCY + " " + Unendorsed.POLH_POL_PREM_BC); // $("#endNetCustomerFc").text(" "); // $("#endNetCustomerBc").text(" "); // u.growl_success("Policy successfully unendorsed."); //} else { // u.growl_error(processRevert.message); //} } else { u.growl_error(response.message); } $("#policyCalculationsModal").modal("hide"); }); }); }); $("#btn_unendorsement").click(async function () { const CurrentProduct = u.parse_form("#polheaderForm") || {}; let processRevert = await u.revertProcess(CurrentProduct.POLH_UID); }); }); })(window.jQuery, window.service, window.utility, {}); (function ($, s, u, $scope) { $(function () { //car u.getGlobal("policyHeaderInit")(); u.getGlobal("tabsInit")(); /*--------------- * LOCATION GRID *-------------*/ $scope.locationGrid = u.getGlobal("udwEngGrid"); // CAR Interest $scope.carRiskGrid = u.getGlobal("udwEngCarGrid"); //CPM $scope.cpmRiskGrid = u.getGlobal("udwEngCpmGrid"); // CAR Contractor $scope.carcon_grid = u.default_grid("#gridCARCONInterest", "#gridCARCONInterestPager", "Contractor Risk List", [ "Sys ID", "Risk Name", "Description", "Status", "Created by", "Created date", "Eng Loc ID", "Polh Sys ID" ], [ { name: "CONVAL_SYS_ID", index: "CONVAL_SYS_ID", width: 100 }, { name: "CONVAL_NAME", index: "CONVAL_NAME", width: 150 }, { name: "CONVAL_DESC", index: "CONVAL_DESC", width: 150 }, { name: "CONVAL_STATUS", index: "CONVAL_STATUS", width: 100 }, { name: "CONVAL_CRTE_BY", index: "CONVAL_CRTE_BY", width: 150 }, u.dateTimeColumn("CONVAL_CRTE_DATE"), { name: "CONVAL_CARINT_SYS_ID", index: "CONVAL_CARINT_SYS_ID", width: 200 }, { name: "CONVAL_POLH_SYS_ID", index: "CONVAL_POLH_SYS_ID", width: 200 }, { name: "CONV_MOD_BY", index: "CONV_MOD_BY", width: 200 }, u.dateTimeColumn("CONV_MOD_DATE") ], //Retrive Grid data into form input fields on row click.. function (selId) { const grid = $scope.carcon_grid; u.fill_form(u.getRow(selId, grid), "#carconForm"); }), // CAR Third Party Loss Grid $scope.tplGrid = u.getGlobal("udwCoverGrid"); // $scope.tplGrid = u.getGlobal("udwEngTplGrid"); // CAR Loss of Profit Grid $scope.lopGrid = u.getGlobal("udwCoverGrid"); // $scope.lopGrid = u.getGlobal("udwEngLopGrid"); // Cover Grid $scope.cover_grid = u.getGlobal("udwCoverGrid"); // Risk Covers **** $scope.riskCovers_grid = u.default_grid("#gridAddNewCover", "#gridAddNewCoverPager", "Risk Cover List", ["Code", "Name", "Sum Insured", "Deft Rate", "Deft Premium", "Cover Type"], [ { name: "PCV_COV_CODE", index: "PCV_COV_CODE", width: 150 }, { name: "COVER_NAME", index: "COVER_NAME", width: 150 }, u.currencyColumn("PCV_SI"), { name: "PCV_DEF_RATE", index: "PCV_DEF_RATE", width: 150 }, u.currencyColumn("PCV_DEF_PREM"), { name: "COVER_TYPE", index: "COVER_TYPE", width: 150 }, ], //Retrive Grid data into form input fields on row click.. function (selId) { var grid = $scope.riskCovers_grid; u.fill_form({ RCOV_CODE: grid.jqGrid("getCell", selId, "PCV_COV_CODE"), RCOV_NAME: grid.jqGrid("getCell", selId, "COVER_NAME"), RCOV_TYPE: grid.jqGrid("getCell", selId, "COVER_TYPE"), RCOV_RATE: grid.jqGrid("getCell", selId, "PCV_DEF_RATE"), RCOV_SI_FC: grid.jqGrid("getCell", selId, "PCV_SI"), RCOV_GROSS_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_NET_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_USER_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_USER_PREMIUM_YN"), RCOV_RATED_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RATED_YN"), RCOV_RI_SI_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_SI_YN"), RCOV_RATE_CHANGE: grid.jqGrid("getCell", selId, "PCV_CVR_RATE_CHANGE"), RCOV_RI_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_PREMIUM_YN") }, "#coverForm"); //u.fill_form({ // UAC_CVR_CODE: grid.jqGrid("getCell", selId, "PCV_COV_CODE"), // UAC_CVR_NAME: grid.jqGrid("getCell", selId, "COVER_NAME"), // UAC_CVR_TYPE: grid.jqGrid("getCell", selId, "COVER_TYPE"), // UAC_CVR_RATE: grid.jqGrid("getCell", selId, "PCV_DEF_RATE"), // UAC_CVR_SI_BC: grid.jqGrid("getCell", selId, "PCV_SI"), // UAC_CVR_GROSS_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), // UAC_CVR_NET_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM") //}, // "#carlossopForm,#cartplForm"); }, //Retrive Grid data into form input fields on row double click.... XXX function (selId) { var grid = $scope.riskCovers_grid; u.fill_form({ RCOV_CODE: grid.jqGrid("getCell", selId, "PCV_COV_CODE"), RCOV_NAME: grid.jqGrid("getCell", selId, "COVER_NAME"), RCOV_TYPE: grid.jqGrid("getCell", selId, "COVER_TYPE"), RCOV_RATE: grid.jqGrid("getCell", selId, "PCV_DEF_RATE"), RCOV_SI_FC: grid.jqGrid("getCell", selId, "PCV_SI"), RCOV_GROSS_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_NET_PREM_FC: grid.jqGrid("getCell", selId, "PCV_DEF_PREM"), RCOV_USER_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_USER_PREMIUM_YN"), RCOV_RATED_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RATED_YN"), RCOV_RI_SI_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_SI_YN"), RCOV_RI_PREM_YN: grid.jqGrid("getCell", selId, "PCV_CVR_RI_PREMIUM_YN") }, "#coverForm"); // hide modal on double click $("#AddNewCoverModal").modal("hide"); }); // Premium Summary $scope.premium_grid = u.getGlobal("udwPremSumGrid"); // Premium Register Summary $scope.premiumreg_grid = u.getGlobal("udwPremRegGrid"); // Premium Fees Summary $scope.policyFeesGrid = u.getGlobal("udwFeesGrid"); // Applicable Risk Fees Summary $scope.locationFeesGrid = u.getGlobal("udwEngRskFeeGrid"); //$scope.locationFeesGrid = u.default_grid("#gridCompFees", // "#gridCompFeesPager", // "Applicable Fees Summary", // [ // " Code", "Fee Name", "FC Amount", "BC Amount", // "Polh SYS ID", "Risk SYS ID", "Risk N0", "Risk Code", "Polh End No.", "Status", "Fee SYS ID" // ], // [ // { name: "ENG_FEE_CODE", index: "ENG_FEE_CODE", width: 150 }, // { name: "ENG_FEE_NAME", index: "ENG_FEE_NAME", width: 200 }, // { name: "ENG_FEE_FC_AMOUNT", index: "ENG_FEE_FC_AMOUNT", width: 150 }, // { name: "ENG_FEE_BC_AMOUNT", index: "ENG_FEE_BC_AMOUNT", width: 150 }, // { name: "ENG_FEE_POL_SYS_ID", index: "ENG_FEE_POL_SYS_ID", width: 150 }, // { name: "ENG_FEE_RK_SYS_ID", index: "ENG_FEE_RK_SYS_ID", width: 150 }, // { name: "ENG_FEE_RK_NO", index: "ENG_FEE_RK_NO", width: 150 }, // { name: "ENG_FEE_RK_CODE", index: "ENG_FEE_RK_CODE", width: 150 }, // { name: "ENG_FEE_END_NO", index: "ENG_FEE_END_NO", width: 150 }, // { name: "ENG_FEE_STATUS", index: "ENG_FEE_STATUS", width: 150 }, // { name: "ENG_FEE_SYS_ID", index: "ENG_FEE_SYS_ID", width: 150 } // ], // //Retrieve Grid data into form input fields on row click.. // function(selId) { // }); // Applicable Policy Fees Summary $scope.polpolicyFeesGrid = u.getGlobal("udwPolFeesGrid"); // Premium Payment Summary $scope.payment_grid = u.getGlobal("udwPaymentGrid"); // Risk Premium Summary $scope.PremSummary_grid = u.getGlobal("udwPremSumGrid"); // Reinsurance Share Summary $scope.treatyShareGrid = u.getGlobal("udwTtyShareGrid"); // FAC In Premium Summary $scope.treatyApportionmentGrid = u.getGlobal("udwTtyApporGrid"); // Reinsurance Summary $scope.reinsurance_grid = u.getGlobal("udwRIGrid"); // Claim Summary $scope.cliams_grid = u.getGlobal("udwClaimsGrid"); // 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("udwAgntComsnGrid"); // Coinsurnace Member or FAC Inward Business Grid $scope.grdfacInward_grid = u.getGlobal("udwFacInwGrid"); // Coinsurnace Member or FAC Invward Participants Grid $scope.grdInwdParticipant_grid = u.getGlobal("udwInwdPartGrid"); // Coinsurance Leader Business Grid $scope.grdCoinsLeader_grid = u.getGlobal("udwCoInsLdrGrid"); // Area Grid **** $scope.area_grid = u.getGlobal("udwEngAreaGrid"); // Location Grid **** $scope.loc_grid = u.getGlobal("udwEngLocGrid"); // Policy Discount/Loading $scope.polhdiscloading_grid = u.getGlobal("udwPolDiscLoadingGrid"); // cOVER dISCOUNT/lOADING $scope.coverDiscLoading_grid = u.getGlobal("udwCoverDiscLoading"); // Policy Documents Grid $scope.polFileGrid = u.getGlobal("udwPolDocsGrid"); $scope.policy_risk_search_grid = u.default_grid("#gridPolicyRiskSearch", "#gridPolicyRiskSearchPager", "Policy Risk List", [ "Policy ID", "Description", "Principal", "SI FC", "SI BC", "Total Prm FC", "Total Prm BC","Modified By","Modified Date" ], [ { name: "CAR_POLH_SYS_ID", index: "CAR_POLH_SYS_ID", width: 150 }, { name: "CAR_RISK_NAME", index: "CAR_RISK_NAME", width: 150 }, { name: "CAR_DESCRIPTION", index: "CAR_DESCRIPTION", width: 150 }, u.currencyColumn("CAR_SI_FC"), u.currencyColumn("CAR_SI_BC"), u.currencyColumn("CAR_TOT_PREM_FC"), u.currencyColumn("CAR_TOT_PREM_BC"), { name: "CAR_MOD_BY", index: "CAR_MOD_BY", width: 150 }, u.dateTimeColumn("CAR_MOD_DATE") ], function (id) { }), $scope.users_grid = u.getGlobal("udwUsersGrid"); $scope.riskdiscloading_grid = u.getGlobal("udwRskDiscLoadingGrid"); $scope.saving = false; /*---------------------- * LOV initialization *--------------------*/ $scope.lov = u.lov_init("#myLOVModal", "#grdLOV", "#grdLOVPager"); /*----------------------------------------- * LOV button click event handling *---------------------------------------*/ $("body").delegate(".btn_lov", "click", function (e) { $scope.dialog_data = $(this).data("dialog"); if (!$scope.dialog_data) { return false; } switch ($scope.dialog_data.type) { case "btn_cover_type": $scope.lov.call_dialog("Select Cover", "get_lov_cover_type", $scope.dialog_data); break; case "btn_broker_agent": $scope.lov.call_dialog("Select Broker/Agent", "get_lov_broker_agent", $scope.dialog_data); break; case "btn_risk": $scope.lov.call_dialog("Select Risk", "get_lov_motor_risks", $scope.dialog_data); break; case "btn_region": $scope.lov.call_dialog("Select Region", "get_lov_regions", $scope.dialog_data); break; case "btn_area": if ($("#ENG_REGION_CODE").val() === "") return u.growl_info("Please select a region"); $scope.lov.call_dialog("Select Area", "getRegionAreas", $scope.dialog_data, $("#ENG_REGION_CODE").val()); break; case "btn_location": if ($("#ENG_AREA_CODE").val() === "") return u.growl_info("Please select an area"); $scope.lov.call_dialog("Select Location", "getAreaLocations", $scope.dialog_data, $("#ENG_AREA_CODE").val()); break; case "btn_occupancy": $scope.lov.call_dialog("Select Occupancy", "get_lov_occupancy", $scope.dialog_data); break; case "btn_eqzone": $scope.lov.call_dialog("Select Earthquake Zone", "get_lov_eqzone", $scope.dialog_data); break; case "btn_car_risk": $scope.lov.call_dialog("Select Risk", "get_lov_risk", $scope.dialog_data); break; case "btn_cpm_risk": //$scope.lov.call_dialog("Select Risk", "get_lov_risk", $scope.dialog_data); //$scope.lov.call_dialog("Select Risk", "getProductRisks", $scope.dialog_data, "2009"); $scope.lov.call_dialog("Select Risk", "getProductRisks", $scope.dialog_data, "2005"); 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_loc_risk_type": //$scope.lov.call_dialog("Select Transit", "get_lov_transit", $scope.dialog_data); $scope.lov.call_dialog("Select Location Risk", "getLocationRisks", $scope.dialog_data, $("#POLH_SUB_CLASS_CODE").val()); break; case "btn_risk_type": //$scope.lov.call_dialog("Select Transit", "get_lov_transit", $scope.dialog_data); $scope.lov.call_dialog("Select Risk", "getProductRisks", $scope.dialog_data, $("#POLH_SUB_CLASS_CODE").val()); break; } }); $("form select[name='CAR_EXCESS_APP']").change(function () { if ($(this).val() === "Y") { $("#btn_excess").removeAttr("disabled"); } else { $("#CAR_EXCESS_PERC").val(""); $("#btn_excess").prop("disabled", "disabled"); } }); /*-------------------------------------------------- * Retrieving Area *------------------------------------------------*/ $("#btn_Area").on("click", function () { if ($("#ENG_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: $("#ENG_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 ($("#ENG_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: $("#ENG_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(); }); /*-------------------------------------------------- * Retrieving customers on calling function *------------------------------------------------*/ //$("#btnQueryCustomers").on('click', function () { // getProductRiskLov() //}); /*-------------------------------------------------- * Get Risk compulsory Fees *------------------------------------------------*/ // async function getProductComPulsoryFees(engId) { /* obtain parameter for our request */ var riskFeesData = { CLASS_CODE: $("#POLH_CLASS_CODE").val(), PRD_CODE: $("#POLH_SUB_CLASS_CODE").val() }; // //send parameters and get motor Risks from the database var result = await s.getProductFeesAsync(riskFeesData); if (result && result.length && result.length > 0) { //fill grid result.ForEach(f => { f["ENG_FEE_FC_AMOUNT"] = parseFloat(f["PRF_FEE_AMOUNT"]) / parseFloat($("#POLH_CURRENCY_RATE").val()); f["ENG_FEE_FC_AMOUNT"] = parseFloat(f["ENG_FEE_FC_AMOUNT"].toFixed(2)); f["ENG_FEE_BC_AMOUNT"] = parseFloat(f["PRF_FEE_AMOUNT"]); f["ENG_FEE_CODE"] = f["PRF_FEE_CODE"]; f["ENG_FEE_RK_NO"] = f["PRF_SYS_ID"]; f["ENG_FEE_NAME"] = f["FEE_NAME"]; f["ENG_FEE_RK_CODE"] = $("#CAR_RISK_CODE").val(); f["ENG_FEE_RK_SYS_ID"] = engId; f["ENG_FEE_CRTE_BY"] = "Admin"; f["ENG_FEE_CRTE_DATE"] = Date.now(); f["ENG_FEE_STATUS"] = "U"; // // $scope.locationFeesGrid.jqGrid('setCell', result[i], 'RISK_CODE', ); $scope.locationFeesGrid.addRowData(undefined, f); }); } var compFeedata = u.get_grid_data($scope.locationFeesGrid); var sumFees = compFeedata.GroupBy(function (x) { return x.ENG_FEE_CODE; }) .Select(function (x) { //console.log(x); return { POL_FEE_CODE: x.Key(), POL_FEE_NAME: x.source[0]["ENG_FEE_NAME"], POL_FEE_FC_AMOUNT: x.Sum(function (y) { return parseFloat(y.ENG_FEE_FC_AMOUNT || 0); }), POL_FEE_BC_AMOUNT: x.Sum(function (y) { return parseFloat(y.ENG_FEE_BC_AMOUNT || 0); }), POL_FEE_END_NO: 0 //$("#POL_END_NO").val() }; }).ToArray(); // if ($("#POLH_STATUS").val() == "U") { u.clear_grid_data($scope.polpolicyFeesGrid); sumFees.ForEach(f => { $scope.polpolicyFeesGrid.addRowData(undefined, f); }); } else { sumFees.ForEach(f => { $scope.polpolicyFeesGrid.addRowData(undefined, f); u.setGridColumn($scope.polpolicyFeesGrid, { "POL_FEE_FC_AMOUNT": function (amount, row) { if (row.POL_FEE_CODE == f.POL_FEE_CODE) { return parseFloat(amount) + parseFloat(f.POL_FEE_FC_AMOUNT); } return amount; }, "POL_FEE_BC_AMOUNT": function (amount, row) { if (row.POL_FEE_CODE == f.POL_FEE_CODE) { return parseFloat(amount) + parseFloat(f.POL_FEE_BC_AMOUNT); } return amount; }, }); }); } return result; } /*$("#btn_GetCompFees").on("click", async function() { await getProductComPulsoryFees(); });*/ /*-------------------------------------------------- * add LOP Cover *------------------------------------------------*/ // $("#btn_add_lop").on("click", function () { if (u.form_validation("#carlossopForm")) { u.modal_confirmation("Are you sure you want to add the Cover?", function () { // var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); var grid = $scope.lopGrid; 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, "UAC_CVR_CODE"); var riskCov = coverCode; // alert(riskCov); codeArray.push(riskCov); } if ($.inArray($("#LOP_UAC_CVR_CODE").val(), codeArray) < 0) { var location = u.getRow(u.getSelRow($scope.locationGrid), $scope.locationGrid); var formData = u.parse_form("#carlossopForm"); //fill in default covers if not in the grid formData["UAC_CVR_LOC_SYS_ID"] = location.ENG_SYS_ID; formData.UAC_CVR_CRTE_BY = u.getUserCode(); formData.UAC_CVR_STATUS = "U"; formData.UAC_CVR_CRTE_DATE = u.get_date(); formData.UAC_CVR_SI_BC = (formData.UAC_CVR_SI_FC / currRate).toFixed(2); formData.UAC_CVR_GROSS_PREM_BC = (formData.UAC_CVR_GROSS_PREM_FC / currRate).toFixed(2); formData.UAC_CVR_NET_PREM_BC = (formData.UAC_CVR_NET_PREM_FC / currRate).toFixed(2); formData.UAC_CVR_DISC_BC = ((formData.UAC_CVR_DISC_FC || 0) / currRate).toFixed(2); formData.UAC_CVR_LOAD_BC = ((formData.UAC_CVR_LOAD_FC || 0) / currRate).toFixed(2); //formData.UAC_CVR_TYPE = formData. grid.addRowData(undefined, formData); u.growl_success("LOP Cover successfully added"); u.hide_confirm(); u.form_reset("#carlossopForm"); } else { u.growl_warning(`Cover exists for this Risk, you cannot add same Cover ${$("#RCOV_CODE").val()}`); u.hide_confirm(); } }); } else { u.hide_confirm(); u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------------------------- * add TPL Cover *------------------------------------------------*/ // $("#btn_add_cartpl").on("click", function () { //if (u.form_validation("#cartplForm")) { if (u.form_validation("#cartplForm")) { u.modal_confirmation("Are you sure you want to add the Cover?", function () { // var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); var grid = $scope.tplGrid; 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, "UAC_CVR_CODE"); var coverCode = grid.jqGrid("getCell", currRow, "RCOV_CODE"); var riskCov = coverCode; // alert(riskCov); codeArray.push(riskCov); } // if ($.inArray($("#TPL_UAC_CVR_CODE").val(), codeArray) < 0) { if ($.inArray($("#RCOV_CODE").val(), codeArray) < 0) { //var location = u.getRow(u.getSelRow($scope.locationGrid), $scope.locationGrid); var formData = u.parse_form("#cartplForm"); //fill in default covers if not in the grid //formData["UAC_CVR_LOC_SYS_ID"] = location.ENG_SYS_ID; formData.RCOV_CRTE_BY = u.getUserCode(); formData.RCOV_STATUS = "U"; //formData.UAC_CVR_SI_BC = (formData.UAC_CVR_SI_FC / currRate).toFixed(2); //formData.UAC_CVR_GROSS_PREM_BC = (formData.UAC_CVR_GROSS_PREM_FC / currRate).toFixed(2); //formData.UAC_CVR_NET_PREM_BC = (formData.UAC_CVR_NET_PREM_FC / currRate).toFixed(2); //formData.UAC_CVR_DISC_BC = ((formData.UAC_CVR_DISC_FC || 0) / currRate).toFixed(2); //formData.UAC_CVR_LOAD_BC = ((formData.UAC_CVR_LOAD_FC || 0) / currRate).toFixed(2); //formData.UAC_CVR_TYPE = formData.COVER_TYPE; grid.addRowData(undefined, formData); u.growl_success("TPL Cover successfully added"); u.hide_confirm(); u.form_reset("#cartplForm"); } else { u.growl_warning(`Cover exists for this Risk, you cannot add same Cover ${$("#RCOV_CODE").val()}`); u.hide_confirm(); } }); } else { u.hide_confirm(); u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------- * LOP Cover Edit/Update Function *------------------------------*/ // $("#btn_update_lop").on("click", function () { if (u.grid_empty($scope.lopGrid)) return u.growl_info("Cover grid is empty"); var rowId = u.getSelRow($scope.lopGrid); if (!rowId) { return u.growl_info("Please a TPL cover to update"); } var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); if (u.form_validation("#carlossopForm")) { u.modal_confirmation("Are you sure you want to update the selected cover?", function () { var formData = u.parse_form("#carlossopForm"); formData.UAC_CVR_SI_BC = (formData.UAC_CVR_SI_FC / currRate).toFixed(2); formData.UAC_CVR_GROSS_PREM_BC = (formData.UAC_CVR_GROSS_PREM_FC / currRate).toFixed(2); formData.UAC_CVR_NET_PREM_BC = (formData.UAC_CVR_NET_PREM_FC / currRate).toFixed(2); formData.UAC_CVR_DISC_BC = ((formData.UAC_CVR_DISC_FC || 0) / currRate).toFixed(2); formData.UAC_CVR_LOAD_BC = ((formData.UAC_CVR_LOAD_FC || 0) / currRate).toFixed(2); for (let i in formData) { if (formData.hasOwnProperty(i)) { u.setCell($scope.lopGrid, rowId, i, formData[i]); } }; u.hide_confirm(); }); } }); /*-------------------------------- * TPL Cover Edit/Update Function *------------------------------*/ // $("#btn_update_cartpl").on("click", function () { if (u.grid_empty($scope.tplGrid)) return u.growl_info("Cover grid is empty"); var rowId = u.getSelRow($scope.tplGrid); if (!rowId) { return u.growl_info("Please a TPL cover to update"); } var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); if (u.form_validation("#cartplForm")) { u.modal_confirmation("Are you sure you want to update the selected cover?", function () { var formData = u.parse_form("#cartplForm"); formData.UAC_CVR_SI_BC = (formData.UAC_CVR_SI_FC / currRate).toFixed(2); formData.UAC_CVR_GROSS_PREM_BC = (formData.UAC_CVR_GROSS_PREM_FC / currRate).toFixed(2); formData.UAC_CVR_NET_PREM_BC = (formData.UAC_CVR_NET_PREM_FC / currRate).toFixed(2); formData.UAC_CVR_DISC_BC = ((formData.UAC_CVR_DISC_FC || 0) / currRate).toFixed(2); formData.UAC_CVR_LOAD_BC = ((formData.UAC_CVR_LOAD_FC || 0) / currRate).toFixed(2); for (let i in formData) { if (formData.hasOwnProperty(i)) { u.setCell($scope.tplGrid, rowId, i, formData[i]); } }; u.hide_confirm(); }); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from LOP Cover Grid *---------------------------------------------------*/ // $("#btn_remove_lop").on("click", function () { if (u.grid_empty($scope.lopGrid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.lopGrid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "UAC_CVR_STATUS"); /*--------------------------------- * Display modal message *------------------------------*/ // u.modal_confirmation("Are you sure you want to remove the selected cover?", function () { /*-------------------------------------------- * 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, "UAC_CVR_STATUS", "D"); $(`#${rowId}`).css({ color: "red" }); u.hide_confirm(); u.growl_success("Selected cover successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $(`#${rowId}`).css({ color: "black" }); grid.jqGrid("setCell", rowId, "UAC_CVR_STATUS", "A"); u.hide_confirm(); u.growl_success("Cover successfully restored"); } }); }); /*---------------------------------------------------- * Remove record or Mark for deletion from LOP Cover Grid *---------------------------------------------------*/ // $("#btn_remove_cartpl").on("click", function () { if (u.grid_empty($scope.tplGrid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.tplGrid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "UAC_CVR_STATUS"); /*--------------------------------- * Display modal message *------------------------------*/ // u.modal_confirmation("Are you sure you want to remove the selected cover?", function () { /*-------------------------------------------- * 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, "UAC_CVR_STATUS", "D"); $(`#${rowId}`).css({ color: "red" }); u.hide_confirm(); u.growl_success("Selected cover successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $(`#${rowId}`).css({ color: "black" }); grid.jqGrid("setCell", rowId, "UAC_CVR_STATUS", "A"); u.hide_confirm(); u.growl_success("Cover successfully restored"); } }); }); /*-------------------------------------------------- * add Cover *------------------------------------------------*/ // $("#btn_add_cover").on("click", function () { if (u.form_validation("#coverForm")) { u.modalConfirmationAsync("Are you sure you want to add the Cover?", async function () { // var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); var grid = $scope.cover_grid; var rowIds = grid.jqGrid("getDataIDs"); //declare array to contain the codes to varify var codeArray = []; // iterate through the rows in the grid and add Covers to Array for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get value of the cell or column in an array var coverCode = grid.jqGrid("getCell", currRow, "RCOV_CODE"); var riskCov = coverCode; // alert(riskCov); codeArray.push(riskCov); } if ($.inArray($("#RCOV_CODE").val(), codeArray) < 0) { var formData = u.parse_form("#coverForm"); //if ($scope.coverTarget === "CPM") { if (u.getGlobal("coverTarget") === "CPM") { var cpmRisk = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid); formData["RCOV_RISK_SYS_ID"] = cpmRisk.CPM_SYS_ID; formData["RCOV_RISK_NO"] = cpmRisk.CPM_RISK_ID; } else { var carRisk = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid); formData["RCOV_RISK_SYS_ID"] = carRisk.CAR_SYS_ID; formData["RCOV_RISK_NO"] = carRisk.CAR_RISK_ID; } //fill in default covers if not in the grid formData.RCOV_CRTE_BY = u.getUserCode(); formData.RCOV_STATUS = "U"; formData.RCOV_SYS_ID = await s.getSequenceAsync("RISK_COVERS_SEQ"); formData.RCOV_SI_FC = parseFloat(formData.RCOV_SI_FC || 0); formData.RCOV_SI_BC = (parseFloat(formData.RCOV_SI_FC * currRate)).toFixed(2); //formData.RCOV_GROSS_PREM_FC = formData.RCOV_GROSS_PREM_FC; formData.RCOV_GROSS_PREM_BC = parseFloat(formData.RCOV_GROSS_PREM_FC * currRate).toFixed(2); //formData.RCOV_NET_PREM_FC = formData.RCOV_NET_PREM_FC; formData.RCOV_NET_PREM_BC = (formData.RCOV_NET_PREM_FC * currRate).toFixed(2); // formData.RCOV_DISC_FC = formData.RCOV_DISC_FC; formData.RCOV_DISC_BC = (formData.RCOV_DISC_FC * currRate).toFixed(2); //formData.RCOV_LOAD_FC = formData.RCOV_LOAD_FC; formData.RCOV_LOAD_BC = (formData.RCOV_LOAD_FC * currRate).toFixed(2); //formData.RCOV_BASE_PREM_YN = "N"; //formData.RCOV_BASE_SI_YN = "N"; $scope.cover_grid.addRowData(undefined, formData); u.growl_success("Risk Cover successfully added"); u.form_reset("#coverForm"); $("#RCOV_RATE").prop("disabled", false); $("#RCOV_ANNL_PREM_FC").attr("disabled", "disabled"); $("#RCOV_SI_FC").prop("disabled", false); u.hide_confirm(); } else { u.growl_warning(`Cover exists for this Risk, you cannot add same Cover ${$("#RCOV_CODE").val()}`); u.hide_confirm(); } }); } else { u.hide_confirm(); u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------------------------- *get Risks Cover lists fucnction *------------------------------------------------*/ // function getRiskCoversLov() { /* obtain parameter for our request */ var riskCoverData = { // PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), }; // var grid = $scope.riskCovers_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getRiskCoversLOV(riskCoverData, function (result) { if (result && result.length && result.length > 0) { //clear Grid $scope.riskCovers_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { result[i]["COVER_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; result[i]["COVER_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; $scope.riskCovers_grid.addRowData(undefined, result[i]); } } }); } function getAddonRiskCoversLov(type) { /* obtain parameter for our request */ var riskCoverData = { // PRD_CODE: `${$("#POLH_SUB_CLASS_CODE").val()}_${type}`, }; // var grid = $scope.riskCovers_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getAddOnRiskCoversLOV(riskCoverData, function (result) { if (result && result.length && result.length > 0) { //clear Grid $scope.riskCovers_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { result[i]["COVER_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; result[i]["COVER_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; result[i]["PCV_CVR_RATE_CHANGE"] = result[i]["PCV_CVR_RATE_CHANGE_YN"]; result[i]["PCV_CVR_RATED_YN"] = result[i]["PCV_CVR_RATED_YN"]; $scope.riskCovers_grid.addRowData(undefined, result[i]); } } }); } /*-------------------------------- *Query Cover Lov *------------------------------*/ // $("#btnQueryRiskCoverLov").on("click", function () { switch (u.getGlobal("coverTarget")) { case "CAR": getRiskCoversLov(); break; case "CPM": getAddonRiskCoversLov("CPM"); break; case "TPL": getAddonRiskCoversLov("TPL"); break; case "LOP": getAddonRiskCoversLov("LOP"); break; } }); /*-------------------------------- *Open Risk Covers LOV Modal *------------------------------*/ // $("#btnAddNewCover,.btnAddNewCover").on("click", function () { if ($("#POLH_CLASS_CODE").val() == "") { u.growl_warning("Product Code is empty, Please check and try again"); } else { u.clear_grid_data($scope.riskCovers_grid); $("#AddNewCoverModal").modal(); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from Cover Grid *---------------------------------------------------*/ // $("#btn_remove_cover").on("click", function () { if (u.grid_empty($scope.cover_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.cover_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); if (grid.jqGrid("getCell", rowId, "RCOV_DFT") === "Y") return u.growl_info("Defaulted cover cannot be removed"); var recordStatus = grid.jqGrid("getCell", rowId, "RCOV_STATUS"); var code = grid.jqGrid("getCell", rowId, "RCOV_NO"); var message = ""; /*--------------------------------- * Display modal message *------------------------------*/ // u.modal_confirmation("Are you sure you want to remove the Record?", function (e) { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ // if (recordStatus == "U") { grid.jqGrid("delRowData", rowId); u.hide_confirm(); u.growl_success("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus == "A") { grid.jqGrid("setCell", rowId, "RCOV_STATUS", "D"); $(`#${rowId}`, "#grdCover").css({ color: "red" }); u.hide_confirm(); u.growl_success( "Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $(`#${rowId}`, "#grdCover").css({ color: "black" }); grid.jqGrid("setCell", rowId, "RCOV_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } u.form_reset("#coverForm"); $("#RCOV_RATE").prop("disabled", false); $("#RCOV_ANNL_PREM_FC").attr("disabled", "disabled"); $("#RCOV_SI_FC").prop("disabled", false); }); }); /*-------------------------------- * Cover Edit/Update Function *------------------------------*/ // $("#btn_update_cover").on("click", function () { if (u.grid_empty($scope.cover_grid)) return u.growl_info("Cover grid is empty"); if (u.form_validation("#coverForm")) { u.modal_confirmation("Are you sure you want to update the selected Cover?", function () { updateCovers(); u.hide_confirm(); }); } }); //Edit/Update covers Function function updateCovers() { var grid = $scope.cover_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var coverCode = parseInt(grid.jqGrid("getCell", rowId, "RCOV_SYS_ID")); if (coverCode == parseInt($("#RCOV_SYS_ID").val())) { // var currRate = parseFloat($("#POLH_CURRENCY_RATE").val()).toFixed(2); if (currRate == "" || currRate == 0) { u.hide_confirm(); u.growl_warning("the Currency Rate cannot be zero (0) please check and try again"); } else { //Declare variables and get values var coverSifc = parseFloat($("#RCOV_SI_FC").val()).toFixed(2); var coverSibc = parseFloat(coverSifc * currRate).toFixed(2); var coverGrossPremFc = parseFloat($("#RCOV_GROSS_PREM_FC").val()).toFixed(2); var coverGrossPremBc = parseFloat(coverGrossPremFc * currRate).toFixed(2); var coverNetPremFc = parseFloat($("#RCOV_NET_PREM_FC").val()).toFixed(2); var coverNetPremBc = parseFloat(coverNetPremFc * currRate).toFixed(2); var coverDisFc = 0; coverDisFc = parseFloat($("#RCOV_DISC_FC").val()).toFixed(2); var coverDisBc = 0; coverDisBc = parseFloat(coverDisFc * currRate).toFixed(2); var coverLoadFc = parseFloat($("#RCOV_LOAD_FC").val()).toFixed(2); var coverLoadBc = parseFloat(coverLoadFc / currRate).toFixed(2); // var coverRate = parseFloat($("#RCOV_RATE").val()).toFixed(2); // grid.jqGrid("setCell", rowId, "RCOV_SI_FC", coverSifc); grid.jqGrid("setCell", rowId, "RCOV_SI_BC", coverSibc); grid.jqGrid("setCell", rowId, "RCOV_RATE", coverRate); grid.jqGrid("setCell", rowId, "RCOV_GROSS_PREM_FC", coverGrossPremFc); grid.jqGrid("setCell", rowId, "RCOV_GROSS_PREM_BC", coverGrossPremBc); grid.jqGrid("setCell", rowId, "RCOV_NET_PREM_FC", coverNetPremFc); grid.jqGrid("setCell", rowId, "RCOV_NET_PREM_BC", coverNetPremBc); grid.jqGrid("setCell", rowId, "RCOV_DISC_FC", coverDisFc); grid.jqGrid("setCell", rowId, "RCOV_DISC_BC", coverDisBc); grid.jqGrid("setCell", rowId, "RCOV_LOAD_FC", coverLoadFc); grid.jqGrid("setCell", rowId, "RCOV_LOAD_BC", coverLoadBc); grid.jqGrid("setCell", rowId, "RCOV_ANNL_PREM_FC", $("#RCOV_ANNL_PREM_FC").val()); grid.jqGrid("setCell", rowId, "RCOV_ANNL_PREM_BC", $("#RCOV_ANNL_PREM_BC").val()); //call //$scope.SumCarCoverValues(); u.form_reset("#coverForm"); $("#RCOV_RATE").prop("disabled", false); $("#RCOV_ANNL_PREM_FC").attr("disabled", "disabled"); $("#RCOV_SI_FC").prop("disabled", false); u.hide_confirm(); u.growl_success("Risk Cover updated"); } } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } } /*----------------------------------- * 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 //("#btn_CoverPrem_Onclose").click(function() { $("#btnRiskCoverOk").click(function () { if (u.grid_empty($scope.cover_grid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function () { $("#RiskCoverModal").modal("hide"); u.hide_confirm(); }); } else { //switch ($scope.coverTarget) { switch (u.getGlobal("coverTarget")) { case "CAR": $scope.SumCarCoverValues(); break; case "CPM": $scope.SumCpmCoverValues(); break; case "TPL": $scope.CloseTplCovers(); break; case "LOP": $scope.CloseLopCovers(); break; } u.form_reset("#coverForm"); $("#RiskCoverModal").modal("hide"); u.clear_grid_data($scope.cover_grid); } u.setGlobal("coverTarget", ""); }); //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); //policy discount and loading summary var polDiscLoadData = []; //var polDiscLoadData = u.get_grid_data($scope.riskdiscloading_grid); var locationGridData = u.get_grid_data($scope.locationGrid); locationGridData.ForEach(loc => { var carRisks = typeof (loc.INS_UDW_CAR_RISK) === "string" ? JSON.parse(loc.INS_UDW_CAR_RISK) : []; if (carRisks !== null) { carRisks.ForEach(car => { var covers = typeof (car.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(car.INS_UWD_RISK_COVERS) : []; if (covers !== null) { covers.ForEach(cover => { var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string" ? JSON.parse(cover.INS_UDW_COVER_DISCLOAD) : []; //console.log(discLoadings); if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } var cpmRisks = typeof (loc.INS_UDW_CPM_RISK) === "string" ? JSON.parse(loc.INS_UDW_CPM_RISK) : []; if (cpmRisks.length > 0) { cpmRisks.ForEach(cpm => { var covers = typeof (cpm.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(cpm.INS_UWD_RISK_COVERS) : []; if (covers.length > 0) { covers.ForEach(cover => { var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string" ? JSON.parse(cover.INS_UDW_COVER_DISCLOAD) : []; //console.log(discLoadings); if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); } var tplCovers = typeof (loc.INS_UDW_TPL_COVERS) === "string" ? JSON.parse(loc.INS_UDW_TPL_COVERS) : []; // tpl if (tplCovers.length > 0) { //console.log(tplCovers); tplCovers.ForEach(tpl => { var discLoadings = typeof (tpl.INS_UDW_COVER_DISCLOAD) === "string" ? JSON.parse(tpl.INS_UDW_COVER_DISCLOAD) : []; console.log(discLoadings); if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } //lop var lopCovers = typeof (loc.INS_UDW_POL_COVERS) === "string" ? JSON.parse(loc.INS_UDW_POL_COVERS) : []; if (lopCovers.length > 0) { lopCovers.ForEach(lop => { var discLoadings = typeof (lop.INS_UDW_COVER_DISCLOAD) === "string" ? JSON.parse(lop.INS_UDW_COVER_DISCLOAD) : []; if (discLoadings.length > 0) { discLoadings.ForEach(discLoading => { polDiscLoadData.push(discLoading); }); } }); } }); //var polDiscLoadData = u.get_grid_data($scope.coverDiscLoading_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 y.DL_TYPE === "D" ? -(parseFloat(y.DL_AMT_FC || 0)) : parseFloat(y.DL_AMT_FC || 0); }).toFixed(2), BC_AMOUNT: x.Sum(function (y) { return y.DL_TYPE === "D" ? -(parseFloat(y.DL_AMT_BC || 0)) : parseFloat(y.DL_AMT_BC || 0); }).toFixed(2), TYPE: x.source[0]["DL_TYPE"] }; }).ToArray(); //for (var x in polDiscLoadings) $scope.PremSummary_grid.addRowData(polDiscLoadings[x].ID, polDiscLoadings[x]); u.gridPopulate($scope.PremSummary_grid, polDiscLoadings); //policy fee summary var compFeedata = u.get_grid_data($scope.polpolicyFeesGrid); //console.log(compFeedata); 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); }; // $("#premSum").click($scope.premiumSummarizer); $("#premSum").click(u.getGlobal("EngPremSummarizer")()); $scope.PremiumCalculator = function () { //Declare variables var riskPrem = 0; var locationBasicPremFc = 0; var locationBasicPremBc = 0; var grossPremFc = 0; var grossPremBc = 0; //Risk Grid u.get_grid_data($scope.locationGrid).ForEach(location => { locationBasicPremFc += parseFloat(location.ENG_RISK_PREM_FC); locationBasicPremBc += parseFloat(location.ENG_RISK_PREM_BC); }); grossPremFc = locationBasicPremFc; grossPremBc = locationBasicPremBc; var prems = [grossPremFc, grossPremBc, locationBasicPremFc, 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.carRiskGrid; var riskRow = u.getSelRow(risksGrid); var riskId = risksGrid.jqGrid("getCell", riskRow, "CAR_SYS_ID"); // //var RisksCPMGrid = $scope.cpmRiskGrid; //var riskRow = u.getSelRow(RisksCPMGrid); //var riskCPMId = RisksCPMGrid.jqGrid("getCell", riskRow, "CPM_SYS_ID"); //Cover Grid var covgrid = $scope.cover_grid; var rowIds = covgrid.jqGrid("getDataIDs"); var riskRowIds = risksGrid.jqGrid("getDataIDs"); // 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); } //if (getcovRiskId === riskCPMId) { // 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: $("#btn_risk_cover").click(function () { if (u.grid_empty($scope.carRiskGrid)) return u.growl_info("The grid is empty"); var grid = $scope.carRiskGrid; var rowId = grid.jqGrid("getGridParam", "selrow"); if (!rowId) return u.growl_warning("No risk has been selected, please select a risk to continue"); u.clear_grid_data($scope.cover_grid); var covers = JSON.parse(u.getCell(grid, rowId, "INS_UWD_RISK_COVERS") || "[]"); u.gridPopulate($scope.cover_grid, covers); //$scope.coverTarget = "CAR"; u.setGlobal("coverTarget", "CAR"); $("#RiskCoverModal").modal(); }); /*-------------------------------------------------- * Risk modal dialog *------------------------------------------------*/ // $("#btn_open_car").click(async function () { const selRow = u.getSelRow($scope.locationGrid); //if (!u.form_validation("#engineeringForm")) return u.growl_warning("Please fill the Engineering Header form and try again"); if (!selRow) return u.growl_info("Please select a location below"); //fetch CAR json string const carRiskList = u.parseJson(u.getCell($scope.locationGrid, selRow, "INS_UDW_CAR_RISK") || "[]"); u.clear_grid_data($scope.carRiskGrid); u.gridPopulate($scope.carRiskGrid, carRiskList); $("#CAR_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#CAR_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); $("#CAR_CURRENCY").val($("#POLH_CURRENCY").val()); $("#CAR_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); $("#CAR_START_DATE").val($("#POLH_POL_START_DATE").val()); $("#CAR_END_DATE").val($("#POLH_POL_END_DATE").val()); $("#CAR_DESCRIPTION").val(u.getCell($scope.locationGrid, selRow, "ENG_DESC")); await u.lovDropDownAsync("#CAR_EXCESS_TYPE", "get_lov_PExcessAsync", { "SubClass": $("#POLH_SUB_CLASS_CODE").val() || null }); // DEFAULT CLAIM AMOUNT $("#CAR_EXCESS_TYPE").val("CA"); $("#CAR_EXCESS_TYPE").trigger("change"); await u.lovDropDownAsync("#CPM_EXCESS_TYPE", "get_lov_PExcessAsync", { "SubClass": $("#POLH_SUB_CLASS_CODE").val() || null }); // DEFAULT CLAIM AMOUNT $("#CPM_EXCESS_TYPE").val("CA"); $("#CPM_EXCESS_TYPE").trigger("change"); await u.lovDropDownAsync("#TPL_EXCESS_TYPE", "get_lov_PExcessAsync", { "SubClass": $("#POLH_SUB_CLASS_CODE").val() || null }); // DEFAULT CLAIM AMOUNT $("#TPL_EXCESS_TYPE").val("CA"); $("#TPL_EXCESS_TYPE").trigger("change"); await u.lovDropDownAsync("#LOP_EXCESS_TYPE", "get_lov_PExcessAsync", { "SubClass": $("#POLH_SUB_CLASS_CODE").val() || null }); // DEFAULT CLAIM AMOUNT $("#LOP_EXCESS_TYPE").val("CA"); $("#LOP_EXCESS_TYPE").trigger("change"); $("#CARInterestModal").modal(); }); $("#btn_open_car_cpm").click(function () { var selRow = u.getSelRow($scope.carRiskGrid); //if (!u.form_validation("#engineeringForm")) return u.growl_warning("Please fill the Engineering Header form and try again"); if (!selRow) return u.growl_info("Please select a CAR below"); //fetch CPM json string var cpmRiskList = u.parseJson(u.getCell($scope.carRiskGrid, selRow, "INS_UDW_CPM_RISK") || "[]"); u.clear_grid_data($scope.cpmRiskGrid); u.grid_populate($scope.cpmRiskGrid, "", cpmRiskList); $("#CPM_CURRENCY").val($("#POLH_CURRENCY").val()); $("#CPM_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); $("#CPM_START_DATE").val($("#POLH_POL_START_DATE").val()); $("#CPM_END_DATE").val($("#POLH_POL_END_DATE").val()); $("#CARCPMModal").modal(); }); $("#btn_open_car_tpl").click(function () { var selRow = u.getSelRow($scope.carRiskGrid); //if (!u.form_validation("#engineeringForm")) return u.growl_warning("Please fill the Engineering Header form and try again"); if (!selRow) return u.growl_info("Please select a CAR record from the grid"); //fetch CAR json string var tplList = u.parseJson(u.getCell($scope.carRiskGrid, selRow, "INS_UDW_TPL") || "[]"); u.clear_grid_data(u.getGlobal("udwEngTplRiskGrid")); u.grid_populate(u.getGlobal("udwEngTplRiskGrid"), "", tplList); u.form_reset("#cartplForm"); u.setGlobal("tpl", true); u.setGlobal("lop", false); $("#TPL_DESCRIPTION").val("Third Party Liability"); //$("#CARTPLModal").modal(); $("#TPLRiskModal").modal(); }); $("#btn_open_car_lop").click(function () { const selRow = u.getSelRow($scope.carRiskGrid); //if (!u.form_validation("#engineeringForm")) return u.growl_warning("Please fill the Engineering Header form and try again"); if (!selRow) return u.growl_info("Please select a CAR record below"); //fetch CAR json string const lopList = u.parseJson(u.getCell($scope.carRiskGrid, selRow, "INS_UDW_LOP") || "[]"); u.clear_grid_data(u.getGlobal("udwEngLopRiskGrid")); u.grid_populate(u.getGlobal("udwEngLopRiskGrid"), "", lopList); u.form_reset("#carlossopForm"); u.setGlobal("tpl", false); u.setGlobal("lop", true); $("#LOP_DESCRIPTION").val("Advance Loss of profit"); // $("#CARLossopModal").modal(); $("#LOPRiskModal").modal(); }); /*-------------------------------------------------- * Adding CAR Interest Risk Details *------------------------------------------------*/ // $("#btn_add_car").on("click", function () { if (u.form_validation("#carinterestForm")) { u.modalConfirmationAsync("Are you sure you want to add the Contractor All Risk Period Details?", async function () { var rowIds = $scope.carRiskGrid.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.carRiskGrid.jqGrid("getCell", currRow, "CAR_RISK_TYPE"); code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray($("#CAR_RISK_TYPE").val(), code) < 0) { var location = u.getRow(u.getSelRow($scope.locationGrid), $scope.locationGrid); var formData = u.parse_form("#carinterestForm"); formData.CAR_STATUS = "U"; formData.CAR_CRTE_BY = u.getUserCode(); formData.CAR_ENG_SYS_ID = parseInt(location.ENG_SYS_ID); formData.CAR_SYS_ID = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); var defaultCovers = []; if ($("#POLH_INS_SOURCE").val() === "DIR" || $("#POLH_INS_SOURCE").val() === "COL") { defaultCovers = await getDefaultRiskCovers(formData.CAR_SYS_ID); } else if ($("#POLH_INS_SOURCE").val() === "COM") { defaultCovers = await u.getGlobal("engGetCoInsMemCovers")(formData.CAR_SYS_ID); } else if ($("#POLH_INS_SOURCE").val() === "FIN") { defaultCovers = await u.getGlobal("engGetCoInsMemCovers")(formData.CAR_SYS_ID); } formData.INS_UWD_RISK_COVERS = JSON.stringify(defaultCovers); //var tplCovers = await u.getGlobal("EngGetAddOnDefaultCovers")(`${$("#POLH_SUB_CLASS_CODE").val()}_TPL`); //var tplList = []; //if (tplCovers.length > 0) { // tplCovers.ForEach(tpl => { // tplList.Add({ // "UAC_CVR_CODE": tpl.MS_UDW_COVERS.CVR_CODE, // "UAC_CVR_NAME": tpl.MS_UDW_COVERS.CVR_NAME, // "UAC_CVR_RATE": tpl.RCOV_RATE, // "UAC_CVR_SI_FC": tpl.RCOV_SI_FC, // "UAC_GROSS_PREM_FC": tpl.RCOV_GROSS_PREM_FC, // "UAC_NET_PREM_FC": tpl.RCOV_NET_PREM_FC, // "UAC_CVR_LOC_SYS_ID": formData.CAR_SYS_ID, // "UAC_CVR_TYPE": tpl.RCOV_TYPE // }); // }); // formData.INS_UDW_TPL_COVERS = JSON.stringify(tplList); //} //var lopCovers = await u.getGlobal("EngGetAddOnDefaultCovers")(`${$("#POLH_SUB_CLASS_CODE").val()}_LOP`); //var lopList = []; //if (lopCovers.length > 0) { // lopCovers.ForEach(lop => { // lopList.Add({ // "UAC_CVR_CODE": lop.MS_UDW_COVERS.CVR_CODE, // "UAC_CVR_NAME": lop.MS_UDW_COVERS.CVR_NAME, // "UAC_CVR_RATE": lop.RCOV_RATE, // "UAC_CVR_SI_FC": lop.RCOV_SI_FC, // "UAC_GROSS_PREM_FC": lop.RCOV_GROSS_PREM_FC, // "UAC_NET_PREM_FC": lop.RCOV_NET_PREM_FC, // "UAC_CVR_LOC_SYS_ID": formData.CAR_SYS_ID // }); // }); // formData.INS_UDW_POL_COVERS = JSON.stringify(lopList); //} $scope.carRiskGrid.addRowData(undefined, formData); u.hide_confirm(); u.growl_success("Contractor All Risk successfully added to grid"); u.hide_confirm(); u.form_reset("#carinterestForm"); } else { u.hide_confirm(); u.growl_warning(`Contractor All Risk with code ${cellValue} already exists`); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------- * Edit/Update Function CAR Interest *------------------------------*/ // $("#btn_update_car").on("click", function () { if (u.grid_empty($scope.carRiskGrid)) return u.growl_info("Contractor All Risk grid is empty"); if (u.form_validation("#carinterestForm")) { u.modal_confirmation("Are you sure you want to update the selected Contractor All Risk?", function () { var grid = $scope.carRiskGrid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = parseInt(grid.jqGrid("getCell", rowId, "CAR_SYS_ID")); if (code === parseInt($("#CAR_SYS_ID").val())) { var data = u.parse_form("#carinterestForm"); if ($("#CAR_EML_YN").val() === "Y") { data.CAR_RI_SI_FC = data.CAR_RI_SI_FC * (parseFloat($("#CAR_EML_PERC").val()) * 0.01).toFixed(2); data.CAR_RI_SI_BC = parseFloat(data.CAR_RI_SI_FC) * parseFloat($("#POLH_CURRENCY_RATE").val()); } for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Contractor All Risk Details updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from CAR Interest *---------------------------------------------------*/ // $("#btn_remove_car").on("click", function () { if (u.grid_empty($scope.carRiskGrid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.carRiskGrid; var rowId = u.getSelRow(grid); if (!rowId) return u.growl_info("Select a risk to remove"); var recordStatus = grid.jqGrid("getCell", rowId, "CAR_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") { u.setGridColumn(grid, { "INS_UWD_RISK_COVERS": function (val) { var covers = u.parseJson(val); covers.ForEach(c => { c.RCOV_STATUS = "D"; }); return JSON.stringify(covers); } }); grid.jqGrid("setCell", rowId, "CAR_STATUS", "D"); $(`#${rowId}`, "#gridCARInterest").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") { u.setGridColumn(grid, { "INS_UWD_RISK_COVERS": function (val) { var covers = u.parseJson(val); covers.ForEach(c => { c.RCOV_STATUS = "A"; }); return JSON.stringify(covers); } }); $(`#${rowId}`, "#gridCARInterest").css({ color: "black" }); grid.jqGrid("setCell", rowId, "CAR_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } }); }); /*----------------------------------- * exporting of the grid to excel CAR Interest *----------------------------------*/ $("#export-car-btn").click(function () { /* * function to export grid data into excel */ u.excel_export($scope.carRiskGrid, ["ID"], "CAR_List_Excel"); }); $("#btn_CAR_OnClose").click(function () { var rowId = u.getSelRow($scope.locationGrid); if (u.grid_empty($scope.carRiskGrid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { $("#CARInterestModal").modal("hide"); u.hide_confirm(); }); } else { //u.setCell($scope.locationGrid, rowId, "INS_UDW_CAR_RISK", u.get_grid_data($scope.carRiskGrid).ToJson()); //var selectedLocationId = u.getSelRow($scope.locationGrid); //if (!selectedLocationId) { // selectedLocationId = u.getGlobal("selectedLocationId"); //} //var selectedLocation = u.getRow(selectedLocationId, $scope.locationGrid); var locations = u.get_grid_data($scope.locationGrid); var risks = u.get_grid_data($scope.carRiskGrid); locations.ForEach(loc => { loc.ENG_VALUE_ADDED_TAX_PERC = parseFloat($("#POLH_VAT_PERC").val() || 0) || 0; loc.ENG_VALUE_ADDED_TAX_YN = $("#POLH_VAT_YN").val() || "N"; if (parseInt(loc.ENG_SYS_ID) === parseInt($("#ENG_SYS_ID").val())) { if (!risks.Any()) { loc.INS_UDW_CAR_RISK = []; } else { loc.INS_UDW_CAR_RISK = []; risks.ForEach(r => { if (parseInt(r.CAR_ENG_SYS_ID) === parseInt(loc.ENG_SYS_ID)) { loc.INS_UDW_CAR_RISK = u.parseJson(loc.INS_UDW_CAR_RISK); loc.INS_UDW_CAR_RISK = loc.INS_UDW_CAR_RISK .Where(x => parseInt(x.CAR_SYS_ID) !== parseInt(r.CAR_SYS_ID)); loc.INS_UDW_CAR_RISK.push(r); } }); } } }); u.clear_grid_data($scope.locationGrid); u.grid_populate($scope.locationGrid, "", locations); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); $("#CARInterestModal").modal("hide"); } u.form_reset("#carinterestForm"); u.clear_grid_data($scope.carRiskGrid); }); $("#btnTplModalClose").click(function () { var rowId = u.getSelRow(u.getGlobal("udwEngTplRiskGrid")); // if (u.grid_empty($scope.tplGrid)) { if (u.grid_empty(u.getGlobal("udwCoverGrid"))) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { //$("#CARTPLModal").modal("hide"); $("#RiskCoverModal").modal("hide"); u.hide_confirm(); }); } else { u.setCell(u.getGlobal("udwEngTplRiskGrid"), rowId, "INS_UWD_RISK_COVERS", JSON.stringify(u.get_grid_data($scope.tplGrid))); //$scope.locationSummarizer(); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); // $("#CARTPLModal").modal("hide"); $("#RiskCoverModal").modal("hide"); // u.clear_grid_data($scope.tplGrid); u.clear_grid_data(u.getGlobal("udwCoverGrid")); u.setGlobal("coverTarget", ""); } }); $scope.CloseTplCovers = function () { var rowId = u.getSelRow(u.getGlobal("udwEngTplRiskGrid")); u.setCell(u.getGlobal("udwEngTplRiskGrid"), rowId, "INS_UWD_RISK_COVERS", JSON.stringify(u.get_grid_data($scope.cover_grid))); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); //$("#RiskCoverModal").modal("hide"); //u.clear_grid_data(u.getGlobal("udwCoverGrid")); }; $scope.CloseLopCovers = function () { var rowId = u.getSelRow(u.getGlobal("udwEngLopRiskGrid")); u.setCell(u.getGlobal("udwEngLopRiskGrid"), rowId, "INS_UWD_RISK_COVERS", JSON.stringify(u.get_grid_data($scope.cover_grid))); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); //$("#RiskCoverModal").modal("hide"); //u.clear_grid_data(u.getGlobal("udwCoverGrid")); }; $("#btnLopModalClose").click(function () { var rowId = u.getSelRow(u.getGlobal("udwEngLopRiskGrid")); // if (u.grid_empty($scope.lopGrid)) { if (u.grid_empty(u.getGlobal("udwCoverGrid"))) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { // $("#CARTPLModal").modal("hide"); $("#RiskCoverModal").modal("hide"); u.hide_confirm(); }); } else { u.setCell(u.getGlobal("udwEngLopRiskGrid"), rowId, "INS_UWD_RISK_COVERS", JSON.stringify(u.get_grid_data($scope.lopGrid))); //$scope.locationSummarizer(); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); $("#RiskCoverModal").modal("hide"); u.clear_grid_data(u.getGlobal("udwCoverGrid")); u.setGlobal("coverTarget", ""); } }); $scope.locationSummarizer = function () { const rowId = u.getSelRow($scope.locationGrid); if (rowId) { var totalSiFc = 0, totalSiBc = 0, totalRiSiBc = 0, totalRiSiFc = 0; var totalPremFc = 0, totalPremBc = 0, totalRiPremBc = 0, totalRiPremFc = 0, totalRiskPremBc = 0, totalRiskPremFc = 0; var totalDiscFc = 0, totalDiscBc = 0, totalLoadFc = 0, totalLoadBc = 0; //TPL covers summarization const tplCoverList = u.parseJson(u.getCell($scope.locationGrid, rowId, "INS_UDW_TPL_COVERS") || "[]"); tplCoverList.ForEach(r => { totalPremBc += parseFloat(r.UAC_CVR_NET_PREM_FC || 0); totalPremFc += parseFloat(r.UAC_CVR_NET_PREM_BC || 0); totalRiPremBc += parseFloat(r.UAC_CVR_NET_PREM_FC || 0); totalRiPremFc += parseFloat(r.UAC_CVR_NET_PREM_BC || 0); totalRiskPremBc += parseFloat(r.UAC_CVR_NET_PREM_FC || 0); totalRiskPremFc += parseFloat(r.UAC_CVR_NET_PREM_BC || 0); totalDiscBc += parseFloat(r.UAC_CVR_DISC_FC || 0); totalDiscFc += parseFloat(r.UAC_CVR_DISC_BC || 0); totalLoadBc += parseFloat(r.UAC_CVR_LOAD_FC || 0); totalLoadFc += parseFloat(r.UAC_CVR_LOAD_BC || 0); }); //LOP covers summarization const lopCoverList = u.parseJson(u.getCell($scope.locationGrid, rowId, "INS_UDW_POL_COVERS") || "[]"); lopCoverList.ForEach(r => { totalPremBc += parseFloat(r.UAC_CVR_NET_PREM_FC || 0); totalPremFc += parseFloat(r.UAC_CVR_NET_PREM_BC || 0); totalRiPremBc += parseFloat(r.UAC_CVR_NET_PREM_FC || 0); totalRiPremFc += parseFloat(r.UAC_CVR_NET_PREM_BC || 0); totalRiskPremBc += parseFloat(r.UAC_CVR_NET_PREM_FC || 0); totalRiskPremFc += parseFloat(r.UAC_CVR_NET_PREM_BC || 0); totalDiscBc += parseFloat(r.UAC_CVR_DISC_FC || 0); totalDiscFc += parseFloat(r.UAC_CVR_DISC_BC || 0); totalLoadBc += parseFloat(r.UAC_CVR_LOAD_FC || 0); totalLoadFc += parseFloat(r.UAC_CVR_LOAD_BC || 0); }); //CPM risk summarization var cpmRiskList = u.parseJson(u.getCell($scope.locationGrid, rowId, "INS_UDW_CPM_RISK") || "[]"); cpmRiskList.ForEach(r => { totalSiBc += parseFloat(r.CPM_SI_BC || 0); totalSiFc += parseFloat(r.CPM_SI_FC || 0); totalRiSiBc += parseFloat(r.CPM_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.CPM_RI_SI_FC || 0); totalPremBc += parseFloat(r.CPM_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.CPM_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.CPM_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.CPM_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.CPM_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.CPM_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.CPM_DISC_BC || 0); totalDiscFc += parseFloat(r.CPM_DISC_FC || 0); totalLoadBc += parseFloat(r.CPM_LOAD_BC || 0); totalLoadFc += parseFloat(r.CPM_LOAD_FC || 0); }); //CAR RISK SUMMARIZATION const car = u.parseJson(u.getCell($scope.locationGrid, rowId, "INS_UDW_CAR_RISK") || "[]"); car.ForEach(r => { totalSiBc += parseFloat(r.CAR_SI_BC || 0); totalSiFc += parseFloat(r.CAR_SI_FC || 0); totalRiSiBc += parseFloat(r.CAR_RI_SI_BC || 0); totalRiSiFc += parseFloat(r.CAR_RI_SI_FC || 0); totalPremBc += parseFloat(r.CAR_TOT_PREM_BC || 0); totalPremFc += parseFloat(r.CAR_TOT_PREM_FC || 0); totalRiPremBc += parseFloat(r.CAR_RI_PREM_BC || 0); totalRiPremFc += parseFloat(r.CAR_RI_PREM_FC || 0); totalRiskPremBc += parseFloat(r.CAR_RISK_PREM_BC || 0); totalRiskPremFc += parseFloat(r.CAR_RISK_PREM_FC || 0); totalDiscBc += parseFloat(r.CAR_DISC_BC || 0); totalDiscFc += parseFloat(r.CAR_DISC_FC || 0); totalLoadBc += parseFloat(r.CAR_LOAD_BC || 0); totalLoadFc += parseFloat(r.CAR_LOAD_FC || 0); }); u.setCell($scope.locationGrid, rowId, "ENG_SI_BC", totalSiBc); u.setCell($scope.locationGrid, rowId, "ENG_SI_FC", totalSiFc); u.setCell($scope.locationGrid, rowId, "ENG_TOT_PREM_FC", totalPremFc); u.setCell($scope.locationGrid, rowId, "ENG_TOT_PREM_BC", totalPremBc); u.setCell($scope.locationGrid, rowId, "ENG_RI_SI_FC", totalRiSiFc); u.setCell($scope.locationGrid, rowId, "ENG_RI_SI_BC", totalRiSiBc); u.setCell($scope.locationGrid, rowId, "ENG_RI_PREM_FC", totalRiPremFc); u.setCell($scope.locationGrid, rowId, "ENG_RI_PREM_BC", totalRiPremBc); u.setCell($scope.locationGrid, rowId, "ENG_RISK_PREM_FC", totalRiskPremFc); u.setCell($scope.locationGrid, rowId, "ENG_RISK_PREM_BC", totalRiskPremBc); u.setCell($scope.locationGrid, rowId, "ENG_DISC_FC", totalDiscFc); u.setCell($scope.locationGrid, rowId, "ENG_DISC_BC", totalDiscBc); u.setCell($scope.locationGrid, rowId, "ENG_LOAD_FC", totalLoadFc); u.setCell($scope.locationGrid, rowId, "ENG_LOAD_BC", totalLoadBc); /*u.setCell($scope.locationGrid, rowId, "",); u.setCell($scope.locationGrid, rowId, "",); u.setCell($scope.locationGrid, rowId, "",); u.setCell($scope.locationGrid, rowId, "",);*/ } else { u.growl_info("Please select a location record"); } }; /*-------------------------------------------------- * Adding CPM Interest Risk Details *------------------------------------------------*/ // $("#btn_add_cpm").on("click", function () { if (u.form_validation("#carcpmForm")) { var cpmRisks = u.get_grid_data($scope.cpmRiskGrid); if (cpmRisks.Any(r => r.CPM_SERL_NO === $("#CPM_SERL_NO").val())) return u.growl_info("Duplicate serial number"); u.modalConfirmationAsync("Are you sure you want to add the Contractor Plant Machinery Details?", async function () { var rowIds = $scope.cpmRiskGrid.jqGrid("getDataIDs"); /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ // var code = []; /*------------------------------------------------------------ * iterate through the rows and check duplicate each of them *----------------------------------------------------------*/ // var cellValue = ""; for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; /*------------------------------------------------ * get value of the cell or column in an array *----------------------------------------------*/ // cellValue = $scope.cpmRiskGrid.jqGrid("getCell", currRow, "CPM_RISK_TYPE"); code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray($("#CPM_RISK_TYPE").val(), code) < 0) { var location = u.getRow(u.getSelRow($scope.locationGrid), $scope.locationGrid); var formData = u.parse_form("#carcpmForm"); formData.CPM_STATUS = "U"; formData.CPM_CRTE_BY = u.getUserCode(); formData.CPM_CRTE_DATE = u.get_date(); formData.CPM_ENG_SYS_ID = location.ENG_SYS_ID; formData.CPM_SYS_ID = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); formData.INS_UWD_RISK_COVERS = await u.getGlobal("EngGetAddOnDefaultCovers")(`${$("#POLH_SUB_CLASS_CODE").val()}_CPM`); formData.INS_UWD_RISK_COVERS = JSON.stringify(formData.INS_UWD_RISK_COVERS); $scope.cpmRiskGrid.addRowData(undefined, formData); u.form_reset("#carcpmForm"); u.hide_confirm(); u.growl_success("Contractor Plant Machinery successfully added to grid"); } else { u.hide_confirm(); u.growl_warning(`Contractor Plant Machinery with code ${cellValue} Already exists`); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------- * Edit/Update Function CPM Interest *------------------------------*/ // $("#btn_update_cpm").on("click", function () { if (u.grid_empty($scope.cpmRiskGrid)) return u.growl_info("Contractor Plant Machinery grid is empty"); if (u.form_validation("#carcpmForm")) { var cpmRisks = u.get_grid_data($scope.cpmRiskGrid); if (cpmRisks.Any(r => r.CPM_SERL_NO === $("#CPM_SERL_NO").val())) return u.growl_info("Duplicate serial number"); u.modal_confirmation("Are you sure you want to update the selected Contractor Plant Machinery?", function () { var grid = $scope.cpmRiskGrid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = parseInt(grid.jqGrid("getCell", rowId, "CPM_SYS_ID")); if (code === parseInt($("#CPM_SYS_ID").val())) { var data = u.parse_form("#carcpmForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Contractor Plant Machinery Details updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from CPM Interest *---------------------------------------------------*/ // $("#btn_remove_cpm").on("click", function () { if (u.grid_empty($scope.cpmRiskGrid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.cpmRiskGrid; var rowId = u.getSelRow(grid); if (!rowId) return u.growl_info("Select a risk to remove"); var recordStatus = grid.jqGrid("getCell", rowId, "CPM_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"); u.form_reset("#carcpmForm"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus === "A") { u.setGridColumn(grid, { "INS_UWD_RISK_COVERS": function (val) { var covers = u.parseJson(val); covers.ForEach(c => { c.RCOV_STATUS = "D"; }); return JSON.stringify(covers); } }); grid.jqGrid("setCell", rowId, "CPM_STATUS", "D"); $(`#${rowId}`, "#gridCARCPMInterest").css({ color: "red" }); u.form_reset("#carcpmForm"); 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") { u.setGridColumn(grid, { "INS_UWD_RISK_COVERS": function (val) { var covers = u.parseJson(val); covers.ForEach(c => { c.RCOV_STATUS = "A"; }); return JSON.stringify(covers); } }); $(`#${rowId}`, "#gridCARCPMInterest").css({ color: "black" }); grid.jqGrid("setCell", rowId, "CPM_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); u.form_reset("#carcpmForm"); } }); }); /*----------------------------------- * exporting of the grid to excel CPM Interest *----------------------------------*/ $("#export-cpm-btn").click(function () { /* * function to export grid data into excel */ u.excel_export($scope.cpmRiskGrid, ["ID"], "CPM_List_Excel"); }); $("#btn_CPM_OnClose").click(function () { var rowId = u.getSelRow($scope.carRiskGrid); if (u.grid_empty($scope.cpmRiskGrid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { u.setCell($scope.carRiskGrid, rowId, "INS_UDW_CPM_RISK", u.get_grid_data($scope.cpmRiskGrid).ToJson()); $("#CARCPMModal").modal("hide"); u.hide_confirm(); }); } else { //u.setCell($scope.locationGrid, rowId, "INS_UDW_CPM_RISK",u.get_grid_data($scope.cpmRiskGrid).ToJson()); u.setCell($scope.carRiskGrid, rowId, "INS_UDW_CPM_RISK", u.get_grid_data($scope.cpmRiskGrid).ToJson()); //$scope.locationSummarizer(); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); $("#CARCPMModal").modal("hide"); u.clear_grid_data($scope.cpmRiskGrid); } u.form_reset("#carcpmForm"); }); /*-------------------------------------------------- * Adding CON Interest Risk Details *------------------------------------------------*/ // $("#btn_open_car_con").click(function () { if (u.grid_empty($scope.carRiskGrid)) return u.growl_info("The grid is empty"); var grid = $scope.carRiskGrid; var selId = grid.jqGrid("getGridParam", "selrow"); var riskId = grid.jqGrid("getCell", selId, "CAR_SYS_ID"); if (!riskId) return u.growl_warning("No risk has been selected, please select a risk to continue"); if (riskId == $("#CAR_SYS_ID").val()) { $("#CONVAL_CARINT_SYS_ID").val($("#CAR_SYS_ID").val()); $("#CARCONModal").modal(); //Hide covers not related to selected risk //$scope.hideShowCovers(); } else { u.growl_warning("No Risk selected, Please check and try again"); }; }); // $("#btn_add_con").on("click", async function () { if (u.form_validation("#carconForm")) { if ($("#CONVAL_NAME").val() === "") return u.modalAlert("Please Enter Contractor Details"); //$("#CONVAL_SYS_ID").val(""); //if ($("#CONVAL_SYS_ID").val() == "") { // RetnSequenceNo("INS_UDW_CARCON_SEQ", getVehSeqNo); // function getVehSeqNo(data) { // $("#CONVAL_SYS_ID").val(data); // } //} u.modalConfirmationAsync("Are you sure you want to add the Contractor Details?", async function () { var seq = await s.getSequenceAsync("INS_UDW_CARCON_SEQ"); if (!u.get_grid_data($scope.carcon_grid).Any(v => v.CONVAL_SYS_ID === seq)) { $("#CONVAL_SYS_ID").val(seq); var rowIds = $scope.carcon_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.carcon_grid.jqGrid("getCell", currRow, "CONVAL_NAME"); code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray($("#CONVAL_NAME").val(), code) < 0) { var formData = u.parse_form("#carconForm"); formData.CON_STATUS = "U"; formData.CON_CRTE_BY = u.getUserCode(); formData.CON_CRTE_DATE = u.get_date(); $scope.carcon_grid.addRowData(formData.CONVAL_NAME, formData); u.hide_confirm(); u.growl_success("Contractor Details successfully added to grid"); u.form_reset("#carconForm"); } else { u.hide_confirm(); u.growl_warning(`Contractor Details with code ${cellValue} Already exists`); } } else { u.growl_warning("Duplicate contractor id"); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------- * Edit/Update Function CPM Interest *------------------------------*/ // $("#btn_update_con").on("click", function () { if (u.grid_empty($scope.carcon_grid)) return u.growl_info("Contractor Details grid is empty"); if (u.form_validation("#carconForm")) { u.modal_confirmation("Are you sure you want to update the selected Contractor Details?", function () { var grid = $scope.carcon_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = grid.jqGrid("getCell", rowId, "CONVAL_SYS_ID"); if (code === $("#CONVAL_SYS_ID").val()) { var data = u.parse_form("#carconForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Contractor Details Details updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from CPM Interest *---------------------------------------------------*/ // $("#btn_remove_con").on("click", function () { if (u.grid_empty($scope.carcon_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.carcon_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "CON_STATUS"); var riskNo = grid.jqGrid("getCell", rowId, "CONVAL_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_SYS_ID"); if (getCovRiskId == riskNo) { covGrid.jqGrid("delRowData", covCurrRow); } } grid.jqGrid("delRowData", rowId); u.hide_confirm(); u.growl_success("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_SYS_ID"); if (getCovRiskId == riskNo) { covGrid.jqGrid("setCell", covCurrRow, "RCOV_STATUS", "D"); $(`#${covCurrRow}`, "#gridAppCovers").css({ color: "red" }); } } grid.jqGrid("setCell", rowId, "CPM_STATUS", "D"); $(`#${rowId}`, "#gridCARCONInterest").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") { 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_SYS_ID"); if (getCovRiskId == riskNo) { covGrid.jqGrid("setCell", covCurrRow, "RCOV_STATUS", "A"); $(`#${covCurrRow}`, "#gridAppCovers").css({ color: "black" }); } } $(`#${rowId}`, "#gridCARCONInterest").css({ color: "black" }); grid.jqGrid("setCell", rowId, "CPM_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } }); }); $scope.policyCommissionSummarizer = u.getGlobal("policyCommissionSummarizer"); $scope.financialDiff = function (newPolicy, oldPolicy) { $scope.endorsementData = u.get_grid_data($scope.endorsementGrid).FirstOrDefault(e => e.END_TXN_STATE === "O") || $scope.endorsementData; if (!$scope.endorsementData) { return u.modalInfo("Could not find endorsement information, please make sure the policy is in the endorsed state"); } var ed = $scope.endorsementData, n = 0, o = 0; if (!ed) { return false; } //we need to obtain the history information of the current policy $scope.oldPolicy = u.getGlobal("oldPolicy") || $scope.oldPolicy || oldPolicy; /*console.log("---------------------------------old Policy-----------------------------------------"); console.log(oldPolicy); console.log("---------------------------------new Policy-----------------------------------------"); console.log(newPolicy);*/ //obtain premium differences //ed.END_PREM_DIFF_FC = ed.END_FLAG == "FC" // ? -parseFloat($scope.oldPolicy["POLH_POL_PREM_FC"] || 0) // : parseFloat(newPolicy["POLH_POL_PREM_FC"] || 0) // - parseFloat($scope.oldPolicy["POLH_POL_PREM_FC"] || 0) // + parseFloat(ed.END_FEE_FC || 0); //ed.END_PREM_DIFF_BC = ed.END_FLAG == "FC" // ? -parseFloat($scope.oldPolicy["POLH_POL_PREM_BC"] || 0) // : parseFloat(newPolicy["POLH_POL_PREM_BC"] || 0) // - parseFloat($scope.oldPolicy["POLH_POL_PREM_BC"] || 0) // + parseFloat(ed.END_FEE || 0); //ed.END_PREM_DIFF_FC = (parseFloat(ed.END_PREM_DIFF_FC * proRataValue)).toFixed(2); //ed.END_PREM_DIFF_BC = (parseFloat(ed.END_PREM_DIFF_BC * proRataValue)).toFixed(2); ////obtain commission differences //ed.END_COMMSSN_DIFF_FC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_POL_COMM_FC"] || 0) : parseFloat(newPolicy["POLH_POL_COMM_FC"] || 0) - parseFloat($scope.oldPolicy["POLH_POL_COMM_FC"] || 0); //ed.END_COMMSSN_DIFF_BC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_POL_COMM_BC"] || 0) : parseFloat(newPolicy["POLH_POL_COMM_BC"] || 0) - parseFloat($scope.oldPolicy["POLH_POL_COMM_BC"] || 0); //ed.END_COMMSSN_DIFF_FC = (parseFloat(ed.END_COMMSSN_DIFF_FC * proRataValue)).toFixed(2); //ed.END_COMMSSN_DIFF_BC = (parseFloat(ed.END_COMMSSN_DIFF_BC * proRataValue)).toFixed(2); ////obtain fee differences //ed.END_FEE_DIFF_FC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_FEE_FC"] || 0) : parseFloat(newPolicy["POLH_FEE_FC"] || 0) - parseFloat($scope.oldPolicy["POLH_FEE_FC"] || 0); //ed.END_FEE_DIFF_BC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_FEE_BC"] || 0) : parseFloat(newPolicy["POLH_FEE_BC"] || 0) - parseFloat($scope.oldPolicy["POLH_FEE_BC"] || 0); //ed.END_FEE_DIFF_FC = (parseFloat(ed.END_FEE_DIFF_FC * proRataValue)).toFixed(2); //ed.END_FEE_DIFF_BC = (parseFloat(ed.END_FEE_DIFF_BC * proRataValue)).toFixed(2); ////obtain discount differences //ed.END_DISC_DIFF_FC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_POL_DISC_FC"] || 0) : parseFloat(newPolicy["POLH_POL_DISC_FC"] || 0) - parseFloat($scope.oldPolicy["POLH_POL_DISC_FC"] || 0); //ed.END_DISC_DIFF_BC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_POL_DISC_BC"] || 0) : parseFloat(newPolicy["POLH_POL_DISC_BC"] || 0) - parseFloat($scope.oldPolicy["POLH_POL_DISC_BC"] || 0); ////obtain loading differences //ed.END_LOAD_DIFF_FC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_POL_LOAD_FC"] || 0) : parseFloat(newPolicy["POLH_POL_LOAD_FC"]) - parseFloat($scope.oldPolicy["POLH_POL_LOAD_FC"] || 0); //ed.END_LOAD_DIFF_BC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_POL_LOAD_BC"] || 0) : parseFloat(newPolicy["POLH_POL_LOAD_BC"]) - parseFloat($scope.oldPolicy["POLH_POL_LOAD_BC"] || 0); ////obtain sum insured differences //ed.END_SI_DIFF_FC = // parseFloat(newPolicy["POLH_POL_SI_FC"] || 0) - parseFloat($scope.oldPolicy["POLH_POL_SI_FC"] || 0); //ed.END_SI_DIFF_BC = // parseFloat(newPolicy["POLH_POL_SI_BC"] || 0) - parseFloat($scope.oldPolicy["POLH_POL_SI_BC"] || 0); ////obtain coins differences //ed.END_COINS_DIFF_FC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_COINS_PREM_FC"] || 0) : parseFloat(newPolicy["POLH_COINS_PREM_FC"] || 0) - parseFloat($scope.oldPolicy["POLH_COINS_PREM_FC"] || 0); //ed.END_COINS_DIFF_BC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_COINS_PREM_BC"] || 0) : parseFloat(newPolicy["POLH_COINS_PREM_BC"] || 0) - parseFloat($scope.oldPolicy["POLH_COINS_PREM_BC"] || 0); //// coins commission difference //ed.END_COINS_COMM_DIFF_FC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_COINS_COM_FC"] || 0) : parseFloat(newPolicy["POLH_COINS_COM_FC"] || 0) - parseFloat($scope.oldPolicy["POLH_COINS_COM_FC"] || 0); //ed.END_COINS_COMM_DIFF_BC = ed.END_FLAG == "FC" // ? - parseFloat($scope.oldPolicy["POLH_COINS_COM_BC"] || 0) : parseFloat(newPolicy["POLH_COINS_COM_BC"] || 0) - parseFloat($scope.oldPolicy["POLH_COINS_COM_BC"] || 0); ed = u.getGlobal("endorsementDifferencesCalculation")(newPolicy, $scope.oldPolicy, $scope.endorsementData); /*------------------------------- * CO-INSURANCE LEADER ENDORSEMENT *------------------------------*/ u.getGlobal("CoInsuranceLeaderEndorsment")(newPolicy, $scope.oldPolicy, ed); /*------------------------------- * TREATY SHARE ENDORSEMENT *------------------------------*/ newPolicy.INS_RI_TTY_HEAD = newPolicy.INS_RI_TTY_HEAD.Where(c => c.TTH_ADJ_YN !== "Y").ToList() || []; $scope.oldPolicy.INS_RI_TTY_HEAD = $scope.oldPolicy.INS_RI_TTY_HEAD.Where(c => c.TTH_ADJ_YN !== "Y").ToList() || []; u.getGlobal("TreatyShareEndorsement")(newPolicy, $scope.oldPolicy, ed); console.log(ed); //update endorsement grid u.setGridColumn($scope.endorsementGrid, { "END_PREM_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_PREM_DIFF_FC || 0; }, "END_PREM_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_PREM_DIFF_BC || 0; }, "END_COMMSSN_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COMMSSN_DIFF_FC || 0; }, "END_COMMSSN_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COMMSSN_DIFF_BC || 0; }, "END_FEE_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_FEE_DIFF_FC || 0; }, "END_FEE_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_FEE_DIFF_BC || 0; }, "END_DISC_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_DISC_DIFF_FC || 0; }, "END_DISC_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_DISC_DIFF_BC || 0; }, "END_LOAD_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_LOAD_DIFF_FC || 0; }, "END_LOAD_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_LOAD_DIFF_BC || 0; }, "END_SI_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_SI_DIFF_FC || 0; }, "END_SI_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_SI_DIFF_BC || 0; }, "END_COINS_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_DIFF_FC || 0; }, "END_COINS_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_DIFF_BC || 0; }, "END_COINS_COMM_DIFF_FC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_COMM_DIFF_FC || 0; }, "END_COINS_COMM_DIFF_BC": function (amnt, row) { if (row["END_TXN_STATE"] === "O") return ed.END_COINS_COMM_DIFF_BC || 0; }, "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 || []; } }); //show endorsement premium $("#endPremSummary").show(); var endNetTCustomerFc = (parseFloat(ed.END_PREM_DIFF_FC)).toFixed(2); $("#endNetCustomerFc").text(`${$("#POLH_CURRENCY").val()} ${endNetTCustomerFc}`); //hide net to customer premium $("#netCustomerFc").parents("h3").hide(0); //obtain financial differences for each risk var newPolicyLocations = newPolicy["INS_UDW_ENGINEER_LOC"]; var oldPolicyLocations = $scope.oldPolicy["INS_UDW_ENGINEER_LOC"]; ed["UDW_RISK_ENDSMNT_DTLS"] = []; //check if there are more new risks or more old risks var moreOldRisks = oldPolicyLocations.length > newPolicyLocations.length; var moreNewRisks = newPolicyLocations.length > oldPolicyLocations.length; //todo: use one loop for all if (moreNewRisks) { for (n; n < newPolicyLocations.length; n++) { for (o; o < oldPolicyLocations.length; o++) { if (newPolicyLocations[n]["ENG_SYS_ID"] == oldPolicyLocations[o]["ENG_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_ENG_SYS_ID: newPolicyLocations[n]["ENG_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_SI_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_SI_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_LOAD_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_LOAD_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_DISC_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_DISC_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); break; } if (o === (oldPolicyLocations.length - 1)) { //we have reached the last risk and there is no match ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_ENG_SYS_ID: newPolicyLocations[n]["ENG_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); } } } } else if (moreOldRisks) { for (o; o < newPolicyLocations.length; o++) { for (n; n < oldPolicyLocations.length; n++) { if (newPolicy[n]["ENG_SYS_ID"] == oldPolicyLocations[o]["ENG_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_ENG_SYS_ID: newPolicyLocations[n]["ENG_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_SI_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_SI_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_LOAD_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_LOAD_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_DISC_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_DISC_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); break; } if (n === (newPolicyLocations.length - 1)) { //we have reached the last risk and there is no match ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_ENG_SYS_ID: oldPolicyLocations[o]["ENG_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(oldPolicyLocations[o]["ENG_SI_FC"]), RED_SI_DIFF_BC: parseFloat(oldPolicyLocations[o]["ENG_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(oldPolicyLocations[o]["ENG_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(oldPolicyLocations[o]["ENG_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(oldPolicyLocations[o]["ENG_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(oldPolicyLocations[o]["ENG_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); } } } } else { for (n; n < newPolicyLocations.length; n++) { for (o; o < oldPolicyLocations.length; o++) { if (newPolicyLocations[n]["ENG_SYS_ID"] == oldPolicyLocations[o]["ENG_SYS_ID"]) { ed["UDW_RISK_ENDSMNT_DTLS"].push({ RED_ENG_SYS_ID: newPolicyLocations[n]["ENG_SYS_ID"], RED_POL_SYS_ID: newPolicy["POLH_SYS_ID"], RED_END_NO: newPolicy["POLH_END_NO"], RED_SI_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_SI_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_SI_FC"]), RED_SI_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_SI_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_SI_BC"]), RED_PREM_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_FC"]), RED_PREM_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_TOT_PREM_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_TOT_PREM_BC"]), RED_FEE_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_FC"]), RED_FEE_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_COMP_FEE_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_COMP_FEE_BC"]), RED_LOAD_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_LOAD_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_LOAD_FC"]), RED_LOAD_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_LOAD_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_LOAD_BC"]), RED_DISC_DIFF_FC: parseFloat(newPolicyLocations[n]["ENG_DISC_FC"]) - parseFloat(oldPolicyLocations[o]["ENG_DISC_FC"]), RED_DISC_DIFF_BC: parseFloat(newPolicyLocations[n]["ENG_DISC_BC"]) - parseFloat(oldPolicyLocations[o]["ENG_DISC_BC"]), RED_CRTE_BY: u.getUserCode(), RED_STATUS: "U" }); break; } } } } /* * CO-INSURANCE STUFF */ u.getGlobal("facInEndorsementUpdate")(); u.setGlobal("policyChanges", true); return ed; }; $scope.getPolicyFormData = function () { var polhData = u.parse_form("#polheaderForm"); polhData.INS_UDW_ENGINEER_LOC = u.get_grid_data($scope.locationGrid, true); polhData.INS_COINS_LEADER = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")); polhData.INS_UDW_ENGINEER_LOC.ForEach(l => { l.INS_UDW_CAR_RISK = typeof l.INS_UDW_CAR_RISK === "string" ? u.parseJson(l.INS_UDW_CAR_RISK || "[]") : l.INS_UDW_CAR_RISK || []; l.INS_UDW_CAR_RISK.ForEach(r => { r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string" ? u.parseJson(r.INS_UWD_RISK_COVERS) : r.INS_UWD_RISK_COVERS; r.INS_UWD_RISK_COVERS.ForEach(c => { c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : []; }); }); //EAR l.INS_UDW_EAR_RISK = l.INS_UDW_EAR_RISK || []; l.INS_UDW_EAR_RISK.ForEach(r => { r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string" ? JSON.parse(r.INS_UWD_RISK_COVERS) : r.INS_UWD_RISK_COVERS; r.INS_UWD_RISK_COVERS.ForEach(c => { c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : []; }); }); //OTHER l.INS_UDW_ENG_OTHER = l.INS_UDW_ENG_OTHER || []; l.INS_UDW_ENG_OTHER.ForEach(r => { r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string" ? u.parseJson(r.INS_UWD_RISK_COVERS) : r.INS_UWD_RISK_COVERS; r.INS_UWD_RISK_COVERS.ForEach(c => { c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : []; }); }); l.INS_UDW_CPM_RISK = typeof l.INS_UDW_CPM_RISK === "string" ? u.parseJson(l.INS_UDW_CPM_RISK || "[]") : l.INS_UDW_CPM_RISK || []; l.INS_UDW_CPM_RISK.ForEach(r => { r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string" ? u.parseJson(r.INS_UWD_RISK_COVERS) : r.INS_UWD_RISK_COVERS; r.INS_UWD_RISK_COVERS.ForEach(c => { c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(c.INS_UDW_COVER_DISCLOAD) : []; }); }); l.INS_UDW_TPL_COVERS = l.INS_UDW_TPL_COVERS || []; l.INS_UDW_TPL_COVERS.ForEach(r => { r.INS_UDW_COVER_DISCLOAD = typeof r.INS_UDW_COVER_DISCLOAD === "string" ? u.parseJson(r.INS_UDW_COVER_DISCLOAD) : r.INS_UDW_COVER_DISCLOAD; }); l.INS_UDW_CPM_RISK = typeof l.INS_UDW_CPM_RISK === "string" ? u.parseJson(l.INS_UDW_CPM_RISK || "[]") : l.INS_UDW_CPM_RISK || []; l.INS_UDW_CPM_RISK.ForEach(r => { r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string" ? u.parseJson(r.INS_UWD_RISK_COVERS || "[]") : r.INS_UWD_RISK_COVERS; }); }); //obtain policy endorsement grid data polhData["MS_UDW_ENDORSEMENTS"] = u.get_grid_data($scope.endorsementGrid); polhData.INS_UDW_POLICY_DISCLOAD = u.get_grid_data($scope.polhdiscloading_grid); //var insUwdRiskDiscountLoading = u.get_grid_data($scope.riskdiscloading_grid); //retrieve treaty information var treaties = u.get_grid_data($scope.reinsurance_grid, true); polhData["INS_RI_TTY_HEAD"] = treaties; 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"] = u.parseJson(polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"]); } polhData.INS_UWD_INTERMEDIARY_COMM = u.get_grid_data($scope.intermCom_grid); polhData.INS_UDW_POL_FEES = u.get_grid_data($scope.polpolicyFeesGrid); polhData.INS_RI_FAC_OUTWARD = u.get_grid_data($scope.grdCoinsLeader_grid); return polhData; }; /*----------------------------- * Save/Update Data *---------------------------*/ // $("#btn_Save").on("click", async function () { //-------------------------------------------------------------------// if (u.grid_empty($scope.locationGrid)) { return u.growl_warning("Engineering location grid is empty, please add least one location to save"); } $scope.PolicyCalculations(); //-------------------------------------------------------------------// //REFRESH ALL POLICY CALCULATIONS BEFORE RETRIEVING DATA //var polhData = $scope.getPolicyFormData(); var polhData = u.getGlobal("EngGetPolicyData")(); if (!polhData.INS_UDW_ENGINEER_LOC.Any(l => l.INS_UDW_CAR_RISK.Any())) return u.growl_info("No risk details have been added to the locations. Add at least one risk and update its covers as well before saving."); //let endData; //if (polhData["POLH_TXN_STATE"] === "E") { // const oldPolicy = await s.getPolicyHistoryAsync(polhData["POLH_SYS_ID"], // (parseFloat($scope.endorsementData["END_NO"]) - 1), // (polhData["POLH_RENEW_SER_NO"])); // //if policy is in the endorsement stage find differences in the financials of policy // if (polhData["POLH_TXN_STATE"] === "E") { // endData = $scope.financialDiff(polhData, oldPolicy); // for (var d in polhData["MS_UDW_ENDORSEMENTS"]) { // if (polhData["MS_UDW_ENDORSEMENTS"][d]["END_TXN_STATE"] === "O") { // polhData["MS_UDW_ENDORSEMENTS"][d] = endData; // } // } // } //} polhData["MS_UDW_ENDORSEMENTS"] = u.get_grid_data($scope.endorsementGrid, true); // console.log(polhData); //alert("done!"); //return; u.getGlobal("savePolicy")(polhData, function (result) { u.getGlobal("EngPolicyFill")(result); }); }); //Policy Process Options Modal //$("#btnProcess").on("click", // function() { // var e = document.getElementById("SelPolicyProcess"); // var polProcess = e.options[e.selectedIndex].value; // var polTxnState = $("#POLH_TXN_STATE").val(); // if (polProcess === "") { // u.growl_warning("Nothing selected, Please select to Process"); // } // //Confirmation Modal // else if (polProcess === "Confirm") { // if (!u.field_empty("#POLH_SYS_ID")) { // if (polTxnState === "C") // return u.growl_warning("The Policy is already Confirmed, You cannot Confirm them again"); // if (polTxnState === "P") // return u.growl_warning("The Policy is Approved, You cannot Confirm again"); // if (polTxnState === "") // return u.growl_warning("The Policy is not saved, You cannot Confirm it"); // if (polTxnState === "E" || polTxnState === "S") { // $("#PolConfirmModal").modal(); // } // } else { // u.modalWarning("There is no Policy to process"); // } // } else if (polProcess === "UnConfirm") { // if (!u.field_empty("#POLH_SYS_ID")) { // u.modalWarning("Unconfirm hereeeeeeeeeeeeeeeeeeeee"); // } else { // u.modalWarning("There is no Policy to Process"); // } // } // //Endorsement Modal // else if (polProcess === "Endorse") { // if (!u.field_empty("#POLH_SYS_ID")) { // if (polTxnState === "P") { // $("#PolicyEndorsementModal").modal(); // $("#PolicyProcessingModal").modal("hide"); // var sysId = $("#POLH_SYS_ID").val(); // var endNo = $("#POL_END_NO").val(); // var premAmtFc = $("#POLH_POL_PREM_FC").val(); // var premAmtBc = $("#POLH_POL_PREM_BC").val(); // $("#APP_POLH_ID").val(sysId); // $("#APP_END_NO").val(endNo); // $("#APP_PREM_FC").val(premAmtFc); // $("#APP_PREM_BC").val(premAmtBc); // $("#APPROVE_DATE").val("01/01/2017"); // // // } else { // u.growl_warning( // "The Policy must be Approved, efore endorsement, Please check and try again"); // } // } else { // u.modalWarning("There is no Policy to Process"); // } // } else if (polProcess === "UnEndorse") { // if (!u.field_empty("#POLH_SYS_ID")) { // // btnEndDeletion EndmtDeletionModal // if (polTxnState === "E") { // $("#EndmtDeletionModal").modal(); // $("#PolicyProcessingModal").modal("hide"); // var SYS_ID = $("#POLH_SYS_ID").val(); // var end_No = $("#POL_END_NO").val(); // // // } else { // u.growl_warning( // "The Policy must be in endorsement state before Endorsement deletion, Please check and try again"); // } // } else { // u.modalWarning("There is no Policy to Process"); // } // } // //Approval Modal // else if (polProcess === "Approve") { // if (!u.field_empty("#POLH_SYS_ID")) { // if (polTxnState === "P") return u.growl_warning("The Policy is already Approved"); // if (polTxnState === "C") { // $("#PolicyApprovalModal").modal(); // var SYS_ID = $("#POLH_SYS_ID").val(); // var end_No = $("#POL_END_NO").val(); // var premAmtFC = $("#POLH_POL_PREM_FC").val(); // var premAmtBC = $("#POLH_POL_PREM_BC").val(); // $("#APP_POLH_ID").val(SYS_ID); // $("#APP_END_NO").val(end_No); // $("#APP_PREM_FC").val(premAmtFC); // $("#APP_PREM_BC").val(premAmtBC); // $("#APPROVE_DATE").val("01/01/2017"); // // // } else { // u.growl_warning( // "The Policy must be in a confirmed state before Approval, Please check and try again"); // } // } else { // u.modalWarning("There is no Policy to Process"); // } // } // }); /*------------------------------ * 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"); } }); $("#btnEndorse").on("click", function () { // Check for ProRated or Full Cancellation if (!u.grid_empty($scope.endorsementGrid)) { var endorsements = u.get_grid_data($scope.endorsementGrid); if (endorsements.Any(e => e.END_FLAG === "FC" || e.END_FLAG === "PC")) { return u.growl_warning("You cannot endorse this policy"); } } if (u.getGlobal("endPendingRiCheck")()) { return u.growl_warning("Cannot endorse policy, Reinsurance is pending."); } if (!u.form_validation("#endorsementForm")) return u.growl_info("Fields marked red are required"); if (u.fieldVal("#POLH_SUSPND_YN") === "Y") return u.growl_warning("The policy is suspended, you cannot pass an endorsement on it"); 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.modalConfirmationAsync("Are you sure you want to pass a endorsement on the Policy?", async function (e) { // Disable currency $("#currBtn").attr("disabled", "disabled"); $scope.isOpen = false; /*---------------------------------------------- * 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) { if (state === "O") { $scope.isOpen = true; } } }); //before we add an endorsement to the grid we will need to check if there is an endorsement in the grid that is an open state /*------------------------------------------------------ * add if there is no other that is in the opened state *-----------------------------------------------------*/ // var formData = u.parse_form("#endorsementForm"); formData.END_NO = u.fieldVal("#POLH_END_NO") + 1; //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; u.setGlobal("endorsementData", $scope.endorsementData); var endNo = $scope.endorsementData["END_NO"]; //diasable key policy action buttons $("#btn_add_location_details").attr("disabled", "disabled"); $("#btn_remove_location_details").attr("disabled", "disabled"); // $("#btn_update_cover").attr("disabled", "disabled"); // $("#btn_add_cover").attr("disabled", "disabled"); // $("#btn_remove_cover").attr("disabled", "disabled"); $("#btn_reset_cover").attr("disabled", "disabled"); $("#POLH_POL_START_DATE").attr("disabled", "disabled"); $("#POLH_POL_END_DATE").attr("disabled", "disabled"); // $("#btn_open_car").attr("disabled", "disabled"); $("#btn_remove_location_details").attr("disabled", "disabled"); $("#btn_edit_loc").attr("disabled", "disabled"); $("#btn_add_loc").attr("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"]); //if (newNumberOfDays < 365) { // newNumberOfDays += 1; //} else if (newNumberOfDays > 365) { // newNumberOfDays -= 1; //} //console.log(u.getGlobal("selectedEndorsement")); //perform policy financials difference calculations //var policy = $scope.getPolicyFormData(); var policy = u.getGlobal("EngGetPolicyData")(); var oldPolicy = $scope.oldPolicy = await u.getGlobal("fetchPolicyHistory")(policy["POLH_SYS_ID"], parseFloat(policy["POLH_END_NO"]), (parseFloat(policy["POLH_RENEW_SER_NO"]))); if (oldPolicy) { u.setGlobal("oldPolicy", oldPolicy); /*--------------------------------- * check endorsement propoerties *------------------------------*/ if (u.getGlobal("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 (u.getGlobal("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 (u.getGlobal("selectedEndorsement").END_ADD_RSK_YN === "Y" ) { //endorsement allows the user to add a new risk to the policy $("#btn_add_location_details").removeAttr("disabled"); } else if (u.getGlobal("selectedEndorsement").END_RMV_RSK_YN === "Y" ) { //endorsement allows the user to remove a risk from the policy $("#btn_remove_location_details").removeAttr("disabled"); } else if (u.getGlobal("selectedEndorsement").END_FULL_CANC_YN === "Y" ) { //endorsement allows the user to perform a full cancellation of the policy } else if (u.getGlobal("selectedEndorsement").END_PRO_RTD_CANC_YN === "Y" ) { //endorsement allows the user to cancel the policy for a preiod $("#ENG_START_DATE").removeAttr("disabled"); $("#ENG_END_DATE").removeAttr("disabled"); } else if (u.getGlobal("selectedEndorsement").END_CHNG_PERIOD_YN === "Y" ) { //endorsement allows the user to edit the start and end dates of the policy risks $("#ENG_START_DATE").removeAttr("disabled"); $("#ENG_END_DATE").removeAttr("disabled"); } switch ($scope.endorsementData["END_FLAG"]) { case "FC": //FULL CANCELLATION $("#btn_update_cover").prop("disabled", false); $("#btn_add_cover").prop("disabled", false); $("#btn_open_car").prop("disabled", false); u.getGlobal("DisableFields")(false); $scope.fullCancellationSetup(); // $scope.disableRiskButtons(); break; case "IC": //INTERNAL CANCELLATION $scope.internalCancellationSetup(); $scope.disableRiskButtons(); break; case "CC": //CUSTOMER CANCELLATION $scope.customerCancellationSetup(); break; case "R": //RENEWAL endNo = 0; $scope.renewal(); break; //case "F": case "PC": //PRO RATED ENDORSEMENT //check if the effective date of the endorsement is lesas than the policy start date //alert($scope.endorsementData["END_EFCTV_DATE"]); //alert(u.fieldVal("#POLH_POL_START_DATE")); //if (u.dateBefore($scope.endorsementData["END_EFCTV_DATE"], u.fieldVal("#POLH_POL_START_DATE"))) { // //prevent the endorsement from taking place, you cant backdate a policy // return u.growl_warning("You cannot backdate a policy, please check the effective date of the endorsement"); //} $scope.internalProRatedCancellationSetup(newNumberOfDays); u.formReadWrite(); break; case "PS"://PARTIAL SUSPENSION $scope.partialSuspension(endNo); break; case "TS"://TOTAL SUSPENSION $scope.totalSuspension(endNo); break; case "EP": $scope.generalEndorsementSetup(newNumberOfDays); u.formReadWrite(); $("#POLH_POL_END_DATE").prop("disabled", false); break; case "PP": $scope.generalEndorsementSetup(newNumberOfDays); u.formReadWrite(); $("#POLH_POL_START_DATE").prop("disabled", false); $("#POLH_POL_END_DATE").prop("disabled", false); break; default: $scope.generalEndorsementSetup(newNumberOfDays); u.formReadWrite(); $("#btn_add_location_details").prop("disabled", false); $("#btn_remove_location_details").prop("disabled", false); $("#btn_update_cover").prop("disabled", false); $("#btn_add_cover").prop("disabled", false); $("#btn_reset_cover").prop("disabled", false); $("#POLH_POL_START_DATE").prop("disabled", false); $("#POLH_POL_END_DATE").prop("disabled", false); $("#btn_open_car").prop("disabled", false); $("#btn_remove_location_details").prop("disabled", false); $("#btn_edit_loc").prop("disabled", false); $("#btn_add_loc").prop("disabled", false); break; } //$scope.feeCancelationCheck(); $("#POLH_TXN_STATE").val("E"); $("#POLH_END_NO").val(endNo); $scope.PolicyCalculations(); var newPolicy = u.getGlobal("EngGetPolicyData")(); if (!$scope.isOpen) { //console.log(policy); formData = $scope.financialDiff(newPolicy, oldPolicy); formData.END_STATUS = "U"; formData.END_CRTE_BY = u.getUserCode(); formData.END_CRTE_DATE = u.get_date(); formData.END_TXN_STATE = "O"; formData.END_POL_SYS_ID = u.fieldVal("#POLH_SYS_ID"); //Add to grid $scope.endorsementGrid.addRowData(undefined, formData); } else { u.hide_confirm(); return u.modalInfo( "The current policy in an open endorsement state. You cannot add another endorsement until the current endorsement is closed." + " To close the current endorsement, please save your endorsement changes and approve the policy."); } //save policy $scope.loader(async function () { var polhData = newPolicy; //Obtain policy endorsement grid data polhData["MS_UDW_ENDORSEMENTS"] = u.get_grid_data($scope.endorsementGrid, true); u.getGlobal("savePolicy")(polhData, async function (result) { u.form_text_Gold_color(); u.getGlobal("EngPolicyFill")(result); const data = {}; //move policy to the endorsed state data.userCode = u.getUserCode(); data.processId = $("#POLH_UID").val(); data.command = $("#SelPolicyProcess").val(); const formData = u.parse_form("#endorsementForm"); data.userId = u.getUserId(); data.comment = $scope.endorsementData.END_REASON; //Todo: clarification needed data.flag = WorkflowConstants.Underwriting; data.startDate = formData.startDate; data.endDate = formData.dueDate; data.isSystem = true; data.identityId = u.getUserId(); data.notify = $("#emailYn").is(":checked"); 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); // u.form_text_Gold_color(); // u.form_reset("#endorsementForm"); // $("#PolicyEndorsementModal").modal("hide"); // //u.setGridColumn($scope.endorsementGrid, { // // "END_STATUS": "A" // //}); //} else { // u.growl_error(response.message); //} polhData = {}; u.growl_success("Policy successfully endorsed."); }); }); } else { return u.growl_info("Unable to endorse policy, policy history records could not be fetched."); } //s.getPolicyHistory(policy["POLH_SYS_ID"], // (parseFloat(policy["POLH_END_NO"])), // (parseFloat(policy["POLH_RENEW_SER_NO"])), // function(oldPolicy) { // $scope.financialDiff(policy, oldPolicy); // //todo for the rest of the grids // u.form_text_Gold_color(); // u.growl_success( // "The Policy is ready for Endorsement, Please perform your changes and SAVE to continue"); // u.hide_confirm(); // $("#PolicyEndorsementModal").modal("hide"); // //console.log($scope.endorsementData); // $scope.PolicyCalculations(); //}); }); }); $scope.disableRiskButtons = function() { $("#btn_add_loc").prop("disabled", true); $("#btn_edit_loc").prop("disabled", true); $("#btn_remove_location_details").prop("disabled", true); $("#btn_open_car").prop("disabled", true); }; $scope.loader = function (func) { $("#policyCalculationsModal").modal(); setTimeout(async function () { func(); $("#policyCalculationsModal").modal("hide"); }, 500); }; /** * Setup policy for renewal * @returns {} */ $scope.renewal = async function () { if ($("#POLH_TXN_STATE").val() !== "P") { return u.modalWarning("Policy is not approved, cannot renew"); } if ($("#POLH_TXN_STATE").val() === "R") { return u.modalWarning("Policy is already in the renewal state please confirm and approve."); } var renNo = parseInt($("#POLH_RENEW_SER_NO").val() || 0) + 1; $("#POLH_RENEW_SER_NO").val(renNo); $("#POLH_END_NO").val(0); var startDate = u.dateFastForward($("#POLH_POL_END_DATE").val(), 1, "day"); var endDate = u.dateFastForward(u.dateFastForward(startDate, "year", 1), "day", -1); $("#POLH_POL_START_DATE").val(startDate); $("#POLH_POL_UW_YEAR").val(u.getYear(startDate)); $("#POLH_POL_END_DATE").val(endDate); u.setGridColumn($scope.locationGrid, { "ENG_POLH_END_NO": 0, "ENG_POLH_RNW_NO": renNo, "ENG_START_DATE": startDate, "ENG_END_DATE": endDate, "ENG_CLM_YN": "N", "INS_UDW_CAR_RISK": function(val) { var risks = u.parseJson(val); risks.ForEach(r => { r.CAR_POLH_END_NO = 0; r.CAR_POLH_RNW_NO = renNo; r.CAR_START_DATE = startDate; r.CAR_END_DATE = endDate; r.INS_UWD_RISK_COVERS = u.parseJson(r.INS_UWD_RISK_COVERS); r.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = 0; c.RPCOV_RNW_NO = renNo; }); r.INS_UDW_CPM_RISK = u.parseJson(r.INS_UDW_CPM_RISK); r.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_POLH_END_NO = 0; cpm.CPM_POLH_RNW_NO = renNo; cpm.CPM_START_DATE = startDate; cpm.CPM_END_DATE = endDate; cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS); cpm.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = 0; c.RPCOV_RNW_NO = renNo; }); }); r.INS_UDW_TPL = u.parseJson(r.INS_UDW_TPL); r.INS_UDW_TPL.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = 0; c.RPCOV_RNW_NO = renNo; }); }); r.INS_UDW_LOP.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = 0; c.RPCOV_RNW_NO = renNo; }); }); }); return JSON.stringify(risks); } }); //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, { "ENG_FEE_END_NO": 0 }); //Pol fees summary u.setGridColumn($scope.polfees_grid, { "POL_FEE_END_NO": 0 }); //populate partial renewal grid with risks u.clear_grid_data(u.getGlobal("partialRenewalGrid")); var locations = u.get_grid_data($scope.locationGrid); u.gridPopulate(u.getGlobal("partialRenewalGrid"), u.get_grid_data($scope.motor_grid)); }; $scope.fullCancellationSetup = function () { var endNo = $scope.endorsementData["END_NO"]; //$("#POLH_NET_PREM_BC").val(u.fieldVal("#POLH_NET_PREM_BC") - proRatdNetPremBc); $("#POLH_NET_PREM_BC").val(0); //$("#POLH_NET_PREM_FC").val(u.fieldVal("#POLH_NET_PREM_FC") - proRatdNetPremFc); $("#POLH_NET_PREM_FC").val(0); //$("#POLH_NET_SI_BC").val(0); //$("#POLH_NET_SI_FC").val(0); //$("#POLH_NET_SI_BC").val(-(parseFloat($("#POLH_NET_SI_BC").val() || 0))); //$("#POLH_NET_SI_FC").val(-(parseFloat($("#POLH_NET_SI_FC").val() || 0))); $("#POLH_POL_DISC_BC").val(0); $("#POLH_POL_DISC_FC").val(0); $("#POLH_POL_LOAD_BC").val(0); $("#POLH_POL_LOAD_FC").val(0); $("#POLH_POL_PREM_BC").val(0); $("#POLH_POL_PREM_FC").val(0); $("#POLH_POL_COMM_BC").val(0); $("#POLH_POL_COMM_FC").val(0); $("#POLH_COINS_PREM_BC").val(0); $("#POLH_COINS_PREM_FC").val(0); $("#POLH_COINS_COM_BC").val(0); $("#POLH_COINS_COM_FC").val(0); /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ //LOCATIONS u.setGridColumn($scope.locationGrid, { "ENG_POLH_END_NO": endNo, "ENG_TOT_PREM_BC": 0, "ENG_TOT_PREM_FC": 0, "ENG_RI_PREM_FC": 0, "ENG_RI_PREM_BC": 0, "ENG_RISK_PREM_FC": 0, "ENG_RISK_PREM_BC": 0, "ENG_DISC_FC": 0, "ENG_DISC_BC": 0, "ENG_LOAD_FC": 0, "ENG_LOAD_BC": 0, //CAR PROCESSING "INS_UDW_CAR_RISK": function (val) { var risks = typeof (val) === "string" ? u.parseJson(val || "[]") : val || []; risks.ForEach(r => { r.CAR_POLH_END_NO = endNo; r.CAR_TOT_PREM_FC = 0; r.CAR_TOT_PREM_BC = 0; r.CAR_RISK_PREM_FC = 0; r.CAR_RISK_PREM_BC = 0; r.CAR_ADJ_PREM_FC = 0; r.CAR_ADJ_PREM_BC = 0; r.CAR_DISC_FC = 0; r.CAR_DISC_BC = 0; r.CAR_LOAD_FC = 0; r.CAR_LOAD_BC = 0; r.CAR_RI_PREM_FC = 0; r.CAR_RI_PREM_BC = 0; r.INS_UWD_RISK_COVERS = u.parseJson(r.INS_UWD_RISK_COVERS); r.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_DISC_FC = 0; c.RCOV_DISC_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; }); r.INS_UWD_RISK_COVERS = JSON.stringify(r.INS_UWD_RISK_COVERS); // TPL r.INS_UDW_TPL = u.parseJson(r.INS_UDW_TPL); r.INS_UDW_TPL.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_DISC_FC = 0; c.RCOV_DISC_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; }); t.INS_UWD_RISK_COVERS = JSON.stringify(t.INS_UWD_RISK_COVERS); }); r.INS_UDW_TPL = JSON.stringify(r.INS_UDW_TPL); //LOP r.INS_UDW_LOP = u.parseJson(r.INS_UDW_LOP); r.INS_UDW_LOP.ForEach(l => { l.INS_UWD_RISK_COVERS = u.parseJson(l.INS_UWD_RISK_COVERS); l.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_DISC_FC = 0; c.RCOV_DISC_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; }); l.INS_UWD_RISK_COVERS = JSON.stringify(l.INS_UWD_RISK_COVERS); }); r.INS_UDW_LOP = JSON.stringify(r.INS_UDW_LOP); //CPM r.INS_UDW_CPM_RISK = u.parseJson(r.INS_UDW_CPM_RISK); r.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_POLH_END_NO = endNo; cpm.CPM_TOT_PREM_FC = 0; cpm.CPM_TOT_PREM_BC = 0; cpm.CPM_RISK_PREM_FC = 0; cpm.CPM_RISK_PREM_BC = 0; cpm.CPM_ADJ_PREM_FC = 0; cpm.CPM_ADJ_PREM_BC = 0; cpm.CPM_DISC_FC = 0; cpm.CPM_DISC_BC = 0; cpm.CPM_LOAD_FC = 0; cpm.CPM_LOAD_BC = 0; cpm.CPM_RI_PREM_FC = 0; cpm.CPM_RI_PREM_BC = 0; cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS); cpm.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_DISC_FC = 0; c.RCOV_DISC_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; }); cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); }); r.INS_UDW_CPM_RISK = JSON.stringify(r.INS_UDW_CPM_RISK); }); return JSON.stringify(risks); }, "INS_UDW_ENGINEER_FEES":function(val) { var fees = typeof (val) === "string" ? u.parseJson(val || "[]") : val || []; fees.ForEach(f => { f.ENG_FEE_END_NO = endNo; if ($scope.endorsementData["END_POL_FEE_CANC_YN"] == "Y") { f.ENG_FEE_FC_AMOUNT = 0; f.ENG_FEE_BC_AMOUNT = 0; } }); return fees.ToJson(); }, }); //RI summary u.setGridColumn($scope.reinsurance_grid, { //"VEH_POLH_END_NO": endNo, "TTH_TOTAL_PREM_BC": 0, "TTH_TOTAL_PREM_FC": 0, "INS_RI_TTY_ALLOCATION": function (val) { const allocations = u.parseJson(val || "[]"); allocations.ForEach(a => { a.TTA_TTY_PREM_BC = 0; a.TTA_TTY_PREM_FC = 0; a.TTA_TTY_COMM_BC = 0; a.TTA_TTY_COMM_FC = 0; var shares = u.parseJson(a.INS_RI_TTY_SHARE); shares.ForEach(share => { share.TTS_SHARE_PREM_BC = 0; share.TTS_SHARE_PREM_FC = 0; share.TTS_RI_COMM_BC = 0; share.TTS_RI_COMM_FC = 0; share.TTS_TAX_BC = 0; share.TTS_TAX_FC = 0; }); a.INS_RI_TTY_SHARE = shares.ToJson(); }); return allocations.ToJson(); } }); //Commissions u.setGridColumn($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 }); //policy documents u.setGridColumn($scope.polFileGrid, { "PF_PH_END_NO": endNo }); //Pol fees summary u.setGridColumn($scope.polpolicyFeesGrid, { "POL_FEE_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": function (val) { if ($scope.endorsementData["END_POL_FEE_CANC_YN"] === "Y") { return 0; } // return val; }, "POL_FEE_BC_AMOUNT": function (val) { if ($scope.endorsementData["END_POL_FEE_CANC_YN"] === "Y") { return 0; } // return val; } }); }; $scope.internalProRatedCancellationSetup = function (numberOfDays) { var endNo = $scope.endorsementData["END_NO"]; //SET THE END DATE AND START OF THE POLICY AND RISK COVERS TO THE SELECTED START DATE AND END DATE FOR THE ENDORSEMENT var endTermDate = $scope.endorsementData["END_TERM_DATE"]; var endEfctvData = $scope.endorsementData["END_EFCTV_DATE"]; //perform prorating of the policy premiums //iterate through all risks and covers and update their start date and end date as well as their pro rating their premiums $scope.invalidEnd = false; /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ const premBasis = $("#POLH_PREM_BASIS").val(); u.setGridColumn($scope.locationGrid, { "ENG_POLH_END_NO": () => endNo.toFixed(0), "ENG_START_DATE": function (date, row) { //obtain the sys id of the current risk var returnDate = date; // alert(date); // alert(returnDate); if (u.dateBefore(date, $scope.endorsementData["END_EFCTV_DATE"])) { $scope.invalidEnd = true; // u.growl_warning( // "The start date of location cannot can come before the effective date of endorsement"); return date; } if (u.dateAfter(date, $scope.endorsementData["END_TERM_DATE"])) { //returnDate = $scope.endorsementData["END_TERM_DATE"]; // u.growl_warning("The end date of location cannot can come after the end date of endorsement"); $scope.invalidEnd = true; return date; } return returnDate; }, "ENG_END_DATE": function (date, row, id) { //obtain the sys id of the current location var vehId = row["ENG_SYS_ID"]; var returnDate = date; // alert(returnDate); if (u.dateAfter(date, $scope.endorsementData["END_TERM_DATE"])) { //returnDate = $scope.endorsementData["END_TERM_DATE"]; $scope.invalidEnd = true; //u.growl_warning("The end date of vehicle risks cannot can come after the end date of endorsement"); return date; } return returnDate; }, "ENG_TOT_PREM_FC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "ENG_TOT_PREM_BC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "ENG_RISK_PREM_FC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "ENG_RISK_PREM_BC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": // newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "ENG_RI_PREM_FC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "ENG_RI_PREM_BC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "ENG_LOAD_FC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, "ENG_LOAD_BC": function (val, row) { var numDays = parseInt(row["ENG_PERIOD_DAYS"]); var newPrem = 0; switch (premBasis) { case "FP": //newPrem = -parseFloat(val); break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); var rate = parseFloat(shortPeriod[0].perc) / 100; newPrem = parseFloat(val) - (parseFloat(val) * rate); break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); var proRataValue = parseFloat(proRata / numDays); newPrem = parseFloat(val) - (parseFloat(val) * proRataValue); break; } return (newPrem).toFixed(2); }, //CAR PROCESSING "INS_UDW_CAR_RISK": function (val, row) { var risks = u.parseJson(val); var proRataValue = 0; var numDays = parseInt(row["ENG_PERIOD_DAYS"]); switch (premBasis) { case "FP": break; case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === numDays); proRataValue = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": var proRata = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); proRataValue = parseFloat(proRata / numDays); break; } risks.ForEach(r => { r.CAR_POLH_END_NO = endNo; r.CAR_TOT_PREM_FC = premBasis === "FP" //? -parseFloat(r.CAR_TOT_PREM_FC || 0) ? 0 : parseFloat(r.CAR_TOT_PREM_FC || 0) - (parseFloat(r.CAR_TOT_PREM_FC || 0) * proRataValue); r.CAR_TOT_PREM_BC = premBasis === "FP" //? -parseFloat(r.CAR_TOT_PREM_BC || 0) ? 0 : parseFloat(r.CAR_TOT_PREM_BC || 0) - (parseFloat(r.CAR_TOT_PREM_BC || 0) * proRataValue); r.CAR_RISK_PREM_FC = premBasis === "FP" // ? -parseFloat(r.CAR_RISK_PREM_FC || 0) ? 0 : parseFloat(r.CAR_RISK_PREM_FC || 0) - (parseFloat(r.CAR_RISK_PREM_FC || 0) * proRataValue); r.CAR_RISK_PREM_BC = premBasis === "FP" //? -parseFloat(r.CAR_RISK_PREM_BC || 0) ? 0 : parseFloat(r.CAR_RISK_PREM_BC || 0) - (parseFloat(r.CAR_RISK_PREM_BC || 0) * proRataValue); r.CAR_LOAD_FC = premBasis === "FP" // ? -parseFloat(r.CAR_LOAD_FC || 0) ? 0 : parseFloat(r.CAR_LOAD_FC || 0) - (parseFloat(r.CAR_LOAD_FC || 0) * proRataValue); r.CAR_LOAD_BC = premBasis === "FP" // ? -parseFloat(r.CAR_LOAD_BC || 0) ? 0 : parseFloat(r.CAR_LOAD_BC || 0) - (parseFloat(r.CAR_LOAD_BC || 0) * proRataValue); r.CAR_RI_PREM_FC = premBasis === "FP" //? -parseFloat(r.CAR_RI_PREM_FC || 0) ? 0 : parseFloat(r.CAR_RI_PREM_FC || 0) - (parseFloat(r.CAR_RI_PREM_FC || 0) * proRataValue); r.CAR_RI_PREM_BC = premBasis === "FP" //? -parseFloat(r.CAR_RI_PREM_BC || 0) ? 0 : parseFloat(r.CAR_RI_PREM_BC || 0) - (parseFloat(r.CAR_RI_PREM_BC || 0) * proRataValue); r.INS_UWD_RISK_COVERS = u.parseJson(r.INS_UWD_RISK_COVERS); r.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_FC || 0) - (parseFloat(c.RCOV_GROSS_PREM_FC || 0) * proRataValue); c.RCOV_GROSS_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_BC || 0) - (parseFloat(c.RCOV_GROSS_PREM_BC || 0) * proRataValue); c.RCOV_ANNL_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_FC || 0) - (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataValue); c.RCOV_ANNL_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_BC || 0) - (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataValue); c.RCOV_NET_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_FC || 0) - (parseFloat(c.RCOV_NET_PREM_FC || 0) * proRataValue); c.RCOV_NET_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_BC || 0) - (parseFloat(c.RCOV_NET_PREM_BC || 0) * proRataValue); c.RCOV_LOAD_FC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_FC || 0) ? 0 : parseFloat(c.RCOV_LOAD_FC || 0) - (parseFloat(c.RCOV_LOAD_FC || 0) * proRataValue); c.RCOV_LOAD_BC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_BC || 0) ? 0 : parseFloat(c.RCOV_LOAD_BC || 0) - (parseFloat(c.RCOV_LOAD_BC || 0) * proRataValue); }); //r.INS_UWD_RISK_COVERS = JSON.stringify(r.INS_UWD_RISK_COVERS); // TPL r.INS_UDW_TPL = u.parseJson(r.INS_UDW_TPL); r.INS_UDW_TPL.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_FC || 0) - (parseFloat(c.RCOV_GROSS_PREM_FC || 0) * proRataValue); c.RCOV_GROSS_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_BC || 0) - (parseFloat(c.RCOV_GROSS_PREM_BC || 0) * proRataValue); c.RCOV_ANNL_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_FC || 0) - (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataValue); c.RCOV_ANNL_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_BC || 0) - (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataValue); c.RCOV_NET_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_FC || 0) - (parseFloat(c.RCOV_NET_PREM_FC || 0) * proRataValue); c.RCOV_NET_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_BC || 0) - (parseFloat(c.RCOV_NET_PREM_BC || 0) * proRataValue); c.RCOV_LOAD_FC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_FC || 0) ? 0 : parseFloat(c.RCOV_LOAD_FC || 0) - (parseFloat(c.RCOV_LOAD_FC || 0) * proRataValue); c.RCOV_LOAD_BC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_BC || 0) ? 0 : parseFloat(c.RCOV_LOAD_BC || 0) - (parseFloat(c.RCOV_LOAD_BC || 0) * proRataValue); }); //t.INS_UWD_RISK_COVERS = JSON.stringify(t.INS_UWD_RISK_COVERS); }); //r.INS_UDW_TPL = JSON.stringify(r.INS_UDW_TPL); //LOP r.INS_UDW_LOP = u.parseJson(r.INS_UDW_LOP); r.INS_UDW_LOP.ForEach(l => { l.INS_UWD_RISK_COVERS = u.parseJson(l.INS_UWD_RISK_COVERS); l.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_FC || 0) - (parseFloat(c.RCOV_GROSS_PREM_FC || 0) * proRataValue); c.RCOV_GROSS_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_BC || 0) - (parseFloat(c.RCOV_GROSS_PREM_BC || 0) * proRataValue); c.RCOV_ANNL_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_FC || 0) - (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataValue); c.RCOV_ANNL_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_BC || 0) - (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataValue); c.RCOV_NET_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_FC || 0) - (parseFloat(c.RCOV_NET_PREM_FC || 0) * proRataValue); c.RCOV_NET_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_BC || 0) - (parseFloat(c.RCOV_NET_PREM_BC || 0) * proRataValue); c.RCOV_LOAD_FC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_FC || 0) ? 0 : parseFloat(c.RCOV_LOAD_FC || 0) - (parseFloat(c.RCOV_LOAD_FC || 0) * proRataValue); c.RCOV_LOAD_BC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_BC || 0) ? 0 : parseFloat(c.RCOV_LOAD_BC || 0) - (parseFloat(c.RCOV_LOAD_BC || 0) * proRataValue); }); l.INS_UWD_RISK_COVERS = JSON.stringify(l.INS_UWD_RISK_COVERS); }); //r.INS_UDW_LOP = JSON.stringify(r.INS_UDW_LOP); //CPM r.INS_UDW_CPM_RISK = u.parseJson(r.INS_UDW_CPM_RISK); r.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_POLH_END_NO = endNo; cpm.CPM_TOT_PREM_FC = premBasis === "FP" // ? -parseFloat(cpm.CPM_TOT_PREM_FC || 0) ? 0 : parseFloat(cpm.CPM_TOT_PREM_FC || 0) - (parseFloat(cpm.CPM_TOT_PREM_FC || 0) * proRataValue); cpm.CPM_TOT_PREM_BC = premBasis === "FP" // ? -parseFloat(CPM_TOT_PREM_BC || 0) ? 0 : parseFloat(cpm.CPM_TOT_PREM_BC || 0) - (parseFloat(cpm.CPM_TOT_PREM_BC || 0) * proRataValue); cpm.CPM_RISK_PREM_FC = premBasis === "FP" //? -parseFloat(CPM_RISK_PREM_FC || 0) ? 0 : parseFloat(cpm.CPM_RISK_PREM_FC || 0) - (parseFloat(cpm.CPM_RISK_PREM_FC || 0) * proRataValue); cpm.CPM_RISK_PREM_BC = premBasis === "FP" // ? -parseFloat(CPM_RISK_PREM_BC || 0) ? 0 : parseFloat(cpm.CPM_RISK_PREM_BC || 0) - (parseFloat(cpm.CPM_RISK_PREM_BC || 0) * proRataValue); cpm.CPM_DISC_FC = premBasis === "FP" // ? -parseFloat(cpm.CPM_DISC_FC || 0) ? 0 : parseFloat(cpm.CPM_DISC_FC || 0) - (parseFloat(cpm.CPM_DISC_FC || 0) * proRataValue); cpm.CPM_DISC_BC = premBasis === "FP" // ? -parseFloat(cpm.CPM_DISC_BC || 0) ? 0 : parseFloat(cpm.CPM_DISC_BC || 0) - (parseFloat(cpm.CPM_DISC_BC || 0) * proRataValue); cpm.CPM_LOAD_FC = premBasis === "FP" // ? -parseFloat(cpm.CPM_LOAD_FC || 0) ? 0 : parseFloat(cpm.CPM_LOAD_FC || 0) - (parseFloat(cpm.CPM_LOAD_FC || 0) * proRataValue); cpm.CPM_LOAD_BC = premBasis === "FP" // ? -parseFloat(cpm.CPM_LOAD_BC || 0) ? 0 : parseFloat(cpm.CPM_LOAD_BC || 0) - (parseFloat(cpm.CPM_LOAD_BC || 0) * proRataValue); cpm.CPM_RI_PREM_FC = premBasis === "FP" // ? -parseFloat(cpm.CPM_RI_PREM_FC || 0) ? 0 : parseFloat(cpm.CPM_RI_PREM_FC || 0) - (parseFloat(cpm.CPM_RI_PREM_FC || 0) * proRataValue); cpm.CPM_RI_PREM_BC = premBasis === "FP" // ? -parseFloat(cpm.CPM_RI_PREM_BC || 0) ? 0 : parseFloat(cpm.CPM_RI_PREM_BC || 0) - (parseFloat(cpm.CPM_RI_PREM_BC || 0) * proRataValue); cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS); cpm.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_FC || 0) - (parseFloat(c.RCOV_GROSS_PREM_FC || 0) * proRataValue); c.RCOV_GROSS_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_GROSS_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_GROSS_PREM_BC || 0) - (parseFloat(c.RCOV_GROSS_PREM_BC || 0) * proRataValue); c.RCOV_ANNL_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_FC || 0) - (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataValue); c.RCOV_ANNL_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_ANNL_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_ANNL_PREM_BC || 0) - (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataValue); c.RCOV_NET_PREM_FC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_FC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_FC || 0) - (parseFloat(c.RCOV_NET_PREM_FC || 0) * proRataValue); c.RCOV_NET_PREM_BC = premBasis === "FP" //? -parseFloat(c.RCOV_NET_PREM_BC || 0) ? 0 : parseFloat(c.RCOV_NET_PREM_BC || 0) - (parseFloat(c.RCOV_NET_PREM_BC || 0) * proRataValue); c.RCOV_LOAD_FC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_FC || 0) ? 0 : parseFloat(c.RCOV_LOAD_FC || 0) - (parseFloat(c.RCOV_LOAD_FC || 0) * proRataValue); c.RCOV_LOAD_BC = premBasis === "FP" //? -parseFloat(c.RCOV_LOAD_BC || 0) ? 0 : parseFloat(c.RCOV_LOAD_BC || 0) - (parseFloat(c.RCOV_LOAD_BC || 0) * proRataValue); }); //cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); }); //r.INS_UDW_CPM_RISK = JSON.stringify(r.INS_UDW_CPM_RISK); }); return JSON.stringify(risks); }, //FEES PROCESSING "INS_UDW_ENGINEER_FEES":function(val) { var fees = u.parseJson(val || "[]"); fees.ForEach(f => { f.ENG_FEE_END_NO = endNo; if ($scope.endorsementData["END_POL_FEE_CANC_YN"] == "Y") { f.ENG_FEE_FC_AMOUNT = 0; f.ENG_FEE_BC_AMOUNT = 0; } }); return fees.ToJson(); } }); if ($scope.invalidEnd) { return false; } //Risk Covers // u.setGridColumn($scope.cover_grid, { "RPCOV_END_NO": endNo }); //policy documents u.setGridColumn($scope.polFileGrid, { "PF_PH_END_NO": endNo.toFixed(0) }); //Commissions //u.setGridColumn($scope.intermCom_grid, { "CMM_END_NO": endNo, "CMM_COM_AMT_FC": 0, "CMM_COM_AMT_BC": 0 }); u.setGridColumn($scope.intermCom_grid, { "CMM_END_NO": endNo.toFixed(0) }); //Prem Register u.setGridColumn($scope.premiumreg_grid, { "PR_END_NO": endNo.toFixed(0) }); //Risk Fees //u.setGridColumn($scope.riskFees_grid, { "ENG_FEE_END_NO": endNo, "ENG_FEE_FC_AMOUNT": 0, "ENG_FEE_BC_AMOUNT": 0 }); // u.setGridColumn($scope.riskFees_grid, { "ENG_FEE_END_NO": endNo }); //Pol fees summary u.setGridColumn($scope.polpolicyFeesGrid, { "POL_FEE_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; }, "POL_FEE_BC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; } }); }; /*------------------------- * Edorsement functions *-----------------------*/ $scope.internalCancellationSetup = 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(u.getGlobal("udwEngGrid"), { "ENG_POLH_END_NO": endNo.toFixed(0), "ENG_TOT_PREM_BC": 0, "ENG_TOT_PREM_FC": 0, "ENG_RISK_PREM_FC": 0, "ENG_RISK_PREM_BC": 0, "ENG_RI_PREM_FC": 0, "ENG_RI_PREM_BC": 0, "INS_UDW_CAR_RISK": (val) => { var risks = typeof val === "string" ? u.parseJson(val || "[]") : val || []; risks.ForEach(r => { r.CAR_POLH_END_NO = endNo; r.CAR_TOT_PREM_FC = 0; r.CAR_TOT_PREM_BC = 0; r.CAR_RISK_PREM_BC = 0; r.CAR_RISK_PREM_FC = 0; r.CAR_GROSS_PREM_FC = 0; r.CAR_GROSS_PREM_BC = 0; r.INS_UDW_RISK_COVERS = typeof (r.INS_UDW_RISK_COVERS) === "string" ? u.parseJson(r.INS_UDW_RISK_COVERS) : r.INS_UDW_RISK_COVERS || []; r.INS_UDW_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; }); r.INS_UDW_RISK_COVERS = JSON.stringify(r.INS_UDW_RISK_COVERS); r.INS_UDW_CPM_RISK = typeof (r.INS_UDW_CPM_RISK) === "string" ? u.parseJson(r.INS_UDW_CPM_RISK || "[]") : r.INS_UDW_CPM_RISK || []; r.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_TOT_PREM_BC = 0; cpm.CPM_TOT_PREM_FC = 0; cpm.CPM_RISK_PREM_BC = 0; cpm.CPM_RISK_PREM_FC = 0; cpm.INS_UDW_RISK_COVERS = typeof (cpm.INS_UDW_RISK_COVERS) === "string" ? u.parseJson(cpm.INS_UDW_RISK_COVERS) : cpm.INS_UDW_RISK_COVERS || []; cpm.INS_UDW_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; }); cpm.INS_UDW_RISK_COVERS = JSON.stringify(cpm.INS_UDW_RISK_COVERS); }); r.INS_UDW_CPM_RISK = JSON.stringify(r.INS_UDW_CPM_RISK); r.INS_UDW_TPL = typeof (r.INS_UDW_TPL) === "string" ? u.parseJson(r.INS_UDW_TPL || "[]") : r.INS_UDW_TPL || []; r.INS_UDW_TPL.ForEach(tpl => { tpl.INS_UWD_RISK_COVERS = typeof (tpl.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(tpl.INS_UWD_RISK_COVERS || "[]") : tpl.INS_UWD_RISK_COVERS || []; tpl.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; }); tpl.INS_UWD_RISK_COVERS = JSON.stringify(tpl.INS_UWD_RISK_COVERS); }); r.INS_UDW_TPL = JSON.stringify(r.INS_UDW_TPL); r.INS_UDW_LOP = typeof (r.INS_UDW_LOP) === "string" ? u.parseJson(r.INS_UDW_LOP || "[]") : r.INS_UDW_LOP || []; r.INS_UDW_LOP.ForEach(lop => { lop.INS_UWD_RISK_COVERS = typeof (lop.INS_UWD_RISK_COVERS) === "string" ? u.parseJson(lop.INS_UWD_RISK_COVERS || "[]") : lop.INS_UWD_RISK_COVERS || []; lop.INS_UWD_RISK_COVERS.ForEach(t => { c.RPCOV_END_NO = endNo; c.RCOV_GROSS_PREM_FC = 0; c.RCOV_GROSS_PREM_BC = 0; c.RCOV_LOAD_FC = 0; c.RCOV_LOAD_BC = 0; c.RCOV_NET_PREM_FC = 0; c.RCOV_NET_PREM_BC = 0; c.RCOV_ANNL_PREM_FC = 0; c.RCOV_ANNL_PREM_BC = 0; }); lop.INS_UWD_RISK_COVERS = JSON.stringify(lop.INS_UWD_RISK_COVERS); }); r.INS_UDW_LOP = JSON.stringify(r.INS_UDW_LOP); }); return JSON.stringify(risks); }, "INS_UDW_ENGINEER_FEES": function (val) { var fees = u.parseJson(val || "[]"); fees.ForEach(f => { f.ENG_FEE_END_NO = endNo; if ($scope.endorsementData["END_POL_FEE_CANC_YN"] == "Y") { f.ENG_FEE_FC_AMOUNT = 0; f.ENG_FEE_BC_AMOUNT = 0; } }); return fees.ToJson(); } }); //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.locationFeesGrid, // { "ENG_FEE_END_NO": endNo, "ENG_FEE_FC_AMOUNT": 0, "ENG_FEE_BC_AMOUNT": 0 }); //Pol fees summary u.setGridColumn($scope.polpolicyFeesGrid, { "POL_FEE_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; }, "POL_FEE_BC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; } }); }; $scope.generalEndorsementSetup = function (numberOfDays) { var endNo = $scope.endorsementData["END_NO"]; const proRate = numberOfDays / 365; const proRatdNetPremFc = u.fieldVal("#POLH_NET_PREM_FC") * proRate; const proRatdNetPremBc = u.fieldVal("#POLH_NET_PREM_BC") * proRate; const proRatdPolPremFc = u.fieldVal("#POLH_POL_PREM_FC") * proRate; const proRatdPolPremBc = u.fieldVal("#POLH_POL_PREM_BC") * proRate; $("#POLH_NET_PREM_BC").val(u.fieldVal("#POLH_NET_PREM_BC") - proRatdNetPremBc); $("#POLH_NET_PREM_FC").val(u.fieldVal("#POLH_NET_PREM_FC") - proRatdNetPremFc); $("#POLH_POL_PREM_BC").val(u.fieldVal("#POLH_NET_PREM_BC") - proRatdPolPremBc); $("#POLH_POL_PREM_FC").val(u.fieldVal("#POLH_NET_PREM_FC") - proRatdPolPremFc); $("#POLH_POL_DISC_BC").val(0); $("#POLH_POL_DISC_FC").val(0); /*------------------------------------- * update Endorsement No in the Grids *----------------------------------*/ //Risks u.setGridColumn(u.getGlobal("udwEngGrid"), { "ENG_POLH_END_NO": endNo, "INS_UDW_CAR_RISK": function (val) { var risks = u.parseJson(val); risks.ForEach(r => { r.CAR_POLH_END_NO = endNo; r.INS_UWD_RISK_COVERS = u.parseJson(r.INS_UWD_RISK_COVERS); r.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; }); r.INS_UWD_RISK_COVERS = JSON.stringify(r.INS_UWD_RISK_COVERS); //TPL r.INS_UDW_TPL = u.parseJson(r.INS_UDW_TPL); r.INS_UDW_TPL.ForEach(t => { t.TPL_POLH_END_NO = endNo; t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; }); t.INS_UWD_RISK_COVERS = JSON.stringify(t.INS_UWD_RISK_COVERS); }); r.INS_UDW_TPL = JSON.stringify(r.INS_UDW_TPL); //LOP r.INS_UDW_LOP = u.parseJson(r.INS_UDW_LOP); r.INS_UDW_LOP.ForEach(t => { t.LOP_POLH_END_NO = endNo; t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; }); t.INS_UWD_RISK_COVERS = JSON.stringify(t.INS_UWD_RISK_COVERS); }); r.INS_UDW_LOP = JSON.stringify(r.INS_UDW_LOP); //CPM r.INS_UDW_CPM_RISK = u.parseJson(r.INS_UDW_CPM_RISK); r.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_POLH_END_NO = endNo; cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS); cpm.INS_UWD_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; }); cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); }); r.INS_UDW_CPM_RISK = JSON.stringify(r.INS_UDW_CPM_RISK); }); return JSON.stringify(risks); }, "INS_UDW_ENGINEER_FEES": function (val) { var fees = u.parseJson(val || "[]"); fees.ForEach(f => { f.ENG_FEE_END_NO = endNo; if ($scope.endorsementData["END_POL_FEE_CANC_YN"] == "Y") { f.ENG_FEE_FC_AMOUNT = 0; f.ENG_FEE_BC_AMOUNT = 0; } }); return fees.ToJson(); } }); //Commissions //u.setGridColumn($scope.intermCom_grid, { "CMM_END_NO": endNo, "CMM_COM_AMT_FC": 0, "CMM_COM_AMT_BC": 0 }); 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 }); //Pol fees summary //u.setGridColumn($scope.polpolicyFeesGrid, { "POL_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": 0, "POL_FEE_BC_AMOUNT": 0 }); u.setGridColumn($scope.polpolicyFeesGrid, { "POL_FEE_FEE_END_NO": endNo, "POL_FEE_FC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; }, "POL_FEE_BC_AMOUNT": function (val) { return $scope.endorsementData.END_POL_FEE_CANC_YN === "Y" ? 0 : val; } }); }; $scope.partialSuspension = function (endNo) { //loop through all risks and update suspension information u.setGridColumn($scope.locationGrid, { "ENG_POLH_END_NO": endNo, "INS_UDW_CAR_RISK": function (val) { const risks = typeof val === "string" ? u.parseJson(val || "[]") : val || []; risks.ForEach(r => { r.CAR_POLH_END_NO = endNo; r.INS_UDW_RISK_COVERS = typeof (r.INS_UDW_RISK_COVERS) === "string" ? u.parseJson(r.INS_UDW_RISK_COVERS || "[]") : r.INS_UDW_RISK_COVERS || []; r.INS_UDW_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; }); r.INS_UDW_RISK_COVERS = JSON.stringify(r.INS_UDW_RISK_COVERS); r.INS_UDW_TPL = typeof (r.INS_UDW_TPL) === "string" ? JSON.parse(r.INS_UDW_TPL || "[]") : r.INS_UDW_TPL || []; r.INS_UDW_TPL.ForEach(t => { t.INS_UWD_RISK_COVERS = typeof (t.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(t.INS_UWD_RISK_COVERS || "[]") : t.INS_UWD_RISK_COVERS || []; t.INS_UWD_RISK_COVERS.ForEach(tpl => { tpl.RPCOV_END_NO = endNo; }); t.INS_UWD_RISK_COVERS = JSON.stringify(t.INS_UWD_RISK_COVERS); }); r.INS_UDW_TPL = JSON.stringify(r.INS_UDW_TPL); r.INS_UDW_LOP = typeof (r.INS_UDW_LOP) === "string" ? JSON.parse(r.INS_UDW_LOP || "[]") : r.INS_UDW_LOP || []; r.INS_UDW_LOP.ForEach(l => { l.INS_UWD_RISK_COVERS = typeof (l.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(l.INS_UWD_RISK_COVERS || "[]") : l.INS_UWD_RISK_COVERS || []; l.INS_UWD_RISK_COVERS.ForEach(lop => { lop.RPCOV_END_NO = endNo; }); l.INS_UWD_RISK_COVERS = JSON.stringify(l.INS_UWD_RISK_COVERS); }); r.INS_UDW_LOP = JSON.stringify(r.INS_UDW_LOP); r.INS_UDW_CPM_RISK = typeof (r.INS_UDW_CPM_RISK) === "string" ? JSON.parse(r.INS_UDW_CPM_RISK || "[]") : r.INS_UDW_CPM_RISK || []; r.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_POLH_END_NO = endNo; cpm.INS_UDW_RISK_COVERS = typeof (cpm.INS_UDW_RISK_COVERS) === "string" ? JSON.parse(cpm.INS_UDW_RISK_COVERS || "[]") : cpm.INS_UDW_RISK_COVERS || []; cpm.INS_UDW_RISK_COVERS.ForEach(c => { c.RPCOV_END_NO = endNo; }); cpm.INS_UDW_RISK_COVERS = JSON.stringify(cpm.INS_UDW_RISK_COVERS); }); r.INS_UDW_CPM_RISK = JSON.stringify(r.INS_UDW_CPM_RISK); }); return JSON.stringify(risks); }, "INS_UDW_ENGINEER_FEES": function (val) { var fees = JSON.parse(val || "[]"); fees.ForEach(f => { f.ENG_FEE_END_NO = endNo; if ($scope.endorsementData["END_POL_FEE_CANC_YN"] == "Y") { f.ENG_FEE_FC_AMOUNT = 0; f.ENG_FEE_BC_AMOUNT = 0; } }); return fees.ToJson(); } }); }; $scope.totalSuspension = function (endNo) { $("#POLH_SUSPND_YN").val("Y"); var suspensionStartDate = $scope.endorsementData.END_EFCTV_DATE; var suspensionEndDate = $scope.endorsementData.END_TERM_DATE; $("#POLH_SUS_FROM_DATE").val(suspensionStartDate); $("#POLH_SUS_TO_DATE").val(suspensionEndDate); var days = u.totalDbDateDays(suspensionEndDate, suspensionStartDate); $("#POLH_SUSPND_PERIOD").val(days); //loop through all risks and update suspension information u.setGridColumn($scope.locationGrid, { "ENG_POLH_END_NO": endNo, "ENG_SUS_TO_DATE": function (val) { return suspensionEndDate; }, "ENG_SUS_FROM_DATE": function (val) { return suspensionStartDate; }, "ENG_SUSPND_YN": function (val) { return "Y"; }, "ENG_SUSPND_PERIOD": function (val) { return days; }, "INS_UDW_CAR_RISK": function (val) { var risk = typeof val === "string" ? JSON.parse(val || "[]") : val || []; risk.ForEach(r => { r.CAR_SUSPND_YN = "Y"; r.CAR_SUS_FROM_DATE = suspensionStartDate; r.CAR_SUS_TO_DATE = suspensionEndDate; r.CAR_SUSPND_PERIOD = days; r.CAR_POLH_END_NO = endNo; r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string" ? JSON.parse(r.INS_UWD_RISK_COVERS || "[]") : r.INS_UWD_RISK_COVERS || []; r.INS_UWD_RISK_COVERS.ForEach(c => { r.RPCOV_END_NO = endNo; }); r.INS_UWD_RISK_COVERS = JSON.stringify(r.INS_UWD_RISK_COVERS); r.INS_UDW_CPM_RISK = typeof (r.INS_UDW_CPM_RISK) === "string" ? JSON.parse(r.INS_UDW_CPM_RISK || "[]") : r.INS_UDW_CPM_RISK || []; r.INS_UDW_CPM_RISK.ForEach(cpm => { cpm.CPM_POLH_END_NO = endNo; }); r.INS_UDW_TPL = typeof (r.INS_UDW_TPL) === "string" ? JSON.parse(r.INS_UDW_TPL || "[]") : r.INS_UDW_TPL || []; r.INS_UDW_TPL.ForEach(tpl => { tpl.INS_UWD_RISK_COVERS = typeof (tpl.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(tpl.INS_UWD_RISK_COVERS || "[]") : tpl.INS_UWD_RISK_COVERS || []; tpl.INS_UWD_RISK_COVERS.ForEach(t => { t.RPCOV_END_NO = endNo; }); tpl.INS_UWD_RISK_COVERS = JSON.stringify(tpl.INS_UWD_RISK_COVERS); }); r.INS_UDW_TPL = JSON.stringify(r.INS_UDW_TPL); r.INS_UDW_LOP = typeof (r.INS_UDW_LOP) === "string" ? JSON.parse(r.INS_UDW_LOP || "[]") : r.INS_UDW_LOP || []; r.INS_UDW_LOP.ForEach(lop => { lop.INS_UWD_RISK_COVERS = typeof (lop.INS_UWD_RISK_COVERS) === "string" ? JSON.parse(lop.INS_UWD_RISK_COVERS || "[]") : lop.INS_UWD_RISK_COVERS || []; lop.INS_UWD_RISK_COVERS.ForEach(t => { t.RPCOV_END_NO = endNo; }); lop.INS_UWD_RISK_COVERS = JSON.stringify(lop.INS_UWD_RISK_COVERS); }); r.INS_UDW_LOP = JSON.stringify(r.INS_UDW_LOP); }); return JSON.stringify(risk); }, "INS_UDW_ENGINEER_FEES": function (val) { var fees = JSON.parse(val || "[]"); fees.ForEach(f => { f.ENG_FEE_END_NO = endNo; if ($scope.endorsementData["END_POL_FEE_CANC_YN"] == "Y") { f.ENG_FEE_FC_AMOUNT = 0; f.ENG_FEE_BC_AMOUNT = 0; } }); return fees.ToJson(); } }); }; /*--------------------------- *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 policyData = u.parse_form("#polheaderForm"); // policyData.POLH_STATUS = "D"; // s.save_policy(policyData, // 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 *----------------------------*/ // $scope.reset = function () { u.form_reset("#polheaderForm"); u.form_reset("#coverForm"); u.form_reset("#engForm"); u.form_reset("#policyFilesForm"); u.form_reset("#carinterestForm"); $("#endNetCustomerFc").empty(); $("#netCustomerFc").empty(); u.clear_grid_data($scope.cover_grid); u.clear_grid_data($scope.carRiskGrid); u.clear_grid_data($scope.PremSummary_grid); u.clear_grid_data($scope.cliams_grid); u.clear_grid_data($scope.facinpremium_grid); u.clear_grid_data($scope.coinsurance_grid); u.clear_grid_data($scope.interComm_grid); u.clear_grid_data($scope.polpolicyFeesGrid); u.clear_grid_data($scope.riskdiscload_grid); u.clear_grid_data($scope.prodRisks_grid); u.clear_grid_data($scope.polFileGrid); u.clear_grid_data($scope.locationFeesGrid); u.clear_grid_data($scope.endorsementGrid); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.clear_grid_data($scope.reinsurance_grid); $("#POLH_SYS_ID").val(""); $("#POLH_STATUS").val("U"); $("#POLH_TXN_STATE").val("S"); $("#txtSearch").val(""); $("#POLH_PREM_BASIS").val("FP").change(); u.form_text_Black_color(); $("#POLH_MIGRATED").val("false"); $("#POLH_REF_CUST_POL_NUM").val(""); $("#POLH_REF_POL_NUM").val(""); }; u.setGlobalStatic("engineeringCarReset", $scope.reset); u.setGlobal("policyReset", $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(); u.hideWarning(); u.growl_success("Form successfully cleared"); }); }); //Policy Search function u.setGlobalStatic("productSearchFill", function (policyData) { u.getGlobal("searchFill")(policyData, function (policy) { //location fee population //u.clear_grid_data($scope.locationFeesGrid); //policy.INS_UDW_ENGINEER_LOC.ForEach(l => { // u.gridPopulate($scope.locationFeesGrid, l.INS_UDW_ENGINEER_FEES); //}); ////engineering location population //policy.INS_UDW_ENGINEER_LOC.ForEach(location => { // // CAR // location.INS_UDW_CAR_RISK.ForEach(car => { // car.INS_UWD_RISK_COVERS.ForEach(cover => { // cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); // }); // car.INS_UWD_RISK_COVERS = JSON.stringify(car.INS_UWD_RISK_COVERS); // }); // location.INS_UDW_CAR_RISK = JSON.stringify(location.INS_UDW_CAR_RISK); // //EAR // location.INS_UDW_EAR_RISK.ForEach(ear => { // ear.INS_UWD_RISK_COVERS.ForEach(cover => { // cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); // }); // ear.INS_UWD_RISK_COVERS = JSON.stringify(ear.INS_UWD_RISK_COVERS); // }); // location.INS_UDW_EAR_RISK = JSON.stringify(location.INS_UDW_EAR_RISK); // // ENG OTHER // location.INS_UDW_ENG_OTHER.ForEach(engOther => { // engOther.INS_UWD_RISK_COVERS.ForEach(cover => { // cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); // }); // engOther.INS_UWD_RISK_COVERS = JSON.stringify(engOther.INS_UWD_RISK_COVERS); // }); // location.INS_UDW_ENG_OTHER = JSON.stringify(location.INS_UDW_ENG_OTHER); // //CPM // location.INS_UDW_CPM_RISK.ForEach(cpm => { // cpm.INS_UWD_RISK_COVERS.ForEach(cover => { // cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD); // }); // cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS); // }); // location.INS_UDW_CPM_RISK = JSON.stringify(location.INS_UDW_CPM_RISK); // //TPL // location.INS_UDW_TPL_COVERS.ForEach(tpl => { // tpl.INS_UDW_COVER_DISCLOAD = JSON.stringify(tpl.INS_UDW_COVER_DISCLOAD); // }); // location.INS_UDW_TPL_COVERS = JSON.stringify(location.INS_UDW_TPL_COVERS); // //POL // location.INS_UDW_POL_COVERS.ForEach(pol => { // pol.INS_UDW_COVER_DISCLOAD = JSON.stringify(pol.INS_UDW_COVER_DISCLOAD); // }); // location.INS_UDW_POL_COVERS = JSON.stringify(location.INS_UDW_POL_COVERS); //}); //u.gridPopulate($scope.locationGrid, policy.INS_UDW_ENGINEER_LOC); u.getGlobal("EngPolicyFill")(policy); u.setGlobal("RIData", policy.INS_RI_TTY_HEAD); $scope.PolicyCalculations(); }); }); /*------------------------------------- * 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_INS_SOURCE']", "check_insurance_source_code", "form input[name='INS_NAME']"); 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='POLH_CUST_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']"); /*----------------------------- * //Risk Cover Rate Calculation *---------------------------*/ $("#RCOV_GROSS_PREM_FC").prop("disabled", true); $("#RCOV_NET_PREM_FC").prop("disabled", true); $("#RCOV_RATE").blur(rateFunction); $("#RCOV_SI_FC").blur(rateFunction); function rateFunction() { //alert("Input field lost focus."); var grossPremFc = 0; var netPremFc = 0; if ($("#RCOV_RATE").val() > 100) { $("#RCOV_RATE").val(""); return u.growl_warning("Rate cannot exceed 100"); } if (!u.field_empty("#RCOV_SI_FC") && !u.field_empty("#RCOV_RATE")) { grossPremFc = ($("#RCOV_SI_FC").val() * $("#RCOV_RATE").val() * 0.01).toFixed(2); //grossPremBC = parseFloat(grossPremFC / ExchangeRate).toFixed(2); netPremFc = ($("#RCOV_SI_FC").val() * $("#RCOV_RATE").val() * 0.01).toFixed(2); //NetPremBC = parseFloat(NetPremFC / ExchangeRate).toFixed(2); const currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": //console.log(u.getGlobal("shortPeriods")); //console.log(polNumDays); var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": //polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays; proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } proRataPerc = $("#RCOV_CODE").val() === "800704" ? 1 : proRataPerc; $("#RCOV_GROSS_PREM_FC").val((parseFloat(grossPremFc * proRataPerc)).toFixed(2)); $("#RCOV_GROSS_PREM_BC").val((parseFloat(grossPremFc * proRataPerc)).toFixed(2) * currRate); $("#RCOV_NET_PREM_FC").val((parseFloat(netPremFc * proRataPerc)).toFixed(2)); $("#RCOV_NET_PREM_BC").val((parseFloat(netPremFc * proRataPerc)).toFixed(2) * currRate); $("#RCOV_ANNL_PREM_FC").val(netPremFc); $("#RCOV_ANNL_PREM_BC").val((parseFloat(netPremFc * currRate)).toFixed(2)); } } $("#cartplForm .UAC_CVR_SI_FC").blur(function () { $scope.locCoversPremCalc("#cartplForm"); }); $("#cartplForm .UAC_CVR_RATE").blur(function () { $scope.locCoversPremCalc("#cartplForm"); }); $("#carlossopForm .UAC_CVR_SI_FC").blur(function () { $scope.locCoversPremCalc("#carlossopForm"); }); $("#carlossopForm .UAC_CVR_RATE").blur(function () { $scope.locCoversPremCalc("#carlossopForm"); }); $scope.locCoversPremCalc = function (form) { //alert("Input field lost focus."); var grossPremFc = 0; var netPremFc = 0; if ($(`${form} .UAC_CVR_RATE`).val() > 100) { $(`${form} .UAC_CVR_RATE`).val(""); return u.growl_warning("Rate cannot exceed 100"); } const currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod.perc) / 100; break; case "PR": //polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays; proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } if (!u.field_empty(`${form} .UAC_CVR_SI_FC`) && !u.field_empty(`${form} .UAC_CVR_RATE`)) { grossPremFc = ($(`${form} .UAC_CVR_SI_FC`).val() * $(`${form} .UAC_CVR_RATE`).val() * 0.01).toFixed(2); netPremFc = ($(`${form} .UAC_CVR_SI_FC`).val() * $(`${form} .UAC_CVR_RATE`).val() * 0.01).toFixed(2); $(`${form} .UAC_CVR_GROSS_PREM_FC`).val(parseFloat(grossPremFc * proRataPerc)); $(`${form} .UAC_CVR_GROSS_PREM_FC`).val(parseFloat(grossPremFc * proRataPerc) * currRate); $(`${form} .UAC_CVR_NET_PREM_FC`).val(parseFloat(netPremFc * proRataPerc)); $(`${form} .UAC_CVR_NET_PREM_FC`).val(parseFloat(netPremFc * proRataPerc) * currRate); $(`${form} .UAC_CVR_ANNUAL_PREM_FC`).val(netPremFc); $(`${form} .UAC_CVR_ANNUAL_PREM_FC`).val(parseFloat(netPremFc * currRate)); } }; /*----------------------------- * //Risk Premium entry *---------------------------*/ document.getElementById("RCOV_SI_FC").addEventListener("focusout", premiumEntry); function premiumEntry() { var grid = $scope.cover_grid; var selId = grid.jqGrid("getGridParam", "selrow"); var userpremium = grid.jqGrid("getCell", selId, "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; }; } //Policy Period days calculations/ //Policy Period days calculations/ //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(); //set the eng start date to same as policy start date $("#ENG_OTHER_START_DATE").val(sDate); $("#ENG_OTHER_END_DATE").val(eDate); var sdte = new Date(sDate); var polUwy = u.getYear(sDate); $("#POLH_POL_UW_YEAR").val(polUwy); $("#ENG_UW_YEAR").val(polUwy); var polPeriodDays = u.totalDays(eDate, sDate); if (polPeriodDays > 0) { $("#POLH_POL_DAYS").val(polPeriodDays); $("#ENG_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(""); // $("#ENG_END_DATE").val(""); $("#ENG_PERIOD_DAYS").val(""); } } // Cover level SI and Premium Calculations: $("#btn_get_Cover_Premiums").click(function () { $scope.SumCarCoverValues(); }); // calculate sum of cover amounts $scope.SumCpmCoverValues = function () { //Declare variables var riskSumSifc = 0; var riskSumSibc = 0; var sumGrossPremFc = 0; var sumGrossPremBc = 0; var sumNetPremFc = 0; var sumNetPremBc = 0; var sumLoadFc = 0; var sumLoadBc = 0; var sumDisFc = 0; var sumDisBc = 0; var sumRiPremFc = 0; var sumRiPremBc = 0; var sumRiSiFc = 0; var sumRiSiBc = 0; var sumTotalPremFc = 0; var sumTotalPremBc = 0; //Risk Grid var riskgrid = $scope.cpmRiskGrid; var riskRowId = u.getSelRow(riskgrid); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": //polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays; proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } const coverGrid = $scope.cover_grid, covers = u.get_grid_data(coverGrid); if (covers.Any()) { covers.ForEach(c => { if (c.RCOV_STATUS !== "D") { if (c.RCOV_USER_PREM_YN === "Y") { sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumNetPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumNetPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); } else { sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumNetPremFc += (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_FC || 0) + parseFloat(c.RCOV_LOAD_FC || 0);; sumNetPremBc += (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_BC || 0) + parseFloat(c.RCOV_LOAD_BC || 0);; } sumLoadFc += parseFloat(c.RCOV_LOAD_FC || 0); sumLoadBc += parseFloat(c.RCOV_LOAD_BC || 0); sumDisFc += parseFloat(c.RCOV_DISC_FC || 0); sumDisBc += parseFloat(c.RCOV_DISC_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_NET_PREM_FC || 0); sumRiPremBc += parseFloat(c.RCOV_NET_PREM_BC || 0); } if (c.RCOV_RI_SI_YN === "Y") { sumRiSiFc += parseFloat(c.RCOV_SI_FC || 0); sumRiSiBc += parseFloat(c.RCOV_SI_BC || 0); riskSumSifc += parseFloat(c.RCOV_SI_FC || 0); riskSumSibc += parseFloat(c.RCOV_SI_BC || 0); } } }); //var totalDays = parseInt(u.totalDays($("#POLH_POL_START_DATE").val(), $("#POLH_POL_START_DATE").val())); //const proRata = parseFloat(totalDays / 365); // set risk SI and Premiums vlues, u.setCell(riskgrid, riskRowId, "CPM_RISK_PREM_FC", parseFloat(sumNetPremFc)); u.setCell(riskgrid, riskRowId, "CPM_RISK_PREM_BC", (sumNetPremBc)); u.setCell(riskgrid, riskRowId, "CPM_SI_FC", riskSumSifc); u.setCell(riskgrid, riskRowId, "CPM_SI_BC", riskSumSibc); u.setCell(riskgrid, riskRowId, "CPM_TOT_PREM_FC", sumTotalPremFc); u.setCell(riskgrid, riskRowId, "CPM_TOT_PREM_BC", sumTotalPremBc); //checkif we are to apply EML //if (riskgrid.jqGrid("getCell", riskRowId, "CPM_EML_YN") === "Y") { // var emplPerc = parseFloat(u.getCell(riskgrid,riskRowId,"CPM_EML_PERC")); // u.setCell(riskgrid, riskRowId, "CPM_RI_SI_FC", parseFLoat(sumRiSiFc) * (emplPerc / 100)); // u.setCell(riskgrid, riskRowId, "CPM_RI_SI_BC", parseFloat(sumRiSiBc) * (emplPerc / 100)); //} else { u.setCell(riskgrid, riskRowId, "CPM_RI_SI_FC", sumRiSiFc); u.setCell(riskgrid, riskRowId, "CPM_RI_SI_BC", sumRiSiBc); //} // u.setCell(riskgrid, riskRowId, "CPM_RI_PREM_FC", sumRiPremFc); u.setCell(riskgrid, riskRowId, "CPM_RI_PREM_BC", sumRiPremBc); u.setCell(riskgrid, riskRowId, "CPM_LOAD_FC", sumLoadFc); u.setCell(riskgrid, riskRowId, "CPM_LOAD_BC", sumLoadBc); u.setCell(riskgrid, riskRowId, "CPM_DISC_FC", sumDisFc); u.setCell(riskgrid, riskRowId, "CPM_DISC_BC", sumDisBc); u.setCell(riskgrid, riskRowId, "INS_UWD_RISK_COVERS", covers); } else { var locations = u.get_grid_data(u.getGlobal("udwEngGrid")); var cpmRisks = []; locations.ForEach(loc => { var carRisks = u.parseJson(loc.INS_UDW_CAR_RISK); carRisks.ForEach(car => { if (car.CAR_STATUS !== "D") { cpmRisks = u.parseJson(car.INS_UDW_CPM_RISK); cpmRisks.ForEach(cpm => { if (cpm.CPM_STATUS !== "D") { var covers = u.parseJson(cpm.INS_UWD_RISK_COVERS); covers.ForEach(c => { if (c.RCOV_STATUS !== "D") { if (c.RCOV_USER_PREM_YN === "Y") { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0); c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumGrossPremBc += 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); } else { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; c.RCOV_NET_PREM_FC = (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_FC || 0) + parseFloat(c.RCOV_LOAD_FC || 0); c.RCOV_NET_PREM_BC = (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_BC || 0) + parseFloat(c.RCOV_LOAD_BC || 0); sumNetPremFc += (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_FC || 0) + parseFloat(c.RCOV_LOAD_FC || 0); sumNetPremBc += (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_BC || 0) + parseFloat(c.RCOV_LOAD_BC || 0); } sumLoadFc += parseFloat(c.RCOV_LOAD_FC || 0); sumLoadBc += parseFloat(c.RCOV_LOAD_BC || 0); sumDisFc += parseFloat(c.RCOV_DISC_FC || 0); sumDisBc += parseFloat(c.RCOV_DISC_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") { if (c.RCOV_USER_PREM_YN === "Y") { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); } else { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; } } if (c.RCOV_RI_SI_YN === "Y") { sumRiSiFc += parseFloat(c.RCOV_SI_FC || 0); sumRiSiBc += parseFloat(c.RCOV_SI_BC || 0); riskSumSifc += parseFloat(c.RCOV_SI_FC || 0); riskSumSibc += parseFloat(c.RCOV_SI_BC || 0); } } }); cpm.INS_UWD_RISK_COVERS = covers; cpm.CPM_RISK_PREM_FC = sumNetPremFc; cpm.CPM_RISK_PREM_BC = sumNetPremBc; cpm.CPM_SI_FC = riskSumSifc; cpm.CPM_SI_BC = riskSumSibc; cpm.CPM_TOT_PREM_FC = sumTotalPremFc; cpm.CPM_TOT_PREM_BC = sumTotalPremBc; cpm.CPM_RI_SI_FC = sumRiSiFc; cpm.CPM_RI_SI_BC = sumRiSiBc; cpm.CPM_RI_PREM_FC = sumRiPremFc; cpm.CPM_RI_PREM_BC = sumRiPremBc; cpm.CPM_LOAD_FC = sumLoadFc; cpm.CPM_LOAD_BC = sumLoadBc; cpm.CPM_DISC_FC = sumDisFc; cpm.CPM_DISC_BC = sumDisBc; riskSumSifc = 0; riskSumSibc = 0; sumGrossPremFc = 0; sumGrossPremBc = 0; sumNetPremFc = 0; sumNetPremBc = 0; sumLoadFc = 0; sumLoadBc = 0; sumDisFc = 0; sumDisBc = 0; sumRiPremFc = 0; sumRiPremBc = 0; sumRiSiFc = 0; sumRiSiBc = 0; sumTotalPremFc = 0; sumTotalPremBc = 0; } }); car.INS_UDW_CPM_RISK = cpmRisks; } }); loc.INS_UDW_CAR_RISK = carRisks; }); //u.setGridColumn(u.getGlobal("udwEngGrid"), // { // "INS_UDW_CAR_RISK": function (val) { // var carr = u.parseJson(val); // carr.INS_UDW_CPM_RISK = JSON.stringify(cpmRisks); // return JSON.stringify(carr); // } // }); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.grid_populate(u.getGlobal("udwEngGrid"), "", locations); } }; // calculate sum of cover amounts $scope.SumCarCoverValues = function () { //Policy Level SI and premium Calculat { //Declare variables var riskSumSifc = 0; var riskSumSibc = 0; var sumGrossPremFc = 0; var sumGrossPremBc = 0; var sumNetPremFc = 0; var sumNetPremBc = 0; var sumLoadFc = 0; var sumLoadBc = 0; var sumDisFc = 0; var sumDisBc = 0; var sumRiPremFc = 0; var sumRiPremBc = 0; var sumRiSiFc = 0; var sumRiSiBc = 0; var sumTotalPremFc = 0; var sumTotalPremBc = 0; //Risk Grid var riskgrid = $scope.carRiskGrid; var riskRowId = u.getSelRow(riskgrid); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); proRataPerc = parseFloat(shortPeriod[0].perc) / 100; break; case "PR": //polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays; proRataPerc = parseFloat(polNumDays / 365); break; case "FP": proRataPerc = 1; break; } const coverGrid = $scope.cover_grid; var covers = u.get_grid_data(coverGrid); if (covers.Any()) { covers.ForEach(c => { if (c.RCOV_STATUS !== "D") { if (c.RCOV_USER_PREM_YN === "Y") { sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); //sumNetPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); //sumNetPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumNetPremFc += parseFloat(c.RCOV_NET_PREM_FC || 0); sumNetPremBc += parseFloat(c.RCOV_NET_PREM_BC || 0); } else { sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumNetPremFc += (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_FC || 0) + parseFloat(c.RCOV_LOAD_FC || 0); sumNetPremBc += (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_BC || 0) + parseFloat(c.RCOV_LOAD_BC || 0); } sumLoadFc += parseFloat(c.RCOV_LOAD_FC || 0); sumLoadBc += parseFloat(c.RCOV_LOAD_BC || 0); sumDisFc += parseFloat(c.RCOV_DISC_FC || 0); sumDisBc += parseFloat(c.RCOV_DISC_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") { if (c.RCOV_USER_PREM_YN === "Y") { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); } else { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; } } if (c.RCOV_RI_SI_YN === "Y") { sumRiSiFc += parseFloat(c.RCOV_SI_FC || 0); sumRiSiBc += parseFloat(c.RCOV_SI_BC || 0); riskSumSifc += parseFloat(c.RCOV_SI_FC || 0); riskSumSibc += parseFloat(c.RCOV_SI_BC || 0); } } }); // set risk SI and Premiums vlues, u.setCell(riskgrid, riskRowId, "CAR_RISK_PREM_FC", parseFloat(sumNetPremFc)); u.setCell(riskgrid, riskRowId, "CAR_RISK_PREM_BC", parseFloat(sumNetPremBc)); u.setCell(riskgrid, riskRowId, "CAR_SI_FC", riskSumSifc); u.setCell(riskgrid, riskRowId, "CAR_SI_BC", riskSumSibc); u.setCell(riskgrid, riskRowId, "CAR_TOT_PREM_FC", parseFloat(sumTotalPremFc)); u.setCell(riskgrid, riskRowId, "CAR_TOT_PREM_BC", parseFloat(sumTotalPremBc)); //checkif we are to apply EML if (riskgrid.jqGrid("getCell", riskRowId, "CAR_EML_YN") === "Y") { var emplPerc = (parseFloat(u.getCell(riskgrid, riskRowId, "CAR_EML_PERC")) * 0.01).toFixed(2); u.setCell(riskgrid, riskRowId, "CAR_RI_SI_FC", (parseFloat(sumRiSiFc) * emplPerc).toFixed(2)); u.setCell(riskgrid, riskRowId, "CAR_RI_SI_BC", (parseFloat(sumRiSiBc) * emplPerc).toFixed(2)); } else { u.setCell(riskgrid, riskRowId, "CAR_RI_SI_FC", sumRiSiFc); u.setCell(riskgrid, riskRowId, "CAR_RI_SI_BC", sumRiSiBc); } // u.setCell(riskgrid, riskRowId, "CAR_RI_PREM_FC", sumRiPremFc); u.setCell(riskgrid, riskRowId, "CAR_RI_PREM_BC", sumRiPremBc); u.setCell(riskgrid, riskRowId, "CAR_LOAD_FC", sumLoadFc); u.setCell(riskgrid, riskRowId, "CAR_LOAD_BC", sumLoadBc); u.setCell(riskgrid, riskRowId, "CAR_DISC_FC", sumDisFc); u.setCell(riskgrid, riskRowId, "CAR_DISC_BC", sumDisBc); u.setCell(riskgrid, riskRowId, "INS_UWD_RISK_COVERS", covers); } else { var locations = u.get_grid_data(u.getGlobal("udwEngGrid")); var carRisks = []; locations.ForEach(loc => { carRisks = u.parseJson(loc.INS_UDW_CAR_RISK); carRisks.ForEach(car => { if (car.CAR_STATUS !== "D") { var covers = u.parseJson(car.INS_UWD_RISK_COVERS); covers.ForEach(c => { if (c.RCOV_STATUS !== "D") { if (c.RCOV_USER_PREM_YN === "Y") { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0); c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0); sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumGrossPremBc += 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); } else { c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; sumGrossPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumGrossPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; c.RCOV_NET_PREM_FC = (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_FC || 0) + parseFloat(c.RCOV_LOAD_FC || 0); c.RCOV_NET_PREM_BC = (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_BC || 0) + parseFloat(c.RCOV_LOAD_BC || 0) ; sumNetPremFc += (parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_FC || 0) + parseFloat(c.RCOV_LOAD_FC || 0); sumNetPremBc += (parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc) - parseFloat(c.RCOV_DISC_BC || 0) + parseFloat(c.RCOV_LOAD_BC || 0); } sumLoadFc += parseFloat(c.RCOV_LOAD_FC || 0); sumLoadBc += parseFloat(c.RCOV_LOAD_BC || 0); sumDisFc += parseFloat(c.RCOV_DISC_FC || 0); sumDisBc += parseFloat(c.RCOV_DISC_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") { if (c.RCOV_USER_PREM_YN === "Y") { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0); } else { sumRiPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0) * proRataPerc; sumRiPremBc += parseFloat(c.RCOV_ANNL_PREM_BC || 0) * proRataPerc; } } if (c.RCOV_RI_SI_YN === "Y") { sumRiSiFc += parseFloat(c.RCOV_SI_FC || 0); sumRiSiBc += parseFloat(c.RCOV_SI_BC || 0); riskSumSifc += parseFloat(c.RCOV_SI_FC || 0); riskSumSibc += parseFloat(c.RCOV_SI_BC || 0); } } }); car.INS_UWD_RISK_COVERS = covers; car.CAR_RISK_PREM_FC = sumNetPremFc || 0; car.CAR_RISK_PREM_BC = sumNetPremBc || 0; car.CAR_SI_FC = riskSumSifc || 0; car.CAR_SI_BC = riskSumSibc || 0; car.CAR_TOT_PREM_FC = sumTotalPremFc || 0; car.CAR_TOT_PREM_BC = sumTotalPremBc || 0; car.CAR_RI_SI_FC = sumRiSiFc || 0; car.CAR_RI_SI_BC = sumRiSiBc || 0; car.CAR_RI_PREM_FC = sumRiPremFc || 0; car.CAR_RI_PREM_BC = sumRiPremBc || 0; car.CAR_LOAD_FC = sumLoadFc || 0; car.CAR_LOAD_BC = sumLoadBc || 0; car.CAR_DISC_FC = sumDisFc || 0; car.CAR_DISC_BC = sumDisBc || 0; car.CAR_PERIOD_DAYS = polNumDays; riskSumSifc = 0; riskSumSibc = 0; sumNetPremFc = 0; sumNetPremBc = 0; sumLoadFc = 0; sumLoadBc = 0; sumDisFc = 0; sumDisBc = 0; sumRiPremFc = 0; sumRiPremBc = 0; sumRiSiFc = 0; sumRiSiBc = 0; sumTotalPremFc = 0; sumTotalPremBc = 0; } }); loc.INS_UDW_CAR_RISK = carRisks; loc.ENG_PERIOD_DAYS = polNumDays; }); //u.setGridColumn(u.getGlobal("udwEngGrid"), // { // "ENG_PERIOD_DAYS": polNumDays.toFixed(0), // "INS_UDW_CAR_RISK": JSON.stringify(carRisks) // }); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.grid_populate(u.getGlobal("udwEngGrid"), "", locations); } }; // 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.carRiskGrid; 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, "CAR_SI_FC")); polSibc += parseFloat(polgrid.jqGrid("getCell", currRow, "CAR_SI_BC")); polGrossPremFc += parseFloat(polgrid.jqGrid("getCell", currRow, "CAR_TOT_PREM_FC")); polGrossPremBc += parseFloat(polgrid.jqGrid("getCell", currRow, "CAR_TOT_PREM_BC")); polLoadFc += parseFloat(polgrid.jqGrid("getCell", currRow, "CAR_LOAD_FC")); polLoadBc += parseFloat(polgrid.jqGrid("getCell", currRow, "CAR_LOAD_BC")); polDisFc += parseFloat(polgrid.jqGrid("getCell", currRow, "CAR_DISC_FC")); polDisBc += parseFloat(polgrid.jqGrid("getCell", currRow, "CAR_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_motor_details */ async function getDefaultRiskCovers(riskId) { if ($("#POLH_SUB_CLASS_CODE").val() == "") { u.growl_warning("Please select a product"); } 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); } //var riskId = 0; //var engid = 0; ////switch ($scope.coverTarget) { //switch (u.getGlobal("coverTarget")) { // case "CAR": // riskId = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid).CAR_SYS_ID; // engid = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid).CAR_ENG_SYS_ID; // break; // case "CPM": // riskId = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_SYS_ID; // engid = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_ENG_SYS_ID; // break; //} //send parameters and get Default covers from the database var result = await s.getRiskDefaulCoversAsync(productRiskData); if (result && result.length && result.length > 0) { result.ForEach(c => { //alert(JSON.stringify(result)); c["RCOV_NAME"] = c["MS_UDW_COVERS"]["CVR_NAME"]; c["RCOV_TYPE"] = c["MS_UDW_COVERS"]["CVR_TYPE"]; c["RCOV_RI_YN"] = c["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"]; c["CVR_USER_PREMIUM"] = c["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; c["RCOV_PREM_REFUND"] = c["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; c["RCOV_RATE_CHANGE"] = c["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; c["RCOV_SI_CHANGE"] = c["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; c["RCOV_COVER_LEVEL"] = c["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; c["RCOV_RISK_SYS_ID"] = riskId; //c["RCOV_RISK_NO"] = engid; //c["RCOV_SI_FC"] = $("#RCOV_SI_FC").val(); var deftCoverCode = c.RCOV_CODE; var newRiskCode = riskId; 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(c.ID, c); } else { u.growl_warning(`Cover exists for this Risk, you cannot add same Cover ${deftCoverCode}`); } }); //SumCarCoverValues(); return result; } } } //Get default Covers if not added $("#btn_get_DeftCovers").click(async function () { await getDefaultRiskCovers(); }); /*-------------------------------------------------- * FAC Partiicpating company Details Modal *------------------------------------------------*/ // $("#btn_Participant").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"); } }); $("#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.carRiskGrid)) return u.growl_info("Please enter risk details first"); $("#MemberIwardModal").modal(); var message = "FAC Inward Details"; $("#textCoinsMember").text(message); }); /*------------------------- * FAC Inward Modal *-------------------------*/ //$("#btnCoInsMember").on("click", // function() { // if (u.grid_empty($scope.carRiskGrid)) return u.growl_info("Please enter risk details first"); // $("#MemberIwardModal").modal(); //$('#FINW_CEDANT_CODE').val($('#POLH_CMP_CODE').val()); //$('#FINW_CEDANT_NAME').val($('#CMP_NAME').val()); // var message = "Co-Insurance Details"; // $("#textCoinsMember").text(message); //}); /*------------------------- * Coinsurance Leader Modal *-------------------------*/ //$("#btnCoInsLeader").on("click", // function () { // if (u.grid_empty($scope.carRiskGrid)) return u.growl_info("Please enter risk 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(); 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(); } }; /*--------------------------------------------- * EML Select Options *--------------------------------------------*/ $("form select[name='CAR_EML_YN']").change(function () { if ($(this).val() === "N") { $("#CAR_EML_PERC").prop("disabled", "disabled"); $("#CAR_EML_PERC").prop("disabled", "disabled"); } else if ($(this).val() === "Y") { $("#CAR_EML_PERC").removeAttr("disabled"); $("#CAR_EML_PERC").removeAttr("readonly"); } else { $("#CAR_EML_PERC").val(""); $("#CAR_EML_PERC").prop("disabled", "disabled"); } }); /*--------------------------------------------- * RE INSURANCE CALCULATIONS *--------------------------------------------*/ $scope.RICalculations = function () { if ($("#POLH_TXN_STATE").val() === "P") { u.clear_grid_data(u.getGlobal("udwRIGrid")); if (u.getGlobal("RIData")) { u.bigDataPopulate(u.getGlobal("udwRIGrid"), u.getGlobal("RIData")); } return; } //loop through all locations and apply treaty setup const locations = u.get_grid_data($scope.locationGrid); //check for ri combinations //const combined = locations.Where(loc => loc.ENG_RIC_YN === "Y"); //const distinctCombined = combined.Distinct(function (loc) { return loc.ENG_RIC_CODE; }); var riData = []; //perform ri allocations for none combined locations //locations.Where(loc => (loc.ENG_RIC_YN === "N")).ForEach(function (location) { locations.ForEach(function (location) { if (location.ENG_STATUS !== "D") { riData.Add({ RI_DESCRIPTION: $scope.riDisciption(location), RI_SI_FC: parseFloat(location.ENG_RI_SI_FC) || 0, RI_SI_BC: parseFloat(location.ENG_RI_SI_BC) || 0, RI_PREM_BC: parseFloat(location.ENG_RI_PREM_BC) || 0, RI_PREM_FC: parseFloat(location.ENG_RI_PREM_FC) || 0, RISK_ID: location.ENG_SYS_ID, EML_PERC: parseFloat(location.ENG_EML) || 0, FROM_DATE: location.ENG_START_DATE, TO_DATE: location.ENG_END_DATE, TOT_SI_FC: parseFloat(location.ENG_SI_FC) || 0, TOT_SI_BC: parseFloat(location.ENG_SI_BC) || 0, TOT_PREM_BC: parseFloat(location.ENG_TOT_PREM_BC) || 0, TOT_PREM_FC: parseFloat(location.ENG_TOT_PREM_FC) || 0, UW_YEAR: location.ENG_UW_YEAR || $("#POLH_POL_UW_YEAR").val(), RI_STATUS: location.ENG_STATUS }); } }); if (riData.Any()) { var ri = u.getGlobal("RiCalculations")(riData, $scope.treatyData) || []; u.clear_grid_data(u.getGlobal("udwRIGrid")); u.bigDataPopulate(u.getGlobal("udwRIGrid"), ri); u.getGlobal("showRICount")(); } }; $scope.PolicyCalculations = function () { //$scope.loader(function () { u.getGlobal("EngPremSummarizer")(); $scope.RICalculations(); u.getGlobal("facOutwardCalUpdate")(); $scope.policyCommissionSummarizer(); if ($("#POLH_TXN_STATE").val() === "E") { $scope.financialDiff(u.getGlobal("EngGetPolicyData")()); $("#suspensionDetails").show(); } //}); }; u.setGlobal("PolicyCalculations", $scope.PolicyCalculations); u.lovDropDown("#ENG_EARTHQ_ZONE", "get_lov_eqzone"); $("#btn_add_loc").click(function () { if (u.form_validation("#polheaderForm")) { //obtain the treaty setup for the selected product if (!$scope.treatyData) { 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"); $("#LocationModal").modal(); $("#ENG_CURRENCY").val($("#POLH_CURRENCY").val()); $("#ENG_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); // $("#ENG_START_DATE").val($("#POLH_POL_START_DATE").val()); $("#ENG_END_DATE").val($("#POLH_POL_END_DATE").val()); $("#ENG_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#ENG_CONST_FROM").val($("#POLH_POL_START_DATE").val()); $("#ENG_CONST_TO").val($("#POLH_POL_END_DATE").val()); $("#ENG_CONST_DAYS").val($("#POLH_POL_DAYS").val()); $("#ENG_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); //$("#ENG_MAINT_FROM").val(u.dateFastForward($("#POLH_POL_END_DATE").val(), 1, "day")); $("#ENG_VALUE_ADDED_TAX_PERC").val($("#POLH_VAT_PERC").val()); $("#ENG_VALUE_ADDED_TAX_YN").val($("#POLH_VAT_YN").val()); } 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."); }); } else { $("#LocationModal").modal(); $("#ENG_CURRENCY").val($("#POLH_CURRENCY").val()); $("#ENG_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); // $("#ENG_START_DATE").val($("#POLH_POL_START_DATE").val()); $("#ENG_END_DATE").val($("#POLH_POL_END_DATE").val()); $("#ENG_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); $("#ENG_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#ENG_CONST_FROM").val($("#POLH_POL_START_DATE").val()); $("#ENG_CONST_TO").val($("#POLH_POL_END_DATE").val()); $("#ENG_CONST_DAYS").val($("#POLH_POL_DAYS").val()); $("#ENG_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); //$("#ENG_MAINT_FROM").val(u.dateFastForward($("#POLH_POL_END_DATE").val(), 1, "day")); } $("#btn_update_location_details").addClass("m-hide"); $("#btn_add_location_details").removeClass("m-hide"); //u.form_reset("#engineeringForm"); } else { u.growl_warning("Please fill the Policy Header form and try again"); } }); $("#btn_edit_loc").click(function () { if (!u.getSelRow(u.getGlobal("udwEngGrid"))) return u.growl_info("Please select a location below"); $("#btn_update_location_details").removeClass("m-hide"); $("#btn_add_location_details").addClass("m-hide"); $("#LocationModal").modal(); }); /*-------------------------------------------------- * add Location *------------------------------------------------*/ // $("#btn_add_location_details").on("click", function () { if (u.form_validation("#engineeringForm")) { var gridData = u.get_grid_data($scope.locationGrid); if (gridData.Any(reg => reg.ENG_REGION_CODE === $("#ENG_REGION_CODE").val() && reg.ENG_AREA_CODE === $("#ENG_AREA_CODE").val() && reg.ENG_LOC_CODE === $("#ENG_LOC_CODE").val())) { u.modalWarning("There already exists in the grid a record with the same Region, Area, and Location. Please make sure you are not entering a duplicate entry"); } u.modalConfirmationAsync("Are you sure you want to add the Location Details?", async function () { var rowIds = $scope.locationGrid.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 region = $scope.locationGrid.jqGrid("getCell", currRow, "ENG_REGION_CODE"); var area = $scope.locationGrid.jqGrid("getCell", currRow, "ENG_AREA_CODE"); var location = $scope.locationGrid.jqGrid("getCell", currRow, "ENG_LOC_CODE"); code.push(`${region}${area}${location}`); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray(`${$("#ENG_REGION_CODE").val()}${$("#ENG_AREA_CODE").val()}${$("#ENG_LOC_CODE").val()}`, code) < 0) { var formData = u.parse_form("#engineeringForm"); formData.ENG_STATUS = "U"; formData.ENG_CRTE_BY = u.getUserCode(); formData.ENG_VALUE_ADDED_TAX_PERC = parseFloat($("#POLH_VAT_PERC").val() || 0) || 0; formData.ENG_VALUE_ADDED_TAX_YN = $("#POLH_VAT_YN").val() || "N"; formData.ENG_SYS_ID = await s.getSequenceAsync("INS_UDW_ENGINEER_SEQ"); if (!gridData.Any(x => u.parseJson(x.INS_UDW_ENGINEER_FEES).Any())) { var fees = await getProductComPulsoryFees(formData.ENG_SYS_ID); formData.INS_UDW_ENGINEER_FEES = fees.ToJson(); } $scope.locationGrid.addRowData(undefined, formData); u.hide_confirm(); u.growl_success("Location successfully added to grid"); $("#LocationModal").modal("hide"); u.form_reset("#engineeringForm"); u.getGlobal("showRiskCount")(u.get_grid_data($scope.locationGrid).Where(x => x.ENG_STATUS !== "D")); } else { u.hide_confirm(); u.growl_warning(`Location with the same Region, Area and Location already exists`); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from Location Grid *---------------------------------------------------*/ // $("#btn_remove_location_details").click(function () { if (u.grid_empty($scope.locationGrid)) return u.growl_info("Grid is empty"); var grid = $scope.locationGrid; var rowId = u.getSelRow(grid); if (!rowId) return u.growl_info("Select a risk to remove"); var recordStatus = grid.jqGrid("getCell", rowId, "ENG_STATUS"); var locId = parseInt(grid.jqGrid("getCell", rowId, "ENG_SYS_ID")); /*--------------------------------- * Display modal message *------------------------------*/ // u.modalConfirmation("Are you sure you want to remove the selected location?", () => { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ // if (recordStatus == "U") { if (!u.grid_empty($scope.reinsurance_grid)) { var newRi = []; u.get_grid_data($scope.reinsurance_grid).ForEach(x => { if (parseInt(x.TTH_RISK_SYS_ID) !== locId) { newRi.push(x); } }); u.clear_grid_data($scope.reinsurance_grid); u.grid_populate($scope.reinsurance_grid, "", newRi); } grid.jqGrid("delRowData", rowId); u.hide_confirm(); u.form_reset("#engineeringForm"); u.form_reset("#interestForm"); u.growl_success("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus == "A") { if (!u.grid_empty($scope.reinsurance_grid)) { var ri = u.get_grid_data($scope.reinsurance_grid); ri.ForEach(x => { if (parseInt(x.TTH_RISK_SYS_ID) === locId) { x.TTH_STATUS = "D"; } }); u.clear_grid_data($scope.reinsurance_grid); u.grid_populate($scope.reinsurance_grid, "", ri); } grid.jqGrid("setCell", rowId, "ENG_STATUS", "D"); $(`#${rowId}`, "#gridELoc").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") { if (!u.grid_empty($scope.reinsurance_grid)) { var ri = u.get_grid_data($scope.reinsurance_grid); ri.ForEach(x => { if (parseInt(x.TTH_RISK_SYS_ID) === locId) { x.TTH_STATUS = "A"; } }); u.clear_grid_data($scope.reinsurance_grid); u.grid_populate($scope.reinsurance_grid, "", ri); } $(`#${rowId}`, "#gridELoc").css({ color: "black" }); grid.jqGrid("setCell", rowId, "ENG_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } $scope.RecalculatePremium(); u.getGlobal("showRiskCount")(u.get_grid_data($scope.locationGrid).Any() ? u.get_grid_data($scope.locationGrid).Where(x => x.ENG_STATUS !== "D") : []); u.getGlobal("showRICount")(); }); }); /*-------------------------------- * Edit/Update Function Location Grid *------------------------------*/ // //$("#btn_update_location_details").on("click", function () { // if (u.grid_empty($scope.locationGrid)) return u.growl_info("Location grid is empty"); // if (u.form_validation("#engineeringForm")) { // u.modal_confirmation("Are you sure you want to update the selected Location?", function () { // var grid = $scope.locationGrid; // var rowId = grid.jqGrid("getGridParam", "selrow"); // var code = parseInt(grid.jqGrid("getCell", rowId, "ENG_SYS_ID")); // if (code === parseInt($("#ENG_SYS_ID").val())) { // var data = u.parse_form("#locationForm"); // for (var i in data) { // grid.jqGrid("setCell", rowId, i, data[i]); // } // u.hide_confirm(); // u.growl_success("Location Details updated"); // } else { // u.hide_confirm(); // u.growl_warning("Please select the correct row to edit"); // } // }); // } //}); /*----------------------------------- * exporting of the grid to excel Location *----------------------------------*/ $("#export-location-btn").click(function () { /* * function to export grid data into excel */ u.excel_export($scope.locationGrid, ["ID"], "Engineering_CAR_Location_List_Excel"); }); //$("#ENG_RIC_YN").change(function () { // switch ($(this).val()) { // case "Y": // $("#combination").show(0); // $("#ENG_RIC_CODE").prop("required", "required"); // break; // case "N": // $("#combination").hide(0); // $("#ENG_RIC_CODE").val(""); // $("#RIC_NAME").val(""); // $("#ENG_RIC_CODE").removeAttr("required"); // break; // default: // } //}); $("#btn_Loc_Onclose").click(function () { if (u.grid_empty($scope.locationGrid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function () { $("#LocationModal").modal("hide"); u.hide_confirm(); }); } else { $("#LocationModal").modal("hide"); } }); $(".fx").blur(function () { var curRate = parseFloat($("#POLH_CURRENCY_RATE").val()); $("#CAR_CON_PRICE_BC").val((parseFloat($("#CAR_CON_PRICE_FC").val() || 0) || 0 / curRate).toFixed(2)); $("#CAR_ITEMS_SUPPLIED_BC").val((parseFloat($("#CAR_ITEMS_SUPPLIED_FC").val() || 0) || 0 / curRate).toFixed(2)); $("#CAR_DEBRIS_BC").val((parseFloat($("#CAR_DEBRIS_FC").val() || 0) || 0 / curRate).toFixed(2)); }); $("#CPM_EXCESS_APP").change(function () { if ($(this).val() === "Y") { $("#cpmExcessBtn").prop("disabled", false); } else if ($(this).val() === "N") { $("#cpmExcessBtn").attr("disabled", "disabled"); $("#CPM_EXCESS_PERC").val(""); $("#CPM_EXCESS_NAR").val(""); } }); $("#CPM_EML_YN").change(function () { if ($(this).val() === "Y") { } else { $("#CPM_EML_PERC").val(""); $("#CPM_EML_PERC").attr("readonly", "readonly"); } }); //btn_cover_type /* * DISCOUNT AND LOADINGS FUNCTIONS */ //$("#btnDiscountLoadinOk").click(function () { // //if (!u.grid_empty($scope.polhdiscloading_grid)) { // if (!u.grid_empty($scope.coverDiscLoading_grid)) { // const selEngId = u.getSelRow($scope.locationGrid); // //fetch discounts // //const discounts = u.get_grid_data($scope.polhdiscloading_grid); // const discounts = u.get_grid_data($scope.coverDiscLoading_grid); // //calculate total discounts and add to NCD discount amount // //const totalDiscountFc = discounts.Where(dl => dl.DL_TYPE == "D").Sum(dl => parseFloat(dl.DL_AMNT_FC)); // const totalDiscountFc = discounts.Where(dl => dl.COVER_DL_TYPE === "D").Sum(dl => parseFloat(dl.COVER_DL_AMNT_FC)); // //const totalDiscountBc = discounts.Where(dl => dl.DL_TYPE == "D").Sum(dl => parseFloat(dl.DL_AMNT_BC)); // const totalDiscountBc = discounts.Where(dl => dl.COVER_DL_TYPE === "D").Sum(dl => parseFloat(dl.COVER_DL_AMNT_BC)); // //const totalLoadFc = discounts.Where(dl => dl.DL_TYPE == "L").Sum(dl => parseFloat(dl.DL_AMNT_FC)); // const totalLoadFc = discounts.Where(dl => dl.COVER_DL_TYPE === "L").Sum(dl => parseFloat(dl.COVER_DL_AMNT_FC)); // //const totalLoadBc = discounts.Where(dl => dl.DL_TYPE == "L").Sum(dl => parseFloat(dl.DL_AMNT_BC)); // const totalLoadBc = discounts.Where(dl => dl.COVER_DL_TYPE === "L").Sum(dl => parseFloat(dl.COVER_DL_AMNT_BC)); // u.setCell($scope.locationGrid, selEngId, "ENG_DISC_FC", (totalDiscountFc).toFixed(2)); // u.setCell($scope.locationGrid, selEngId, "ENG_DISC_BC", (totalDiscountBc).toFixed(2)); // u.setCell($scope.locationGrid, selEngId, "ENG_LOAD_FC", totalLoadFc.toFixed(2)); // u.setCell($scope.locationGrid, selEngId, "ENG_LOAD_BC", totalLoadBc.toFixed(2)); // u.setCell($scope.locationGrid, selEngId, "INS_UDW_RISK_DISCLOAD", JSON.stringify(discounts)); // $scope.PolicyCalculations(); // $("#riskDiscloadingModal").modal("hide"); // } // else { // u.modalConfirmation("Discounts and Loading grid is empty, are you sure you want to exit?", function () { // $("#riskDiscloadingModal").modal("hide"); // }); // } //}); //$("#btn_add_riskdiscloading").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 () { // const rowIds = $scope.riskdiscloading_grid.jqGrid("getDataIDs"); // /*---------------------------------------------- // * declare array to contain the codes to verify // *--------------------------------------------*/ // // // const code = []; // /*------------------------------------------------------------ // * iterate through the rows and check duplicate each of them // *----------------------------------------------------------*/ // // // for (var i = 0, len = rowIds.length; i < len; i++) { // const 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) { // const 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(undefined, formData); // u.hide_confirm(); // u.growl_success("Discount/Loading successfully added to grid"); // u.form_reset("#riskdiscloadingForm"); // } 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"); // } //}); //// Deleting //$("#btn_remove_riskdiscloadings").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"); // const code = grid.jqGrid("getCell", rowId, "DL_CODE"); // const 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"); // } // }); //}); //// Updating //$("#btn_update_riskdiscloading").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 () { // const grid = $scope.riskdiscloading_grid; // const rowId = grid.jqGrid("getGridParam", "selrow"); // const code = grid.jqGrid("getCell", rowId, "DL_CODE"); // if (code === $("input[name='DL_CODE']").val()) { // const data = u.parse_form("#riskdiscloadingForm"); // for (let 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"); // } // }); // } //}); //$("#btn_remove_location_details").click(function () { // if (u.grid_empty(u.getGlobal("udwEngGrid"))) return u.growl_info("Location grid is empty"); // var selectedLocationId = u.getSelRow(u.getGlobal("udwEngGrid")); // if (!selectedLocationId) return u.growl_info("Select a location to remove"); // var selectedLocation = u.getRow(selectedLocationId, u.getGlobal("udwEngGrid")); // u.modal_confirmation("Are you sure you want to remove this location", function () { // switch (selectedLocation.ENG_STATUS) { // case "U": // { // u.getGlobal("udwEngGrid").jqGrid('delRowData', selectedLocationId); // u.hide_confirm(); // u.growl_success("Selected location successfully deleted, and premium calculations updated"); // u.form_reset("#engineeringForm"); // } // break; // case "A": // { // u.getGlobal("udwEngGrid").jqGrid('setCell', selectedLocationId, 'ENG_STATUS', 'D'); // $('#' + selectedLocationId, '#gridELoc').css({ color: 'red' }); // u.hide_confirm(); // u.growl_success("Selected location successfully marked for deletion, please click on the save button to save changes"); // u.form_reset("#engineeringForm"); // } // break; // case "D": // { // $('#' + selectedLocationId, '#gridELoc').css({ color: 'black' }); // $scope.homeloc_grid.jqGrid('setCell', selectedLocationId, 'ENG_STATUS', 'A'); // u.hide_confirm(); // u.growl_success("Location successfully restored and policy calculations updated"); // } // break; // } // $scope.RecalculatePremium(); // }); //}); $("#btn_update_location_details").click(function () { if (u.grid_empty(u.getGlobal("udwEngGrid"))) return u.growl_info("Location grid is empty"); var selectedLocation = u.getSelRow(u.getGlobal("udwEngGrid")); if (!selectedLocation) return u.growl_info("Select a location to update"); if (u.form_validation("#engineeringForm")) { u.modal_confirmation("Are you sure you want to update the selected Location?", function () { var grid = u.getGlobal("udwEngGrid"); var code = grid.jqGrid("getCell", selectedLocation, "ENG_SYS_ID"); if (`${code}` === $("#ENG_SYS_ID").val()) { var data = u.parse_form("#engineeringForm"); for (var i in data) { grid.jqGrid("setCell", selectedLocation, i, data[i]); } u.hide_confirm(); u.growl_success("Location details updated"); $("#LocationModal").modal("hide"); u.form_reset("#engineeringForm"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); //$("#CAR_EXCESS_TYPE").change(async function () { // let excess = $(this).val(); // if (excess == "") { // $("#CAR_EXCESS_MIN").val(""); // $("#CAR_EXCESS_MAX").val(""); // $("#CAR_EXCESS_NAR").val(""); // $("#CAR_EXCESS_PERC").val(""); // return; // } // let excCompare = false; // let dInput = (excess == "TE" || excess == "FA"); // const rowId = u.getSelRow($scope.carRiskGrid); // if (rowId) { // const data = u.getRow(rowId, $scope.carRiskGrid); // excCompare = excess != data.CAR_EXCESS_TYPE; // if (!excCompare) { // $("#CAR_EXCESS_MIN").prop("disabled", dInput).val(data.CAR_EXCESS_MIN || ""); // $("#CAR_EXCESS_MAX").prop("disabled", dInput).val(data.CAR_EXCESS_MAX || ""); // $("#CAR_EXCESS_NAR").val(data.CAR_EXCESS_NAR || ""); // $("#CAR_EXCESS_PERC").val(data.CAR_EXCESS_PERC || ""); // return; // } // } else { excCompare = true; } // let result = excCompare ? await s.get_PExcessAsync(excess) : { state: excCompare }; // if (result.state) { // let Exdata = result.data; // $("#CAR_EXCESS_MIN").prop("disabled", dInput).val(Exdata.EXS_MIN_AMOUNT || ""); // $("#CAR_EXCESS_MAX").prop("disabled", dInput).val(Exdata.EXS_MAX_AMOUNT || ""); // Exdata.EXS_NART = `${excess === "FA" ? "(" + $("#POLH_CURRENCY").val() + ")" : ""} ${Exdata.EXS_VALUE} ${Exdata.EXS_NART} ${!dInput ? ", Minimum " + (Exdata.EXS_MIN_AMOUNT || 0) + ", Maximum " + (Exdata.EXS_MAX_AMOUNT || 0) : ""}`; // $("#CAR_EXCESS_PERC").val(Exdata.EXS_VALUE || ""); // //$("#LINT_EXCESS_DESC").val(Exdata.EXS_DESC || ""); // $("#CAR_EXCESS_NAR").val(Exdata.EXS_NART || ""); // //$("#LINT_EXCESS_NAME").val(Exdata.EXS_NAME || ""); // //$("#LINT_EXCESS_VALUE_TYPE").val(Exdata.EXS_TYPE || ""); // } //}); //$("#CAR_EXCESS_PERC, #CAR_EXCESS_MIN, #CAR_EXCESS_MAX").blur(function () { // let excess = $("#CAR_EXCESS_TYPE").val(); // if (excess == "--") return; // $("#CAR_EXCESS_NAR").val(""); // let dInput = (excess == "TE" || excess == "FP"); // let Exdata = { "EXS_VALUE": ($("#CAR_EXCESS_PERC").val() || ""), /*"EXS_NART": ($("#LINT_EXCESS_DESC").val() || ""),*/ "EXS_MIN_AMOUNT": ($("#CAR_EXCESS_MIN").val() || ""), "EXS_MAX_AMOUNT": ($("#CAR_EXCESS_MAX").val() || "") }; // let narration = `${excess === "FA" ? "(" + $("#POLH_CURRENCY").val() + ")" : ""} ${Exdata.EXS_VALUE} ${Exdata.EXS_NART} ${!dInput ? ", Minimum " + (Exdata.EXS_MIN_AMOUNT || 0) + ", Maximum " + (Exdata.EXS_MAX_AMOUNT || 0) : ""}`; // $("#CAR_EXCESS_NAR").val(narration || ""); //}); $("#btn_add_tpl").click(function () { if (!u.form_validation("#tplRiskForm")) return u.growl_info("All fields marked red are required."); u.modalConfirmationAsync("Are you sure you want to add this Third Party Loss?", async function () { var risk = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid); var tplData = u.get_grid_data(u.getGlobal("udwEngTplRiskGrid")); var formData = u.parse_form("#tplRiskForm"); if (tplData.Any(tpl => tpl.TPL_DESCRIPTION === formData.TPL_DESCRIPTION && tpl.TPL_EXCESS_TYPE === formData.TPL_EXCESS_TYPE)) return u.growl_info("Cannot add this TPL record. Description and/or excess type must be different from previously added TPL"); formData.TPL_STATUS = "U"; formData.TPL_CRTE_BY = u.getUserCode(); formData.TPL_RISK_SYS_ID = risk.CAR_SYS_ID; formData.TPL_SYS_ID = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); var tplCovers = await u.getGlobal("EngGetAddOnDefaultCovers")(`${$("#POLH_SUB_CLASS_CODE").val()}_TPL`); var tplList = []; if (tplCovers.length > 0) { tplCovers.ForEach(tpl => { tplList.Add({ //"UAC_CVR_CODE": tpl.MS_UDW_COVERS.CVR_CODE, //"UAC_CVR_NAME": tpl.MS_UDW_COVERS.CVR_NAME, //"UAC_CVR_RATE": tpl.RCOV_RATE, //"UAC_CVR_SI_FC": tpl.RCOV_SI_FC, //"UAC_GROSS_PREM_FC": tpl.RCOV_GROSS_PREM_FC, //"UAC_NET_PREM_FC": tpl.RCOV_NET_PREM_FC, //"UAC_CVR_LOC_SYS_ID": formData.TPL_SYS_ID, //"UAC_CVR_TYPE": tpl.RCOV_TYPE, //"UAC_CVR_SI_CHANGE": tpl.RCOV_SI_CHANGE || "N", //"UAC_CVR_RATE_CHANGE": tpl.RCOV_RATE_CHANGE || "N", //"UAC_CVR_RI_SI_YN": tpl.RCOV_RI_SI_YN || "N", //"UAC_CVR_RI_PREM_YN": tpl.RCOV_RI_PREM_YN || "N", "RCOV_CODE": tpl.MS_UDW_COVERS.CVR_CODE, "RCOV_NAME": tpl.MS_UDW_COVERS.CVR_NAME, "RCOV_RATE": tpl.RCOV_RATE, "RCOV_SI_FC": tpl.RCOV_SI_FC, "RCOV_GROSS_PREM_FC": tpl.RCOV_GROSS_PREM_FC, "RCOV_NET_PREM_FC": tpl.RCOV_NET_PREM_FC, "RCOV_RISK_SYS_ID": formData.TPL_SYS_ID, "RCOV_TYPE": tpl.RCOV_TYPE, "RCOV_SI_CHANGE": tpl.RCOV_SI_CHANGE || "N", "RCOV_RATE_CHANGE": tpl.RCOV_RATE_CHANGE || "Y", "RCOV_RI_SI_YN": tpl.RCOV_RI_SI_YN || "N", "RCOV_RI_PREM_YN": tpl.RCOV_RI_PREM_YN || "N", "RCOV_SYS_ID": tpl.RCOV_SYS_ID, "RCOV_RATED_YN": tpl.RCOV_RATED_YN || "Y" }); }); formData.INS_UWD_RISK_COVERS = JSON.stringify(tplList); } u.getGlobal("udwEngTplRiskGrid").addRowData(undefined, formData); u.hide_confirm(); u.growl_success("Third Party Loss successfully added to grid"); u.hide_confirm(); u.form_reset("#tplRiskForm"); }); }); $("#btn_add_lop_risk").click(function () { if (!u.form_validation("#lopRiskForm")) return u.growl_info("All fields marked red are required."); u.modalConfirmationAsync("Are you sure you want to add this Loss of Profit?", async function () { var risk = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid); var lopData = u.get_grid_data(u.getGlobal("udwEngLopRiskGrid")); var formData = u.parse_form("#lopRiskForm"); if (lopData.Any(tpl => tpl.LOP_DESCRIPTION === formData.LOP_DESCRIPTION && tpl.LOP_EXCESS_TYPE === formData.LOP_EXCESS_TYPE)) return u.growl_info("Cannot add this LOP record. Description and/or excess type must be different from previously added LOP"); formData.LOP_STATUS = "U"; formData.LOP_CRTE_BY = u.getUserCode(); formData.LOP_RISK_SYS_ID = risk.CAR_SYS_ID; formData.LOP_SYS_ID = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); var lopCovers = await u.getGlobal("EngGetAddOnDefaultCovers")(`${$("#POLH_SUB_CLASS_CODE").val()}_LOP`); var lopList = []; if (lopCovers.length > 0) { lopCovers.ForEach(lop => { lopList.Add({ "RCOV_CODE": lop.MS_UDW_COVERS.CVR_CODE, "RCOV_NAME": lop.MS_UDW_COVERS.CVR_NAME, "RCOV_RATE": lop.RCOV_RATE, "RCOV_SI_FC": lop.RCOV_SI_FC, "RCOV_GROSS_PREM_FC": lop.RCOV_GROSS_PREM_FC, "RCOV_NET_PREM_FC": lop.RCOV_NET_PREM_FC, "RCOV_RISK_SYS_ID": formData.LOP_SYS_ID, "RCOV_TYPE": lop.RCOV_TYPE, "RCOV_SI_CHANGE": lop.RCOV_SI_CHANGE || "N", "RCOV_RATE_CHANGE": lop.RCOV_RATE_CHANGE || "Y", "RCOV_RI_SI_YN": lop.RCOV_RI_SI_YN || "N", "RCOV_RI_PREM_YN": lop.RCOV_RI_PREM_YN || "N", "RCOV_SYS_ID": lop.RCOV_SYS_ID, "RCOV_RATED_YN": lop.RCOV_RATED_YN || "Y" }); }); formData.INS_UWD_RISK_COVERS = JSON.stringify(lopList); } u.getGlobal("udwEngLopRiskGrid").addRowData(undefined, formData); u.hide_confirm(); u.growl_success("Loss of Profit successfully added to grid"); u.hide_confirm(); u.form_reset("#lopRiskForm"); }); }); $("#btn_TPL_OnClose").click(function () { var rowId = u.getSelRow($scope.carRiskGrid); if (u.grid_empty(u.getGlobal("udwEngTplRiskGrid"))) { u.modal_confirmation("The Grid is empty, do you want to close form?", function () { u.setCell($scope.carRiskGrid, rowId, "INS_UDW_TPL", u.get_grid_data(u.getGlobal("udwEngTplRiskGrid"))); $("#TPLRiskModal").modal("hide"); u.hide_confirm(); }); } else { u.setCell($scope.carRiskGrid, rowId, "INS_UDW_TPL", u.get_grid_data(u.getGlobal("udwEngTplRiskGrid"))); //$scope.locationSummarizer(); //u.getGlobal("EngLocationSummarizer")(); //$scope.PolicyCalculations(); $("#TPLRiskModal").modal("hide"); u.clear_grid_data(u.getGlobal("udwEngTplRiskGrid")); } }); $("#btn_Lop_OnClose").click(function () { var rowId = u.getSelRow($scope.carRiskGrid); if (u.grid_empty(u.getGlobal("udwEngLopRiskGrid"))) { u.modal_confirmation("The Grid is empty, do you want to close form?", function () { u.setCell($scope.carRiskGrid, rowId, "INS_UDW_LOP", u.get_grid_data(u.getGlobal("udwEngLopRiskGrid"))); $("#LOPRiskModal").modal("hide"); u.hide_confirm(); }); } else { u.setCell($scope.carRiskGrid, rowId, "INS_UDW_LOP", u.get_grid_data(u.getGlobal("udwEngLopRiskGrid"))); //$scope.locationSummarizer(); //u.getGlobal("EngLocationSummarizer")(); //$scope.PolicyCalculations(); $("#LOPRiskModal").modal("hide"); u.clear_grid_data(u.getGlobal("udwEngLopRiskGrid")); } }); $("#CAR_EML_PERC").blur(function () { u.getGlobal("max100")("CAR_EML_PERC"); }); /* * EXCESS FUNCTIONS */ $("#CAR_EXCESS_TYPE").change(async function () { u.getGlobal("excessTypeChange")("CAR_EXCESS_TYPE", "CAR_EXCESS_PERC", "CAR_EXCESS_MIN", "CAR_EXCESS_MAX", "CAR_EXCESS_NAR"); }); $("#CAR_EXCESS_PERC").blur(function () { u.getGlobal("excessAmtBlur")("CAR_EXCESS_PERC", "CAR_EXCESS_NAR", "CAR_EXCESS_TYPE", "CAR_EXCESS_MIN", "CAR_EXCESS_MAX"); }); $("#CAR_EXCESS_MIN").blur(function () { if ($(this).val() === "" || $(this).val() === "0") return; u.getGlobal("excessMinMaxBlur")("CAR_EXCESS_MIN", "CAR_EXCESS_NAR", "Min"); }); $("#CAR_EXCESS_MAX").blur(function () { if ($(this).val() === "" || $(this).val() === "0") return; u.getGlobal("excessMinMaxBlur")("CAR_EXCESS_MAX", "CAR_EXCESS_NAR", "Max"); }); $("#btn_premium_recalculate").click(function () { $scope.RecalculatePremium(); }); $scope.rawEngineering = function () { const product = u.parse_form("#polheaderForm") || {}; /*---------------------------------- * GETS ALL REMAINING PRODUCT MODELS *---------------------------------*/ u.getGlobal("Product")(product); return product; }; $scope.rawEngineeringPopulateFull = function (policy) { /*---------------------- * CONDITIONS AND CLAUSES *----------------------*/ u.clear_grid_data(u.getGlobal("udwClausesGrid")); policy.INS_UDW_POL_COND_CLAUSES = (typeof (policy.INS_UDW_POL_COND_CLAUSES) === "string" ? JSON.parse(policy.INS_UDW_POL_COND_CLAUSES || "[]") : policy.INS_UDW_POL_COND_CLAUSES) || []; u.bigDataPopulate(u.getGlobal("udwClausesGrid"), policy.INS_UDW_POL_COND_CLAUSES); /*---------------------------------------------------------- * HIDE POLICY CONDITION CLAUSE WITH STATUS (X) ON FROM GRID *----------------------------------------------------------*/ u.getGlobal("PolicyConditionClauseRemoval")(); }; u.setGlobalStatic("subProductChange", async function () { /*----------------------------------------------------------- * i HAVE TO PREVENT THE RECALCULATION OF INS SOURCE RESELECT *----------------------------------------------------------*/ let product = $scope.rawEngineering() || {}; /*------------------------- * CONDITION CLAUSE REFETCH *-------------------------*/ await u.getGlobal("ConditionClause")(product); u.fill_form(product, "#polheaderForm", false); if (true) { /*----------------------------------------------- * REPOPULATE THE GRID AND RECALCULATE THE RECORDS *-----------------------------------------------*/ $scope.rawEngineeringPopulateFull(product); } else { $scope.rawEngineeringPopulateFull(product); }; }); 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) $scope.RecalculatePremium(); }); $scope.RecalculatePremium = function() { $scope.loader(function () { u.clear_grid_data($scope.cover_grid); $scope.SumCarCoverValues(); $scope.SumCpmCoverValues(); u.getGlobal("engUpdateAddOnCovers")(); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); }); }; u.setGlobal("RecalculatePremium", $scope.RecalculatePremium); /*-------------------------- * RI DESCRIPTION PROPERTIES *--------------------------*/ $scope.riDisciption = function (v) { const product = u.parse_form("#polheaderForm") || {}; let data = { SubClass: product.PDT_NAME, Region: v.ENG_REGION_NAME, Area: v.ENG_AREA_NAME, Address: v.ENG_LOC_NAME } let result = u.getGlobal("riDiscriptionConcat")(data); return result; } /* * RENEWAL PROCESSING CHECK */ $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_ENGINEER_LOC.ForEach(b => { b.ENG_START_DATE = renPolicy.POLH_POL_START_DATE; b.ENG_END_DATE = renPolicy.POLH_POL_END_DATE; b.ENG_UW_YEAR = renPolicy.POLH_POL_UW_YEAR; b.ENG_POLH_END_NO = 0; b.ENG_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; b.INS_UDW_CAR_RISK = u.parseJson(b.INS_UDW_CAR_RISK); b.INS_UDW_CAR_RISK.ForEach(h => { h.CAR_START_DATE = renPolicy.POLH_POL_START_DATE; h.CAR_END_DATE = renPolicy.POLH_POL_END_DATE; h.CAR_UW_YEAR = renPolicy.POLH_POL_UW_YEAR; h.CAR_POLH_END_NO = 0; h.CAR_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(r => { r.RPCOV_END_NO = 0; r.RPCOV_RNW_NO = renPolicy.POLH_RENEW_SER_NO; delete r.MS_UDW_COVERS; }); h.INS_UDW_CPM_RISK = u.parseJson(h.INS_UDW_CPM_RISK); h.INS_UDW_CPM_RISK.ForEach(c => { c.CPM_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; c.CPM_POLH_END_NO = 0; c.CPM_START_DATE = renPolicy.POLH_POL_START_DATE; c.CPM_END_DATE = renPolicy.POLH_POL_END_DATE; c.CPM_UW_YEAR = renPolicy.POLH_POL_UW_YEAR; c.INS_UWD_RISK_COVERS = u.parseJson(c.INS_UWD_RISK_COVERS); c.INS_UWD_RISK_COVERS.ForEach(r => { r.RPCOV_END_NO = 0; r.RPCOV_RNW_NO = renPolicy.POLH_RENEW_SER_NO; delete r.MS_UDW_COVERS; }); }); h.INS_UDW_TPL = u.parseJson(h.INS_UDW_TPL); h.INS_UDW_TPL.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(r => { r.RPCOV_END_NO = 0; r.RPCOV_RNW_NO = renPolicy.POLH_RENEW_SER_NO; delete r.MS_UDW_COVERS; }); }); h.INS_UDW_LOP = u.parseJson(h.INS_UDW_LOP); h.INS_UDW_LOP.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); t.INS_UWD_RISK_COVERS.ForEach(r => { r.RPCOV_END_NO = 0; r.RPCOV_RNW_NO = renPolicy.POLH_RENEW_SER_NO; delete r.MS_UDW_COVERS; }); }); }); b.INS_UDW_ENGINEER_FEES = u.parseJson(b.INS_UDW_ENGINEER_FEES); b.INS_UDW_ENGINEER_FEES.ForEach(f => { f.ENG_FEE_RNW_NO = renPolicy.POLH_RENEW_SER_NO; f.ENG_FEE_END_NO = 0; }); }); 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_ENGINEER_LOC.ForEach(v => { let data = { RI_DESCRIPTION: $scope.riDisciption(v), RI_SI_FC: v.ENG_RI_SI_FC || 0, RI_SI_BC: v.ENG_RI_SI_BC || 0, RI_PREM_BC: v.ENG_RI_PREM_BC, RI_PREM_FC: v.ENG_RI_PREM_FC, RISK_ID: v.ENG_SYS_ID, EML_PERC: v.ENG_EML_PERC, FROM_DATE: v.ENG_START_DATE, TO_DATE: v.ENG_END_DATE, TOT_SI_FC: v.ENG_SI_FC, TOT_SI_BC: v.ENG_SI_BC, TOT_PREM_BC: v.ENG_TOT_PREM_BC, TOT_PREM_FC: v.ENG_TOT_PREM_FC, UW_YEAR: v.ENG_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); 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_ENGINEER_LOC.ForEach(b => { b.INS_UDW_CAR_RISK = u.parseJson(b.INS_UDW_CAR_RISK); b.INS_UDW_CAR_RISK.ForEach(h => { h.INS_UWD_RISK_COVERS = u.parseJson(h.INS_UWD_RISK_COVERS); h.INS_UDW_LOP = u.parseJson(h.INS_UDW_LOP); h.INS_UDW_LOP.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); }); h.INS_UDW_TPL = u.parseJson(h.INS_UDW_TPL); h.INS_UDW_TPL.ForEach(t => { t.INS_UWD_RISK_COVERS = u.parseJson(t.INS_UWD_RISK_COVERS); }); h.INS_UDW_CPM_RISK = u.parseJson(h.INS_UDW_CPM_RISK); h.INS_UDW_CPM_RISK.ForEach(c => { h.INS_UDW_CPM_RISK.ForEach(c => { c.INS_UWD_RISK_COVERS = u.parseJson(c.INS_UWD_RISK_COVERS); }); }); }); }); u.getGlobal("savePolicy")(newRenPolicy, function (result) { u.getGlobal("EngPolicyFill")(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 } and currency ${renPolicy.POLH_CURRENCY}. Please contact your administrator`); } } else { u.growl_error(response.message); } }); window.history.pushState('object', document.title, newUrl); } } $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_ENGINEER_LOC.ForEach(location => { location.INS_UDW_CAR_RISK.ForEach(car => { car.INS_UWD_RISK_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); } } }); car.CAR_RISK_PREM_FC = sumNetPremFc || 0; car.CAR_RISK_PREM_BC = sumNetPremBc || 0; car.CAR_TOT_PREM_FC = sumTotalPremFc || 0; car.CAR_TOT_PREM_BC = sumTotalPremBc || 0; car.CAR_RI_PREM_FC = sumRiPremFc || 0; car.CAR_RI_PREM_BC = sumRiPremBc || 0; totalRiPremBc += sumRiPremBc || 0; totalRiPremFc += sumRiPremFc || 0; totalPremBc += sumTotalPremBc || 0; totalPremFc += sumTotalPremFc || 0; totalRiskPremBc += sumNetPremBc || 0; totalRiskPremFc += sumNetPremFc || 0; sumTotalPremFc = 0; sumTotalPremBc = 0; sumNetPremFc = 0; sumNetPremBc = 0; sumRiPremFc = 0; sumRiPremBc = 0; car.INS_UDW_CPM_RISK.ForEach(r => { r.INS_UWD_RISK_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); } } }); r.CPM_RISK_PREM_FC = sumNetPremFc; r.CPM_RISK_PREM_BC = sumNetPremBc; r.CPM_TOT_PREM_FC = sumTotalPremFc; r.CPM_TOT_PREM_BC = sumTotalPremBc; r.CPM_RI_PREM_FC = sumRiPremFc; r.CPM_RI_PREM_BC = sumRiPremBc; }); totalRiPremBc += sumRiPremBc || 0; totalRiPremFc += sumRiPremFc || 0; totalPremBc += sumTotalPremBc || 0; totalPremFc += sumTotalPremFc || 0; totalRiskPremBc += sumNetPremBc || 0; totalRiskPremFc += sumNetPremFc || 0; sumTotalPremFc = 0; sumTotalPremBc = 0; sumNetPremFc = 0; sumNetPremBc = 0; sumRiPremFc = 0; sumRiPremBc = 0; car.INS_UDW_TPL.ForEach(r => { r.INS_UWD_RISK_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); } } }); }); totalRiPremBc += sumRiPremBc || 0; totalRiPremFc += sumRiPremFc || 0; totalPremBc += sumTotalPremBc || 0; totalPremFc += sumTotalPremFc || 0; totalRiskPremBc += sumNetPremBc || 0; totalRiskPremFc += sumNetPremFc || 0; sumTotalPremFc = 0; sumTotalPremBc = 0; sumNetPremFc = 0; sumNetPremBc = 0; sumRiPremFc = 0; sumRiPremBc = 0; car.INS_UDW_LOP.ForEach(r => { r.INS_UWD_RISK_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); } } }); }); totalRiPremBc += sumRiPremBc || 0; totalRiPremFc += sumRiPremFc || 0; totalPremBc += sumTotalPremBc || 0; totalPremFc += sumTotalPremFc || 0; totalRiskPremBc += sumNetPremBc || 0; totalRiskPremFc += sumNetPremFc || 0; }); location.ENG_TOT_PREM_FC = totalPremFc; location.ENG_TOT_PREM_BC = totalPremBc; location.ENG_RISK_PREM_FC = totalRiskPremFc; location.ENG_RISK_PREM_BC = totalRiskPremBc; location.ENG_RI_PREM_FC = totalRiPremFc; location.ENG_RI_PREM_BC = totalRiPremBc; }); return policy; }; });//on document ready })(window.$, window.service, window.utility, {});