(function (s, u) { s.add({ save_policy: function (engineer, success, error) { u.post(this.backend + "api/policyengother/save", engineer, success, error); }, get_policys: function (success, error) { u.get(this.backend + "api/policyengother", success, error); }, search_policy: function (query, success, error) { u.get(this.backend + "api/policyengother/search/" + query, success, error); }, confirmPolicy: function (polId, endNo, userCode, riYN, success, error) { u.get(this.backend + "api/Confirmation/ConfirmEngOtherPolicy/" + polId + "/" + endNo + "/" + userCode + "/" + riYN, success, error); }, risk_end_deletion: function (sysID, endNo, userCode, success, error) { u.get(this.backend + "api/policyengother/endDeletion/" + sysID + "/" + endNo + "/" + userCode, success, error); }, unConfirm_Policy: function (polId, endNo, success, error) { u.get(this.backend + "api/policyengother/unconfirm/" + polId + "/" + endNo + "/" + userCode, success, error); }, get_lov_company: function (success, error) { u.get(this.backend + "api/company/lov", success, error); }, get_lov_channel: function (success, error) { u.get(this.backend + "api/channel/lov", success, error); }, get_lov_office: function (success, error) { u.get(this.backend + "api/office/lov", success, error); }, get_lov_product_type: function (success, error) { u.get(this.backend + "api/classbusiness/lov", success, error); }, get_lov_cover_type: function (success, error) { u.get(this.backend + "api/cover/lov", success, error); }, get_lov_ins_source: function (success, error) { u.get(this.backend + "api/insurancesource/lov", success, error); }, get_lov_broker_agent: function (success, error) { u.get(this.backend + "api/intermediary/lov", success, error); }, get_lov_business_source: function (success, error) { u.get(this.backend + "api/SourceBusiness/lov", success, error); }, get_lov_customer: function (success, error) { u.get(this.backend + "api/Customer/lov", success, error); }, get_lov_currency: function (success, error) { u.get(this.backend + "api/exchangerate/lov", success, error); }, get_lov_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); }, get_customer: function (code, success, error) { u.get(this.backend + "api/Customer/" + code, success, error); }, getAddRiskCovers: function (data, success, error) { u.post(this.backend + "api/RisksCovers/additionalCovers", data, success, error); }, getRiskDefaulCovers: function (data, success, error) { u.post(this.backend + "api/RisksCovers/defaultCovers", data, success, error); }, getRiskCoversLOV: function (data, success, error) { u.post(this.backend + "api/RisksCovers/RiskCoversLOV", data, success, error); }, getProdtRisk: function (data, success, error) { u.post(this.backend + "api/RisksCovers/productRisk", data, success, error); }, getArea: function (data, success, error) { u.post(this.backend + "api/area/areaLov", data, success, error); }, getLocation: function (data, success, error) { u.post(this.backend + "api/location/locationLov", data, success, error); }, get_customers: function (success, error) { u.get(this.backend + "api/customer", success, error); }, //search_customer: function (query, success, error) { // u.get(this.backend + "api/customer/search/" + query, success, error); //}, getRiskFees: function (data, success, error) { u.post(this.backend + "api/productriskfee/RiskFees", data, success, error); }, get_policy_risk: function (success, error) { u.get(this.backend + "api/policyengotherrisk", 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}`); }, getProductRisks: function (code, success, error) { u.get(this.backend + `api/productrisk/productRisksLov/${code}`, success, error); }, getEngOthersRiskTemplateAsync: async function () { return await u.getAsync(`${this.backend}api/policyengother/engrisk/getTemplate`); }, getProdtRiskAsync: async function (code) { return await u.getAsync(this.backend + `api/productrisk/productRisksLov/${code}`); }, }); })(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, $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 { } }); 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; 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; //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); //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)), netCustomerBc = parseFloat(premData[1] || 0) + compFeedata.Sum(x => parseFloat(x.POL_FEE_BC_AMOUNT || 0)); // 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); var siData = { CODE: "SI", DESCRIPTION: "Sum Insured", FC_AMOUNT: totalSumInsuredFc, BC_AMOUNT: totalSumInsuredBc, TYPE: "" }; PremSummary_grid.addRowData(siData.ID, siData); switch ($("#POLH_INS_SOURCE").val()) { case "COL": { const coinsLeaderData = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")).FirstOrDefault(); if (coinsLeaderData !== null && coinsLeaderData !== undefined) { $("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(coInsData.FINW_PREM_FC || 0)); $("#POLH_COINS_PREM_BC").val(parseFloat(coInsData.FINW_PREM_BC || 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", async function() { if ($("#POLH_POL_UW_YEAR").val() === "") return false; await u.getGlobal("getTreaty")(u.parse_form("#polheaderForm")); 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) { //others $(function () { u.getGlobal("policyHeaderInit")(); u.getGlobal("tabsInit")(); /*--------------- * LOCATION GRID *-------------*/ $scope.location_grid = u.getGlobal("udwEngGrid"); // Other Engineering Risk Grid $scope.eng_grid = u.getGlobal("udwEngOtherGrid"); $scope.locationGrid = u.getGlobal("udwEngGrid"); // Cover Grid $scope.cover_grid = u.getGlobal("udwCoverGrid"); $scope.locationFeesGrid = u.getGlobal("udwEngRskFeeGrid"); $scope.polpolicyFeesGrid = u.getGlobal("udwPolFeesGrid"); // Risk Covers **** $scope.riskCovers_grid = u.default_grid("#gridAddNewCover", "#gridAddNewCoverPager", "Risk Covers", ["Code", "Name", "Sum Insured", "Deft Rate", "Deft Premium","Modified By", "Modified Date"], [ { 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: "PCV_MOD_BY", index: "PCV_MOD_BY", width: 150 }, u.dateTimeColumn("PCV_MOD_DATE") ], //Retrive Grid data into form input fields on row click.. function (sel_id) { var grid = $scope.riskCovers_grid; var sel_id = grid.jqGrid("getGridParam", "selrow"); $("form input[name='DL_CODE']").data("update", true); u.fill_form({ RCOV_CODE: grid.jqGrid("getCell", sel_id, "PCV_COV_CODE"), RCOV_NAME: grid.jqGrid("getCell", sel_id, "COVER_NAME"), RCOV_RATE: grid.jqGrid("getCell", sel_id, "PCV_DEF_RATE"), RCOV_SI_FC: grid.jqGrid("getCell", sel_id, "PCV_SI"), RCOV_GROSS_PREM_FC: grid.jqGrid("getCell", sel_id, "PCV_DEF_PREM"), RCOV_NET_PREM_FC: grid.jqGrid("getCell", sel_id, "PCV_DEF_PREM"), RCOV_USER_PREM_YN: grid.jqGrid("getCell", sel_id, "PCV_CVR_USER_PREMIUM_YN"), RCOV_RATED_YN: grid.jqGrid("getCell", sel_id, "PCV_CVR_RATED_YN"), RCOV_RI_SI_YN: grid.jqGrid("getCell", sel_id, "PCV_CVR_RI_SI_YN"), RCOV_RI_PREM_YN: grid.jqGrid("getCell", sel_id, "PCV_CVR_RI_PREMIUM_YN") }, "#coverForm"); }, //Retrive Grid data into form input fields on row double click.... XXX function (sel_id) { var grid = $scope.riskCovers_grid; var sel_id = grid.jqGrid("getGridParam", "selrow"); $("form input[name='DL_CODE']").data("update", true); u.fill_form({ RCOV_CODE: grid.jqGrid("getCell", sel_id, "PCV_COV_CODE"), RCOV_NAME: grid.jqGrid("getCell", sel_id, "COVER_NAME"), RCOV_RATE: grid.jqGrid("getCell", sel_id, "PCV_DEF_RATE"), RCOV_SI_FC: grid.jqGrid("getCell", sel_id, "PCV_SI"), RCOV_GROSS_PREM_FC: grid.jqGrid("getCell", sel_id, "PCV_DEF_PREM"), RCOV_NET_PREM_FC: grid.jqGrid("getCell", sel_id, "PCV_DEF_PREM"), RCOV_USER_PREM_YN: grid.jqGrid("getCell", sel_id, "PCV_CVR_USER_PREMIUM_YN"), RCOV_RATED_YN: grid.jqGrid("getCell", sel_id, "PCV_CVR_RATED_YN"), RCOV_RI_SI_YN: grid.jqGrid("getCell", sel_id, "PCV_CVR_RI_SI_YN"), RCOV_RI_PREM_YN: grid.jqGrid("getCell", sel_id, "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.fees_grid = u.getGlobal("udwFeesGrid"); // Applicable Risk Fees Summary $scope.riskFees_grid = 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","Modified By","Modified Date" ], [ { name: "ENG_FEE_CODE", index: "ENG_FEE_CODE", width: 150 }, { name: "ENG_FEE_NAME", index: "ENG_FEE_NAME", width: 200 }, u.currencyColumn("ENG_FEE_FC_AMOUNT"), u.currencyColumn("ENG_FEE_BC_AMOUNT"), { 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 }, { name: "ENG_FEE_MOD_BY", index: "ENG_FEE_MOD_BY", width: 150 }, u.dateTimeColumn("ENG_FEE_MOD_DATE") ], //Retrive Grid data into form input fields on row click.. function (selId) { }); // Applicable Policy Fees Summary $scope.polfees_grid = u.getGlobal("udwPolFeesGrid"); // Premium Payment Summary $scope.payment_grid = u.getGlobal("udwPaymentGrid"); // Risk Premium Summary $scope.PremSummary_grid = u.getGlobal("udwPremSumGrid"); // Reinsurance Share Summary $scope.treatyShareGrid = u.getGlobal("udwTtyShareGrid"); // FAC In Premium Summary $scope.treatyApportionmentGrid = u.getGlobal("udwTtyApporGrid"); // Reinsurance Summary $scope.reinsurance_grid = u.getGlobal("udwRIGrid"); // Claim Summary $scope.cliams_grid = u.getGlobal("udwClaimsGrid"); // Agent/Broker Commission $scope.intermCom_grid = u.getGlobal("udwAgntCommGrid"); // Product Risk Grid **** $scope.prodRisks_grid = u.getGlobal("udwSubClassGrid"); // Customer Dialog $scope.customer_grid = u.getGlobal("udwCustSearchGrid"); //Intermediary Commission $scope.interComm_grid = u.getGlobal("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"); // Risk Discount/Loading // Risk Discount/Loading RiskDiscLoadModal btnRiskDiscLoad gridRiskDiscLoad riskdiscload_grid $scope.riskdiscload_grid = u.getGlobal("udwRskDiscLoadGrid"); //THIS IS THE CORRECT DEFFINITION FOR THE RISK DISCOUNT AND LOADING GRID $scope.riskdiscloading_grid = u.getGlobal("udwRskDiscLoadingGrid"); // Policy Documents Grid $scope.polFileGrid = u.getGlobal("udwPolDocsGrid"); $scope.policy_risk_search_grid = u.default_grid("#gridPolicyRiskSearch", "#gridPolicyRiskSearchPager", "Policy Risk List", [ "Policy ID", "Object Type", "Object Name", "Description", "Serial No", "Make & Model", "Manufacture", "Manufacturing Year", "Stand By","Modified By","Modified Date" ], [ { name: "ENG_OTHER_POLH_SYS_ID", index: "ENG_OTHER_POLH_SYS_ID", width: 150 }, { name: "ENG_OTHER_OBJECT", index: "ENG_OTHER_OBJECT", width: 150 }, { name: "ENG_OTHER_OBJECT_NAME", index: "ENG_OTHER_OBJECT_NAME", width: 150 }, { name: "ENG_OTHER_DESC", index: "ENG_OTHER_DESC", width: 150 }, { name: "ENG_OTHER_SERL_NO", index: "ENG_OTHER_SERL_NO", width: 150 }, { name: "ENG_OTHER_MK_MODEL", index: "ENG_OTHER_MK_MODEL", width: 150 }, { name: "ENG_OTHER_MANUF", index: "ENG_OTHER_MANUF", width: 150 }, { name: "ENG_OTHER_MANUF_YR", index: "ENG_OTHER_MANUF_YR", width: 150, }, { name: "ENG_OTHER_STND_BY", index: "ENG_OTHER_STND_BY", width: 150 }, { name: "ENG_OTHER_MOD_BY", index: "ENG_OTHER_MOD_BY", width: 150 }, u.dateTimeColumn("ENG_OTHER_MOD_DATE") ], function (id) { }), $scope.users_grid = u.getGlobal("udwUsersGrid"); $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_occupancy": $scope.lov.call_dialog("Select Occupancy", "get_lov_occupancy", $scope.dialog_data); break; case "btn_eqzone": $scope.lov.call_dialog("Select Earthquake zone", "get_lov_eqzone", $scope.dialog_data); break; case "excess_lov": if (u.field_empty("#POLH_SUB_CLASS_CODE")) return u.growl_info("Please select a product"); $scope.lov.pcolName = ["Min Amount", "Max Amount", "Narration"]; $scope.lov.pcolMdls = [ { name: "MIN", index: "MIN" }, { name: "MAX", index: "MAX" }, { name: "NARRATION", index: "NARRATION" } ]; $scope.lov.call_dialog("Select Excess", "getProdBuyBackExcessLov", $scope.dialog_data, $("#POLH_SUB_CLASS_CODE").val()); break; case "btn_combination": $scope.lov.call_dialog("Select RI Combination", "getRiCombinationLov", $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_risk_type": $scope.lov.call_dialog("Select Risk", "getProductRisks", $scope.dialog_data, $("#POLH_SUB_CLASS_CODE").val()); break; } }); /*--------------------------- * Policy Risk List Search *-------------------------*/ $("#btnQueryPolicyRisk").click(function () { var queryTxt = $("#txtPolRiskSearch").val(); if (queryTxt != null && queryTxt.length > 0) { s.get_policy_risk(queryTxt, function (result) { /* * clear grid before populating */ $scope.policy_risk_search_grid.jqGrid("clearGridData"); for (var i in result) { $scope.policy_risk_search_grid.addRowData(result[i].ENG_OTHER_POLH_SYS_ID, result[i]); } }, function (err) { }); } else { /*-------------------------------- * clear grid before populating *------------------------------*/ $scope.policy_risk_search_grid.jqGrid("clearGridData"); //fetch all s.get_policy_risk(function (polhs) { for (var i in polhs) { $scope.policy_risk_search_grid.addRowData(polhs[i].ENG_OTHER_POLH_SYS_ID, polhs[i]); } }); } }); $("#btn_PolicyRisk_lov").on("click", function () { $("#policyRiskLovModal").modal(); }); $("form select[name='ENG_OTHER_EXCESS_APP']").change(function () { if ($(this).val() === "Y") { $("#btn_excess").prop("disabled", false); } else { $("#ENG_OTHER_EXCESS_PERC").val(""); $("#btn_excess").attr("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 *------------------------------------------------*/ // function getRiskComPulsoryFess() { /* obtain parameter for our request */ var riskFeesData = { CLASS_CODE: $("#POLH_CLASS_CODE").val(), PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), }; // var grid = $scope.riskFees_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getRiskFees(riskFeesData, function (result) { if (result && result.length && result.length > 0) { //clear Grid //$scope.riskFees_grid.jqGrid('clearGridData'); //fill grid for (var i in result) { result[i]["ENG_FEE_FC_AMOUNT"] = result[i]["PRF_FEE_AMOUNT"]; result[i]["ENG_FEE_BC_AMOUNT"] = result[i]["PRF_FEE_AMOUNT"]; result[i]["ENG_FEE_CODE"] = result[i]["PRF_FEE_CODE"]; result[i]["ENG_FEE_RK_NO"] = result[i]["PRF_SYS_ID"]; result[i]["ENG_FEE_NAME"] = result[i]["FEE_NAME"]; result[i]["ENG_FEE_RK_CODE"] = $("#ENG_OTHER_RISK_CODE").val(); result[i]["ENG_FEE_RK_SYS_ID"] = $("#ENG_OTHER_SYS_ID").val(); result[i]["ENG_FEE_CRTE_BY"] = "Admin"; result[i]["ENG_FEE_CRTE_DATE"] = Date.now(); result[i]["ENG_FEE_STATUS"] = "U"; // $scope.riskFees_grid.jqGrid("clearGridData"); $scope.riskFees_grid.addRowData(result[i]["ENG_FEE_CODE"], result[i]); } } var compFeedata = u.get_grid_data($scope.riskFees_grid); var linq = Enumerable.From(compFeedata); var result = linq.GroupBy(function (x) { return x.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 y.ENG_FEE_FC_AMOUNT | 0; }), POL_FEE_BC_AMOUNT: x.Sum(function (y) { return y.ENG_FEE_BC_AMOUNT | 0; }), POL_FEE_END_NO: 0 //$("#POL_END_NO").val() }; }).ToArray(); $scope.polfees_grid.jqGrid("clearGridData"); for (var i in result) $scope.polfees_grid.addRowData(result[i].ID, result[i]); }); } $("#btn_GetCompFees").on("click", function () { //getRiskComPulsoryFess(); }); /*-------------------------------------------------- * add Cover *------------------------------------------------*/ // $("#btn_risk_cover").click(function () { var grid = u.getGlobal("udwEngOtherGrid"); var sel_id = grid.jqGrid("getGridParam", "selrow"); var RiskID = grid.jqGrid("getCell", sel_id, "ENG_OTHER_SYS_ID"); if (RiskID == $("#ENG_OTHER_SYS_ID").val()) { //Hide covers not related to selected risk $scope.hideShowCovers(); $("#RiskCoverModal").modal(); } else { u.growl_warning("No Row selected"); } }); $("#btn_add_cover").on("click", async function () { if (u.form_validation("#coverForm")) { if ($("input[name='RCOV_CODE']").val() === "") { u.modalAlert("Please Select Risk Cover"); } u.modalConfirmationAsync("Are you sure you want to add the Cover?", async function () { /* obtain parameter for our request */ var productRiskData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), //PRD_CV_DFT: 'Y', CUR_RATE: $("#POLH_CURRENCY_RATE").val(), RCOV_CODE: $("#RCOV_CODE").val(), }; // var grid = $scope.cover_grid; var rowIds = grid.jqGrid("getDataIDs"); //declare array to contain the codes to varify var CodeArray = []; // iterate through the rows in the grid and add Covers to Array for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get value of the cell or column in an array var coverCode = grid.jqGrid("getCell", currRow, "RCOV_CODE"); // var RiskCode = grid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); var riskCov = coverCode; // alert(riskCov); CodeArray.push(riskCov); } const currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); // if ($.inArray(verifyRiskCover, CodeArray) < 0) { if ($.inArray($("#RCOV_CODE").val(), CodeArray) < 0) { var formData = u.parse_form("#coverForm"); formData.RCOV_CRTE_BY = u.getUserCode(); formData.RCOV_STATUS = "U"; formData.RCOV_SYS_ID = await s.getSequenceAsync("RISK_COVERS_SEQ"); var otherRisk = u.getRow(u.getSelRow($scope.eng_grid), $scope.eng_grid); formData["RCOV_RISK_SYS_ID"] = otherRisk.ENG_OTHER_SYS_ID; formData["RCOV_RISK_NO"] = otherRisk.ENG_OTHER_RISK_NO; formData["RCOV_SI_BC"] = currRate * parseFloat(formData["RCOV_SI_FC"] || 0); formData["RCOV_GROSS_PREM_BC"] = currRate * parseFloat(formData["RCOV_GROSS_PREM_FC"] || 0); formData["RCOV_ANNL_PREM_BC"] = currRate * (formData["RCOV_ANNL_PREM_FC"] || 0); formData.RCOV_NET_PREM_BC = (formData.RCOV_NET_PREM_FC / currRate).toFixed(2); formData["RCOV_BASE_SI_YN"] = ""; formData["RCOV_BASE_PREM_YN"] = ""; $scope.cover_grid.addRowData(undefined, formData); u.growl_success("Risk Cover successfully added"); u.hide_confirm(); u.form_reset("#coverForm"); $("#RCOV_RATE").prop("disabled", false); $("#RCOV_ANNL_PREM_FC").attr("disabled", "disabled"); $("#RCOV_SI_FC").prop("disabled", false); } else { u.growl_warning( `Cover exists for this Risk, you cannot add same Cover ${$("#RCOV_CODE").val()} `); u.hide_confirm(); } //send parameters and get Default covers from the database //s.getAddRiskCovers(productRiskData, // function(result) { // if (result && result.length && result.length > 0) { // for (var i in result) { // //alert(JSON.stringify(result)); // result[i]["RCOV_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; // result[i]["RCOV_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; // result[i]["RCOV_RI_YN"] = // result[i]["MS_UDW_COVERS"]["CVR_RI_ENG_OTHERLICABLE"]; // result[i]["CVR_USER_PREMIUM"] = // result[i]["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; // result[i]["RCOV_PREM_REFUND"] = // result[i]["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; // result[i]["RCOV_RATE_CHANGE"] = // result[i]["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; // result[i]["RCOV_SI_CHANGE"] = result[i]["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; // result[i]["RCOV_COVER_LEVEL"] = // result[i]["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; // result[i]["RCOV_RISK_SYS_ID"] = $("#ENG_OTHER_SYS_ID").val(); // result[i]["RCOV_RISK_NO"] = $("#ENG_OTHER_RISK_ID").val(); // result[i]["RCOV_SI_FC"] = $("#RCOV_SI_FC").val(); // var deftCoverCode = result[i].RCOV_CODE; // var newRiskCode = $("#ENG_OTHER_SYS_ID").val(); // var verifyRiskCover = deftCoverCode + newRiskCode; //alert(verifyRiskCover); // //add if Cover is not found in the Grid// // if ($.inArray(verifyRiskCover, CodeArray) < 0) { // //fill in default covers if not in the grid // $scope.cover_grid.addRowData(result[i].ID, result[i]); // u.growl_success("Risk Cover successfully added"); // u.hide_confirm(); // } else { // u.growl_warning( // "Cover exists for this Risk, you cannot add same Cover " + // deftCoverCode); // u.hide_confirm(); // } // } // // // } else { // u.hide_confirm(); // u.growl_error("Error occured, please check and try again"); // } // }); }); } else { u.hide_confirm(); u.growl_error("Please fill out the fields that are marked red"); } }); /*-------------------------------------------------- *get Risks Cover lists fucnction *------------------------------------------------*/ // function getRiskCoversLov() { /* obtain parameter for our request */ var RiskCoverData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), }; // var grid = $scope.riskCovers_grid; var rowIds = grid.jqGrid("getDataIDs"); //send parameters and get motor Risks from the database s.getRiskCoversLOV(RiskCoverData, function (result) { if (result && result.length && result.length > 0) { //clear Grid $scope.riskCovers_grid.jqGrid("clearGridData"); //fill grid for (var i in result) { result[i]["COVER_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; result[i]["COVER_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; $scope.riskCovers_grid.addRowData(undefined, result[i]); } } }); } /*-------------------------------- *Query Cover Lov *------------------------------*/ // $("#btnQueryRiskCoverLov").on("click", function () { getRiskCoversLov(); }); /*-------------------------------- *Open Risk Covers LOV Modal *------------------------------*/ // $("#btnAddNewCover").on("click", function () { if ($("#POLH_CLASS_CODE").val() == "") { u.growl_warning("Product Code is empty, Please check and try again"); } else { $("#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 row_id = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", row_id, "RCOV_STATUS"); var Code = grid.jqGrid("getCell", row_id, "RCOV_NO"); var message = ""; /*--------------------------------- * Display modal message *------------------------------*/ // u.modal_confirmation("Are you sure you want to remove the Record?", function (e) { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ // if (recordStatus == "U") { grid.jqGrid("delRowData", row_id); u.hide_confirm(); u.growl_success("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus == "A") { grid.jqGrid("setCell", row_id, "RCOV_STATUS", "D"); $("#" + row_id, "#grdCover").css({ color: "red" }); u.hide_confirm(); u.growl_success( "Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $("#" + row_id, "#grdCover").css({ color: "black" }); grid.jqGrid("setCell", row_id, "RCOV_STATUS", "A"); u.hide_confirm(); u.growl_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 = grid.jqGrid("getCell", rowId, "RCOV_SYS_ID"); if (coverCode == $("#RCOV_SYS_ID").val()) { // CURR_RATE = parseFloat($("#POLH_CURRENCY_RATE").val()).toFixed(2); if (CURR_RATE == "" || CURR_RATE == 0) { u.hide_confirm(); u.growl_warning("the Currency Rate cannot be zero (0) please check and try again"); } else { //Declare variables and get values var coverSifc = parseFloat($("#RCOV_SI_FC").val()).toFixed(2); var coverSibc = parseFloat(coverSifc * CURR_RATE).toFixed(2); var coverGrossPremFc = parseFloat($("#RCOV_GROSS_PREM_FC").val()).toFixed(2); var coverGrossPremBc = parseFloat(coverGrossPremFc * CURR_RATE).toFixed(2); var coverNetPremFc = parseFloat($("#RCOV_NET_PREM_FC").val()).toFixed(2); var coverNetPremBc = parseFloat(coverNetPremFc * CURR_RATE).toFixed(2); var coverDisFc = 0; coverDisFc = parseFloat($("#RCOV_DISC_FC").val()).toFixed(2); var coverDisBc = 0; coverDisBc = parseFloat(coverDisFc * CURR_RATE).toFixed(2); var coverLoadFc = parseFloat($("#RCOV_LOAD_FC").val()).toFixed(2); var coverLoadBc = parseFloat(coverLoadFc / CURR_RATE).toFixed(2); // var coverRate = parseFloat($("#RCOV_RATE").val()).toFixed(2); // grid.jqGrid("setCell", rowId, "RCOV_SI_FC", coverSifc); grid.jqGrid("setCell", rowId, "RCOV_SI_BC", coverSibc); grid.jqGrid("setCell", rowId, "RCOV_RATE", coverRate); grid.jqGrid("setCell", rowId, "RCOV_GROSS_PREM_FC", coverGrossPremFc); grid.jqGrid("setCell", rowId, "RCOV_GROSS_PREM_BC", coverGrossPremBc); grid.jqGrid("setCell", rowId, "RCOV_NET_PREM_FC", coverNetPremFc); grid.jqGrid("setCell", rowId, "RCOV_NET_PREM_BC", coverNetPremBc); grid.jqGrid("setCell", rowId, "RCOV_DISC_FC", coverDisFc); grid.jqGrid("setCell", rowId, "RCOV_DISC_BC", coverDisBc); grid.jqGrid("setCell", rowId, "RCOV_LOAD_FC", coverLoadFc); grid.jqGrid("setCell", rowId, "RCOV_LOAD_BC", coverLoadBc); grid.jqGrid("setCell", rowId, "RCOV_ANNL_PREM_FC", $("#RCOV_ANNL_PREM_FC").val()); grid.jqGrid("setCell", rowId, "RCOV_ANNL_PREM_BC", $("#RCOV_ANNL_PREM_BC").val()); //call //$scope.SumCoverRiskValues(); u.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 $("#btnRiskCoverOk").click(function () { //$("#btn_CoverPrem_Onclose").click(function () { if (u.grid_empty($scope.cover_grid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { $("#RiskCoverModal").modal("hide"); u.hide_confirm(); }); } else { $scope.SumCoverRiskValues(); //$scope.premiumSummarizer(); //$scope.PolicyCalculations(); $("#RiskCoverModal").modal("hide"); u.clear_grid_data($scope.cover_grid); u.form_reset("#coverForm"); } }); //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 = u.get_grid_data($scope.riskdiscloading_grid); console.log(polDiscLoadData); var polDiscLoadLinq = Enumerable.From(polDiscLoadData); var polDiscLoadings = polDiscLoadLinq.GroupBy(function (x) { return x.DL_CODE; }) .Select(function (x) { return { CODE: x.Key(), DESCRIPTION: x.source[0]["DL_NAME"], FC_AMOUNT: x.Sum(function (y) { return parseFloat(y.DL_AMT_FC || 0); }).toFixed(2), BC_AMOUNT: x.Sum(function (y) { return parseFloat(y.DL_AMT_BC || 0); }).toFixed(2), TYPE: x.source[0]["DL_TYPE"] }; }).ToArray(); for (var x in polDiscLoadings) $scope.PremSummary_grid.addRowData(polDiscLoadings[x].ID, polDiscLoadings[x]); //policy fee summary var compFeedata = u.get_grid_data($scope.polfees_grid); var linq = Enumerable.From(compFeedata); var result = linq.GroupBy(function (x) { return x.POL_FEE_CODE; }) .Select(function (x) { return { CODE: x.Key(), DESCRIPTION: x.source[0]["POL_FEE_NAME"], FC_AMOUNT: x.Sum(function (y) { return parseFloat(parseFloat(y.POL_FEE_FC_AMOUNT || 0) / currRate); }).toFixed(2), BC_AMOUNT: x.Sum(function (y) { return parseFloat(y.POL_FEE_BC_AMOUNT || 0); }).toFixed(2), TYPE: "F" }; }).ToArray(); for (var i in result) $scope.PremSummary_grid.addRowData(result[i].ID, result[i]); var summaryData = u.get_grid_data($scope.PremSummary_grid), summaryDataLing = Enumerable.From(summaryData); var netCustomerFc = (summaryDataLing.Sum(function (x) { return parseFloat(x.FC_AMOUNT); })).toFixed(2), netCustomerBc = (summaryDataLing.Sum(function (x) { return parseFloat(x.BC_AMOUNT); })).toFixed(2); // var currency = $("#POLH_CURRENCY").val(); var premium = " " + currency + " " + netCustomerFc; $("#netCustomerBc").text(netCustomerBc); $("#netCustomerFc").text(premium); $("#POLH_POL_PREM_FC").val(netCustomerFc); $("#POLH_POL_PREM_BC").val(netCustomerBc); $("#POLH_NET_PREM_FC").val( summaryDataLing.Where(function (x) { return x.TYPE == "P"; }).Sum(function (x) { return parseFloat(x.FC_AMOUNT); }) + summaryDataLing.Where(function (x) { return x.TYPE == "D"; }).Sum(function (x) { return parseFloat(x.FC_AMOUNT); }) + summaryDataLing.Where(function (x) { return x.TYPE == "L"; }).Sum(function (x) { return parseFloat(x.FC_AMOUNT); })); $("#POLH_NET_PREM_BC").val( summaryDataLing.Where(function (x) { return x.TYPE === "P"; }).Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); }) + summaryDataLing.Where(function (x) { return x.TYPE == "D"; }).Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); }) + summaryDataLing.Where(function (x) { return x.TYPE == "L"; }).Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); })); //x.BC_AMOUNT $("#POLH_POL_LOAD_FC").val(summaryDataLing.Where(function (x) { return x.TYPE == "L" }) .Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); })); $("#POLH_POL_LOAD_BC").val(summaryDataLing.Where(function (x) { return x.TYPE == "L" }) .Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0) })); $("#POLH_POL_DISC_FC").val(summaryDataLing.Where(function (x) { return x.TYPE == "D" }) .Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); })); $("#POLH_POL_DISC_BC").val(summaryDataLing.Where(function (x) { return x.TYPE == "D" }) .Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); })); $("#POLH_FEE_FC").val(summaryDataLing.Where(function (x) { return x.TYPE == "F" }) .Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); })); $("#POLH_FEE_BC").val(summaryDataLing.Where(function (x) { return x.TYPE == "F" }) .Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); })); $("#POLH_GROSS_PREM_BC").val(summaryData.Where((x) => x.TYPE == "P").FirstOrDefault().BC_AMOUNT); $("#POLH_GROSS_PREM_FC").val(summaryData.Where((x) => x.TYPE == "P").FirstOrDefault().FC_AMOUNT); }; //$("#premSum").click($scope.premiumSummarizer); //$("#premSum").click(u.getGlobal("EngPremSummarizer")()); $scope.PremiumCalculator = function () { //Declare variables var riskPrem = 0; var feesPrem = 0; var riskBasicPrem = $("#POLH_NET_PREM_FC").val(); // var coverCode; var coverPremium = 0; var grossPremFc = 0; var grossPremBc = 0; var totalRiskPrem = 0; var totalriskBasicPrem = 0; var currRate = parseFloat($("#POLH_CURRENCY_RATE").val() || 0); //Risk Grid var RisksGrid = $scope.eng_grid; //Cover Grid var covgrid = $scope.cover_grid; var rowIds = covgrid.jqGrid("getDataIDs"); var riskRowIds = RisksGrid.jqGrid("getDataIDs"); var riskRow = u.getSelRow(RisksGrid); var riskId = RisksGrid.jqGrid("getCell", riskRow, "ENG_OTHER_SYS_ID"); // iterate through the rows and check if it exists for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get the risk sys ID from the covers grid var getcovRiskId = covgrid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); //get Cover type of the cover var coverType = covgrid.jqGrid("getCell", currRow, "RCOV_TYPE"); if (getcovRiskId === riskId) { coverCode = covgrid.jqGrid("getCell", currRow, "RCOV_CODE"); coverPremium = parseFloat(covgrid.jqGrid("getCell", currRow, "RCOV_NET_PREM_FC")); } } //Discount Loading Calculation totalriskBasicPrem += riskBasicPrem; grossPremFc += riskBasicPrem; grossPremBc = (grossPremFc * currRate); var prems = [grossPremFc, grossPremBc, riskBasicPrem, riskPrem]; console.log(prems); return prems; }; // $scope.individualRiskPremiumCalculator = function () { //Declare variables var riskPrem = 0; var feesPrem = 0; var riskBasicPrem = 0; // var coverCode; var coverPremium = 0; var grossPremFc = 0; var grossPremBc = 0; var totalRiskPrem = 0; var totalriskBasicPrem = 0; var currRate = parseFloat($("#POLH_CURRENCY_RATE").val() || 0); //Risk Grid var RisksGrid = $scope.eng_grid; //Cover Grid var covgrid = $scope.cover_grid; var rowIds = covgrid.jqGrid("getDataIDs"); var riskRowIds = RisksGrid.jqGrid("getDataIDs"); var riskRow = u.getSelRow(RisksGrid); var riskId = RisksGrid.jqGrid("getCell", riskRow, "ENG_OTHER_SYS_ID"); // iterate through the rows and check if it exists for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get the risk sys ID from the covers grid var getcovRiskId = covgrid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); //get Cover type of the cover var coverType = covgrid.jqGrid("getCell", currRow, "RCOV_TYPE"); if (getcovRiskId === riskId) { coverCode = covgrid.jqGrid("getCell", currRow, "RCOV_CODE"); coverPremium = parseFloat(covgrid.jqGrid("getCell", currRow, "RCOV_NET_PREM_FC") || 0); } } grossPremFc += coverPremium; grossPremBc = (grossPremFc * currRate); var prems = [grossPremFc, grossPremBc, riskBasicPrem, riskPrem]; console.log(prems); return prems; }; // Cover level SI and Premium Calculations: /*-------------------------------------------------- * other Engineering Risk modal dialog *------------------------------------------------*/ // $("#btn_open_risk").click(async function () { const selRow = u.getSelRow($scope.location_grid); if (!selRow) return u.growl_info("Please select a location below"); //fetch CAR json string const engOtherRiskList = u.parseJson(u.getCell($scope.location_grid, selRow, "INS_UDW_ENG_OTHER") || "[]"); u.clear_grid_data($scope.eng_grid); u.gridPopulate($scope.eng_grid, engOtherRiskList); //if (!u.form_validation("#polheaderForm")) { // //return u.growl_warning("Please fill the fields that are marked red"); // return u.growl_warning("Please fill the Header form and try again"); //} //if (u.form_validation("#engineeringForm")) { $("#ENG_OTHER_CURRENCY").val($("#POLH_CURRENCY").val()); $("#ENG_OTHER_CURRENCY_RATE").val($("#POLH_CURRENCY_RATE").val()); //$("#ENG_OTHER_OBJECT").val($("#POLH_SUB_CLASS_CODE").val()); //$("#ENG_OTHER_OBJECT_NAME").val($("#PDT_NAME").val()); $("#ENG_OTHER_START_DATE").val($("#POLH_POL_START_DATE").val()); $("#ENG_OTHER_END_DATE").val($("#POLH_POL_END_DATE").val()); $("#ENG_OTHER_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#ENG_OTHER_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); //obtain the treaty setup for the selected product //s.getProductTreaty($("#POLH_SUB_CLASS_CODE").val(), // $("#POLH_POL_UW_YEAR").val(), // $("#POLH_CURRENCY").val(), // function(response) { // if (response.state && response.data) { // $scope.treatyData = response.data; // u.growl_success("Treaty successfully fetched for the selected product"); // } else { // u.growl_error(response.message); // } // }); //} else { // u.growl_warning("Please fill the Header form and try again"); //}; await u.lovDropDownAsync("#ENG_OTHER_EXCESS_TYPE", "get_lov_PExcessAsync", { "SubClass": $("#POLH_SUB_CLASS_CODE").val() || null }); // DEFAULT CLAIM AMOUNT $("#ENG_OTHER_EXCESS_TYPE").val("CA"); $("#ENG_OTHER_EXCESS_TYPE").trigger("change"); $("#otherEngModal").modal(); }); /*-------------------------------------------------- * Adding other Engineering Risk Details *------------------------------------------------*/ // $("#btn_add_eng_details").on("click", async function () { if (u.form_validation("#engForm")) { //if ($("input[name='VEH_RISK_NO']").val() === "") return u.modalAlert("Please Enter Risk No"); //$("#ENG_OTHER_SYS_ID").val(""); //if ($("#ENG_OTHER_SYS_ID").val() == "") { // RetnSequenceNo("PRODUCT_RISK_SEQ", getVehSeqNo); // function getVehSeqNo(data) { // $("#ENG_OTHER_SYS_ID").val(data); // } //} var risks = u.get_grid_data($scope.eng_grid); if (risks.Any(r => r.ENG_OTHER_SERL_NO === $("#ENG_OTHER_SERL_NO").val())) return u.growl_info("Duplicate serial number"); u.modalConfirmationAsync("Are you sure you want to add?", async function () { var seq = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); if (!u.get_grid_data($scope.eng_grid).Any(v => v.ENG_OTHER_SYS_ID === seq)) { $("#ENG_OTHER_SYS_ID").val(seq); var rowIds = $scope.eng_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.eng_grid.jqGrid("getCell", currRow, "ENG_OTHER_OBJECT"); Code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // //if ($.inArray($("#ENG_OTHER_OBJECT").val(), Code) < 0) { if (true) { var FormData = u.parse_form("#engForm"); FormData.ENG_OTHER_POLH_END_NO = $("#POLH_END_NO").val(); FormData.ENG_OTHER_STATUS = "U"; FormData.ENG_OTHER_CRTE_BY = u.getUserCode(); FormData.ENG_OTHER_CRTE_DATE = u.get_date(); FormData.ENG_OTHER_ENG_SYS_ID = parseInt($("#ENG_SYS_ID").val()); FormData.ENG_OTHER_SEQUENCE = await s.getEngOtherRiskSeq(); //FormData.INS_UWD_RISK_COVERS = await getDefaultRiskCovers(); //FormData.INS_UWD_RISK_COVERS = JSON.stringify(FormData.INS_UWD_RISK_COVERS); 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.ENG_OTHER_SYS_ID); } else if ($("#POLH_INS_SOURCE").val() === "FIN") { defaultCovers = await u.getGlobal("engGetCoInsMemCovers")(FormData.ENG_OTHER_SYS_ID); } FormData.INS_UWD_RISK_COVERS = JSON.stringify(defaultCovers); $scope.eng_grid.addRowData(FormData.ID, FormData); //$scope.eng_grid.addRowData(FormData.ENG_OTHER_SYS_ID, FormData); //Add defaulf covers afer adding the Risk //getRiskComPulsoryFess(); u.hide_confirm(); u.growl_success("Other Engineering successfully added to grid"); u.form_reset("#engForm"); } else { u.hide_confirm(); u.growl_warning("Risk with code " + cellValue + " already exists"); } } else { u.growl_warning("Duplicate id"); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); /*---------------------------------------------------- * Remove record or Mark for deletion from ther Engineering Risk *---------------------------------------------------*/ // $("#btn_remove_eng_risk").on("click", function () { if (u.grid_empty($scope.eng_grid)) return u.growl_info("Grid is empty!!!"); if (!u.getSelRow($scope.eng_grid)) return u.growl_info("Please select a risk to remove"); var grid = $scope.eng_grid; var row_id = u.getSelRow($scope.eng_grid); var recordStatus = grid.jqGrid("getCell", row_id, "ENG_OTHER_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", row_id); 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", row_id, "ENG_OTHER_STATUS", "D"); $("#" + row_id, "#gridEngOthers").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); } }); $("#" + row_id, "#gridEngOthers").css({ color: "black" }); grid.jqGrid("setCell", row_id, "ENG_OTHER_STATUS", "A"); u.hide_confirm(); u.growl_success("Data successfully restored"); } u.form_reset("#engForm"); }); }); /*-------------------------------- * Edit/Update Function ther Engineering Risk Details *------------------------------*/ // $("#btn_update_eng_risk").on("click", function () { if (u.grid_empty($scope.eng_grid)) return u.growl_info("Engineering grid is empty"); if (u.form_validation("#engForm")) { u.modal_confirmation("Are you sure you want to update the selected Row?", function () { var grid = $scope.eng_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = grid.jqGrid("getCell", rowId, "ENG_OTHER_SYS_ID"); if (`${code}` === $("#ENG_OTHER_SYS_ID").val()) { var data = u.parse_form("#engForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Engineering Details updated"); u.form_reset("#engForm"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); /*----------------------------------- * exporting of the grid to excel Condition & Clauses *----------------------------------*/ $("#export-eng-btn").click(function () { /* * function to export grid data into excel */ u.excel_export($scope.eng_grid, ["ID"], "Other_Engineering_List_Excel"); }); $("#btn_otherEngs_OnClose").click(function () { if (u.grid_empty($scope.eng_grid)) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { $("#otherEngModal").modal("hide"); u.hide_confirm(); }); } else { $("#otherEngModal").modal("hide"); } }); /*--------------------------- * Policy Discount/Loading *----------------------------*/ // $("#btn_add_polhdisloading").on("click", function () { if (u.form_validation("#polhdiscloadingForm")) { //if ($("input[name='DL_CODE']").val() === "") return u.modalAlert("Please Enter Policy Excess No"); u.modal_confirmation("Are you sure you want to add the Policy Discount/Loading Details?", function () { var rowIds = $scope.polhdiscloading_grid.jqGrid("getDataIDs"); /*---------------------------------------------- * declare array to contain the codes to verify *--------------------------------------------*/ // var code = []; /*------------------------------------------------------------ * iterate through the rows and check duplicate each of them *----------------------------------------------------------*/ // for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; /*------------------------------------------------ * get value of the cell or column in an array *----------------------------------------------*/ // var cellValue = $scope.polhdiscloading_grid.jqGrid("getCell", currRow, "DL_CODE"); code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray($("#DL_CODE").val(), code) < 0) { var formData = u.parse_form("#polhdiscloadingForm"); formData.DL_STATUS = "U"; formData.DL_CRTE_BY = u.getUserCode(); formData.DL_CRTE_DATE = u.get_date(); $scope.polhdiscloading_grid.addRowData(formData.DL_CODE, formData); u.hide_confirm(); u.growl_success("Policy Discount/Loading successfully added to grid"); } else { u.hide_confirm(); u.growl_warning("Policy Discount/Loading with code " + cellValue + " Already exists"); } }); } else { u.growl_error("Please fill out the fields that are marked red"); } }); // Deleting $("#btn_remove_polhdisloadings").on("click", function () { if (u.grid_empty($scope.polhdiscloading_grid)) return u.modalAlert("Grid is empty!!!"); var grid = $scope.polhdiscloading_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "DL_STATUS"); var code = grid.jqGrid("getCell", rowId, "DL_CODE"); var message = ""; /*--------------------------------- * Display modal message *------------------------------*/ // u.modal_confirmation("Are you sure you want to remove the Record?", function (e) { /*-------------------------------------------- * Remove newly added record before saving *------------------------------------------*/ // if (recordStatus == "U") { grid.jqGrid("delRowData", rowId); u.hide_confirm(); u.hide_confirm("Selected row successfully deleted"); } /*---------------------------------------- * Mark a record for deletion on saving *--------------------------------------*/ // if (recordStatus == "A") { grid.jqGrid("setCell", rowId, "DL_STATUS", "D"); $("#" + rowId, "#grdPolhDiscloading").css({ color: "red" }); u.hide_confirm(); u.hide_confirm( "Selected row successfully marked for deletion, please click on the save button to save changes"); } else if (recordStatus == "D") { $("#" + rowId, "#grdPolhDiscloading").css({ color: "black" }); grid.jqGrid("setCell", rowId, "DL_STATUS", "A"); u.hide_confirm(); u.hide_confirm("Data successfully restored"); } }); }); // Updating $("#btn_update_polhdisloading").on("click", function () { if (u.grid_empty($scope.polhdiscloading_grid)) return u.growl_info("Excess grid is empty"); if (u.form_validation("#polhdiscloadingForm")) { u.modal_confirmation("Are you sure you want to update the selected Discount/Loading?", function () { var grid = $scope.polhdiscloading_grid; var rowId = grid.jqGrid("getGridParam", "selrow"); var code = grid.jqGrid("getCell", rowId, "DL_CODE"); if (code === $("input[name='DL_CODE']").val()) { var data = u.parse_form("#polhdiscloadingForm"); for (var i in data) { grid.jqGrid("setCell", rowId, i, data[i]); } u.hide_confirm(); u.growl_success("Policy Discount/Loading updated"); } else { u.hide_confirm(); u.growl_warning("Please select the correct row to edit"); } }); } }); $scope.policyCommissionSummarizer = 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; //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); ////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); ////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; }, "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(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")(); return ed; }; $scope.getPolicyFormData = function () { var insUwdRiskCovers = u.get_grid_data($scope.cover_grid); //var insUwdRiskFees = u.get_grid_data($scope.riskFees_grid); var insUwdRiskDiscountLoading = u.get_grid_data($scope.riskdiscloading_grid); var riskFees = u.get_grid_data($scope.riskFees_grid); var polhData = u.parse_form("#polheaderForm"); //var engineer_data = u.parse_form("#engineeringForm"); polhData.INS_UDW_ENGINEER_LOC = u.get_grid_data($scope.location_grid); polhData.INS_COINS_LEADER = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")); polhData.INS_UDW_ENGINEER_LOC.ForEach(l => { l.INS_UDW_ENG_OTHER = u.get_grid_data($scope.eng_grid) || []; l.INS_UDW_ENGINEER_FEES = []; var locId = l.ENG_SYS_ID; l.INS_UDW_ENG_OTHER.ForEach(r => { var id = r.ENG_OTHER_SYS_ID; r.INS_UWD_RISK_COVERS = []; r.INS_UDW_RISK_DISCLOAD = []; for (var c in insUwdRiskCovers) { //find covers which have the same the same risk sys_id if (insUwdRiskCovers[c]["RCOV_RISK_SYS_ID"] === id) { r.INS_UWD_RISK_COVERS.push(insUwdRiskCovers[c]); } } for (var d in insUwdRiskDiscountLoading) { //find risk fees which have the same the same risk sys_id if (insUwdRiskDiscountLoading[d]["DL_RISK_SYS_ID"] === id) { r.INS_UDW_RISK_DISCLOAD.push(insUwdRiskDiscountLoading[d]); } } }); for (var r in riskFees) { if (riskFees[r].ENG_FEE_RK_SYS_ID === locId) { l.INS_UDW_ENGINEER_FEES.push(riskFees[r]); } } }); //engineer_data.ENG_POLH_END_NO = 0; console.log(polhData); polhData.INS_UDW_POLICY_DISCLOAD = u.get_grid_data($scope.polhdiscloading_grid); //retrieve treaty information var treaties = u.get_grid_data($scope.reinsurance_grid); treaties = u.forEach(treaties, function (treaty) { treaty["INS_RI_TTY_ALLOCATION"] = u.parseJson(treaty["INS_RI_TTY_ALLOCATION"]); u.forEach(treaty["INS_RI_TTY_ALLOCATION"], function (allocation) { if (typeof allocation["INS_RI_TTY_SHARE"] == "string") { } allocation["INS_RI_TTY_SHARE"] = allocation["INS_RI_TTY_SHARE"] || "[]"; return allocation; }); return treaty; }, this); polhData["INS_RI_TTY_HEAD"] = treaties; // for (var i in polhData.INS_UDW_ENGINEER_LOC.INS_UDW_ENG_OTHER) { //loop through every risk and obtain the sys_id of the risk // var id = polhData.INS_UDW_ENGINEER_LOC.INS_UDW_ENG_OTHER[i]["ENG_OTHER_SYS_ID"]; // polhData.INS_UDW_ENGINEER_LOC.INS_UDW_ENG_OTHER[i]["INS_UWD_RISK_COVERS"] = []; // polhData.INS_UDW_ENGINEER_LOC.INS_UDW_ENG_OTHER[i]["INS_UDW_ENGINEER_FEES"] = []; // polhData.INS_UDW_ENGINEER_LOC.INS_UDW_ENG_OTHER[i]["INS_UDW_RISK_DISCLOAD"] = []; //for (var f in insUwdRiskFees) { // //find risk fees which have the same the same risk sys_id // if (insUwdRiskFees[f]["ENG_FEE_RK_SYS_ID"] === id) { // polhData.INS_UDW_ENG_OTHER[i]["INS_UDW_ENGINEER_FEES"].push(insUwdRiskFees[f]); // } //} // } 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.polfees_grid); 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.cover_grid)) { // return u.growl_warning("Please add Risk Cover"); //} //if (u.grid_empty($scope.eng_grid)) { // return u.growl_warning("Please add Other Engineering Details"); //} if (u.grid_empty($scope.location_grid)) { return u.growl_warning("Engineering location grid is empty, please add least one location to save"); } $scope.PolicyCalculations(); // var polhData = $scope.getPolicyFormData(); var polhData = u.getGlobal("EngGetPolicyData")(); if (!polhData.INS_UDW_ENGINEER_LOC.Any(l => l.INS_UDW_ENG_OTHER.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_RENEWAL_SER_NO"] - 1)); // const oldPolicy = await s.getPolicyHistoryAsync(polhData["POLH_SYS_ID"], (parseFloat(polhData["POLH_END_NO"]) - 1), (polhData["POLH_RENEW_SER_NO"])); // //if policy is in the endorsement stage find differences in the 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); u.getGlobal("savePolicy")(polhData, function (result) { //u.update_grid_status($scope.eng_grid, "ENG_OTHER_STATUS"); //u.update_grid_status($scope.riskFees_grid, "ENGINEER_FEE_STATUS"); 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 === "PRC")) { return u.growl_warning("You cannot endorse on 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 endorsement on the policy?", async function (e) { // Disable currency $("#currBtn").attr("disabled", "disabled"); $scope.isOpen = false; /*--------------------------------------------------------------- * 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; var endNo = $scope.endorsementData["END_NO"]; //diasable key policy action buttons $("#btn_add_location_details").prop("disabled", "disabled"); $("#btn_remove_location_details").prop("disabled", "disabled"); $("#btn_update_cover").prop("disabled", "disabled"); $("#btn_add_cover").prop("disabled", "disabled"); $("#btn_remove_cover").prop("disabled", "disabled"); $("#btn_reset_cover").prop("disabled", "disabled"); $("#ENG_START_DATE").prop("disabled", "disabled"); $("#ENG_END_DATE").prop("disabled", "disabled"); //obtain the pro rated premium and use for adjustment //alert(u.totalDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"])) var newNumberOfDays = u.totalDbDateDays($scope.endorsementData["END_TERM_DATE"], $scope.endorsementData["END_EFCTV_DATE"]); //if (newNumberOfDays < 365) { // newNumberOfDays += 1; //} else if (newNumberOfDays > 365) { // newNumberOfDays -= 1; //} //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(); break; case "IC": //INTERNAL CANCELLATION $scope.internalCancellationSetup(); break; case "CC": //CUSTOMER CANCELLATION $scope.customerCancellationSetup(); break; case "R": //RENEWAL endNo = 0; $scope.renewal(); break; //case "F": case "PRC": //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; 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); $("#ENG_START_DATE").prop("disabled", false); $("#ENG_END_DATE").prop("disabled", false); break; } //$scope.feeCancelationCheck(); $("#POLH_TXN_STATE").val("E"); $("#POLH_END_NO").val(endNo); u.getGlobal("endorsementRIUpdates")(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 () { 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"); u.setGridColumn($scope.endorsementGrid, { "END_STATUS": "A"}); //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.loader = function (func) { $("#policyCalculationsModal").modal(); setTimeout(async function () { func(); $("#policyCalculationsModal").modal("hide"); }, 500); }; $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_ENG_OTHER": function (val) { var risks = typeof (val) === "string" ? u.parseJson(val || "[]") : val || []; risks.ForEach(r => { r.ENG_OTHER_POLH_END_NO = endNo; r.ENG_OTHER_TOT_PREM_FC = 0; r.ENG_OTHER_TOT_PREM_BC = 0; r.ENG_OTHER_RISK_PREM_FC = 0; r.ENG_OTHER_RISK_PREM_BC = 0; r.ENG_OTHER_DISC_FC = 0; r.ENG_OTHER_DISC_BC = 0; r.ENG_OTHER_LOAD_FC = 0; r.ENG_OTHER_LOAD_BC = 0; r.ENG_OTHER_RI_PREM_FC = 0; r.ENG_OTHER_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); }); 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; } }); //Coinsurance leader u.setGridColumn($scope.grdCoinsLeader_grid, { "CIL_POLH_END_NO": endNo, "CIL_SHARE_PREM_FC": 0, "CIL_SHARE_PREM_BC": 0, "CIL_MEMBERS_PREM_FC": 0, "CIL_MEMBERS_PREM_BC": 0, "CIL_POL_PREM_FC": 0, "CIL_POL_PREM_BC": 0, "CIL_COMP_PREM_FC": 0, "CIL_COMP_PREM_BC": 0, "CIL_COMP_COMM_FC": 0, "CIL_COMP_COMM_BC": 0 }); }; $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); }, "INS_UDW_ENG_OTHER": 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.ENG_OTHER_POLH_END_NO = endNo; r.ENG_OTHER_TOT_PREM_FC = premBasis === "FP" //? -parseFloat(r.ENG_OTHER_TOT_PREM_FC || 0) ? 0 : parseFloat(r.ENG_OTHER_TOT_PREM_FC || 0) - (parseFloat(r.ENG_OTHER_TOT_PREM_FC || 0) * proRataValue); r.ENG_OTHER_TOT_PREM_BC = premBasis === "FP" //? -parseFloat(r.ENG_OTHER_TOT_PREM_BC || 0) ? 0 : parseFloat(r.ENG_OTHER_TOT_PREM_BC || 0) - (parseFloat(r.ENG_OTHER_TOT_PREM_BC || 0) * proRataValue); r.ENG_OTHER_RISK_PREM_FC = premBasis === "FP" // ? -parseFloat(r.ENG_OTHER_RISK_PREM_FC || 0) ? 0 : parseFloat(r.ENG_OTHER_RISK_PREM_FC || 0) - (parseFloat(r.ENG_OTHER_RISK_PREM_FC || 0) * proRataValue); r.ENG_OTHER_RISK_PREM_BC = premBasis === "FP" //? -parseFloat(r.ENG_OTHER_RISK_PREM_BC || 0) ? 0 : parseFloat(r.ENG_OTHER_RISK_PREM_BC || 0) - (parseFloat(r.ENG_OTHER_RISK_PREM_BC || 0) * proRataValue); r.ENG_OTHER_LOAD_FC = premBasis === "FP" // ? -parseFloat(r.ENG_OTHER_LOAD_FC || 0) ? 0 : parseFloat(r.ENG_OTHER_LOAD_FC || 0) - (parseFloat(r.ENG_OTHER_LOAD_FC || 0) * proRataValue); r.ENG_OTHER_LOAD_BC = premBasis === "FP" // ? -parseFloat(r.ENG_OTHER_LOAD_BC || 0) ? 0 : parseFloat(r.ENG_OTHER_LOAD_BC || 0) - (parseFloat(r.ENG_OTHER_LOAD_BC || 0) * proRataValue); r.ENG_OTHER_RI_PREM_FC = premBasis === "FP" //? -parseFloat(r.ENG_OTHER_RI_PREM_FC || 0) ? 0 : parseFloat(r.ENG_OTHER_RI_PREM_FC || 0) - (parseFloat(r.ENG_OTHER_RI_PREM_FC || 0) * proRataValue); r.ENG_OTHER_RI_PREM_BC = premBasis === "FP" //? -parseFloat(r.ENG_OTHER_RI_PREM_BC || 0) ? 0 : parseFloat(r.ENG_OTHER_RI_PREM_BC || 0) - (parseFloat(r.ENG_OTHER_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); }); 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; } }); }; $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_ENG_OTHER": (val) => { var risks = typeof val === "string" ? u.parseJson(val || "[]") : val || []; risks.ForEach(r => { r.ENG_OTHER_POLH_END_NO = endNo; r.ENG_OTHER_TOT_PREM_FC = 0; r.ENG_OTHER_TOT_PREM_BC = 0; r.ENG_OTHER_RISK_PREM_BC = 0; r.ENG_OTHER_RISK_PREM_FC = 0; r.ENG_OTHER_GROSS_PREM_FC = 0; r.ENG_OTHER_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); }); 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.toFixed(0), "INS_UDW_ENG_OTHER": function (val) { var risks = u.parseJson(val); risks.ForEach(r => { r.ENG_OTHER_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); }); }, "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_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.toFixed(0), "INS_UDW_ENG_OTHER": function (val) { const risks = typeof val === "string" ? u.parseJson(val || "[]") : val; risks.ForEach(r => { r.ENG_OTHER_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); }); return JSON.stringify(risks); } }); }; $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.toFixed(0), "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_ENG_OTHER": function (val) { var risk = typeof val === "string" ? u.parseJson(val || "[]") : val || []; risk.ForEach(r => { r.ENG_OTHER_SUSPND_YN = "Y"; r.ENG_OTHER_SUS_FROM_DATE = suspensionStartDate; r.ENG_OTHER_SUS_TO_DATE = suspensionEndDate; r.ENG_OTHER_SUSPND_PERIOD = days; r.ENG_OTHER_POLH_END_NO = endNo; 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 => { r.RPCOV_END_NO = endNo; }); r.INS_UWD_RISK_COVERS = JSON.stringify(r.INS_UWD_RISK_COVERS); }); return JSON.stringify(risk); }, "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(); } }); }; $scope.caclRi = function () { //obtain the policy header object var polHead = u.parse_form("#polheaderForm"); if (!$scope.treatyData) return u.growl_info("Ri Treaty setup data is empty please fetch treaty setup data"); //loop through all locations and apply treaty setup var locations = Enumerable.From(u.get_grid_data($scope.eng_grid)); locations.ForEach(function (location) { //calculate ri on each location var locationRiAllocationData = u.locationRiAllocation(polHead, { "RI_SI_FC": location.ENG_OTHER_RI_SI_FC, "RI_SI_BC": location.ENG_OTHER_RI_SI_BC, "RI_PREM_BC": location.ENG_OTHER_RI_PREM_FC, "RI_PREM_FC": location.ENG_OTHER_RI_PREM_BC }, $scope.treatyData); //console.log(locationRiAllocationData); //add treaty data into their respective tables //cleat treaty header grid u.clear_grid_data($scope.reinsurance_grid); //1. add treaty head record for each location $scope.reinsurance_grid.addRowData(location.ID, { TTH_ACC_SI_BC: location.ENG_OTHER_RI_SI_BC, TTH_ACC_SI_FC: location.ENG_OTHER_RI_SI_FC, TTH_ADJ_YN: null, TTH_CLASS_CODE: polHead.POLH_CLASS_CODE, TTH_COMB_LOC_ID: null, TTH_CRTE_BY: u.getUserCode(), TTH_CRTE_DATE: u.get_date(), TTH_EML_PERC: location.ENG_OTHER_EML_PERC, TTH_FROM_DATE: location.ENG_OTHER_START_DATE, TTH_INS_SRCE: polHead.POLH_INS_SOURCE, TTH_LOC_END_NO: polHead.POLH_END_NO, TTH_LOC_SYS_ID: null, TTH_MOD_BY: null, TTH_MOD_DATE: null, TTH_POLH_END_NO: polHead.POLH_END_NO || 0, TTH_POLH_SYS_ID: polHead.POLH_SYS_ID, TTH_POLNUM: polHead.POLH_DISPLAY_NO, TTH_REF_ID: location.ENG_OTHER_SYS_ID, TTH_RISK_END_NO: polHead.POLH_END_NO, TTH_RISK_SYS_ID: location.ENG_OTHER_SYS_ID, TTH_RI_ACC_YN: null, TTH_RI_PREM_BC: location.ENG_OTHER_RI_PREM_BC, TTH_RI_PREM_FC: location.ENG_OTHER_RI_PREM_FC, TTH_RI_SI_BC: location.ENG_OTHER_RI_SI_BC, TTH_RI_SI_FC: location.ENG_OTHER_RI_SI_FC, TTH_SC_CODE: polHead.POLH_SUB_CLASS_CODE, TTH_STATUS: "A", TTH_TOTAL_PREM_BC: location.ENG_OTHER_TOT_PREM_BC, TTH_TOTAL_PREM_FC: location.ENG_OTHER_TOT_PREM_FC, TTH_TOTAL_SI_BC: location.ENG_OTHER_SI_BC, TTH_TOTAL_SI_FC: location.ENG_OTHER_SI_FC, TTH_TO_DATE: location.ENG_OTHER_END_DATE, TTH_UW_YEAR: location.ENG_OTHER_UW_YEAR, INS_RI_TTY_ALLOCATION: JSON.stringify(locationRiAllocationData) }); }); }; $scope.renewal = function () { var renNo = parseInt($("#POLH_RENEW_SER_NO").val() || 0) + 1; $("#POLH_RENEW_SER_NO").val(renNo); //Risk Covers u.setGridColumn($scope.cover_grid, { "RPCOV_END_NO": 0 }); //Commissions u.setGridColumn($scope.intermCom_grid, { "CMM_END_NO": 0 }); //Prem Register u.setGridColumn($scope.premiumreg_grid, { "PR_END_NO": 0 }); //policy documents u.setGridColumn($scope.polFileGrid, { "PF_PH_END_NO": 0 }); //Risk Fees u.setGridColumn($scope.riskFees_grid, { "VEH_FEE_END_NO": 0 }); //Pol fees summary u.setGridColumn($scope.polfees_grid, { "POL_FEE_END_NO": 0 }); s.getProductTreaty($("#POLH_SUB_CLASS_CODE").val(), $("#POLH_POL_UW_YEAR").val(), $("#POLH_CURRENCY").val(), function (response) { if (response.state && response.data) { $scope.treatyData = response.data; $scope.caclRi(); u.growl_success("Treaty successfully fetched for the selected product"); } else { u.modalInfo( `Treaty not setup for underwriting year ${$("#POLH_POL_UW_YEAR").val()} for the product ${ $("#POLH_SUB_CLASS_CODE").val()} with currency ${$("#POLH_CURRENCY").val() }, please check RI treaty setup`); //Reset form $scope.reset(); } }, function (err) { u.modalInfo( `Error fetching treaty not setup for underwriting year ${$("#POLH_POL_UW_YEAR").val() } for the product ${$("#POLH_SUB_CLASS_CODE").val()} with currency ${$("#POLH_CURRENCY").val() }, renewal cannot continue. please try again later`); //Reset form $scope.reset(); }); }; /*--------------------------- *Endorsement Deletion process *-------------------------*/ $("#btnEndDeletion").click(function () { u.modal_confirmation("Are you sure you want to delete Endorsement?", function () { if (!u.field_empty("#POLH_SYS_ID") && !u.field_empty("#POLH_END_NO")) { s.risk_end_deletion($("#POLH_SYS_ID").val(), (parseInt($("#POLH_END_NO").val()) - 1), function (result) { if (result) { s.search_policy($("#POLH_SYS_ID").val(), function (data) { $scope.searched = true; $scope.result = data; if (data.length > 0) { $scope.search_fill(data[0]); } }); } else { u.growl_info("Unable to delete endorsement, please try again"); } u.hide_confirm(); }, function (err) { u.growl_error("Error fetching search results"); }); } else { u.growl_info("Invalid Policy, please check and try again!"); } }); }); // policy Confirmation process //$("#btnConfirm").click(function() { // if ($("#POLH_TXN_STATE") === "P") // return u.growl_warning("The policy has already been approved, you cannot confirm."); // if ($("#POLH_TXN_STATE") === "C") // return u.growl_warning("The policy has already been confirmed, you cannot confirm."); // //get the selected Risk ID // var gengrid = $scope.eng_grid; // var selId = gengrid.jqGrid("getGridParam", "selrow"); // var RiskSI = gengrid.jqGrid("getCell", selId, "ENG_OTHER_SI_BC"); // //get the user limit details // var usrgrid = $scope.users_grid; // var rowIds = usrgrid.jqGrid("getDataIDs"); // var userCode = u.getUserCode(); // for (var i = 0, len = rowIds.length; i < len; i++) { // //get value of the cell or column in an array // var currRow = rowIds[i]; // var getRIYN = usrgrid.jqGrid("getCell", currRow, "URL_RI_ALL_YN"); // var getUserLimSI = usrgrid.jqGrid("getCell", currRow, "URL_UDW_SI_LIM"); // var getUserId = usrgrid.jqGrid("getCell", currRow, "URL_USR_CODE"); // if (getUserId == userCode && getRIYN == "N" && RiskSI > getUserLimSI) { // $("#PolConfirmationLimit").modal(); // } else if (getUserId == userCode && getRIYN == "N" && RiskSI <= getUserLimSI) { // u.modal_confirmation("Are you sure you want to Confirm ?", // function() { // if (!$scope.confirming) { // $scope.confirming = true; // var formData = u.parse_form("#PolconfirmationForm"); // s.confirmPolicy($("#POLH_SYS_ID").val(), // $("#POLH_END_NO").val(), // u.getUserCode(), // formData["RI_POSTED_YN"], // function(response) { // $scope.confirming = false; // if (response.state) { // //Change policy transaction state to Confirmed - C // var txnState = response.POLH_TXN_STATE; // //alert(txnState); // u.growl_success(response.message); // $("#POLH_TXN_STATE").val(txnState); // u.form_text_Blue_color(); // $("#PolConfirmModal").modal("hide"); // } else { // u.growl_error(response.message); // } // }, // function() { // $scope.confirming = false; // u.growl_error("Server Error Confirming Policy"); // }); // } // u.hide_confirm(); // }); // } else if (getUserId == userCode && getRIYN == "Y" && RiskSI >= getUserLimSI) { // u.modal_confirmation("Are you sure you want to Confirm ?", // function() { // if (!$scope.confirming) { // $scope.confirming = true; // var formData = u.parse_form("#PolconfirmationForm"); // s.confirmPolicy($("#POLH_SYS_ID").val(), // $("#POLH_END_NO").val(), // u.getUserCode(), // formData["RI_POSTED_YN"], // function(response) { // $scope.confirming = false; // if (response.state) { // //Change policy transaction state to Confirmed - C // var txnState = response.POLH_TXN_STATE; // //alert(txnState); // u.growl_success(response.message); // $("#POLH_TXN_STATE").val(txnState); // u.form_text_Blue_color(); // $("#PolConfirmModal").modal("hide"); // } else { // u.growl_error(response.message); // } // }, // function() { // $scope.confirming = false; // u.growl_error("Server Error Confirming Policy"); // }); // } // u.hide_confirm(); // }); // } else if (getUserId == userCode && getRIYN == "Y" && RiskSI <= getUserLimSI) { // u.modal_confirmation("Are you sure you want to Confirm ?", // function() { // if (!$scope.confirming) { // $scope.confirming = true; // var formData = u.parse_form("#PolconfirmationForm"); // s.confirmPolicy($("#POLH_SYS_ID").val(), // $("#POLH_END_NO").val(), // u.getUserCode(), // formData["RI_POSTED_YN"], // function(response) { // $scope.confirming = false; // if (response.state) { // //Change policy transaction state to Confirmed - C // var txnState = response.POLH_TXN_STATE; // //alert(txnState); // u.growl_success(response.message); // $("#POLH_TXN_STATE").val(txnState); // u.form_text_Blue_color(); // $("#PolConfirmModal").modal("hide"); // } else { // u.growl_error(response.message); // } // }, // function() { // $scope.confirming = false; // u.growl_error("Server Error Confirming Policy"); // }); // } // u.hide_confirm(); // }); // } // } //}); //Approval Process //$("#btnApproval").click(function() { // if (u.field_empty("#POLH_SYS_ID")) // return u.growl_warning("There is no Policy to Approve, please Check and try again"); // if ($("#POLH_SYS_ID").val() === "A") // return u.growl_warning("There is no Policy to Approve, please Check and try again"); // if ($("#POLH_TXN_STATE") === "P") // return u.growl_warning("The policy has already been approved, you cannot Approved."); // if (!u.form_validation("#PolApprovalForm")) return u.growl_warning("Fields marked red are required"); // u.modal_confirmation("Are you sure you want to Approve ?", // function() { // var formData = u.parse_form("#PolApprovalForm"); // s.OtherEngineeringpolicyApproval( // { // POL_SYS_ID: $("#POLH_SYS_ID").val(), // POL_END_NO: 0, // TXN_TYPE: 1, // CRTE_BY: u.getUserCode(), // POST_DATE: formData["APPROVE_DATE"] // }, // function(response) { // if (response.state) { // u.growl_success("Policy successfully Approved"); // var str = $("#POLH_DISPLAY_NO").val(); // var polNo = $("#POLH_DISPLAY_NO").val(); // var displayNo = "P-" + str.substring(1, polNo.length); // $("#POLH_DISPLAY_NO").val(displayNo); // var txnState = response.result.POLH_TXN_STATE; // $("#POLH_TXN_STATE").val(txnState); // $("#POLH_TXN_STATE").val(txnState); // if (txnState === ("P")) { // u.form_text_Green_color(); // } // } else { // u.growl_error(response.message); // } // }, // function() { // u.growl_error("Server Error Confirming Policy"); // }); // u.hide_confirm(); // }); //}); /*-------------------- * Policy Form delete button *------------------*/ //$("#btnDelete").click(function () { // u.modal_confirmation("Are you sure you want to delete this policy?", // function () { // if ($("input[name='POLH_SYS_ID']").val().length <= 0) { // $scope.reset_setup(); // u.hide_confirm(); // } else { // if (!$scope.saving) { // $scope.saving = true; // var policy_data = u.parse_form("#polheaderForm"); // policy_data.POLH_STATUS = "D"; // s.save_policy(policy_data, // function (response) { // u.hide_confirm(); // $scope.saving = false; // if (response.state) { // u.growl_error("Policy Successfully Deleted"); // $scope.reset_setup(); // } else { // u.growl_error("Error deleting Policy"); // } // }, // function () { // u.hide_confirm(); // $scope.saving = false; // u.growl_error("Can not delete Policy at the moment please try again later"); // }); // } else { // u.growl_info("The application is busy please wait for the current process to finish"); // } // } // }); //}); /*------------------------------ * Refresh or Reset form *----------------------------*/ // $scope.reset = function () { u.form_reset("#polheaderForm"); u.form_reset("#coverForm"); u.form_reset("#engForm"); u.form_reset("#engineeringForm"); u.form_reset("#policyFilesForm"); u.clear_grid_data($scope.cover_grid); u.clear_grid_data($scope.eng_grid);; u.clear_grid_data($scope.PremSummary_grid); u.clear_grid_data($scope.cliams_grid); u.clear_grid_data($scope.facinpremium_grid); u.clear_grid_data($scope.coinsurance_grid); u.clear_grid_data($scope.interComm_grid); u.clear_grid_data($scope.polfees_grid); 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.riskFees_grid); 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"); $("#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("engineeringOthersReset", $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"); }); }); /*----------------- * search grid *----------------*/ $scope.search_grid = u.default_grid("#grdSearchResults", "#grdSearchResultsPager", "Product Search Results", ["ID", "Policy No.", "Policy Display No.", "Policy State.", "index"], [ { name: "POLH_SYS_ID", index: "POLH_SYS_ID", hidden: true }, { name: "POLH_SYS_ID", index: "POLH_SYS_ID" }, { name: "POLH_DISPLAY_NO", index: "POLH_DISPLAY_NO" }, { name: "POLH_STATUS", index: "POLH_STATUS" }, { name: "index", id: true, index: "index", hidden: true } ], function (index) { $scope.selected_index = index; $scope.search_fill($scope.result[index]); }, function (index) { $scope.search_fill($scope.result[index]); u.clear_grid_data($scope.search_grid); $("#mySearchResultModal").modal("hide"); }); /*--------------------------- * Search *-------------------------*/ $("#btnQueryPolicy").click(function () { var query = $("#txtSearch").val(); if (query && query.length > 0 && query !== " ") { s.search_policy(query, function (result) { $scope.searched = true; $scope.result = result; if (result.length > 0) { if (result.length > 1) { /*display result of the search to the user in a modal*/ for (var i in result) { result[i].index = i; $scope.search_grid.addRowData(result[i].index, result[i]); } $("#mySearchResultModal").modal(); } else { $scope.search_fill(result[0]); } } else { u.growl_info("Policy No. not found, please make sure you enter the correct Policy No!"); } }, function (err) { u.growl_error("Error fetching search results"); }); } else { u.growl_info("Please check Policy No and try again!"); } }); u.setGlobalStatic("productSearchFill", function (policyData) { $scope.reset(); u.getGlobal("searchFill")(policyData, function (policy) { // u.fill_form(policy, "#engineeringForm"); // Filling risk //u.clear_grid_data($scope.eng_grid); //u.clear_grid_data($scope.location_grid); //u.clear_grid_data($scope.cover_grid); //u.clear_grid_data($scope.riskFees_grid); //for (var i in policy.INS_UDW_ENGINEER_LOC) { // for (var k in policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER) { // $scope.eng_grid.addRowData(policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[k].ID, // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[k]); // console.log(policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[k]); // // u.gridPopulate($scope.eng_grid, policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[k]); // } // // Get risk covers // for (var q in policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER) { // for (var x in policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[q].INS_UWD_RISK_COVERS) { // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[q].INS_UWD_RISK_COVERS[x]["RCOV_NAME"] = // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[q].INS_UWD_RISK_COVERS[x]["MS_UDW_COVERS"]["CVR_NAME"]; // $scope.cover_grid.addRowData(policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[q].INS_UWD_RISK_COVERS[x].RCOV_RISK_SYS_ID, // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[q].INS_UWD_RISK_COVERS[x]); // } // } // //Filling Risk fees // for (var r in policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENGINEER_FEES) { // //get Fee Names // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENGINEER_FEES[r]["ENG_FEE_NAME"] = // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENGINEER_FEES[r]["MS_COMPULSORY_FEES"]["FEE_NAME"]; // //Fill Fees Grid // $scope.riskFees_grid.addRowData(policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENGINEER_FEES[r].ID, // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENGINEER_FEES[r]); // } // for (var d in policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER) { // for (var t in policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[d].INS_UDW_RISK_DISCLOAD) { // $scope.riskdiscloading_grid.addRowData(policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[d].INS_UDW_RISK_DISCLOAD[t].ID, // policy.INS_UDW_ENGINEER_LOC[i].INS_UDW_ENG_OTHER[d].INS_UDW_RISK_DISCLOAD[t]); // } // //get Discount/Loading // } //} //// location GRid //policy.INS_UDW_ENGINEER_LOC.ForEach(loc => { // loc.INS_UDW_ENG_OTHER = JSON.stringify(loc.INS_UDW_ENG_OTHER); //}); //u.gridPopulate($scope.location_grid, policy.INS_UDW_ENGINEER_LOC); u.getGlobal("EngPolicyFill")(policy); u.setGlobal("RIData", policy.INS_RI_TTY_HEAD); $scope.PolicyCalculations(); }); }); $scope.search_fill = u.getGlobalStatic("productSearchFill"); /*------------------------------------- * 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='INSUR_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='CUS_OFFICIAL_NAME']", function (code) { /*fetch customer details after successful validation*/ s.get_customer(code, function (response) { //u.fill_form(response, "#polheaderForm"); u.setFieldVal("#POLH_CUST_NAME", response["CUS_OFFICIAL_NAME"]); u.setFieldVal("#POLH_CUST_ADRS", response["CUS_ADDRS2"]); u.setFieldVal("#POLH_CUST_TEL", response["CUS_PHONE1"]); }); }); u.lovCodeVal("form input[name='CUS_TYPE_CODE']", "check_customertype_code", "form input[name='CUS_TYPE_NAME']"); u.lovCodeVal("form input[name='POLH_CURRENCY']", "check_currency_code", "", function (code) { s.getCurrencyRate(code, function (fx) { u.setFieldVal("#POLH_CURRENCY_RATE", fx["EXR_FX_RATE"]); }); }); /*----------------------------- * //Risk Cover Rate Calculation *---------------------------*/ $("#RCOV_GROSS_PREM_FC").prop("disabled", true); $("#RCOV_NET_PREM_FC").prop("disabled", true); document.getElementById("RCOV_RATE").addEventListener("focusout", rateFunction); document.getElementById("RCOV_SI_FC").addEventListener("focusout", rateFunction); function rateFunction() { //alert("Input field lost focus."); var grossPremFC = ""; var grossPremBC = ""; var NetPremFC = ""; var NetPremBC = ""; var ExchangeRate = $("#ENG_OTHER_CURRENCY_RATE").val(); if ($("#RCOV_SI_FC").val() == "" || $("#RCOV_SI_FC").val() == 0 || $("#RCOV_RATE").val() == "" || $("#RCOV_RATE").val() <= 0 || $("#RCOV_RATE").val() > 100) { // u.growl_warning("Please Check the RATE or SUM INSURED values"); } else { grossPremFC = ($("#RCOV_SI_FC").val() * $("#RCOV_RATE").val() * 0.01).toFixed(2); //grossPremBC = parseFloat(grossPremFC / ExchangeRate).toFixed(2); NetPremFC = ($("#RCOV_SI_FC").val() * $("#RCOV_RATE").val() * 0.01).toFixed(2); //NetPremBC = parseFloat(NetPremFC / ExchangeRate).toFixed(2); const currRate = parseFloat($("#POLH_CURRENCY_RATE").val()); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = parseInt($("#POLH_POL_DAYS").val()); var proRataPerc = 0; switch (premBasis) { case "SP": //console.log(u.getGlobal("shortPeriods")); //console.log(polNumDays); var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays); //console.log(shortPeriod); //console.log(shortPeriod[0].perc); 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)); } } /*----------------------------- * //Risk Premium entry *---------------------------*/ //document.getElementById("RCOV_SI_FC").addEventListener("focusout", premiumEntry); function premiumEntry() { var grid = $scope.cover_grid; var sel_Id = grid.jqGrid("getGridParam", "selrow"); var userpremium = grid.jqGrid("getCell", sel_Id, "CVR_USER_PREMIUM"); if (userpremium == "Y") { document.getElementById("RCOV_GROSS_PREM_FC").disabled = false; //$('#RCOV_GROSS_PREM_FC').prop('disabled', false); } else { document.getElementById("RCOV_GROSS_PREM_FC").disabled = true; }; } //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(""); } } //Check box on enabling input fields //document.getElementById('ENG_RIEML').onchange = function () { // document.getElementById('ENG_EML').disabled = !this.checked; //}; document.getElementById("ENG_OTHER_STND_BY").onchange = function () { document.getElementById("ENG_OTHER_CAP").disabled = !this.checked; }; /* //Hide or show Covers in the Risk Covers (to filter out the covers for particular risk */ $scope.hideShowCovers = function () { //get the selected Risk ID var vehgrid = $scope.eng_grid; var selId = vehgrid.jqGrid("getGridParam", "selrow"); var vehRiskId = vehgrid.jqGrid("getCell", selId, "ENG_OTHER_SYS_ID"); //get the Risk Cover data var covgrid = $scope.cover_grid; var rowIds = covgrid.jqGrid("getDataIDs"); // iterate through the risk cover rows to hide or show covers for (var i = 0, len = rowIds.length; i < len; i++) { //get value of the cell or column in an array var currRow = rowIds[i]; var getRiskCovId = covgrid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); if (getRiskCovId != vehRiskId) { //hide if covers are not for the selected risk $("#" + currRow).hide(); } else if (getRiskCovId == vehRiskId) { //Show if covers are for the selected risk $("#" + currRow).show(); } } }; // Cover level SI and Premium Calculations: $("#btn_get_Cover_Premiums").click(function () { $scope.SumCoverRiskValues(); }); // calculate sum of cover amounts $scope.SumCoverRiskValues = function () { //Declare variables var riskSumSifc = 0; var riskSumSibc = 0; var sumGrossPremFc = 0; var sumGrossPremBc = 0; var sumNetPremFc = 0; var sumNetPremBc = 0; var sumLoadFc = 0; var sumLoadBc = 0; var sumDisFc = 0; var sumDisBc = 0; var sumAnnPremFc = 0; var sumAnnPremBc = 0; var sumRISIFc = 0; var sumRISIBc = 0; var sumRiPremFc = 0; var sumRiPremBc = 0; //Risk/Other Engineering Grid var riskgrid = u.getGlobal("udwEngOtherGrid"); //var rowIdRisk = riskgrid.jqGrid("getDataIDs"); // var grid = $scope.cover_grid; var riskRowId = u.getSelRow(riskgrid); // check for Premium pasis const premBasis = $("#POLH_PREM_BASIS").val(); var polNumDays = (parseInt($("#POLH_POL_DAYS").val())).toFixed(0); 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; } var covers = u.get_grid_data($scope.cover_grid); if (covers.Any()) { covers.ForEach(c => { if (c.RCOV_STATUS !== "D") { if (c.RCOV_RI_SI_YN === "Y") { sumRISIFc += parseFloat(c.RCOV_SI_FC); sumRISIBc += parseFloat(c.RCOV_SI_BC); riskSumSifc += parseFloat(c.RCOV_SI_FC); riskSumSibc += parseFloat(c.RCOV_SI_BC); } 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_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); } sumAnnPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumAnnPremBc += parseFloat(c.RCOV_ANNL_PREM_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); } }); //grid.jqGrid("footerData", "set", { 'RCOV_SI_FC': riskSumSifc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_SI_BC': riskSumSibc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_GROSS_PREM_FC': sumGrossPremFc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_GROSS_PREM_BC': sumGrossPremBc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_NET_PREM_FC': sumNetPremFc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_NET_PREM_BC': sumNetPremBc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_LOAD_FC': sumLoadFc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_LOAD_BC': sumLoadBc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_DISC_FC': sumDisFc.toFixed(2) }); //grid.jqGrid("footerData", "set", { 'RCOV_DISC_BC': sumDisBc.toFixed(2) }); // set risk SI and Premiums values, // riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RISK_PREM_FC", sumGrossPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RISK_PREM_FC", sumNetPremFc.toFixed(2)); // riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RISK_PREM_BC", sumGrossPremBc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RISK_PREM_BC", sumNetPremBc.toFixed(2)); // riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_PREMIUM_FC", sumNetPremFc.toFixed(2)); // riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_PREMIUM_BC", sumNetPremBc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_TOT_PREM_FC", sumAnnPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_TOT_PREM_BC", sumAnnPremBc.toFixed(2)); //RI VALUES // riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RI_PREM_FC", sumGrossPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RI_PREM_FC", sumRiPremFc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RI_PREM_BC", sumRiPremBc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_SI_FC", riskSumSifc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_SI_BC", riskSumSibc.toFixed(2)); //checkif we are to apply EML if (riskgrid.jqGrid("getCell", riskRowId, "ENG_OTHER_EML_YN") === "Y") { var emplPerc = parseFloat(riskgrid.jqGrid("getCell", riskRowId, "ENG_OTHER_EML_PERC") || 0); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RI_SI_FC", (parseFloat(sumRISIFc) * (emplPerc / 100)) .toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RI_SI_BC", (parseFloat(sumRISIBc) * (emplPerc / 100)) .toFixed(2)); } else { riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RI_SI_FC", parseFloat(sumRISIFc).toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_RI_SI_BC", parseFloat(sumRISIBc).toFixed(2)); } // riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_SUM_INSURED_FC", riskSumSifc.toFixed(2)); // riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_SUM_INSURED_BC", riskSumSibc.toFixed(2)); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_LOAD_FC", sumLoadFc.toFixed(2) || 0); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_LOAD_BC", sumLoadBc.toFixed(2) || 0); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_DISC_FC", sumDisFc.toFixed(2) || 0); riskgrid.jqGrid("setCell", riskRowId, "ENG_OTHER_DISC_BC", sumDisBc.toFixed(2) || 0); riskgrid.jqGrid("setCell", riskRowId, "INS_UWD_RISK_COVERS", JSON.stringify(u.get_grid_data($scope.cover_grid))); // Policy Level SI and premium Calculations $scope.SumPolhAmounts(); } else { var locations = u.get_grid_data(u.getGlobal("udwEngGrid")); var otherRisks = []; locations.ForEach(loc => { otherRisks = u.parseJson(loc.INS_UDW_ENG_OTHER); otherRisks.ForEach(other => { var covers = u.parseJson(other.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); sumAnnPremFc += parseFloat(c.RCOV_ANNL_PREM_FC || 0); sumAnnPremBc += 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); } } }); other.INS_UWD_RISK_COVERS = covers; other.ENG_OTHER_RISK_PREM_FC = sumNetPremFc; other.ENG_OTHER_RISK_PREM_BC = sumNetPremBc; other.ENG_OTHER_SI_FC = riskSumSifc || 0; other.ENG_OTHER_SI_BC = riskSumSibc || 0; other.ENG_OTHER_TOT_PREM_FC = sumAnnPremFc || 0; other.ENG_OTHER_TOT_PREM_BC = sumAnnPremBc || 0; other.ENG_OTHER_RI_SI_FC = sumRISIFc || 0; other.ENG_OTHER_RI_SI_BC = sumRISIBc || 0; other.ENG_OTHER_RI_PREM_FC = sumRiPremFc || 0; other.ENG_OTHER_RI_PREM_BC = sumRiPremBc || 0; other.ENG_OTHER_LOAD_FC = sumLoadFc || 0; other.ENG_OTHER_LOAD_BC = sumLoadBc || 0; other.ENG_OTHER_DISC_FC = sumDisFc || 0; other.ENG_OTHER_DISC_BC = sumDisBc || 0; other.ENG_OTHER_PERIOD_DAYS = polNumDays; riskSumSifc = 0; riskSumSibc = 0; sumGrossPremFc = 0; sumGrossPremBc = 0; sumNetPremFc = 0; sumNetPremBc = 0; sumLoadFc = 0; sumLoadBc = 0; sumDisFc = 0; sumDisBc = 0; sumAnnPremFc = 0; sumAnnPremBc = 0; sumRISIFc = 0; sumRISIBc = 0; sumRiPremFc = 0; sumRiPremBc = 0; }); loc.INS_UDW_ENG_OTHER = otherRisks; loc.ENG_PERIOD_DAYS = polNumDays; }); //u.setGridColumn(u.getGlobal("udwEngGrid"), // { // "ENG_PERIOD_DAYS": polNumDays, // "INS_UDW_ENG_OTHER": JSON.stringify(otherRisks) // }); u.clear_grid_data(u.getGlobal("udwEngGrid")); u.grid_populate(u.getGlobal("udwEngGrid"), "", locations); } }; //Policy Level SI and premium Calculations // calculate sum of Risk level amounts $scope.SumPolhAmounts = function () { //Declare variables var polGrossPremFc = 0; var polGrossPremBc = 0; var polNetPremFc = 0; var polNetPremBc = 0; var polLoadFc = 0; var polLoadBc = 0; var polDisFc = 0; var polDisBc = 0; var polSifc = 0; var polSibc = 0; // var polSifc = 0; // var polSibc = 0; //var polSifc = 0; //var polSibc = 0; // var polgrid = $scope.eng_grid; var polrowIds = polgrid.jqGrid("getDataIDs"); // iterate through the rows and check if it exists each of them for (var i = 0, len = polrowIds.length; i < len; i++) { var currRow = polrowIds[i]; // Sum risk level Amounts for Policy Level Amounts polSifc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_SI_FC")); polSibc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_SI_BC")); polGrossPremFc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_TOT_PREM_FC")); polGrossPremBc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_TOT_PREM_BC")); polLoadFc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_LOAD_FC")); polLoadBc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_LOAD_BC")); polDisFc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_DISC_FC")); polDisBc += parseFloat(polgrid.jqGrid("getCell", currRow, "ENG_OTHER_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); // $("#ENG_SI_FC").val(polSifc); $("#ENG_SI_BC").val(polSibc); $("#ENG_TOT_PREM_FC").val(polGrossPremFc); $("#ENG_TOT_PREM_BC").val(polGrossPremBc); // $("#ENG_OTHER_SUM_INSURED_FC").val(polSifc); $("#ENG_OTHER_SUM_INSURED_BC").val(polSibc); $("#ENG_OTHER_PREMIUM_FC").val(polGrossPremFc); $("#ENG_OTHER_PREMIUM_BC").val(polGrossPremBc); }; //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() { if ($("#POLH_SUB_CLASS_CODE").val() == "") { u.growl_warning("The Risk Code cannot be null, Please check and try again"); } else { /* obtain parameter for our request */ var productRiskData = { PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(), CUR_RATE: $("#POLH_CURRENCY_RATE").val(), }; // var grid = $scope.cover_grid; var rowIds = grid.jqGrid("getDataIDs"); //declare array to contain the codes to varify var CodeArray = []; // iterate through the rows in the grid and add Covers to Array for (var i = 0, len = rowIds.length; i < len; i++) { var currRow = rowIds[i]; //get value of the cell or column in an array var coverCode = grid.jqGrid("getCell", currRow, "RCOV_CODE"); var RiskCode = grid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID"); var riskCov = coverCode + RiskCode; //alert(riskCov); CodeArray.push(riskCov); } //send parameters and get Default covers from the database var result = await s.getRiskDefaulCoversAsync(productRiskData); if (result && result.length && result.length > 0) { for (var i in result) { //alert(JSON.stringify(result)); result[i]["RCOV_NAME"] = result[i]["MS_UDW_COVERS"]["CVR_NAME"]; result[i]["RCOV_TYPE"] = result[i]["MS_UDW_COVERS"]["CVR_TYPE"]; result[i]["RCOV_RI_YN"] = result[i]["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"]; result[i]["CVR_USER_PREMIUM"] = result[i]["MS_UDW_COVERS"]["CVR_USER_PREMIUM"]; result[i]["RCOV_PREM_REFUND"] = result[i]["MS_UDW_COVERS"]["RCOV_PREM_REFUND"]; result[i]["RCOV_RATE_CHANGE"] = result[i]["MS_UDW_COVERS"]["CVR_RATE_CHANGE"]; result[i]["RCOV_SI_CHANGE"] = result[i]["MS_UDW_COVERS"]["CVR_SI_CHANGE"]; result[i]["RCOV_COVER_LEVEL"] = result[i]["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"]; result[i]["RCOV_RISK_SYS_ID"] = $("#ENG_OTHER_SYS_ID").val(); result[i]["RCOV_RISK_NO"] = $("#ENG_OTHER_RISK_ID").val(); //result[i]["RCOV_SI_FC"] = $("#RCOV_SI_FC").val(); var deftCoverCode = result[i].RCOV_CODE; var newRiskCode = $("#ENG_OTHER_SYS_ID").val(); var verifyRiskCover = deftCoverCode + newRiskCode; //alert(verifyRiskCover); //add if Cover is not found in the Grid// if ($.inArray(verifyRiskCover, CodeArray) < 0) { //fill in default covers if not in the grid //$scope.cover_grid.addRowData(result[i].ID, result[i]); } else { u.growl_warning("Cover exists for this Risk, you cannot add same Cover " + deftCoverCode); } } // //SumCoverRiskValues(); console.log(result); return result; } } } //Get default Covers if not added $("#btn_get_DeftCovers").click(function () { 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 = u.parseJson(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.eng_grid)) 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.eng_grid)) 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.eng_grid)) 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(); } }; /*--------------------------------------------- * RE INSURANCE CALCULATIONS *--------------------------------------------*/ //$scope.RICalculations = function() { // //obtain the policy header object // var polHead = u.parse_form("#polheaderForm"); // switch ($scope.treatyData["TH_RI_LEVEL"]) { // case "P": // //apply treaty setup to the policy header // var riData = u.policyRiAllocation(polHead, $scope.treatyData); // break; // case "L": // { // //loop through all locations and apply treaty setup // var locations = Enumerable.From(u.get_grid_data($scope.eng_grid)); // locations.ForEach(function(location) { // //calculate ri on each location // var locationRiAllocationData = u.locationRiAllocation(polHead, // { // "RI_SI_FC": location.ENG_OTHER_RI_SI_FC, // "RI_SI_BC": location.ENG_OTHER_RI_SI_BC, // "RI_PREM_BC": location.ENG_OTHER_RI_PREM_BC, // "RI_PREM_FC": location.ENG_OTHER_RI_PREM_FC // }, // $scope.treatyData); // //console.log(locationRiAllocationData); // //add treaty data into their respective tables // //cleat treaty header grid // u.clear_grid_data($scope.reinsurance_grid); // //1. add treaty head record for each location // $scope.reinsurance_grid.addRowData(location.ID, // { // TTH_ACC_SI_BC: location.ENG_OTHER_RI_SI_BC, // TTH_ACC_SI_FC: location.ENG_OTHER_RI_SI_FC, // TTH_ADJ_YN: null, // TTH_CLASS_CODE: polHead.POLH_CLASS_CODE, // TTH_COMB_LOC_ID: null, // TTH_CRTE_BY: u.getUserCode(), // TTH_CRTE_DATE: u.get_date(), // TTH_EML_PERC: location.ENG_OTHER_EML_PERC, // TTH_FROM_DATE: location.ENG_OTHER_START_DATE, // TTH_INS_SRCE: polHead.POLH_INS_SOURCE, // TTH_LOC_END_NO: polHead.POLH_END_NO, // TTH_LOC_SYS_ID: null, // TTH_MOD_BY: null, // TTH_MOD_DATE: null, // TTH_POLH_END_NO: polHead.POLH_END_NO || 0, // TTH_POLH_SYS_ID: polHead.POLH_SYS_ID, // TTH_POLNUM: polHead.POLH_DISPLAY_NO, // TTH_REF_ID: location.ENG_OTHER_SYS_ID, // TTH_RISK_END_NO: polHead.POLH_END_NO, // TTH_RISK_SYS_ID: location.ENG_OTHER_SYS_ID, // TTH_RI_ACC_YN: null, // TTH_RI_PREM_BC: location.ENG_OTHER_RI_PREM_BC, // TTH_RI_PREM_FC: location.ENG_OTHER_RI_PREM_FC, // TTH_RI_SI_BC: location.ENG_OTHER_RI_SI_BC, // TTH_RI_SI_FC: location.ENG_OTHER_RI_SI_FC, // TTH_SC_CODE: polHead.POLH_SUB_CLASS_CODE, // TTH_STATUS: "A", // TTH_TOTAL_PREM_BC: location.ENG_OTHER_TOT_PREM_BC, // TTH_TOTAL_PREM_FC: location.ENG_OTHER_TOT_PREM_FC, // TTH_TOTAL_SI_BC: location.ENG_OTHER_SI_BC, // TTH_TOTAL_SI_FC: location.ENG_OTHER_SI_FC, // TTH_TO_DATE: location.ENG_OTHER_END_DATE, // TTH_UW_YEAR: location.ENG_OTHER_UW_YEAR, // INS_RI_TTY_ALLOCATION: JSON.stringify(locationRiAllocationData) // }); // }); // } // break; // case "R": // { // var riskRiDataList = []; // var risks = Enumerable.From( // u.get_grid_data($scope.riskFees_grid)); //todo: use correct risk risk grid // risks.ForEach(function(risk) { // //calculate ri on each risk // riskRiDataList.push(u.riskRiAllocation(policyHead, risk, $scope.treatyData)); // }); // } // break; // default: // break; // } //}; $scope.RICalculations = function () { if ($("#POLH_TXN_STATE").val() === "P") { u.clear_grid_data(u.getGlobal("udwRIGrid")); if (u.getGlobal("RIData")) { u.bigDataPopulate(u.getGlobal("udwRIGrid"), u.getGlobal("RIData")); } return; } var riData = []; const locations = u.get_grid_data($scope.location_grid); if ($("#POLH_SUB_CLASS_CODE").val() === "5007") { locations.ForEach(location => { var risks = u.parseJson(location.INS_UDW_ENG_OTHER || "[]"); console.log(risks); risks.ForEach(function (risk) { riData.Add({ RI_DESCRIPTION: $scope.riDisciption(risk), RI_SI_FC: risk.ENG_OTHER_RI_SI_FC, RI_SI_BC: risk.ENG_OTHER_RI_SI_BC, RI_PREM_BC: risk.ENG_OTHER_RI_PREM_BC, RI_PREM_FC: risk.ENG_OTHER_RI_PREM_FC, RISK_ID: risk.ENG_OTHER_SYS_ID, EML_PERC: risk.ENG_OTHER_EML_PERC, FROM_DATE: risk.ENG_OTHER_START_DATE, TO_DATE: risk.ENG_OTHER_END_DATE, TOT_SI_FC: risk.ENG_OTHER_SI_FC, TOT_SI_BC: risk.ENG_OTHER_SI_BC, TOT_PREM_BC: risk.ENG_OTHER_TOT_PREM_BC, TOT_PREM_FC: risk.ENG_OTHER_TOT_PREM_FC, UW_YEAR: risk.ENG_OTHER_UW_YEAR, RI_STATUS: risk.ENG_OTHER_STATUS }); }); }); } else { locations.ForEach(function (location) { riData.Add({ RI_SI_FC: location.ENG_RI_SI_FC, RI_SI_BC: location.ENG_RI_SI_BC, RI_PREM_BC: location.ENG_RI_PREM_BC, RI_PREM_FC: location.ENG_RI_PREM_FC, RISK_ID: location.ENG_SYS_ID, EML_PERC: location.ENG_EML, FROM_DATE: location.ENG_START_DATE, TO_DATE: location.ENG_END_DATE, TOT_SI_FC: location.ENG_SI_FC, TOT_SI_BC: location.ENG_SI_BC, TOT_PREM_BC: location.ENG_TOT_PREM_BC, TOT_PREM_FC: location.ENG_TOT_PREM_FC, UW_YEAR: location.ENG_UW_YEAR, RI_STATUS: location.ENG_STATUS }); }); } //console.log(riData); 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 () { u.getGlobal("EngPremSummarizer")(); //$scope.PremiumCalculator(); //$scope.SumCoverRiskValues(); // u.getGlobal("EngLocationSummarizer")(); //$scope.premiumSummarizer(); $scope.RICalculations(); // u.getGlobal("facOutwardCalUpdate")(); $scope.coInsuranceUpdate(); $scope.policyCommissionSummarizer(); if ($("#POLH_TXN_STATE").val() === "E") { $scope.financialDiff(u.getGlobal("EngGetPolicyData")()); $("#suspensionDetails").show(); } }; $scope.coInsuranceUpdate = function () { var sharePremFc = 0; var sharePremBc = 0; var shareSifc = 0; var shareSibc = 0; //policy si var policySiFc = parseFloat($("#POLH_POL_SI_FC").val()); var policySiBc = parseFloat($("#POLH_POL_SI_BC").val()); //policy premium var policyPremiumFc = parseFloat($("#POLH_POL_PREM_FC").val()); var policyPremiumBc = parseFloat($("#POLH_POL_PREM_BC").val()); //obtain leader share const leaderShare = parseFloat($("#CIL_OUR_PERC").val()); $("#CIL_SHARE_SI_FC").val((policySiFc * (leaderShare / 100)).toFixed(2)); $("#CIL_SHARE_SI_BC").val((policySiBc * (leaderShare / 100)).toFixed(2)); $("#CIL_SHARE_PREM_FC").val((policyPremiumFc * (leaderShare / 100)).toFixed(2)); $("#CIL_SHARE_PREM_BC").val((policyPremiumBc * (leaderShare / 100)).toFixed(2)); $("#CIL_MEMBER_PERC").val(100 - leaderShare);//CIL_SHARE_SI_FC shareSifc = (($("#CIL_MEMBER_PERC").val() / 100) * policySiFc); shareSibc = (($("#CIL_MEMBER_PERC").val() / 100) * policySiBc); sharePremFc = (($("#CIL_MEMBER_PERC").val() / 100) * policyPremiumFc); sharePremBc = (($("#CIL_MEMBER_PERC").val() / 100) * policyPremiumBc); $("#CIL_MEMBERS_SI_FC").val(shareSifc.toFixed(2)); $("#CIL_MEMBERS_SI_BC").val(shareSibc.toFixed(2)); $("#CIL_MEMBERS_PREM_FC").val(sharePremFc.toFixed(2)); $("#CIL_MEMBERS_PREM_BC").val(sharePremBc.toFixed(2)); var cil = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")); cil.ForEach(c => { u.getGlobal("InsuranceSourse")(c); }); u.clear_grid_data(u.getGlobal("udwCoInsLdrGrid")); u.grid_populate(u.getGlobal("udwCoInsLdrGrid"), "", cil); }; u.setGlobal("PolicyCalculations", $scope.PolicyCalculations); $("#btn_add_loc").click(function () { //$("#LocationModal").modal(); 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_CONST_FROM").val($("#POLH_POL_START_DATE").val()); $("#ENG_CONST_TO").val($("#POLH_POL_END_DATE").val()); $("#ENG_MAINT_FROM").val(u.dateFastForward($("#POLH_POL_END_DATE").val(), 1, "day")); $("#ENG_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#ENG_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); u.lovDropDown("#ENG_EARTHQ_ZONE", "get_lov_eqzone"); } 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_CONST_FROM").val($("#POLH_POL_START_DATE").val()); $("#ENG_CONST_TO").val($("#POLH_POL_END_DATE").val()); $("#ENG_MAINT_FROM").val(u.dateFastForward($("#POLH_POL_END_DATE").val(), 1, "day")); $("#ENG_PERIOD_DAYS").val($("#POLH_POL_DAYS").val()); $("#ENG_UW_YEAR").val($("#POLH_POL_UW_YEAR").val()); } $("#locRightDiv").addClass("m-hide"); $("#ENG_CONST_TO").prop("required", false); $("#ENG_CONST_FROM").prop("required", false); $("#ENG_TEST_FROM").prop("required", false); $("#ENG_TEST_TO").prop("required", false); $("#ENG_MAINT_YN").prop("required", false); $("#btn_update_location_details").addClass("m-hide"); $("#btn_add_location_details").removeClass("m-hide"); } 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"); $("#locRightDiv").addClass("m-hide"); $("#ENG_CONST_TO").prop("required", false); $("#ENG_CONST_FROM").prop("required", false); $("#ENG_TEST_FROM").prop("required", false); $("#ENG_TEST_TO").prop("required", false); $("#ENG_MAINT_YN").prop("required", false); $("#LocationModal").modal(); }); 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; } /*-------------------------------------------------- * add Location *------------------------------------------------*/ // $("#btn_add_location_details").on("click", async function () { if (u.form_validation("#engineeringForm")) { var gridData = u.get_grid_data(u.getGlobal("udwEngGrid")); if (gridData.length > 0) { for (let l in gridData) { if (gridData[l].ENG_REGION_CODE === $("#ENG_REGION_CODE").val() && gridData[l].ENG_AREA_CODE === $("#ENG_AREA_CODE").val() && gridData[l].ENG_LOC_CODE === $("#ENG_LOC_CODE").val()) { u.modalInfo( "There already exists in the grid a record with the same Region, Area, and Location. Please make sure you are not making a duplicate entry"); } } } //$("#ENG_SYS_ID").val(""); //if ($("#ENG_SYS_ID").val() === "") { // RetnSequenceNo("INS_UDW_ENGINEER_SEQ", getVehSeqNo); // function getVehSeqNo(data) { // $("#ENG_SYS_ID").val(data); // } //} u.modalConfirmationAsync("Are you sure you want to add the Location Details?", async function () { var seq = await s.getSequenceAsync("INS_UDW_ENGINEER_SEQ"); if (!u.get_grid_data(u.getGlobal("udwEngGrid")).Any(v => v.ENG_SYS_ID === seq)) { $("#ENG_SYS_ID").val(seq); var rowIds = u.getGlobal("udwEngGrid").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("udwEngGrid").jqGrid("getCell", currRow, "ENG_SYS_ID"); code.push(cellValue); } /*---------------------------------------- * add if code is not found in the Grid *--------------------------------------*/ // if ($.inArray($("#ENG_SYS_ID").val(), code) < 0) { var formData = u.parse_form("#engineeringForm"); formData.ENG_POLH_END_NO = $("#ENG_POLH_END_NO").val(); formData.ENG_STATUS = "U"; formData.ENG_CRTE_BY = u.getUserCode(); formData.ENG_CRTE_DATE = u.get_date(); 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(); } u.getGlobal("udwEngGrid").addRowData(formData.ENG_SYS_ID, 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 code ${cellValue} Already exists`); } } else { u.growl_warning("Duplicate id"); } }); } 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").on("click", function () { // if (u.grid_empty(u.getGlobal("udwEngGrid"))) return u.growl_info("Grid is empty!!!"); // var grid = u.getGlobal("udwEngGrid"); // var riskGrid = $scope.eng_grid; // var rowId = grid.jqGrid("getGridParam", "selrow"); // var recordStatus = grid.jqGrid("getCell", rowId, "ENG_STATUS"); // var locRiskNo = grid.jqGrid("getCell", rowId, "ENG_SYS_ID"); // var covGrid = $scope.cover_grid; // var covRowIds = covGrid.jqGrid("getDataIDs"); // var riskRowIds = riskGrid.jqGrid("getDataIDs"); // var riskRowId = riskGrid.jqGrid("getGridParam", "selrow"); // var riskId = grid.jqGrid("getCell", riskRowId, "ENG_OTHER_SYS_ID"); // //var message = ""; // /*--------------------------------- // * Display modal message // *------------------------------*/ // // // u.modal_confirmation("Are you sure you want to remove the selected location?", function (e) { // /*-------------------------------------------- // * Remove newly added record before saving // *------------------------------------------*/ // // // if (recordStatus === "U") { // // iterate through covers and delete risks covers // for (var i = 0, len = covRowIds.length; i < len; i++) { // var covCurrRow = covRowIds[i]; // var coverRiskId = covGrid.jqGrid("getCell", covCurrRow, "RCOV_RISK_SYS_ID"); // if (coverRiskId === riskId) { // covGrid.jqGrid("delRowData", covCurrRow); // } // } // //iterate through risks and delete location's risks // for (var x = 0, length = riskRowIds.length; x < length; x++) { // var currRiskRow = riskRowIds[i]; // var riskLocationId = riskGrid.jqGrid("getCell", currRiskRow, "ENG_OTHER_ENG_SYS_ID"); // if (riskLocationId === locRiskNo) { // riskGrid.jqGrid("delRowData", currRiskRow); // } // } // grid.jqGrid("delRowData", rowId); // u.hide_confirm(); // u.form_reset("#engineeringForm"); // u.form_reset("#interestForm"); // $scope.PolicyCalculations(); // u.growl_success("Selected row successfully deleted and calculations refreshed"); // //u.growl_info("Please click on the Refresh Calculations button to update premium calculations"); // } // /*---------------------------------------- // * Mark a record for deletion on saving // *--------------------------------------*/ // // // if (recordStatus == "A") { // for (var k = 0, lenn = covRowIds.length; k < lenn; k++) { // var coverCurrRow = covRowIds[k]; // //get value of the cell or column in an array // var coversRiskId = covGrid.jqGrid("getCell", coverCurrRow, "RCOV_RISK_SYS_ID"); // if (coversRiskId === riskId) { // covGrid.jqGrid("setCell", coverCurrRow, "RCOV_STATUS", "D"); // $(`#${coverCurrRow}`, "#gridAppCovers").css({ color: "red" }); // } // } // for (var x = 0, lengths = riskRowIds.lengths; x < lengths; x++) { // var currentRiskRow = riskRowIds[i]; // var risksLocationId = riskGrid.jqGrid("getCell", currentRiskRow, "ENG_OTHER_ENG_SYS_ID"); // if (risksLocationId === locRiskNo) { // riskGrid.jqGrid("setCell", currentRiskRow, "ENG_OTHER_STATUS", "D"); // $(`#${currentRiskRow}`, "#gridEngOthers").css({ color: "red" }); // } // } // // covGrid.jqGrid("setCell", coverCurrRow, "RCOV_STATUS", "D"); // // $(`#${covCurrRow}`, "#gridAppCovers").css({ color: "red" }); // 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") { // for (var i = 0, lens = covRowIds.length; i < lens; i++) { // var coversCurrRow = covRowIds[i]; // //get value of the cell or column in an array // var coverssRiskId = covGrid.jqGrid("getCell", coversCurrRow, "RCOV_RISK_SYS_ID"); // if (coverssRiskId === riskId) { // covGrid.jqGrid("setCell", coversCurrRow, "RCOV_STATUS", "A"); // $(`#${coversCurrRow}`, "#gridAppCovers").css({ color: "black" }); // } // } // for (var x = 0, lengthss = riskRowIds.lengths; x < lengthss; x++) { // var currentsRiskRow = riskRowIds[i]; // var riskssLocationId = riskGrid.jqGrid("getCell", currentsRiskRow, "ENG_OTHER_ENG_SYS_ID"); // if (riskssLocationId === locRiskNo) { // riskGrid.jqGrid("setCell", currentsRiskRow, "ENG_OTHER_STATUS", "A"); // $(`#${currentsRiskRow}`, "#gridEngOthers").css({ color: "black" }); // } // } // $(`#${rowId}`, "#gridELoc").css({ color: "black" }); // grid.jqGrid("setCell", rowId, "ENG_STATUS", "A"); // u.hide_confirm(); // u.growl_success("Data successfully restored"); // } // u.form_reset("#engineeringForm"); // }); //}); /*---------------------------------------------------- * Remove record or Mark for deletion from Location Grid *---------------------------------------------------*/ // $("#btn_remove_location_details").on("click", function () { if (u.grid_empty($scope.locationGrid)) return u.growl_info("Grid is empty"); var grid = $scope.locationGrid; // var riskGrid = $scope.carRiskGrid; var rowId = grid.jqGrid("getGridParam", "selrow"); var recordStatus = grid.jqGrid("getCell", rowId, "ENG_STATUS"); var locId = parseInt(grid.jqGrid("getCell", rowId, "ENG_SYS_ID")); /*--------------------------------- * Display modal message *------------------------------*/ // u.modal_confirmation("Are you sure you want to remove the selected location?", function (e) { /*-------------------------------------------- * 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"); u.growl_info("Please click on the Refresh Calculations button to update premium calculations"); } /*---------------------------------------- * 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") : []); }); }); /*-------------------------------- * Edit/Update Function Location Grid *------------------------------*/ // //$("#btn_update_location_details").on("click", function () { // if (u.grid_empty(u.getGlobal("udwEngGrid"))) 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 = u.getGlobal("udwEngGrid"); // var rowId = grid.jqGrid("getGridParam", "selrow"); // var code = grid.jqGrid("getCell", rowId, "ENG_SYS_ID"); // if (code === $("#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"); // u.form_reset("#engineeringForm"); // } 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(u.getGlobal("udwEngGrid"), ["ID"], "Fire_Location_List_Excel"); }); $("#btn_Loc_Onclose").click(function () { if (u.grid_empty(u.getGlobal("udwEngGrid"))) { u.modal_confirmation("The Grid is empty, do you want to close form?", function (e) { $("#LocationModal").modal("hide"); u.hide_confirm(); }); } else { $("#LocationModal").modal("hide"); } }); $("#ENG_EML_YN").change(function () { if ($(this).val() === "Y") { $("#ENG_EML_PERC").prop("readonly", false); } else if ($(this).val() === "N") { $("#ENG_EML_PERC").attr("readonly", "readonly"); $("#ENG_EML_PERC").val(""); } else { $("#ENG_EML_PERC").attr("readonly", "readonly"); $("#ENG_EML_PERC").val(""); } }); /*--------------------------- * year drop down population *--------------------------*/ var year = parseInt(u.getYear(u.get_datetime())); $scope.populateYears = function () { for (let i = year; i >= 1945; i--) { $("#ENG_OTHER_MANUF_YR").append(``); } }; $scope.populateYears(); $("#engOtherRiskModalOk").click(function () { //var selectedLocationId = u.getSelRow($scope.location_grid); //var selectedLocation = u.getRow(selectedLocationId, $scope.location_grid); var locations = u.get_grid_data($scope.location_grid); var risks = u.get_grid_data($scope.eng_grid); locations.ForEach(loc => { if (parseInt(loc.ENG_SYS_ID) === parseInt($("#ENG_SYS_ID").val())) { if (!risks.Any()) { loc.INS_UDW_ENG_OTHER = []; } else { loc.INS_UDW_ENG_OTHER = []; risks.ForEach(r => { if (parseInt(r.ENG_OTHER_ENG_SYS_ID) === parseInt(loc.ENG_SYS_ID)) { loc.INS_UDW_ENG_OTHER = u.parseJson(loc.INS_UDW_ENG_OTHER); loc.INS_UDW_ENG_OTHER = loc.INS_UDW_ENG_OTHER .Where(x => parseInt(x.ENG_OTHER_SYS_ID) !== parseInt(r.ENG_OTHER_SYS_ID)); loc.INS_UDW_ENG_OTHER.push(r); } }); } } }); u.clear_grid_data($scope.location_grid); u.grid_populate($scope.location_grid, "", locations); //u.setCell($scope.location_grid, rowId, "INS_UDW_ENG_OTHER", JSON.stringify(u.get_grid_data($scope.eng_grid))); u.getGlobal("EngLocationReSummarizer")(); $scope.PolicyCalculations(); $("#otherEngModal").modal("hide"); u.clear_grid_data($scope.eng_grid); u.form_reset("#engForm"); }); //$("#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); // //$scope.PolicyCalculations(); // u.hide_confirm(); // u.growl_success("Selected location successfully deleted, and premium calculations updated"); // } // break; // case "A": // { // u.getGlobal("udwEngGrid").jqGrid('setCell', selectedLocationId, 'ENG_STATUS', 'D'); // $('#' + selectedLocationId, '#gridELoc').css({ color: 'red' }); // //$scope.PolicyCalculations(); // u.hide_confirm(); // u.growl_success("Selected location successfully marked for deletion, please click on the save button to save changes"); // } // break; // case "D": // { // $('#' + selectedLocationId, '#gridELoc').css({ color: 'black' }); // $scope.homeloc_grid.jqGrid('setCell', selectedLocationId, 'ENG_STATUS', 'A'); // //$scope.PolicyCalculations(); // 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"); } }); } }); /* * EXCESS FUNCS */ $("#ENG_OTHER_EXCESS_TYPE").change(async function () { u.getGlobal("excessTypeChange")("ENG_OTHER_EXCESS_TYPE", "ENG_OTHER_EXCESS_PERC", "ENG_OTHER_EXCESS_MIN", "ENG_OTHER_EXCESS_MAX", "ENG_OTHER_EXCESS_NAR"); }); $("#ENG_OTHER_EXCESS_PERC").blur(function () { u.getGlobal("excessAmtBlur")("ENG_OTHER_EXCESS_PERC", "ENG_OTHER_EXCESS_NAR", "ENG_OTHER_EXCESS_TYPE", "ENG_OTHER_EXCESS_MIN", "ENG_OTHER_EXCESS_MAX"); }); $("#ENG_OTHER_EXCESS_MIN").blur(function () { u.getGlobal("excessMinMaxBlur")("ENG_OTHER_EXCESS_MIN", "ENG_OTHER_EXCESS_NAR", "Min"); }); $("#ENG_OTHER_EXCESS_MAX").blur(function () { u.getGlobal("excessMinMaxBlur")("ENG_OTHER_EXCESS_MAX", "ENG_OTHER_EXCESS_NAR", "Max"); }); $("#btn_premium_recalculate").click(function () { $scope.RecalculatePremium(); }); $scope.RecalculatePremium = function() { $scope.loader(function () { u.clear_grid_data($scope.cover_grid); $scope.SumCoverRiskValues(); 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 = await u.getGlobal("renewalProcess")(response.data); // fill policy header u.getGlobalStatic("productSearchFill")(renPolicy); for(let b in renPolicy.INS_UDW_ENGINEER_LOC) { renPolicy.INS_UDW_ENGINEER_LOC[b].ENG_START_DATE = renPolicy.POLH_POL_START_DATE; renPolicy.INS_UDW_ENGINEER_LOC[b].ENG_END_DATE = renPolicy.POLH_POL_END_DATE; renPolicy.INS_UDW_ENGINEER_LOC[b].ENG_UW_YEAR = renPolicy.POLH_POL_UW_YEAR; renPolicy.INS_UDW_ENGINEER_LOC[b].ENG_POLH_END_NO = 0; renPolicy.INS_UDW_ENGINEER_LOC[b].ENG_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; renPolicy.INS_UDW_ENGINEER_LOC[b].INS_UDW_ENG_OTHER = u.parseJson(renPolicy.INS_UDW_ENGINEER_LOC[b].INS_UDW_ENG_OTHER); renPolicy.INS_UDW_ENGINEER_LOC[b].INS_UDW_ENG_OTHER.ForEach(h => { h.ENG_OTHER_START_DATE = renPolicy.POLH_POL_START_DATE; h.ENG_OTHER_END_DATE = renPolicy.POLH_POL_END_DATE; h.ENG_OTHER_UW_YEAR = renPolicy.POLH_POL_UW_YEAR; h.ENG_OTHER_POLH_END_NO = 0; h.ENG_OTHER_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; }); }); renPolicy.INS_UDW_ENGINEER_LOC[b].INS_UDW_ENGINEER_FEES = u.parseJson(renPolicy.INS_UDW_ENGINEER_LOC[b].INS_UDW_ENGINEER_FEES); renPolicy.INS_UDW_ENGINEER_LOC[b].INS_UDW_ENGINEER_FEES.ForEach(f => { f.ENG_FEE_STATUS = "D"; }); } 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 && jQuery.isEmptyObject(treatyResult.data)) { return u.modalInfo( `Treaty not setup for underwriting year: ${renPolicy.POLH_POL_UW_YEAR}. Please contact your administrator`); } else { 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, newRenPolicy); riHead.ForEach(ri => { ri.TTH_POLH_END_NO = 0; ri.TTH_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; ri.TTH_CURRENCY = renPolicy.POLH_CURRENCY; ri.TTH_CURRENCY_RATE = renPolicy.POLH_CURRENCY_RATE; ri.INS_RI_TTY_ALLOCATION = u.parseJson(ri.INS_RI_TTY_ALLOCATION); ri.INS_RI_TTY_ALLOCATION.ForEach(a => { a.TTA_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO; a.TTA_POLH_END_NO = 0; a.INS_RI_TTY_SHARE.ForEach(s => { s.TTS_END_NO = 0; s.TTS_RNW_NO = renPolicy.POLH_RENEW_SER_NO; }); }); }); newRenPolicy.INS_RI_TTY_HEAD = riHead; newRenPolicy.INS_RI_TTY_HEAD = riHead; delete newRenPolicy.MS_UDW_CLASS_OF_BUSINESS; delete newRenPolicy.MS_SYS_SOURCE_BUSINESS; delete newRenPolicy.MS_SYS_OFFICE; delete newRenPolicy.MS_SYS_CHANNEL; delete newRenPolicy.MS_SBU; delete newRenPolicy.MST_UWD_PRODUCT; delete newRenPolicy.INS_UDW_INSUR_SOURCE; delete newRenPolicy.MST_UWD_PRODUCT_COVERS; delete newRenPolicy.MS_UDW_CUSTOMERS; delete newRenPolicy.MS_SYS_INTERMEDIARY; if (newRenPolicy.MS_SYS_COMPANY) delete newRenPolicy.MS_SYS_COMPANY; newRenPolicy.INS_UDW_ENGINEER_LOC.ForEach(b => { b.INS_UDW_ENG_OTHER = u.parseJson(b.INS_UDW_ENG_OTHER); b.INS_UDW_ENG_OTHER.ForEach(h => { h.INS_UWD_RISK_COVERS = u.parseJson(h.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 { 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_ENG_OTHER.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.ENG_OTHER_RISK_PREM_BC = sumNetPremFc || 0; car.ENG_OTHER_RISK_PREM_fC = sumNetPremBc || 0; car.ENG_OTHER_TOT_PREM_FC = sumTotalPremFc || 0; car.ENG_OTHER_TOT_PREM_BC = sumTotalPremBc || 0; car.ENG_OTHER_RI_PREM_FC = sumRiPremFc || 0; car.ENG_OTHER_RI_PREM_BC = sumRiPremBc || 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; }; /*------------------------------- * RISK UPLOAD SECTION *------------------------------*/ $("#btnEngRiskUpload").click(() => { $("#EngRiskUploadModal").modal(); }) $("#downloadEngRiskTemplate").click(async function () { const response = await s.getEngOthersRiskTemplateAsync(); if (response.state) { u.download(`${s.backend}${response.data}`, "EngineeringOthersRiskTemplate.xlsx"); } else { u.modalError(response.message); } }); $("#uploadEngRiskExcel").click(async function () { var response = await s.fileUploadAsync(`${s.backend}api/policyengother/riskUpload`, "#engRiskUploadForm", "ExcelFile") if (response.state) { if (response.data.length > 0) { var risks = u.get_grid_data($scope.eng_grid); const defaultErrorMessage = "The following risks were not added.
"; let errorMessages = ""; const prodrisks = await s.getProdtRiskAsync($("#POLH_SUB_CLASS_CODE").val()); if (!prodrisks.Any()) return u.growl_info("Product risks not found."); for (let eng of response.data) { // get the product risk code to use on the risk. let usableRiskCode = prodrisks.filter(r => !risks.Any(x => x.ENG_OTHER_OBJECT === r.CODE)); if (!usableRiskCode.Any()) { usableRiskCode = prodrisks[prodrisks.length - 1]; }; if (risks.Any(r => r.ENG_OTHER_SERL_NO === eng.ENG_OTHER_SERL_NO)) { errorMessages += `Serial number ${eng.ENG_OTHER_SERL_NO} already exists in the grid
`; continue; } eng.ENG_OTHER_OBJECT = usableRiskCode[0].CODE; eng.ENG_OTHER_OBJECT_NAME = usableRiskCode[0].NAME; eng.ENG_OTHER_SYS_ID = await s.getSequenceAsync("PRODUCT_RISK_SEQ"); eng.ENG_OTHER_POLH_END_NO = $("#POLH_END_NO").val(); eng.ENG_OTHER_STATUS = "U"; eng.ENG_OTHER_CRTE_BY = u.getUserCode(); eng.ENG_OTHER_CRTE_DATE = u.get_date(); eng.ENG_OTHER_ENG_SYS_ID = parseInt($("#ENG_SYS_ID").val()); eng.ENG_OTHER_SEQUENCE = await s.getEngOtherRiskSeq(); var defaultCovers = []; if ($("#POLH_INS_SOURCE").val() === "DIR" || $("#POLH_INS_SOURCE").val() === "COL") { defaultCovers = await getDefaultRiskCovers(eng.ENG_OTHER_SYS_ID); } else if ($("#POLH_INS_SOURCE").val() === "COM") { defaultCovers = await u.getGlobal("engGetCoInsMemCovers")(eng.ENG_OTHER_SYS_ID); } else if ($("#POLH_INS_SOURCE").val() === "FIN") { defaultCovers = await u.getGlobal("engGetCoInsMemCovers")(eng.ENG_OTHER_SYS_ID); } eng.INS_UWD_RISK_COVERS = defaultCovers; $scope.eng_grid.addRowData(eng.ID, eng); } u.growl_success(response.message); if (errorMessages && errorMessages.length ) { return u.modalInfo(defaultErrorMessage + errorMessages); } } $("#EngRiskUploadModal").modal("hide"); } else { u.growl_error(response.message); } }); }); })(window.$, window.service, window.utility, {});