(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);
}
});
})(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 {
}
});
$scope.valueAddTaxCalculation = function (v) {
v.ENG_VALUE_ADDED_TAX_YN = v.ENG_VALUE_ADDED_TAX_YN || "N";
v.ENG_VALUE_ADDED_TAX_PERC = parseFloat(v.ENG_VALUE_ADDED_TAX_PERC || 0) || 0;
v.ENG_VALUE_ADDED_TAX_FC = parseFloat(parseFloat(v.ENG_TOT_PREM_FC * parseFloat(v.ENG_VALUE_ADDED_TAX_PERC || 0) * 0.01).toFixed(2)) || 0;
v.ENG_VALUE_ADDED_TAX_BC = parseFloat(parseFloat(v.ENG_TOT_PREM_BC * parseFloat(v.ENG_VALUE_ADDED_TAX_PERC || 0) * 0.01).toFixed(2)) || 0;
v.ENG_VALUE_ADDED_TAX_RATE_FC = v.ENG_VALUE_ADDED_TAX_YN == "Y" ? parseFloat(v.ENG_VALUE_ADDED_TAX_FC) : 0;
v.ENG_VALUE_ADDED_TAX_RATE_BC = v.ENG_VALUE_ADDED_TAX_YN == "Y" ? parseFloat(v.ENG_VALUE_ADDED_TAX_BC) : 0;
};
u.setGlobal("EngLocationReSummarizer", function() {
var totalSiFc = 0,
totalSiBc = 0,
totalRiSiBc = 0,
totalRiSiFc = 0;
var totalPremFc = 0,
totalPremBc = 0,
totalRiPremBc = 0,
totalRiPremFc = 0,
totalRiskPremBc = 0,
totalRiskPremFc = 0;
var totalDiscFc = 0,
totalDiscBc = 0,
totalLoadFc = 0,
totalLoadBc = 0;
const locations = u.get_grid_data(u.getGlobal("udwEngGrid"));
locations.ForEach(location => {
var carRisks = u.parseJson(location.INS_UDW_CAR_RISK);
console.log(carRisks);
//CAR
carRisks.ForEach(car => {
var carTplList = typeof (car.INS_UDW_TPL) === "string"
? u.parseJson(car.INS_UDW_TPL || "[]")
: car.INS_UDW_TPL || [];
console.log(carTplList);
if (carTplList.length > 0 && !Array.isArray(carTplList)) {
carTplList = u.parseJson(carTplList);
}
carTplList.ForEach(l => {
const carTplCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(l.INS_UWD_RISK_COVERS || "[]")
: l.INS_UWD_RISK_COVERS || [];
carTplCoverList.ForEach(r => {
if (r.RCOV_STATUS !== "D") {
totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0);
totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0);
if (r.RCOV_RI_PREM_YN === "Y") {
totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiPremBc += parseFloat(r.RCOV_NET_PREM_FC || 0);
}
if (r.RCOV_RI_SI_YN === "Y") {
totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0);
totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiBc += parseFloat(r.RCOV_SI_BC || 0);
}
totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0);
totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0);
totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0);
totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0);
totalLoadBc += parseFloat(r.RCOV_LOAD_FC || 0);
}
});
});
var carLopList = typeof (car.INS_UDW_LOP) === "string"
? u.parseJson(car.INS_UDW_LOP || "[]")
: car.INS_UDW_LOP || [];
if (carLopList.length > 0 && !Array.isArray(carTplList)) {
carLopList = u.parseJson(carLopList);
}
carLopList.ForEach(l => {
//LOP covers summarization
const carLopCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(l.INS_UWD_RISK_COVERS || "[]")
: l.INS_UWD_RISK_COVERS || [];
carLopCoverList.ForEach(r => {
if (r.RCOV_STATUS !== "D") {
totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0);
totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0);
if (r.RCOV_RI_PREM_YN === "Y") {
totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0);
}
if (r.RCOV_RI_SI_YN === "Y") {
totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0);
totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiBc += parseFloat(r.RCOV_SI_BC || 0);
}
totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0);
totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0);
totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0);
totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0);
totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0);
}
});
});
//CPM risk summarization
var carCpmRiskList =
typeof (car.INS_UDW_CPM_RISK) === "string"
? u.parseJson(car.INS_UDW_CPM_RISK || "[]")
: car.INS_UDW_CPM_RISK || [];
carCpmRiskList.ForEach(r => {
if (r.CPM_STATUS !== "D") {
totalSiBc += parseFloat(r.CPM_SI_BC || 0);
totalSiFc += parseFloat(r.CPM_SI_FC || 0);
totalRiSiBc += parseFloat(r.CPM_RI_SI_BC || 0);
totalRiSiFc += parseFloat(r.CPM_RI_SI_FC || 0);
totalPremBc += parseFloat(r.CPM_TOT_PREM_BC || 0);
totalPremFc += parseFloat(r.CPM_TOT_PREM_FC || 0);
totalRiPremBc += parseFloat(r.CPM_RI_PREM_BC || 0);
totalRiPremFc += parseFloat(r.CPM_RI_PREM_FC || 0);
totalRiskPremBc += parseFloat(r.CPM_RISK_PREM_BC || 0);
totalRiskPremFc += parseFloat(r.CPM_RISK_PREM_FC || 0);
totalDiscBc += parseFloat(r.CPM_DISC_BC || 0);
totalDiscFc += parseFloat(r.CPM_DISC_FC || 0);
totalLoadBc += parseFloat(r.CPM_LOAD_BC || 0);
totalLoadFc += parseFloat(r.CPM_LOAD_FC || 0);
}
});
if (car.CAR_STATUS !== "D") {
totalSiBc += parseFloat(car.CAR_SI_BC || 0);
totalSiFc += parseFloat(car.CAR_SI_FC || 0);
totalRiSiBc += parseFloat(car.CAR_RI_SI_BC || 0);
totalRiSiFc += parseFloat(car.CAR_RI_SI_FC || 0);
totalPremBc += parseFloat(car.CAR_TOT_PREM_BC || 0);
totalPremFc += parseFloat(car.CAR_TOT_PREM_FC || 0);
totalRiPremBc += parseFloat(car.CAR_RI_PREM_BC || 0);
totalRiPremFc += parseFloat(car.CAR_RI_PREM_FC || 0);
totalRiskPremBc += parseFloat(car.CAR_RISK_PREM_BC || 0);
totalRiskPremFc += parseFloat(car.CAR_RISK_PREM_FC || 0);
totalDiscBc += parseFloat(car.CAR_DISC_BC || 0);
totalDiscFc += parseFloat(car.CAR_DISC_FC || 0);
totalLoadBc += parseFloat(car.CAR_LOAD_BC || 0);
totalLoadFc += parseFloat(car.CAR_LOAD_FC || 0);
}
});
//EAR
var earRisks = u.parseJson(location.INS_UDW_EAR_RISK);
earRisks.ForEach(ear => {
var earTplList = typeof (ear.INS_UDW_TPL) === "string"
? u.parseJson(ear.INS_UDW_TPL || "[]")
: ear.INS_UDW_TPL || [];
if (earTplList.length > 0 && !Array.isArray(earTplList)) {
earTplList = u.parseJson(earTplList);
}
earTplList.ForEach(l => {
const earTplCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(l.INS_UWD_RISK_COVERS)
: l.INS_UWD_RISK_COVERS || [];
earTplCoverList.ForEach(r => {
if (r.RCOV_STATUS !== "D") {
totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0);
totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0);
if (r.RCOV_RI_PREM_YN === "Y") {
totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0);
}
if (r.RCOV_RI_SI_YN === "Y") {
totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0);
totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiBc += parseFloat(r.RCOV_SI_BC || 0);
}
totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0);
totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0);
totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0);
totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0);
totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0);
}
});
});
var earLopList = typeof (ear.INS_UDW_LOP) === "string"
? u.parseJson(ear.INS_UDW_LOP || "[]")
: ear.INS_UDW_LOP || [];
if (earLopList.length > 0 && !Array.isArray(earTplList)) {
earLopList = u.parseJson(earLopList);
}
earLopList.ForEach(l => {
//LOP covers summarization
const earLopCoverList = typeof (l.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(l.INS_UWD_RISK_COVERS)
: l.INS_UWD_RISK_COVERS || [];
earLopCoverList.ForEach(r => {
if (r.RCOV_STATUS !== "D") {
totalPremFc += parseFloat(r.RCOV_ANNL_PREM_FC || 0);
totalPremBc += parseFloat(r.RCOV_ANNL_PREM_BC || 0);
if (r.RCOV_RI_PREM_YN === "Y") {
totalRiPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0);
}
if (r.RCOV_RI_SI_YN === "Y") {
totalRiSiBc += parseFloat(r.RCOV_SI_BC || 0);
totalRiSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiFc += parseFloat(r.RCOV_SI_FC || 0);
totalSiBc += parseFloat(r.RCOV_SI_BC || 0);
}
totalRiskPremFc += parseFloat(r.RCOV_NET_PREM_FC || 0);
totalRiskPremBc += parseFloat(r.RCOV_NET_PREM_BC || 0);
totalDiscFc += parseFloat(r.RCOV_DISC_FC || 0);
totalDiscBc += parseFloat(r.RCOV_DISC_BC || 0);
totalLoadFc += parseFloat(r.RCOV_LOAD_FC || 0);
totalLoadBc += parseFloat(r.RCOV_LOAD_BC || 0);
}
});
});
//CPM risk summarization
var earCpmRiskList =
typeof (ear.INS_UDW_CPM_RISK) === "string"
? u.parseJson(ear.INS_UDW_CPM_RISK || "[]")
: ear.INS_UDW_CPM_RISK || [];
earCpmRiskList.ForEach(r => {
if (r.CPM_STATUS !== "D") {
totalSiBc += parseFloat(r.CPM_SI_BC || 0);
totalSiFc += parseFloat(r.CPM_SI_FC || 0);
totalRiSiBc += parseFloat(r.CPM_RI_SI_BC || 0);
totalRiSiFc += parseFloat(r.CPM_RI_SI_FC || 0);
totalPremBc += parseFloat(r.CPM_TOT_PREM_BC || 0);
totalPremFc += parseFloat(r.CPM_TOT_PREM_FC || 0);
totalRiPremBc += parseFloat(r.CPM_RI_PREM_BC || 0);
totalRiPremFc += parseFloat(r.CPM_RI_PREM_FC || 0);
totalRiskPremBc += parseFloat(r.CPM_RISK_PREM_BC || 0);
totalRiskPremFc += parseFloat(r.CPM_RISK_PREM_FC || 0);
totalDiscBc += parseFloat(r.CPM_DISC_BC || 0);
totalDiscFc += parseFloat(r.CPM_DISC_FC || 0);
totalLoadBc += parseFloat(r.CPM_LOAD_BC || 0);
totalLoadFc += parseFloat(r.CPM_LOAD_FC || 0);
}
});
if (ear.EAR_STATUS !== "D") {
totalSiBc += parseFloat(ear.EAR_SI_BC || 0);
totalSiFc += parseFloat(ear.EAR_SI_FC || 0);
totalRiSiBc += parseFloat(ear.EAR_RI_SI_BC || 0);
totalRiSiFc += parseFloat(ear.EAR_RI_SI_FC || 0);
totalPremBc += parseFloat(ear.EAR_TOT_PREM_BC || 0);
totalPremFc += parseFloat(ear.EAR_TOT_PREM_FC || 0);
totalRiPremBc += parseFloat(ear.EAR_RI_PREM_BC || 0);
totalRiPremFc += parseFloat(ear.EAR_RI_PREM_FC || 0);
totalRiskPremBc += parseFloat(ear.EAR_RISK_PREM_BC || 0);
totalRiskPremFc += parseFloat(ear.EAR_RISK_PREM_FC || 0);
totalDiscBc += parseFloat(ear.EAR_DISC_BC || 0);
totalDiscFc += parseFloat(ear.EAR_DISC_FC || 0);
totalLoadBc += parseFloat(ear.EAR_LOAD_BC || 0);
totalLoadFc += parseFloat(ear.EAR_LOAD_FC || 0);
}
});
//OTHER
var otherRisks = u.parseJson(location.INS_UDW_ENG_OTHER);
otherRisks.ForEach(r => {
if (r.ENG_OTHER_STATUS !== "D") {
totalSiBc += parseFloat(r.ENG_OTHER_SI_BC || 0);
totalSiFc += parseFloat(r.ENG_OTHER_SI_FC || 0);
totalRiSiBc += parseFloat(r.ENG_OTHER_RI_SI_BC || 0);
totalRiSiFc += parseFloat(r.ENG_OTHER_RI_SI_FC || 0);
totalPremBc += parseFloat(r.ENG_OTHER_TOT_PREM_BC || 0);
totalPremFc += parseFloat(r.ENG_OTHER_TOT_PREM_FC || 0);
totalRiPremBc += parseFloat(r.ENG_OTHER_RI_PREM_BC || 0);
totalRiPremFc += parseFloat(r.ENG_OTHER_RI_PREM_FC || 0);
totalRiskPremBc += parseFloat(r.ENG_OTHER_RISK_PREM_BC || 0);
totalRiskPremFc += parseFloat(r.ENG_OTHER_RISK_PREM_FC || 0);
totalDiscBc += parseFloat(r.ENG_OTHER_DISC_BC || 0);
totalDiscFc += parseFloat(r.ENG_OTHER_DISC_FC || 0);
totalLoadBc += parseFloat(r.ENG_OTHER_LOAD_BC || 0);
totalLoadFc += parseFloat(r.ENG_OTHER_LOAD_FC || 0);
}
});
// Update location values
location.ENG_TOT_PREM_FC = totalPremFc;
location.ENG_TOT_PREM_BC = totalPremBc;
location.ENG_RISK_PREM_FC = totalRiskPremFc;
location.ENG_RISK_PREM_BC = totalRiskPremBc;
location.ENG_SI_BC = totalSiBc;
location.ENG_SI_FC = totalSiFc;
location.ENG_RI_SI_FC = totalRiSiFc;
location.ENG_RI_SI_BC = totalRiSiBc;
location.ENG_RI_PREM_FC = totalRiPremFc;
location.ENG_RI_PREM_BC = totalRiPremBc;
location.ENG_DISC_FC = totalDiscFc;
location.ENG_DISC_BC = totalDiscBc;
location.ENG_LOAD_FC = totalLoadFc;
location.ENG_LOAD_BC = totalLoadBc;
/*-----------------------------
* VALUE ADDED TASK CALCULATION
*----------------------------*/
let policy = u.parse_form("#polheaderForm");
location.ENG_VALUE_ADDED_TAX_YN = policy.POLH_VAT_YN || location.ENG_VALUE_ADDED_TAX_YN;
location.ENG_VALUE_ADDED_TAX_PERC = policy.POLH_VAT_PERC || parseFloat(location.ENG_VALUE_ADDED_TAX_PERC || 0) || 0;
$scope.valueAddTaxCalculation(location);
totalSiFc = 0;
totalSiBc = 0;
totalRiSiBc = 0;
totalRiSiFc = 0;
totalPremFc = 0;
totalPremBc = 0;
totalRiPremBc = 0;
totalRiPremFc = 0;
totalRiskPremBc = 0;
totalRiskPremFc = 0;
totalDiscFc = 0;
totalDiscBc = 0;
totalLoadFc = 0;
totalLoadBc = 0;
});
u.clear_grid_data(u.getGlobal("udwEngGrid"));
u.grid_populate(u.getGlobal("udwEngGrid"), "", locations);
});
u.setGlobal("EngGetPolicyData",
function() {
var polhData = u.parse_form("#polheaderForm");
polhData.INS_UDW_ENGINEER_LOC = u.get_grid_data(u.getGlobal("udwEngGrid"), true);
polhData.INS_COINS_LEADER = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid"));
polhData.INS_UDW_ENGINEER_LOC.ForEach(l => {
//CAR
l.INS_UDW_CAR_RISK = typeof (l.INS_UDW_CAR_RISK) === "string"
? u.parseJson(l.INS_UDW_CAR_RISK)
: l.INS_UDW_CAR_RISK || [];
l.INS_UDW_CAR_RISK.ForEach(car => {
//covers
car.INS_UWD_RISK_COVERS = typeof car.INS_UWD_RISK_COVERS === "string"
? u.parseJson(car.INS_UWD_RISK_COVERS)
: car.INS_UWD_RISK_COVERS || [];
car.INS_UWD_RISK_COVERS.ForEach(c => {
c.RCOV_RISK_SYS_ID = car.CAR_SYS_ID;
c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(c.INS_UDW_COVER_DISCLOAD)
: c.INS_UDW_COVER_DISCLOAD || [];
delete c.MS_UDW_COVERS;
});
//cpm
car.INS_UDW_CPM_RISK = typeof (car.INS_UDW_CPM_RISK) === "string"
? u.parseJson(car.INS_UDW_CPM_RISK)
: car.INS_UDW_CPM_RISK || [];
car.INS_UDW_CPM_RISK.ForEach(cpm => {
cpm.CPM_ENG_SYS_ID = car.CAR_SYS_ID;
cpm.INS_UWD_RISK_COVERS = typeof cpm.INS_UWD_RISK_COVERS === "string"
? u.parseJson(cpm.INS_UWD_RISK_COVERS)
: cpm.INS_UWD_RISK_COVERS || [];
cpm.INS_UWD_RISK_COVERS.ForEach(c => {
c.RCOV_RISK_SYS_ID = cpm.CPM_SYS_ID;
c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(c.INS_UDW_COVER_DISCLOAD)
: c.INS_UDW_COVER_DISCLOAD || [];
delete c.MS_UDW_COVERS;
});
});
//tpl
car.INS_UDW_TPL = typeof (car.INS_UDW_TPL) === "string"
? u.parseJson(car.INS_UDW_TPL)
: car.INS_UDW_TPL || [];
car.INS_UDW_TPL.ForEach(loss => {
loss.INS_UWD_RISK_COVERS = typeof (loss.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(loss.INS_UWD_RISK_COVERS)
: loss.INS_UWD_RISK_COVERS || [];
loss.INS_UWD_RISK_COVERS.ForEach(tpl => {
tpl.RCOV_RISK_SYS_ID = loss.TPL_SYS_ID;
if (tpl.MS_UDW_COVERS) {
delete (tpl.MS_UDW_COVERS);
}
//tpl.UAC_CVR_CODE = tpl.UAC_CVR_CODE.split('.')[0];
tpl.INS_UDW_COVER_DISCLOAD = typeof tpl.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(tpl.INS_UDW_COVER_DISCLOAD)
: tpl.INS_UDW_COVER_DISCLOAD || [];
});
});
//lop
car.INS_UDW_LOP = typeof (car.INS_UDW_LOP) === "string"
? u.parseJson(car.INS_UDW_LOP)
: car.INS_UDW_LOP || [];
car.INS_UDW_LOP.ForEach(profit => {
profit.INS_UWD_RISK_COVERS = typeof (profit.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(profit.INS_UWD_RISK_COVERS)
: profit.INS_UWD_RISK_COVERS || [];
profit.INS_UWD_RISK_COVERS.ForEach(pol => {
pol.RCOV_RISK_SYS_ID = profit.LOP_SYS_ID;
if (pol.MS_UDW_COVERS) {
delete (pol.MS_UDW_COVERS);
}
// pol.UAC_CVR_CODE = pol.UAC_CVR_CODE.split('.')[0];
pol.INS_UDW_COVER_DISCLOAD = typeof pol.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(pol.INS_UDW_COVER_DISCLOAD)
: pol.INS_UDW_COVER_DISCLOAD || [];
});
});
});
//EAR
l.INS_UDW_EAR_RISK = typeof (l.INS_UDW_EAR_RISK) === "string"
? u.parseJson(l.INS_UDW_EAR_RISK)
: l.INS_UDW_EAR_RISK || [];
l.INS_UDW_EAR_RISK.ForEach(ear => {
ear.INS_UWD_RISK_COVERS = typeof ear.INS_UWD_RISK_COVERS === "string"
? u.parseJson(ear.INS_UWD_RISK_COVERS)
: ear.INS_UWD_RISK_COVERS || [];
ear.INS_UWD_RISK_COVERS.ForEach(c => {
c.RCOV_RISK_SYS_ID = ear.CAR_SYS_ID;
c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(c.INS_UDW_COVER_DISCLOAD)
: [];
delete c.MS_UDW_COVERS;
});
//cpm
ear.INS_UDW_CPM_RISK = typeof (ear.INS_UDW_CPM_RISK) === "string"
? u.parseJson(ear.INS_UDW_CPM_RISK)
: ear.INS_UDW_CPM_RISK || [];
ear.INS_UDW_CPM_RISK.ForEach(cpm => {
cpm.CPM_ENG_SYS_ID = ear.CAR_SYS_ID;
cpm.INS_UWD_RISK_COVERS = typeof cpm.INS_UWD_RISK_COVERS === "string"
? u.parseJson(cpm.INS_UWD_RISK_COVERS)
: cpm.INS_UWD_RISK_COVERS || [];
cpm.INS_UWD_RISK_COVERS.ForEach(c => {
c.RCOV_RISK_SYS_ID = cpm.CPM_SYS_ID;
c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(c.INS_UDW_COVER_DISCLOAD)
: c.INS_UDW_COVER_DISCLOAD || [];
delete c.MS_UDW_COVERS;
});
});
//tpl
ear.INS_UDW_TPL = typeof (ear.INS_UDW_TPL) === "string"
? u.parseJson(ear.INS_UDW_TPL)
: ear.INS_UDW_TPL || [];
ear.INS_UDW_TPL.ForEach(loss => {
loss.INS_UWD_RISK_COVERS = typeof (loss.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(loss.INS_UWD_RISK_COVERS)
: loss.INS_UWD_RISK_COVERS || [];
loss.INS_UWD_RISK_COVERS.ForEach(tpl => {
tpl.RCOV_RISK_SYS_ID = loss.TPL_SYS_ID;
if (tpl.MS_UDW_COVERS) {
delete (tpl.MS_UDW_COVERS);
}
//tpl.UAC_CVR_CODE = tpl.UAC_CVR_CODE.split('.')[0];
tpl.INS_UDW_COVER_DISCLOAD = typeof tpl.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(tpl.INS_UDW_COVER_DISCLOAD)
: tpl.INS_UDW_COVER_DISCLOAD || [];
});
});
//lop
ear.INS_UDW_LOP = typeof (ear.INS_UDW_LOP) === "string"
? u.parseJson(ear.INS_UDW_LOP)
: ear.INS_UDW_LOP || [];
ear.INS_UDW_LOP.ForEach(profit => {
profit.INS_UWD_RISK_COVERS = typeof (profit.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(profit.INS_UWD_RISK_COVERS)
: profit.INS_UWD_RISK_COVERS || [];
profit.INS_UWD_RISK_COVERS.ForEach(pol => {
pol.RCOV_RISK_SYS_ID = profit.LOP_SYS_ID;
if (pol.MS_UDW_COVERS) {
delete (pol.MS_UDW_COVERS);
}
// pol.UAC_CVR_CODE = pol.UAC_CVR_CODE.split('.')[0];
pol.INS_UDW_COVER_DISCLOAD = typeof pol.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(pol.INS_UDW_COVER_DISCLOAD)
: pol.INS_UDW_COVER_DISCLOAD || [];
});
});
});
//OTHER
l.INS_UDW_ENG_OTHER = typeof (l.INS_UDW_ENG_OTHER) === "string"
? u.parseJson(l.INS_UDW_ENG_OTHER)
: l.INS_UDW_ENG_OTHER || [];
l.INS_UDW_ENG_OTHER.ForEach(r => {
r.INS_UWD_RISK_COVERS = typeof r.INS_UWD_RISK_COVERS === "string"
? u.parseJson(r.INS_UWD_RISK_COVERS)
: r.INS_UWD_RISK_COVERS || [];
r.INS_UWD_RISK_COVERS.ForEach(c => {
c.INS_UDW_COVER_DISCLOAD = typeof c.INS_UDW_COVER_DISCLOAD === "string"
? u.parseJson(c.INS_UDW_COVER_DISCLOAD)
: c.INS_UDW_COVER_DISCLOAD || [];
delete c.MS_UDW_COVERS;
});
});
//fees
l.INS_UDW_ENGINEER_FEES = typeof (l.INS_UDW_ENGINEER_FEES) === "string"
? u.parseJson(l.INS_UDW_ENGINEER_FEES || "[]")
: l.INS_UDW_ENGINEER_FEES || [];
l.INS_UDW_ENGINEER_FEES.ForEach(f => {
if (f.MS_COMPULSORY_FEES) {
delete (f.MS_COMPULSORY_FEES);
}
});
});
//obtain policy endorsement grid data
polhData["MS_UDW_ENDORSEMENTS"] = u.get_grid_data(u.getGlobal("udwEndsmntGrid"));
polhData.INS_UDW_POLICY_DISCLOAD = u.get_grid_data(u.getGlobal("udwPolDiscLoadingGrid"));
//var insUwdRiskDiscountLoading = u.get_grid_data($scope.riskdiscloading_grid);
//retrieve treaty information
var treaties = u.get_grid_data(u.getGlobal("udwRIGrid"), true);
polhData["INS_RI_TTY_HEAD"] = u.parseJson(treaties);
polhData.INS_RI_FAC_INWARD = u.get_grid_data(u.getGlobal("udwFacInwGrid"));
for (var i in polhData.INS_RI_FAC_INWARD) {
polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"] =
u.parseJson(polhData.INS_RI_FAC_INWARD[i]["INS_RI_FAC_INW_COMPANY"]);
}
polhData.INS_UWD_INTERMEDIARY_COMM = u.get_grid_data(u.getGlobal("udwAgntCommGrid"));
polhData.INS_UDW_POL_FEES = u.get_grid_data(u.getGlobal("udwPolFeesGrid"));
polhData.INS_RI_FAC_OUTWARD = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid"));
return polhData;
});
u.setGlobal("EngPolicyFill", function (policy) {
//u.clear_grid_data(u.getGlobal("udwEngRskFeeGrid"));
u.clear_grid_data(u.getGlobal("udwEngGrid"));
//engineering location population
policy.INS_UDW_ENGINEER_LOC.ForEach(location => {
//fees
location.INS_UDW_ENGINEER_FEES = location.INS_UDW_ENGINEER_FEES || [];
if (location.INS_UDW_ENGINEER_FEES.length > 0) {
u.grid_populate(u.getGlobal("udwEngRskFeeGrid"), "", location.INS_UDW_ENGINEER_FEES);
}
location.INS_UDW_ENGINEER_FEES = JSON.stringify(location.INS_UDW_ENGINEER_FEES);
// CAR
location.INS_UDW_CAR_RISK.ForEach(car => {
//covers
car.INS_UWD_RISK_COVERS.ForEach(cover => {
cover.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD);
});
car.INS_UWD_RISK_COVERS = JSON.stringify(car.INS_UWD_RISK_COVERS);
//cpm
car.INS_UDW_CPM_RISK.ForEach(cpm => {
cpm.INS_UWD_RISK_COVERS.ForEach(cover => {
cover.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD);
});
cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS);
});
car.INS_UDW_CPM_RISK = JSON.stringify(car.INS_UDW_CPM_RISK);
//TPL
car.INS_UDW_TPL.ForEach(loss => {
loss.INS_UWD_RISK_COVERS.ForEach(tpl => {
tpl.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
tpl.INS_UDW_COVER_DISCLOAD = JSON.stringify(tpl.INS_UDW_COVER_DISCLOAD);
});
loss.INS_UWD_RISK_COVERS = JSON.stringify(loss.INS_UWD_RISK_COVERS);
});
car.INS_UDW_TPL = JSON.stringify(car.INS_UDW_TPL);
//LOP
car.INS_UDW_LOP.ForEach(profit => {
profit.INS_UWD_RISK_COVERS.ForEach(lop => {
lop.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
lop.INS_UDW_COVER_DISCLOAD = JSON.stringify(lop.INS_UDW_COVER_DISCLOAD);
});
profit.INS_UWD_RISK_COVERS = JSON.stringify(profit.INS_UWD_RISK_COVERS);
});
car.INS_UDW_LOP = JSON.stringify(car.INS_UDW_LOP);
});
location.INS_UDW_CAR_RISK = JSON.stringify(location.INS_UDW_CAR_RISK);
//EAR
location.INS_UDW_EAR_RISK.ForEach(ear => {
//covers
ear.INS_UWD_RISK_COVERS.ForEach(cover => {
cover.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD);
});
ear.INS_UWD_RISK_COVERS = JSON.stringify(ear.INS_UWD_RISK_COVERS);
//cpm
ear.INS_UDW_CPM_RISK.ForEach(cpm => {
cpm.INS_UWD_RISK_COVERS.ForEach(cover => {
cover.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD);
});
cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS);
});
ear.INS_UDW_CPM_RISK = JSON.stringify(ear.INS_UDW_CPM_RISK);
//TPL
ear.INS_UDW_TPL.ForEach(loss => {
loss.INS_UWD_RISK_COVERS.ForEach(tpl => {
tpl.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
tpl.INS_UDW_COVER_DISCLOAD = JSON.stringify(tpl.INS_UDW_COVER_DISCLOAD);
});
loss.INS_UWD_RISK_COVERS = JSON.stringify(loss.INS_UWD_RISK_COVERS);
});
ear.INS_UDW_TPL = JSON.stringify(ear.INS_UDW_TPL);
//LOP
ear.INS_UDW_LOP.ForEach(profit => {
profit.INS_UWD_RISK_COVERS.ForEach(lop => {
lop.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
lop.INS_UDW_COVER_DISCLOAD = JSON.stringify(lop.INS_UDW_COVER_DISCLOAD);
});
profit.INS_UWD_RISK_COVERS = JSON.stringify(profit.INS_UWD_RISK_COVERS);
});
ear.INS_UDW_LOP = JSON.stringify(ear.INS_UDW_LOP);
});
location.INS_UDW_EAR_RISK = JSON.stringify(location.INS_UDW_EAR_RISK);
//Other
location.INS_UDW_ENG_OTHER.ForEach(engOther => {
engOther.INS_UWD_RISK_COVERS.ForEach(cover => {
cover.INS_UDW_COVER_DISCLOAD.ForEach(d => {
if (d.MS_SYS_LOADINGS_DISCOUNTS) {
d.DL_NAME = d.MS_SYS_LOADINGS_DISCOUNTS.LDI_NAME || "";
delete (d.MS_SYS_LOADINGS_DISCOUNTS);
}
});
cover.INS_UDW_COVER_DISCLOAD = JSON.stringify(cover.INS_UDW_COVER_DISCLOAD);
});
engOther.INS_UWD_RISK_COVERS = JSON.stringify(engOther.INS_UWD_RISK_COVERS);
});
location.INS_UDW_ENG_OTHER = JSON.stringify(location.INS_UDW_ENG_OTHER);
});
u.clear_grid_data(u.getGlobal("udwPolFeesGrid"));
u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", policy.INS_UDW_POL_FEES);
u.grid_populate(u.getGlobal("udwEngGrid"), "", policy.INS_UDW_ENGINEER_LOC);
u.clear_grid_data(u.getGlobal("udwEndsmntGrid"));
u.grid_populate(u.getGlobal("udwEndsmntGrid"), "", policy.MS_UDW_ENDORSEMENTS);
u.getGlobal("showRiskCount")(u.get_grid_data(u.getGlobal("udwEngGrid")).Where(x => x.ENG_STATUS !== "D"));
});
u.setGlobal("EngPremCalculator", function() {
//Declare variables
var riskPremFc = 0;
var riskPremBc = 0;
var locationBasicPremFc = 0;
var locationBasicPremBc = 0;
var grossPremFc = 0;
var grossPremBc = 0;
//Risk Grid
u.get_grid_data(u.getGlobal("udwEngGrid")).ForEach(location => {
if (location.ENG_STATUS !== "D") {
riskPremFc += parseFloat(location.ENG_RISK_PREM_FC);
riskPremBc += parseFloat(location.ENG_RISK_PREM_BC);
grossPremFc += parseFloat(location.ENG_TOT_PREM_FC);
grossPremBc += parseFloat(location.ENG_TOT_PREM_BC);
}
});
//grossPremFc = locationBasicPremFc;
//grossPremBc = locationBasicPremBc;
var prems = [riskPremFc, riskPremBc, grossPremFc, grossPremBc];
// console.log(prems);
return prems;
});
u.setGlobal("EngPremSummarizer", function () {
var currRate = parseFloat($("#POLH_CURRENCY_RATE").val() || 0);
//[grossPremFc=0, grossPremBc=1, totalvehBasicPrem=2, excessBoughtPrem=3, totalccLoadingPrem=4, AddTPPDPrem=5, totalRiskPrem=6, totalTPBasicPrem=7, extraSeatPrem=8, ncdPremFc=9, ncdPremBc=10, addPeril=11, PABenefitPrem=12, ecowasPrem]
var premData = u.getGlobal("EngPremCalculator")();
var PremSummary_grid = u.getGlobal("udwPremSumGrid");
var locationGrid = u.getGlobal("udwEngGrid");
u.clear_grid_data(PremSummary_grid);
var data = {
CODE: "GRSPREM",
DESCRIPTION: "Gross Premium",
FC_AMOUNT: (
parseFloat(premData[2] || 0)).toFixed(2),
BC_AMOUNT: (
parseFloat(premData[3] || 0)).toFixed(2),
TYPE: "P"
};
PremSummary_grid.addRowData(data.ID, data);
//var riskData = {
// CODE: "RSKPREM",
// DESCRIPTION: "Risk Premium",
// FC_AMOUNT: (
// parseFloat(premData[2] || 0)).toFixed(2),
// BC_AMOUNT: (
// parseFloat(premData[3] || 0) * currRate ).toFixed(2),
// TYPE: "P"
//};
//PremSummary_grid.addRowData(riskData.ID, riskData);
//policy discount and loading summary
var polDiscLoadData = [];
var totalSumInsuredBc = 0;
var totalSumInsuredFc = 0;
let vatBc = 0;
let vatFc = 0;
//var polDiscLoadData = u.get_grid_data($scope.riskdiscloading_grid);
var locationGridData = u.get_grid_data(locationGrid);
//console.log(locationGridData);
locationGridData.ForEach(loc => {
totalSumInsuredBc += parseFloat(loc.ENG_SI_BC || 0);
totalSumInsuredFc += parseFloat(loc.ENG_SI_FC || 0);
vatBc += loc.ENG_VALUE_ADDED_TAX_RATE_BC || 0;
vatFc += loc.ENG_VALUE_ADDED_TAX_RATE_FC || 0;
//car
var carRisks = typeof (loc.INS_UDW_CAR_RISK) === "string"
? u.parseJson(loc.INS_UDW_CAR_RISK)
: loc.INS_UDW_CAR_RISK || [];
if (carRisks.length > 0) {
carRisks.ForEach(car => {
var riskDiscLoadings = car.INS_UDW_RISK_DISCLOAD
? typeof (car.INS_UDW_RISK_DISCLOAD) === "string"
? u.parseJson(car.INS_UDW_RISK_DISCLOAD)
: car.INS_UDW_RISK_DISCLOAD || []
: [];
if (riskDiscLoadings !== null) {
riskDiscLoadings.ForEach(discLoading => {
if (discLoading.DL_STATUS !== "D") {
polDiscLoadData.push(discLoading);
}
});
}
//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 => {
var riskDiscLoadings = ear.INS_UDW_RISK_DISCLOAD
? typeof (ear.INS_UDW_RISK_DISCLOAD) === "string"
? u.parseJson(car.INS_UDW_RISK_DISCLOAD)
: ear.INS_UDW_RISK_DISCLOAD || []
: [];
if (riskDiscLoadings !== null) {
riskDiscLoadings.ForEach(discLoading => {
if (discLoading.DL_STATUS !== "D") {
polDiscLoadData.push(discLoading);
}
});
}
//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 riskDiscLoadings = engOther.INS_UDW_RISK_DISCLOAD
? typeof (engOther.INS_UDW_RISK_DISCLOAD) === "string"
? u.parseJson(engOther.INS_UDW_RISK_DISCLOAD)
: engOther.INS_UDW_RISK_DISCLOAD || []
: [];
if (riskDiscLoadings !== null) {
riskDiscLoadings.ForEach(discLoading => {
if (discLoading.DL_STATUS !== "D") {
polDiscLoadData.push(discLoading);
}
});
}
var covers = typeof (engOther.INS_UWD_RISK_COVERS) === "string"
? u.parseJson(engOther.INS_UWD_RISK_COVERS)
: engOther.INS_UWD_RISK_COVERS || [];
if (covers !== null) {
covers.ForEach(cover => {
var discLoadings = typeof (cover.INS_UDW_COVER_DISCLOAD) === "string"
? u.parseJson(cover.INS_UDW_COVER_DISCLOAD)
: cover.INS_UDW_COVER_DISCLOAD || [];
if (discLoadings !== null) {
discLoadings.ForEach(discLoading => {
polDiscLoadData.push(discLoading);
});
}
});
}
});
}
});
//var polDiscLoadData = u.get_grid_data($scope.coverDiscLoading_grid);
//console.log(polDiscLoadData);
var polDiscLoadLinq = Enumerable.From(polDiscLoadData);
var polDiscLoadings =
polDiscLoadLinq.GroupBy(function (x) { return x.DL_CODE; })
.Select(function (x) {
return {
CODE: x.Key(),
DESCRIPTION: x.source[0]["DL_NAME"],
FC_AMOUNT: x.Sum(function (y) { return y.DL_TYPE === "D" ? -(parseFloat(y.DL_AMT_FC || 0)) : parseFloat(y.DL_AMT_FC || 0); }).toFixed(2),
BC_AMOUNT: x.Sum(function (y) { return y.DL_TYPE === "D" ? -(parseFloat(y.DL_AMT_BC || 0)) : parseFloat(y.DL_AMT_BC || 0); }).toFixed(2),
TYPE: x.source[0]["DL_TYPE"]
};
}).ToArray();
for (var x in polDiscLoadings) PremSummary_grid.addRowData(polDiscLoadings[x].ID, polDiscLoadings[x]);
//u.gridPopulate(PremSummary_grid, polDiscLoadings);
//policy fee summary
var compFeedata = u.get_grid_data(u.getGlobal("udwPolFeesGrid")).Where(x => x.POL_FEE_STATUS !== "D");
//console.log(compFeedata);
var linq = Enumerable.From(compFeedata);
//console.log(linq);
var result =
linq.GroupBy(function (x) { return x.POL_FEE_CODE; })
.Select(function (x) {
return {
CODE: x.Key(),
DESCRIPTION: x.source[0]["POL_FEE_NAME"],
FC_AMOUNT: x.Sum(function (y) {
return parseFloat(parseFloat(y.POL_FEE_FC_AMOUNT || 0));
}).toFixed(2),
BC_AMOUNT: x.Sum(function (y) { return parseFloat(y.POL_FEE_BC_AMOUNT || 0); }).toFixed(2),
TYPE: "F"
};
}).ToArray();
for (var i in result) PremSummary_grid.addRowData(result[i].ID, result[i]);
var summaryData = u.get_grid_data(PremSummary_grid),
summaryDataLing = Enumerable.From(summaryData);
//var netCustomerFc = (summaryDataLing.Sum(function (x) { return parseFloat(x.FC_AMOUNT); })).toFixed(2),
// netCustomerBc = (summaryDataLing.Sum(function (x) { return parseFloat(x.BC_AMOUNT); })).toFixed(2);
var netCustomerFc = parseFloat(premData[0] || 0) + compFeedata.Sum(x => parseFloat(x.POL_FEE_FC_AMOUNT || 0)) + parseFloat(vatFc),
netCustomerBc = parseFloat(premData[1] || 0) + compFeedata.Sum(x => parseFloat(x.POL_FEE_BC_AMOUNT || 0)) + parseFloat(vatBc);
//
var currency = $("#POLH_CURRENCY").val();
var premium = ` ${currency} ${netCustomerFc}`;
$("#netCustomerBc").text(netCustomerBc);
$("#netCustomerFc").text(premium);
$("#POLH_POL_PREM_FC").val(netCustomerFc);
$("#POLH_POL_PREM_BC").val(netCustomerBc);
$("#POLH_NET_PREM_FC").val(
summaryDataLing.Where(function (x) { return x.TYPE === "P"; }).Sum(function (x) {
return parseFloat(x.FC_AMOUNT);
}) +
summaryDataLing.Where(function (x) { return x.TYPE === "D"; }).Sum(function (x) {
return parseFloat(x.FC_AMOUNT);
}) +
summaryDataLing.Where(function (x) { return x.TYPE === "L"; }).Sum(function (x) {
return parseFloat(x.FC_AMOUNT);
}));
$("#POLH_NET_PREM_BC").val(
summaryDataLing.Where(function (x) { return x.TYPE === "P"; }).Sum(function (x) {
return parseFloat(x.BC_AMOUNT || 0);
}) +
summaryDataLing.Where(function (x) { return x.TYPE === "D"; }).Sum(function (x) {
return parseFloat(x.BC_AMOUNT || 0);
}) +
summaryDataLing.Where(function (x) { return x.TYPE === "L"; }).Sum(function (x) {
return parseFloat(x.BC_AMOUNT || 0);
}));
//x.BC_AMOUNT
$("#POLH_POL_LOAD_FC").val(summaryDataLing.Where(function (x) { return x.TYPE === "L" })
.Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); }));
$("#POLH_POL_LOAD_BC").val(summaryDataLing.Where(function (x) { return x.TYPE === "L" })
.Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0) }));
$("#POLH_POL_DISC_FC").val(summaryDataLing.Where(function (x) { return x.TYPE === "D" })
.Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); }));
$("#POLH_POL_DISC_BC").val(summaryDataLing.Where(function (x) { return x.TYPE === "D" })
.Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); }));
$("#POLH_FEE_FC").val(summaryDataLing.Where(function (x) { return x.TYPE === "F" })
.Sum(function (x) { return parseFloat(x.FC_AMOUNT || 0); }));
$("#POLH_FEE_BC").val(summaryDataLing.Where(function (x) { return x.TYPE === "F" })
.Sum(function (x) { return parseFloat(x.BC_AMOUNT || 0); }));
$("#POLH_GROSS_PREM_BC").val(summaryData.Where((x) => x.TYPE === "P").FirstOrDefault().BC_AMOUNT);
$("#POLH_GROSS_PREM_FC").val(summaryData.Where((x) => x.TYPE === "P").FirstOrDefault().FC_AMOUNT);
$("#POLH_POL_SI_FC").val(totalSumInsuredFc);
$("#POLH_POL_SI_BC").val(totalSumInsuredBc);
$("#POLH_VAT_AMT_FC").val(vatFc);
$("#POLH_VAT_AMT_BC").val(vatBc);
var siData = {
CODE: "SI",
DESCRIPTION: "Sum Insured",
FC_AMOUNT: totalSumInsuredFc,
BC_AMOUNT: totalSumInsuredBc,
TYPE: ""
};
PremSummary_grid.addRowData(siData.ID, siData);
var vatData = {
CODE: "VAT",
DESCRIPTION: "Value Added Tax",
FC_AMOUNT: vatFc || 0,
BC_AMOUNT: vatBc || 0,
TYPE: "P"
};
PremSummary_grid.addRowData(vatData.ID, vatData);
switch ($("#POLH_INS_SOURCE").val()) {
case "COL":
{
const coinsLeaderData = u.get_grid_data(u.getGlobal("udwCoInsLdrGrid")).FirstOrDefault();
$("POLH_COINS_SI_FC").val(parseFloat(coinsLeaderData.CIL_SHARE_SI_FC || 0));
$("POLH_COINS_SI_BC").val(parseFloat(coinsLeaderData.CIL_SHARE_SI_BC || 0));
$("#POLH_COINS_PREM_FC").val(parseFloat(coinsLeaderData.CIL_SHARE_PREM_FC || 0));
$("#POLH_COINS_PREM_BC").val(parseFloat(coinsLeaderData.CIL_SHARE_PREM_BC || 0));
$("#POLH_COINS_COM_FC").val(0);
$("#POLH_COINS_COM_BC").val(0);
}
break;
case "FIN":
case "COM":
{
let coInsData = u.get_grid_data(u.getGlobal("udwFacInwGrid")).FirstOrDefault();
if (coInsData != null) {
$("#POLH_COINS_SI_FC").val(parseFloat($("#POLH_POL_SI_FC").val() || 0));
$("#POLH_COINS_SI_BC").val(parseFloat($("#POLH_POL_SI_BC").val() || 0));
$("#POLH_COINS_PREM_FC").val(parseFloat($("#POLH_POL_PREM_FC").val() || 0) - parseFloat($("#POLH_FEE_FC").val() || 0));
$("#POLH_COINS_PREM_BC").val(parseFloat($("#POLH_POL_PREM_BC").val() || 0) - parseFloat($("#POLH_FEE_BC").val() || 0));
$("#POLH_COINS_COM_FC").val(parseFloat(coInsData.FINW_COMM_FC || 0));
$("#POLH_COINS_COM_BC").val(parseFloat(coInsData.FINW_COMM_BC || 0));
}
}
break;
default:
{
$("#POLH_COINS_SI_FC").val(0);
$("#POLH_COINS_SI_BC").val(0);
$("#POLH_COINS_PREM_FC").val(0);
$("#POLH_COINS_PREM_BC").val(0);
$("#POLH_COINS_COM_FC").val(0);
$("#POLH_COINS_COM_BC").val(0);
}
break;
}
u.form_reset("#engineeringForm");
u.setGlobal("policyChanges", true);
});
u.setGlobal("EngGetAddOnDefaultCovers", async function(type) {
//if ($("#POLH_SUB_CLASS_CODE").val() == "") {
// u.growl_warning("Please select a product");
//} else {
/*
obtain parameter for our request
*/
var productRiskData = {
PRD_CODE: type,
CUR_RATE: $("#POLH_CURRENCY_RATE").val()
}; //
var grid = u.getGlobal("udwCoverGrid");
var rowIds = grid.jqGrid("getDataIDs");
//declare array to contain the codes to varify
var codeArray = [];
// iterate through the rows in the grid and add Covers to Array
for (var i = 0, len = rowIds.length; i < len; i++) {
var currRow = rowIds[i];
//get value of the cell or column in an array
var coverCode = grid.jqGrid("getCell", currRow, "RCOV_CODE");
var riskCode = grid.jqGrid("getCell", currRow, "RCOV_RISK_SYS_ID");
var riskCov = coverCode + riskCode;
//alert(riskCov);
codeArray.push(riskCov);
}
var riskId = 0;
var engid = 0;
// switch ($scope.coverTarget) {
// case "CAR":
// riskId = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid).CAR_SYS_ID;
// engid = u.getRow(u.getSelRow($scope.carRiskGrid), $scope.carRiskGrid).CAR_ENG_SYS_ID;
// break;
// case "CPM":
// riskId = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_SYS_ID;
// engid = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_ENG_SYS_ID;
// break;
//}
//$scope.cpmRiskGrid = u.getGlobal("udwEngCpmGrid");
//riskId = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_SYS_ID;
//engid = u.getRow(u.getSelRow($scope.cpmRiskGrid), $scope.cpmRiskGrid).CAR_ENG_SYS_ID;
//send parameters and get Default covers from the database
var result = await s.getDefaultAddOnProductCoversAsync(productRiskData);
if (result && result.length && result.length > 0) {
result.ForEach(c => {
//alert(JSON.stringify(result));
c["RCOV_NAME"] = c["MS_UDW_COVERS"]["CVR_NAME"];
c["RCOV_TYPE"] = c["MS_UDW_COVERS"]["CVR_TYPE"];
c["RCOV_RI_YN"] = c["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"];
c["CVR_USER_PREMIUM"] = c["MS_UDW_COVERS"]["CVR_USER_PREMIUM"];
c["RCOV_PREM_REFUND"] = c["MS_UDW_COVERS"]["RCOV_PREM_REFUND"];
c["RCOV_RATE_CHANGE"] = c["MS_UDW_COVERS"]["CVR_RATE_CHANGE"];
c["RCOV_SI_CHANGE"] = c["MS_UDW_COVERS"]["CVR_SI_CHANGE"];
c["RCOV_COVER_LEVEL"] = c["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"];
c["RCOV_RISK_SYS_ID"] = riskId;
c["RCOV_RISK_NO"] = engid;
//c["RCOV_SI_FC"] = $("#RCOV_SI_FC").val();
//var deftCoverCode = c.RCOV_CODE;
//var newRiskCode = riskId;
//var verifyRiskCover = deftCoverCode + newRiskCode; //alert(verifyRiskCover);
////add if Cover is not found in the Grid//
//if ($.inArray(verifyRiskCover, codeArray) < 0) {
// //fill in default covers if not in the grid
// $scope.cover_grid.addRowData(c.ID, c);
//} else {
// u.growl_warning(`Cover exists for this Risk, you cannot add same Cover ${deftCoverCode}`);
//}
});
//SumCarCoverValues();
console.log(result);
return result;
}
return [];
});
$("#btn_cv_discloading").click(function () {
//Open Modal
const grid = u.getGlobal("udwCoverGrid");
if (u.grid_empty(grid)) return u.growl_info("Grid is empty!");
if ($("#RCOV_CODE").val() === "")
return u.growl_info("Please select the cover for which you want to apply discounts/loadings");
//var discLoadGrid = u.getGlobal("udwCoverDiscLoading");
var discLoadGrid = u.getGlobal("RskCvDiscLoadingGrid");
u.clear_grid_data(discLoadGrid);
var coverGrid = u.getGlobal("udwCoverGrid");
var selectedCover = u.getSelRow(coverGrid);
var coverDiscLoads = coverGrid.jqGrid("getCell", selectedCover, "INS_UDW_COVER_DISCLOAD") || "[]";
coverDiscLoads = u.parseJson(coverDiscLoads);
console.log(coverDiscLoads);
if (coverDiscLoads.length > 0) {
u.grid_populate(discLoadGrid, "", coverDiscLoads);
}
var grossPremFc = coverGrid.jqGrid("getCell", selectedCover, "RCOV_GROSS_PREM_FC");
var grossPremBc = coverGrid.jqGrid("getCell", selectedCover, "RCOV_GROSS_PREM_BC");
var rCovId = coverGrid.jqGrid("getCell", selectedCover, "RCOV_SYS_ID");
//u.fill_form({
// DL_PREM_BC: grossPremBc,
// DL_PREM_FC: grossPremFc
//}, "#coverdiscloadingForm");
u.fill_form({
DL_PREM_BC: grossPremBc,
DL_PREM_FC: grossPremFc,
DL_RCOV_SYS_ID: rCovId
}, "#riskcoverdiscloadingForm");
$("#riskCvDiscloadingModal").modal();
});
$("#btn_risk_cover1").click(function () {
if (u.grid_empty(u.getGlobal("udwEngCpmGrid"))) return u.growl_info("The grid is empty");
var grid = u.getGlobal("udwEngCpmGrid");
var rowId = u.getSelRow(grid);
if (!rowId) return u.growl_warning("No risk has been selected, please select a CPM risk to continue");
u.clear_grid_data(u.getGlobal("udwCoverGrid"));
var covers = [];
covers = u.parseJson(u.getCell(grid, rowId, "INS_UWD_RISK_COVERS") || "[]");
//if (covers.length <= 0) {
// covers = await u.getGlobalAsync("EngGetCpmDefaultCovers")();
//}
console.log(covers);
u.grid_populate(u.getGlobal("udwCoverGrid"), "", covers);
//$scope.coverTarget = "CPM";
u.setGlobal("coverTarget", "CPM");
$("#RiskCoverModal").modal();
});
$("#btn_tpl_discloading").click(function () {
if ($("form input[name='UAC_CVR_CODE']").val() === "")
return u.growl_info("Please select the TPL cover for which you want to apply discounts/loadings");
var discLoadGrid = u.getGlobal("udwEngCoverDiscLoading");
u.clear_grid_data(discLoadGrid);
var tplGrid = u.getGlobal("udwEngTplGrid");
var selectedTplCover = u.getSelRow(tplGrid);
var coverDiscLoads = tplGrid.jqGrid("getCell", selectedTplCover, "INS_UDW_COVER_DISCLOAD") || "[]";
coverDiscLoads = u.parseJson(coverDiscLoads);
//console.log(coverDiscLoads);
if (coverDiscLoads.length > 0) {
u.gridPopulate(discLoadGrid, coverDiscLoads);
}
var grossPremFc = tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_GROSS_PREM_FC");
var grossPremBc = tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_GROSS_PREM_BC");
u.fill_form({
DL_PREM_BC: grossPremBc,
DL_PREM_FC: grossPremFc
},
"#engCovDiscLoadingForm");
$("#engCoverDiscloadingModal").modal();
});
$("#btn_lop_discloading").click(function () {
if ($("#LOP_UAC_CVR_CODE").val() === "") {
if ($("#TPL_UAC_CVR_CODE").val() === "") {
return u.growl_info(
"Please select the Loss of Profit cover for which you want to apply discounts/loadings");
}
}
//if ($("form input[name='UAC_CVR_CODE']").val() === "")
// return u.growl_info("Please select the Loss of Profit cover for which you want to apply discounts/loadings");
var discLoadGrid = u.getGlobal("udwEngCoverDiscLoading");
u.clear_grid_data(discLoadGrid);
var lopGrid = u.getGlobal("udwEngLopGrid");
var selectedLopCover = u.getSelRow(lopGrid);
var coverDiscLoads = lopGrid.jqGrid("getCell", selectedLopCover, "INS_UDW_COVER_DISCLOAD") || "[]";
coverDiscLoads = u.parseJson(coverDiscLoads);
//console.log(coverDiscLoads);
if (coverDiscLoads.length > 0) {
u.gridPopulate(discLoadGrid, coverDiscLoads);
}
var grossPremFc = lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_GROSS_PREM_FC");
var grossPremBc = lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_GROSS_PREM_BC");
u.fill_form({
DL_PREM_BC: grossPremBc,
DL_PREM_FC: grossPremFc
},
"#engCovDiscLoadingForm");
$("#engCoverDiscloadingModal").modal();
});
$("#engCoverDiscLoadModalOk").click(function () {
var discLoadGrid = u.getGlobal("udwEngCoverDiscLoading");
if (!u.grid_empty(discLoadGrid)) {
var discLoads = u.get_grid_data(discLoadGrid);
console.log(discLoads);
var tplGrid = u.getGlobal("udwEngTplGrid");
var lopGrid = u.getGlobal("udwEngLopGrid");
if (u.getGlobal("tpl")) {
if (u.get_grid_data(tplGrid).length > 0) {
var selectedTplCover = u.getSelRow(tplGrid);
var totalDiscountsFc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_FC));
var totalDiscountsBc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_BC));
var totalLoadingsFc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_FC));
var totalLoadingsBc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_BC));
var netPremFc = parseFloat(tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_NET_PREM_FC"));
var netPremBc = parseFloat(tplGrid.jqGrid("getCell", selectedTplCover, "UAC_CVR_NET_PREM_BC"));
netPremFc = netPremFc + parseFloat(totalLoadingsFc) - parseFloat(totalDiscountsFc);
netPremBc = netPremBc + parseFloat(totalLoadingsBc) - parseFloat(totalDiscountsBc);
u.setCell(tplGrid, selectedTplCover, "UAC_CVR_NET_PREM_FC", netPremFc);
u.setCell(tplGrid, selectedTplCover, "UAC_CVR_NET_PREM_BC", netPremBc);
u.setCell(tplGrid, selectedTplCover, "UAC_CVR_DISC_FC", totalDiscountsFc.toFixed(2));
u.setCell(tplGrid, selectedTplCover, "UAC_CVR_DISC_BC", totalDiscountsBc.toFixed(2));
u.setCell(tplGrid, selectedTplCover, "UAC_CVR_LOAD_FC", totalLoadingsFc.toFixed(2));
u.setCell(tplGrid, selectedTplCover, "UAC_CVR_LOAD_BC", totalLoadingsBc.toFixed(2));
u.setCell(tplGrid, selectedTplCover, "INS_UDW_COVER_DISCLOAD", JSON.stringify(discLoads));
}
}
if (u.getGlobal("lop")) {
if (u.get_grid_data(lopGrid).length > 0) {
var selectedLopCover = u.getSelRow(lopGrid);
var totalDiscountssFc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_FC));
var totalDiscountssBc = discLoads.Where(d => d.DL_TYPE === "D").Sum(d => parseFloat(d.DL_AMT_BC));
var totalLoadingssFc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_FC));
var totalLoadingssBc = discLoads.Where(d => d.DL_TYPE === "L").Sum(d => parseFloat(d.DL_AMT_BC));
var netPremFcc = parseFloat(lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_NET_PREM_FC"));
var netPremBcc = parseFloat(lopGrid.jqGrid("getCell", selectedLopCover, "UAC_CVR_NET_PREM_BC"));
netPremFcc = netPremFcc + parseFloat(totalLoadingssFc) - parseFloat(totalDiscountssFc);
netPremBcc = netPremBcc + parseFloat(totalLoadingssBc) - parseFloat(totalDiscountssBc);
u.setCell(lopGrid, selectedLopCover, "UAC_CVR_NET_PREM_FC", netPremFcc);
u.setCell(lopGrid, selectedLopCover, "UAC_CVR_NET_PREM_BC", netPremBcc);
u.setCell(lopGrid, selectedLopCover, "UAC_CVR_DISC_FC", totalDiscountssFc.toFixed(2));
u.setCell(lopGrid, selectedLopCover, "UAC_CVR_DISC_BC", totalDiscountssBc.toFixed(2));
u.setCell(lopGrid, selectedLopCover, "UAC_CVR_LOAD_FC", totalLoadingssFc.toFixed(2));
u.setCell(lopGrid, selectedLopCover, "UAC_CVR_LOAD_BC", totalLoadingssBc.toFixed(2));
u.setCell(lopGrid, selectedLopCover, "INS_UDW_COVER_DISCLOAD", JSON.stringify(discLoads));
}
}
}
u.clear_grid_data(discLoadGrid);
u.form_reset("#engCovDiscLoadingForm");
$("#engCoverDiscloadingModal").modal("hide");
});
$("#btn_eng_cover_type").on("click", function () {
$("#RiskDiscLoadModal").modal();
var grid = u.getGlobal("udwRskDiscLoadGrid");
var rowIds = grid.jqGrid("getDataIDs");
//send parameters and get from the database
s.discountloadingList(function (result) {
if (result && result.length && result.length > 0) {
//clear Grid
u.getGlobal("udwRskDiscLoadGrid").jqGrid("clearGridData");
//fill grid
for (var i in result) {
u.getGlobal("udwRskDiscLoadGrid").addRowData(result[i]["MMO_CODE"], result[i]);
}
}
});
});
/*--------------------------------------------------
* ENG TPL/LOP Cover Discount/Loading
*------------------------------------------------*/
//
$("#btn_add_eng_coverdisloading").on("click", function () {
if (u.form_validation("#coverdiscloadingForm")) {
//if ($("input[name='DL_CODE']").val() === "") return u.modalAlert("Please Enter Policy Excess No");
u.modal_confirmation("Are you sure you want to add the Cover Discount/Loading Details?", function () {
var rowIds = u.getGlobal("udwEngCoverDiscLoading").jqGrid("getDataIDs");
/*----------------------------------------------
* declare array to contain the codes to verify
*--------------------------------------------*/
//
var code = [];
/*------------------------------------------------------------
* iterate through the rows and check duplicate each of them
*----------------------------------------------------------*/
//
for (var i = 0, len = rowIds.length; i < len; i++) {
var currRow = rowIds[i];
/*------------------------------------------------
* get value of the cell or column in an array
*----------------------------------------------*/
//
var cellValue = u.getGlobal("udwEngCoverDiscLoading").jqGrid("getCell", currRow, "DL_CODE");
code.push(cellValue);
}
/*----------------------------------------
* add if code is not found in the Grid
*--------------------------------------*/
//
if ($.inArray($("#DL_CODE").val(), code) < 0) {
var formData = u.parse_form("#engCovDiscLoadingForm");
formData.DL_STATUS = "U";
formData.DL_CRTE_BY = u.getUserCode();
formData.DL_CRTE_DATE = u.get_date();
u.getGlobal("udwEngCoverDiscLoading").addRowData(formData.DL_CODE, formData);
u.hide_confirm();
u.growl_success("Cover Discount/Loading successfully added to grid");
u.form_reset("#engCovDiscLoadingForm");
}
else {
u.hide_confirm();
u.growl_warning(`Cover Discount/Loading with code ${cellValue} Already exists`);
}
});
} else {
u.growl_error("Please fill out the fields that are marked red");
}
});
// Deleting
$("#btn_remove_eng_coverdisloadings").on("click", function () {
if (u.grid_empty(u.getGlobal("udwEngCoverDiscLoading"))) return u.modalAlert("Grid is empty!!!");
var grid = u.getGlobal("udwEngCoverDiscLoading");
var rowId = grid.jqGrid("getGridParam", "selrow");
var recordStatus = grid.jqGrid("getCell", rowId, "DL_STATUS");
var code = grid.jqGrid("getCell", rowId, "DL_CODE");
var message = "";
/*---------------------------------
* Display modal message
*------------------------------*/
//
u.modal_confirmation("Are you sure you want to remove the Record?", function (e) {
/*--------------------------------------------
* Remove newly added record before saving
*------------------------------------------*/
//
if (recordStatus == "U") {
grid.jqGrid("delRowData", rowId);
u.hide_confirm();
u.hide_confirm("Selected row successfully deleted");
}
/*----------------------------------------
* Mark a record for deletion on saving
*--------------------------------------*/
//
if (recordStatus == "A") {
grid.jqGrid("setCell", rowId, "DL_STATUS", "D");
$(`#${rowId}`, "#grdEngCoverDiscloading").css({ color: "red" });
u.hide_confirm();
u.hide_confirm("Selected row successfully marked for deletion, please click on the save button to save changes");
} else if (recordStatus == "D") {
$(`#${rowId}`, "#grdEngCoverDiscloading").css({ color: "black" });
grid.jqGrid("setCell", rowId, "DL_STATUS", "A");
u.hide_confirm();
u.hide_confirm("Data successfully restored");
}
u.form_reset("#engCovDiscLoadingForm");
});
});
// Updating
$("#btn_update_eng_coverdisloading").on("click", function () {
if (u.grid_empty(u.getGlobal("udwEngCoverDiscLoading"))) return u.growl_info("Excess grid is empty");
if (u.form_validation("#engCovDiscLoadingForm")) {
u.modal_confirmation("Are you sure you want to update the selected Discount/Loading?", function () {
var grid = u.getGlobal("udwEngCoverDiscLoading");
var rowId = grid.jqGrid("getGridParam", "selrow");
var code = grid.jqGrid("getCell", rowId, "DL_CODE");
if (code === $("input[name='DL_CODE']").val()) {
var data = u.parse_form("#engCovDiscLoadingForm");
for (var i in data) {
grid.jqGrid("setCell", rowId, i, data[i]);
}
u.hide_confirm();
u.growl_success("Cover Discount/Loading updated");
u.form_reset("#udwEngCoverDiscLoading");
} else {
u.hide_confirm();
u.growl_warning("Please select the correct row to edit");
}
});
}
});
$("#ENG_REGION_CODE").change(async function () {
var grid = u.getGlobal("udwEngGrid");
if ($("#ENG_FDZONE").val() === "") {
let result = $(this).val();
await u.lovDropDownAsync("#ENG_FDZONE", "get_lov_fdzoneAsync", { "region": result || null });
if (u.getSelRow(grid)) {
$("#ENG_FDZONE").val(grid.jqGrid("getCell", u.getSelRow(grid), "ENG_FDZONE") || "");
}
}
});
$("#btn_reset_location").click(function() {
u.modal_confirmation("Are you sure you want to reset the location form?", function() {
u.form_reset("#engineeringForm");
$("#ENG_CONST_FROM").val($("#POLH_POL_START_DATE").val());
$("#ENG_CONST_TO").val($("#POLH_POL_END_DATE").val());
$("#ENG_CONST_DAYS").val($("#POLH_POL_DAYS").val());
u.growl_success("Location form reset successfully");
});
});
$("#ENG_MAINT_YN").change(function() {
if ($(this).val() === "Y") {
$("#ENG_MAINT_FROM").attr("required", "required");
$("#ENG_MAINT_FROM").prop("readonly", false);
$("#ENG_MAINT_FROM").val(u.dateFastForward($("#POLH_POL_END_DATE").val(), 1, "day"));
$("#ENG_MAINT_TO").attr("required", "required");
$("#ENG_MAINT_TO").prop("readonly", false);
} else if ($(this).val() === "N") {
$("#ENG_MAINT_FROM").prop("required", false);
$("#ENG_MAINT_FROM").attr("readonly", "readonly");
$("#ENG_MAINT_FROM").val("");
$("#ENG_MAINT_TO").val("");
$("#ENG_MAINT_TO").prop("required", false);
$("#ENG_MAINT_TO").attr("readonly", "readonly");
$("#ENG_MAINT_DAYS").val("");
}
});
$("#ENG_MAINT_FROM").blur(function() {
if (u.dateBefore($(this).val(), $("#ENG_END_DATE").val())) {
$(this).val("");
return u.growl_info("Maintenance period must start after the policy end date");
}
});
$("#ENG_MAINT_TO").blur(function () {
if (u.dateBefore($(this).val(), $("#ENG_MAINT_FROM").val())) {
$(this).val("");
return u.growl_info("This must start after the Maintenance Start Date");
}
if (u.field_empty("#ENG_MAINT_FROM")) {
$(this).val("");
return u.growl_info("Please select a Maintenance Start Date");
}
$("#ENG_MAINT_DAYS").val(`${u.totalDays($("#ENG_MAINT_TO").val(),
$("#ENG_MAINT_FROM").val())} days`);
});
/*---------------------------
* year drop down population
*--------------------------*/
var year = parseInt(u.getYear(u.get_datetime()) - 1);
$scope.populateYears = function () {
for (let i = year; i >= 1945; i--) {
$("#CPM_MANUF_YR").append(``);
}
};
$scope.populateYears();
$("#CPM_STND_BY").change(function () {
if (!$(this).is(":checked")) {
$("#CPM_CAP").attr("disabled", "disabled");
} else {
$("#CPM_CAP").prop("disabled", false);
}
});
$("#btn_tpl_cover").click(function () {
if (!u.getSelRow(u.getGlobal("udwEngTplRiskGrid"))) return u.growl_info("No TPL record selected");
//$("#CARTPLModal").modal();
$("#RiskCoverModal").modal();
u.setGlobal("coverTarget", "TPL");
});
$("#btn_lop_cover").click(function () {
if (!u.getSelRow(u.getGlobal("udwEngLopRiskGrid"))) return u.growl_info("No Loss of Profit record selected");
// u.form_reset("#cartplForm");
// $("#CARLossopModal").modal();
u.setGlobal("coverTarget", "LOP");
$("#RiskCoverModal").modal();
});
$("#ENG_ESC_PERC").blur(function() {
u.getGlobal("max100")("ENG_ESC_PERC");
});
$("#btn_remove_lop_risk").click(function () {
var grid = u.getGlobal("udwEngLopRiskGrid");
if (u.grid_empty(grid)) return u.growl_info("LOP grid is empty");
var selLopId = u.getSelRow(grid);
if (!selLopId) return u.growl_info("No LOP record selected");
var selLop = u.getRow(selLopId, grid);
var lopRiskGrid = u.getGlobal("udwEngLopRiskGrid");
u.modal_confirmation("Are you sure you want to remove this LOP record?", function () {
switch (selLop.LOP_STATUS) {
case "U":
grid.jqGrid("delRowData", selLopId);
u.hide_confirm();
u.form_reset("#lopRiskForm");
u.growl_success("Selected LOP successfully deleted");
break;
case "A":
grid.jqGrid("setCell", selLopId, "LOP_STATUS", "D");
$(`#${rowId}`, "#gridLopRisk").css({ color: "red" });
u.hide_confirm();
u.form_reset("#lopRiskForm");
u.growl_info(
"Selected row successfully marked for deletion, please click on the save button to save changes");
break;
case "D":
$(`#${rowId}`, "#gridLopRisk").css({ color: "black" });
grid.jqGrid("setCell", selLopId, "LOP_STATUS", "A");
u.hide_confirm();
u.form_reset("#lopRiskForm");
u.growl_success("LOP successfully restored");
break;
}
});
});
$("#btn_update_lop_risk").click(function () {
var grid = u.getGlobal("udwEngLopRiskGrid");
if (u.grid_empty(grid)) return u.growl_info("LOP grid is empty");
var lop = u.getSelRow(grid);
if (!lop) return u.growl_info("No LOP record selected");
u.modal_confirmation("Are you sure you want to update the selected LOP?",
function () {
var code = grid.jqGrid("getCell", rowId, "LOP_SYS_ID");
if (`${code}` === $("#LOP_SYS_ID").val()) {
var data = u.parse_form("#lopRiskForm");
for (var i in data) {
grid.jqGrid("setCell", rowId, i, data[i]);
}
u.hide_confirm();
u.form_reset("#lopRiskForm");
u.growl_success("Loss of Profit details updated");
} else {
u.hide_confirm();
u.growl_warning("Please select the correct row to edit");
}
});
});
$("#btn_remove_tpl").click(function () {
var grid = u.getGlobal("udwEngTplRiskGrid");
if (u.grid_empty(grid)) return u.growl_info("TPL grid is empty");
var selTplId = u.getSelRow(grid);
if (!selTplId) return u.growl_info("No TPL record selected");
var selTpl = u.getRow(selTplId, grid);
u.modal_confirmation("Are you sure you want to remove this TPL record?", function () {
switch (selTpl.TPL_STATUS) {
case "U":
grid.jqGrid("delRowData", selTplId);
u.hide_confirm();
u.form_reset("#tplRiskForm");
u.growl_success("Selected TPL successfully deleted");
break;
case "A":
grid.jqGrid("setCell", selTplId, "TPL_STATUS", "D");
$(`#${tpl}`, "#gridTplRisk").css({ color: "red" });
u.hide_confirm();
u.form_reset("#tplRiskForm");
u.growl_info(
"Selected row successfully marked for deletion, please click on the save button to save changes");
break;
case "D":
u.setGridColumn(grid,
{
"INS_UWD_RISK_COVERS": function (val) {
var covers = u.parseJson(val);
covers.ForEach(c => {
c.RCOV_STATUS = "A";
});
return JSON.stringify(covers);
}
});
$(`#${selTplId}`, "#gridTplRisk").css({ color: "black" });
grid.jqGrid("setCell", selTplId, "TPL_STATUS", "A");
u.hide_confirm();
u.form_reset("#tplRiskForm");
u.growl_success("tpl successfully restored");
break;
}
});
});
$("#btn_update_tpl").click(function () {
var grid = u.getGlobal("udwEngTplRiskGrid");
if (u.grid_empty(grid)) return u.growl_info("TPL grid is empty");
var tpl = u.getSelRow(grid);
if (!tpl) return u.growl_info("No TPL record selected");
u.modal_confirmation("Are you sure you want to update the selected TPL?",
function () {
var code = parseInt(grid.jqGrid("getCell", tpl, "TPL_SYS_ID"));
if (code === parseInt($("#TPL_SYS_ID").val())) {
var data = u.parse_form("#tplRiskForm");
for (var i in data) {
grid.jqGrid("setCell", tpl, i, data[i]);
}
u.hide_confirm();
u.form_reset("#tplRiskForm");
u.growl_success("Third Party Loss details updated");
} else {
u.hide_confirm();
u.growl_warning("Please select the correct row to edit");
}
});
});
/*
* EXCESS FUNCTIONS
*/
$("#CPM_EXCESS_TYPE").change(async function () {
u.getGlobal("excessTypeChange")("CPM_EXCESS_TYPE", "CPM_EXCESS_PERC", "CPM_EXCESS_MIN", "CPM_EXCESS_MAX", "CPM_EXCESS_NAR");
});
$("#CPM_EXCESS_PERC").blur(function () {
u.getGlobal("excessAmtBlur")("CPM_EXCESS_PERC", "CPM_EXCESS_NAR", "CPM_EXCESS_TYPE", "CPM_EXCESS_MIN", "CPM_EXCESS_MAX");
});
$("#CPM_EXCESS_MIN").blur(function () {
u.getGlobal("excessMinMaxBlur")("CPM_EXCESS_MIN", "CPM_EXCESS_NAR", "Min");
});
$("#CPM_EXCESS_MAX").blur(function () {
u.getGlobal("excessMinMaxBlur")("CPM_EXCESS_MAX", "CPM_EXCESS_NAR", "Max");
});
$("#TPL_EXCESS_TYPE").change(async function () {
u.getGlobal("excessTypeChange")("TPL_EXCESS_TYPE", "TPL_EXCESS_PERC", "TPL_EXCESS_MIN", "TPL_EXCESS_MAX", "TPL_EXCESS_NAR");
});
$("#TPL_EXCESS_PERC").blur(function () {
u.getGlobal("excessAmtBlur")("TPL_EXCESS_PERC", "TPL_EXCESS_NAR", "TPL_EXCESS_TYPE", "TPL_EXCESS_MIN", "TPL_EXCESS_MAX");
});
$("#TPL_EXCESS_MIN").blur(function () {
u.getGlobal("excessMinMaxBlur")("TPL_EXCESS_MIN", "TPL_EXCESS_NAR", "Min");
});
$("#TPL_EXCESS_MAX").blur(function () {
u.getGlobal("excessMinMaxBlur")("TPL_EXCESS_MAX", "TPL_EXCESS_NAR", "Max");
});
$("#LOP_EXCESS_TYPE").change(async function () {
u.getGlobal("excessTypeChange")("LOP_EXCESS_TYPE", "LOP_EXCESS_PERC", "LOP_EXCESS_MIN", "LOP_EXCESS_MAX", "LOP_EXCESS_NAR");
});
$("#LOP_EXCESS_PERC").blur(function () {
u.getGlobal("excessAmtBlur")("LOP_EXCESS_PERC", "LOP_EXCESS_NAR", "LOP_EXCESS_TYPE", "LOP_EXCESS_MIN", "LOP_EXCESS_MAX");
});
$("#LOP_EXCESS_MIN").blur(function () {
u.getGlobal("excessMinMaxBlur")("LOP_EXCESS_MIN", "LOP_EXCESS_NAR", "Min");
});
$("#LOP_EXCESS_MAX").blur(function () {
u.getGlobal("excessMinMaxBlur")("LOP_EXCESS_MAX", "LOP_EXCESS_NAR", "Max");
});
//if ($("#POLH_SUB_CLASS_CODE").val() === "2002") {
// $("#projectDiv").addClass("m-hide");
// $("#mainTDiv1").addClass("m-hide");
// $("#mainTDiv2").addClass("m-hide");
// $("#ENG_PROJ_CODE").prop("required", false);
// $("#ENG_DESC").prop("required", false);
// $("#ENG_CONST_SITE").prop("required", false);
// $("#ENG_MAINT_YN").prop("required", false);
// $("#locRightDiv").css("margin-left", "-100px");
//}
$("#POLH_CURRENCY_RATE, #POLH_CURRENCY").on("change blur", function() {
var rate = parseFloat($("#POLH_CURRENCY_RATE").val());
var currency = $("#POLH_CURRENCY").val();
// check for Premium pasis
const premBasis = $("#POLH_PREM_BASIS").val();
var polNumDays = parseInt($("#POLH_POL_DAYS").val());
var proRataPerc = 0;
switch (premBasis) {
case "SP":
var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays);
proRataPerc = parseFloat(shortPeriod[0].perc) / 100;
break;
case "PR":
proRataPerc = parseFloat(polNumDays / 365);
break;
case "FP":
proRataPerc = 1;
break;
}
if (!u.grid_empty(u.getGlobal("udwEngGrid"))) {
var locations = u.get_grid_data(u.getGlobal("udwEngGrid"));
locations.ForEach(loc => {
//loc.ENG_RI_PREM_BC = parseFloat(loc.ENG_RI_PREM_FC || 0) * rate;
//loc.ENG_RI_SI_BC = parseFloat(loc.ENG_RI_SI_FC || 0) * rate;
//loc.ENG_COMMISSION_BC = parseFloat(loc.ENG_COMMISSION_FC || 0) * rate;
//loc.ENG_COMP_FEE_BC = parseFloat(loc.ENG_COMP_FEE_FC || 0) * rate;
//loc.ENG_LOAD_BC = parseFloat(loc.ENG_LOAD_FC || 0) * rate;
//loc.ENG_DISC_BC = parseFloat(loc.ENG_DISC_FC || 0) * rate;
//loc.ENG_ADJ_PREM_BC = parseFloat(loc.ENG_ADJ_PREM_FC || 0) * rate;
//loc.ENG_RISK_PREM_BC = parseFloat(loc.ENG_RISK_PREM_FC || 0) * rate;
//loc.ENG_TOT_PREM_BC = parseFloat(loc.ENG_TOT_PREM_FC || 0) * rate;
loc.ENG_CURRENCY_RATE = rate;
loc.ENG_CURRENCY = currency;
//CAR
loc.INS_UDW_CAR_RISK = u.parseJson(loc.INS_UDW_CAR_RISK);
loc.INS_UDW_CAR_RISK.ForEach(car => {
//car.CAR_RI_PREM_BC = parseFloat(car.CAR_RI_PREM_FC || 0) * rate;
//car.CAR_RI_SI_BC = parseFloat(car.CAR_RI_SI_FC || 0) * rate;
//car.CAR_COMMISSION_BC = parseFloat(car.CAR_COMMISSION_FC || 0) * rate;
//car.CAR_COMP_FEE_BC = parseFloat(car.CAR_COMP_FEE_FC || 0) * rate;
//car.CAR_LOAD_BC = parseFloat(car.CAR_LOAD_FC || 0) * rate;
//car.CAR_DISC_BC = parseFloat(car.CAR_DISC_FC || 0) * rate;
//car.CAR_ADJ_PREM_BC = parseFloat(car.CAR_ADJ_PREM_FC || 0) * rate;
//car.CAR_RISK_PREM_BC = parseFloat(car.CAR_RISK_PREM_FC || 0) * rate;
//car.CAR_TOT_PREM_BC = parseFloat(car.CAR_TOT_PREM_FC || 0) * rate;
car.CAR_CURRENCY = currency;
car.CAR_CURRENCY_RATE = rate;
//car.CAR_CON_PRICE_BC = parseFloat(car.CAR_CON_PRICE_FC || 0) * rate;
//car.CAR_ITEMS_SUPPLIED_BC = parseFloat(car.CAR_ITEMS_SUPPLIED_FC || 0) * rate;
//car.CAR_DEBRIS_BC = parseFloat(car.CAR_DEBRIS_FC || 0) * rate;
//CAR Covers
car.INS_UWD_RISK_COVERS = u.parseJson(car.INS_UWD_RISK_COVERS);
car.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//car.INS_UWD_RISK_COVERS = JSON.stringify(car.INS_UWD_RISK_COVERS);
//CAR CPM
car.INS_UDW_CPM_RISK = u.parseJson(car.INS_UDW_CPM_RISK);
car.INS_UDW_CPM_RISK.ForEach(cpm => {
//cpm.CPM_COMMISSION_BC = parseFloat(cpm.CPM_COMMISSION_FC || 0) * rate;
//cpm.CPM_COMP_FEE_BC = parseFloat(cpm.CPM_COMP_FEE_FC || 0) * rate;
//cpm.CPM_LOAD_BC = parseFloat(cpm.CPM_LOAD_FC || 0) * rate;
//cpm.CPM_DISC_BC = parseFloat(cpm.CPM_DISC_FC || 0) * rate;
//cpm.CPM_RI_PREM_BC = parseFloat(cpm.CPM_RI_PREM_FC || 0) * rate;
//cpm.CPM_RI_SI_BC = parseFloat(cpm.CPM_RI_SI_FC || 0) * rate;
//cpm.CPM_RISK_PREM_BC = parseFloat(cpm.CPM_RISK_PREM_FC || 0) * rate;
//cpm.CPM_ADJ_PREM_BC = parseFloat(cpm.CPM_ADJ_PREM_FC || 0) * rate;
//cpm.CPM_TOT_PREM_BC = parseFloat(cpm.CPM_TOT_PREM_FC || 0) * rate;
cpm.CPM_CURRENCY_RATE = rate;
cpm.CPM_CURRENCY = currency;
cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS);
cpm.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS);
});
//car.INS_UDW_CPM_RISK = JSON.stringify(car.INS_UDW_CPM_RISK);
// CAR TPL
car.INS_UDW_TPL = u.parseJson(car.INS_UDW_TPL);
car.INS_UDW_TPL.ForEach(tpl => {
tpl.INS_UWD_RISK_COVERS = u.parseJson(tpl.INS_UWD_RISK_COVERS);
tpl.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//tpl.INS_UWD_RISK_COVERS = JSON.stringify(tpl.INS_UWD_RISK_COVERS);
});
//car.INS_UDW_TPL = JSON.stringify(car.INS_UDW_TPL);
// CAR LOP
car.INS_UDW_LOP = u.parseJson(car.INS_UDW_LOP);
car.INS_UDW_LOP.ForEach(lop => {
lop.INS_UWD_RISK_COVERS = u.parseJson(lop.INS_UWD_RISK_COVERS);
lop.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//lop.INS_UDW_POL_COVERS = JSON.stringify(lop.INS_UDW_POL_COVERS);
});
//car.INS_UDW_LOP = JSON.stringify(car.INS_UDW_LOP);
});
loc.INS_UDW_CAR_RISK = JSON.stringify(loc.INS_UDW_CAR_RISK);
//EAR
loc.INS_UDW_EAR_RISK = u.parseJson(loc.INS_UDW_EAR_RISK);
loc.INS_UDW_EAR_RISK.ForEach(ear => {
//ear.EAR_RI_PREM_BC = parseFloat(ear.EAR_RI_PREM_FC || 0) * rate;
//ear.EAR_RI_SI_BC = parseFloat(ear.EAR_RI_SI_BC || 0) * rate;
//ear.EAR_COMMISSION_BC = parseFloat(ear.EAR_COMMISSION_FC || 0) * rate;
//ear.EAR_COMP_FEE_BC = parseFloat(ear.EAR_COMP_FEE_FC || 0) * rate;
//ear.EAR_LOAD_BC = parseFloat(ear.EAR_LOAD_FC || 0) * rate;
//ear.EAR_DISC_BC = parseFloat(ear.EAR_DISC_FC || 0) * rate;
//ear.EAR_ADJ_PREM_BC = parseFloat(ear.EAR_ADJ_PREM_FC || 0) * rate;
//ear.EAR_RISK_PREM_BC = parseFloat(ear.EAR_RISK_PREM_FC || 0) * rate;
//ear.EAR_TOT_PREM_BC = parseFloat(ear.EAR_TOT_PREM_FC || 0) * rate;
ear.EAR_CURRENCY = currency;
ear.EAR_CURRENCY_RATE = rate;
//CAR Covers
ear.INS_UWD_RISK_COVERS = u.parseJson(ear.INS_UWD_RISK_COVERS);
ear.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
ear.INS_UWD_RISK_COVERS = JSON.stringify(ear.INS_UWD_RISK_COVERS);
//CAR CPM
ear.INS_UDW_CPM_RISK = u.parseJson(ear.INS_UDW_CPM_RISK);
ear.INS_UDW_CPM_RISK.ForEach(cpm => {
//cpm.CPM_COMMISSION_BC = parseFloat(cpm.CPM_COMMISSION_FC || 0) * rate;
//cpm.CPM_COMP_FEE_BC = parseFloat(cpm.CPM_COMP_FEE_FC || 0) * rate;
//cpm.CPM_LOAD_BC = parseFloat(cpm.CPM_LOAD_FC || 0) * rate;
//cpm.CPM_DISC_BC = parseFloat(cpm.CPM_DISC_FC || 0) * rate;
//cpm.CPM_RI_PREM_BC = parseFloat(cpm.CPM_RI_PREM_FC || 0) * rate;
//cpm.CPM_RI_SI_BC = parseFloat(cpm.CPM_RI_SI_FC || 0) * rate;
//cpm.CPM_RISK_PREM_BC = parseFloat(cpm.CPM_RISK_PREM_FC || 0) * rate;
//cpm.CPM_ADJ_PREM_BC = parseFloat(cpm.CPM_ADJ_PREM_FC || 0) * rate;
//cpm.CPM_TOT_PREM_BC = parseFloat(cpm.CPM_TOT_PREM_FC || 0) * rate;
cpm.CPM_CURRENCY_RATE = rate;
cpm.CPM_CURRENCY = currency;
cpm.INS_UWD_RISK_COVERS = u.parseJson(cpm.INS_UWD_RISK_COVERS);
cpm.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//cpm.INS_UWD_RISK_COVERS = JSON.stringify(cpm.INS_UWD_RISK_COVERS);
});
//ear.INS_UDW_CPM_RISK = JSON.stringify(ear.INS_UDW_CPM_RISK);
// EAR TPL
ear.INS_UDW_TPL = u.parseJson(ear.INS_UDW_TPL);
ear.INS_UDW_TPL.ForEach(tpl => {
tpl.INS_UWD_RISK_COVERS = u.parseJson(tpl.INS_UWD_RISK_COVERS);
tpl.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//tpl.INS_UWD_RISK_COVERS = JSON.stringify(tpl.INS_UWD_RISK_COVERS);
});
//ear.INS_UDW_TPL = JSON.stringify(ear.INS_UDW_TPL);
// EAR LOP
ear.INS_UDW_LOP = u.parseJson(ear.INS_UDW_LOP);
ear.INS_UDW_LOP.ForEach(lop => {
lop.INS_UWD_RISK_COVERS = u.parseJson(lop.INS_UWD_RISK_COVERS);
lop.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//lop.INS_UWD_RISK_COVERS = JSON.stringify(lop.INS_UWD_RISK_COVERS);
});
//ear.INS_UDW_LOP = JSON.stringify(ear.INS_UDW_LOP);
});
loc.INS_UDW_EAR_RISK = JSON.stringify(loc.INS_UDW_EAR_RISK);
// ENG OTHERS
loc.INS_UDW_ENG_OTHER = u.parseJson(loc.INS_UDW_ENG_OTHER);
loc.INS_UDW_ENG_OTHER.ForEach(other => {
//other.ENG_OTHER_RI_PREM_BC = parseFloat(other.ENG_OTHER_RI_PREM_FC || 0) * rate;
//other.ENG_OTHER_RI_SI_BC = parseFloat(other.ENG_OTHER_RI_SI_FC || 0) * rate;
//other.ENG_OTHER_COMMISSION_BC = parseFloat(other.ENG_OTHER_COMMISSION_FC || 0) * rate;
//other.ENG_OTHER_COMP_FEE_BC = parseFloat(other.ENG_OTHER_COMP_FEE_FC || 0) * rate;
//other.ENG_OTHER_LOAD_BC = parseFloat(other.ENG_OTHER_LOAD_FC || 0) * rate;
//other.ENG_OTHER_DISC_BC = parseFloat(other.ENG_OTHER_DISC_FC || 0) * rate;
//other.ENG_OTHER_ADJ_PREM_BC = parseFloat(other.ENG_OTHER_ADJ_PREM_FC || 0) * rate;
//other.ENG_OTHER_RISK_PREM_BC = parseFloat(other.ENG_OTHER_RISK_PREM_FC || 0) * rate;
other.ENG_OTHER_CURRENCY_RATE = rate;
other.ENG_OTHER_CURRENCY = currency;
// Covers
other.INS_UWD_RISK_COVERS = u.parseJson(other.INS_UWD_RISK_COVERS);
other.INS_UWD_RISK_COVERS.ForEach(cov => {
cov.RCOV_LOAD_BC = parseFloat(parseFloat(cov.RCOV_LOAD_FC || 0) / rate).toFixed(2);
cov.RCOV_DISC_BC = parseFloat(parseFloat(cov.RCOV_DISC_FC || 0) * rate).toFixed(2);
cov.RCOV_SI_BC = parseFloat(parseFloat(cov.RCOV_SI_FC || 0) * rate).toFixed(2);
cov.RCOV_ANNL_PREM_BC = parseFloat(parseFloat((cov.RCOV_ANNL_PREM_FC || 0) * rate)).toFixed(2);
cov.RCOV_GROSS_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.RCOV_NET_PREM_BC = parseFloat(parseFloat(cov.RCOV_ANNL_PREM_FC * (proRataPerc) * rate)).toFixed(2);
cov.INS_UDW_COVER_DISCLOAD = u.parseJson(cov.INS_UDW_COVER_DISCLOAD);
cov.INS_UDW_COVER_DISCLOAD.ForEach(d => {
d.DL_PREM_BC = parseFloat(parseFloat(d.DL_PREM_FC || 0) * rate).toFixed(2);
});
});
//other.INS_UWD_RISK_COVERS = JSON.stringify(other.INS_UWD_RISK_COVERS);
});
loc.INS_UDW_ENG_OTHER = JSON.stringify(loc.INS_UDW_ENG_OTHER);
loc.INS_UDW_ENGINEER_FEES = u.parseJson(loc.INS_UDW_ENGINEER_FEES);
loc.INS_UDW_ENGINEER_FEES.ForEach(fee => {
fee.ENG_FEE_FC_AMOUNT = parseFloat(fee.ENG_FEE_BC_AMOUNT / rate).toFixed(2);
});
});
u.clear_grid_data(u.getGlobal("udwEngGrid"));
u.grid_populate(u.getGlobal("udwEngGrid"), "", locations);
// Policy fees update
var polFees = u.get_grid_data(u.getGlobal("udwPolFeesGrid"));
polFees.ForEach(x => {
x.POL_FEE_FC_AMOUNT = (parseFloat(x.POL_FEE_BC_AMOUNT) / parseFloat(rate)).toFixed(2);
});
u.clear_grid_data(u.getGlobal("udwPolFeesGrid"));
u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees);
u.getGlobal("RecalculatePremium")();
}
});
$("#btn_close_location").click(function() {
u.modal_confirmation("Are you sure you want to close this?", function() {
u.form_reset("#engineeringForm");
$("#LocationModal").modal("hide");
});
});
u.setGlobal("engUpdateAddOnCovers", function() {
const premBasis = $("#POLH_PREM_BASIS").val();
var polNumDays = parseInt($("#POLH_POL_DAYS").val());
var proRataPerc = 0;
switch (premBasis) {
case "SP":
var shortPeriod = u.getGlobal("shortPeriods").Where(s => s.days === polNumDays);
proRataPerc = parseFloat(shortPeriod[0].perc) / 100;
break;
case "PR":
polNumDays = polNumDays === 364 || polNumDays < 365 ? 365 : polNumDays;
proRataPerc = parseFloat(polNumDays / 365);
break;
case "FP":
proRataPerc = 1;
break;
}
u.setGridColumn(u.getGlobal("udwEngGrid"),
{
"INS_UDW_CAR_RISK": function(val) {
var carRisks = u.parseJson(val);
console.log(carRisks);
carRisks.ForEach(car => {
var carTpl = u.parseJson(car.INS_UDW_TPL);
if (carTpl.length > 0 && !Array.isArray(carTpl)) {
carTpl = u.parseJson(carTpl);
}
carTpl.ForEach(tpl => {
var covers = u.parseJson(tpl.INS_UWD_RISK_COVERS);
covers.ForEach(c => {
c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc;
c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc;
c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc;
c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc;
});
tpl.INS_UWD_RISK_COVERS = JSON.stringify(covers);
});
car.INS_UDW_TPL = JSON.stringify(carTpl);
var carLop = u.parseJson(car.INS_UDW_LOP);
if (carLop.length > 0 && !Array.isArray(carLop)) {
carLop = u.parseJson(carLop);
}
carLop.ForEach(lop => {
var covers = u.parseJson(lop.INS_UWD_RISK_COVERS);
covers.ForEach(c => {
c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc;
c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc;
c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc;
c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc;
});
lop.INS_UWD_RISK_COVERS = JSON.stringify(covers);
});
car.INS_UDW_LOP = JSON.stringify(carLop);
});
return JSON.stringify(carRisks);
},
"INS_UDW_EAR_RISK": function(val) {
var earRisks = u.parseJson(val);
earRisks.ForEach(ear => {
var earTpl = u.parseJson(ear.INS_UDW_TPL);
if (earTpl.length > 0 && !Array.isArray(earTpl)) {
earTpl = u.parseJson(earTpl);
}
earTpl.ForEach(tpl => {
var covers = u.parseJson(tpl.INS_UWD_RISK_COVERS);
covers.ForEach(c => {
c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc;
c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc;
c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc;
c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc;
});
tpl.INS_UWD_RISK_COVERS = JSON.stringify(covers);
});
ear.INS_UDW_TPL = JSON.stringify(earTpl);
var earLop = u.parseJson(ear.INS_UDW_LOP);
if (earLop.length > 0 && !Array.isArray(earLop)) {
earLop = u.parseJson(earLop);
}
earLop.ForEach(lop => {
var covers = u.parseJson(lop.INS_UWD_RISK_COVERS);
covers.ForEach(c => {
c.RCOV_GROSS_PREM_FC = parseFloat(c.RCOV_GROSS_PREM_FC) * proRataPerc;
c.RCOV_GROSS_PREM_BC = parseFloat(c.RCOV_GROSS_PREM_BC) * proRataPerc;
c.RCOV_NET_PREM_FC = parseFloat(c.RCOV_NET_PREM_FC) * proRataPerc;
c.RCOV_NET_PREM_BC = parseFloat(c.RCOV_NET_PREM_BC) * proRataPerc;
});
lop.INS_UWD_RISK_COVERS = JSON.stringify(covers);
});
ear.INS_UDW_LOP = JSON.stringify(earLop);
});
return JSON.stringify(earRisks);
}
});
});
u.setGlobal("engGetFACCovers", async function(riskId) {
var productRiskData = {
PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(),
RCOV_CODE: "60008"
};
var result = await s.getRiskCoverByProduct(productRiskData);
if (result.state) {
if (result.data.length > 0) {
result.ForEach(c => {
//c["RCOV_NAME"] = c["MS_UDW_COVERS"]["CVR_NAME"];
//c["RCOV_TYPE"] = c["MS_UDW_COVERS"]["CVR_TYPE"];
//c["RCOV_RI_YN"] = c["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"];
//c["CVR_USER_PREMIUM"] = c["MS_UDW_COVERS"]["CVR_USER_PREMIUM"];
//c["RCOV_PREM_REFUND"] = c["MS_UDW_COVERS"]["RCOV_PREM_REFUND"];
//c["RCOV_RATE_CHANGE"] = c["MS_UDW_COVERS"]["CVR_RATE_CHANGE"];
//c["RCOV_SI_CHANGE"] = c["MS_UDW_COVERS"]["CVR_SI_CHANGE"];
//c["RCOV_COVER_LEVEL"] = c["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"];
c["RCOV_RISK_SYS_ID"] = riskId;
});
return result;
}
}
});
u.setGlobal("engGetCoInsMemCovers", async function (riskId) {
var productRiskData = {
PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(),
RCOV_CODE: "60010"
//RCOV_CODE: "60018"
};
var result = await s.getRiskCoverByProduct(productRiskData);
if (result.state) {
if (result.data.length > 0) {
result.ForEach(c => {
//c["RCOV_NAME"] = c["MS_UDW_COVERS"]["CVR_NAME"];
//c["RCOV_TYPE"] = c["MS_UDW_COVERS"]["CVR_TYPE"];
//c["RCOV_RI_YN"] = c["MS_UDW_COVERS"]["CVR_RI_APPLICABLE"];
//c["CVR_USER_PREMIUM"] = c["MS_UDW_COVERS"]["CVR_USER_PREMIUM"];
//c["RCOV_PREM_REFUND"] = c["MS_UDW_COVERS"]["RCOV_PREM_REFUND"];
//c["RCOV_RATE_CHANGE"] = c["MS_UDW_COVERS"]["CVR_RATE_CHANGE"];
//c["RCOV_SI_CHANGE"] = c["MS_UDW_COVERS"]["CVR_SI_CHANGE"];
//c["RCOV_COVER_LEVEL"] = c["MS_UDW_COVERS"]["RCOV_COVER_LEVEL"];
c["RCOV_RISK_SYS_ID"] = riskId;
});
return result;
}
}
});
$("#POLH_POL_DAYS").blur(function() {
const days = parseInt($(this).val());
if (!u.grid_empty(u.getGlobal("udwEngGrid"))) {
u.setGridColumn(u.getGlobal("udwEngGrid"),
{
"ENG_PERIOD_DAYS": days.toFixed(0),
"ENG_START_DATE": u.dbDate($("#POLH_POL_START_DATE").val()),
"ENG_END_DATE": u.dbDate($("#POLH_POL_END_DATE").val()),
"ENG_CONST_FROM": u.dbDate($("#POLH_POL_START_DATE").val()),
"ENG_CONST_TO": u.dbDate($("#POLH_POL_END_DATE").val()),
"INS_UDW_CAR_RISK": function (val) {
var risks = u.parseJson(val);
risks.ForEach(r => {
r.CAR_PERIOD_DAYS = days;
r.CAR_START_DATE = u.dbDate($("#POLH_POL_START_DATE").val());
r.CAR_END_DATE = u.dbDate($("#POLH_POL_END_DATE").val());
});
return JSON.stringify(risks);
},
"INS_UDW_EAR_RISK": function(val) {
var risks = u.parseJson(val);
risks.ForEach(r => {
r.EAR_PERIOD_DAYS = days;
r.EAR_START_DATE = u.dbDate($("#POLH_POL_START_DATE").val());
r.EAR_END_DATE = u.dbDate($("#POLH_POL_END_DATE").val());
});
return JSON.stringify(risks);
},
"INS_UDW_ENG_OTHER": function(val) {
var risks = u.parseJson(val);
risks.ForEach(r => {
r.ENG_OTHER_PERIOD_DAYS = days;
r.ENG_OTHER_START_DATE = u.dbDate($("#POLH_POL_START_DATE").val());
r.ENG_OTHER_END_DATE = u.dbDate($("#POLH_POL_END_DATE").val());
});
return JSON.stringify(risks);
}
});
u.getGlobal("RecalculatePremium")();
}
});
$("#btn_coins_ok").click(function () {
u.getGlobal("RecalculatePremium")();
});
$("#btn_facInward_Ok").click(function () {
u.getGlobal("RecalculatePremium")();
u.form_reset("#facInwardForm");
$("#MemberIwardModal").modal("hide");
});
u.setGlobal("riskFeesLov", u.default_grid("#gridAddNewFees", "#gridAddNewFeesPager", "Risk Covers",
["Code", "Name", "Amount"],
[
{ name: "PRF_FEE_CODE", index: "PRF_FEE_CODE", width: 150 },
{ name: "FEE_NAME", index: "FEE_NAME", width: 200 },
{ name: "PRF_FEE_AMOUNT", index: "PRF_FEE_AMOUNT", width: 150 },
],
function (selId) { },
function (selId) {
const grid = u.getGlobal("riskFeesLov");
let data = u.getRow(selId, grid) || {};
data = {
ENG_FEE_CODE: data.PRF_FEE_CODE,
ENG_FEE_NAME: data.FEE_NAME,
ENG_FEE_FC_AMOUNT: data.PRF_FEE_AMOUNT,
ENG_FEE_BC_AMOUNT: data.PRF_FEE_AMOUNT,
ENG_FEE_RK_NO: data.PRF_SYS_ID
};
u.form_reset("#riskfeessForm");
$scope.RiskFeesCalculate(data);
//$("#RCOV_SI_FC").trigger("blur");
u.fill_form(data, "#riskfeessForm");
$("#AddNewFeesModal").modal("hide");
}));
/*
* fees functions
*/
$("#btnRiskFees").click(function () {
if (!u.getSelRow(u.getGlobal("udwEngGrid"))) return u.growl_info("Select a risk");
u.clear_grid_data(u.getGlobal("udwEngRskFeeGrid"));
u.grid_populate(u.getGlobal("udwEngRskFeeGrid"), "",
u.parseJson(u.getGlobal("udwEngGrid").jqGrid("getCell", u.getSelRow(u.getGlobal("udwEngGrid")), "INS_UDW_ENGINEER_FEES")));
$("#engRiskFeesModal").modal();
});
$scope.RiskFeesCalculate = function (z) {
z.ENG_FEE_BC_AMOUNT = parseFloat(z.ENG_FEE_BC_AMOUNT || 0).toFixed(2) || 0;
z.ENG_FEE_FC_AMOUNT = parseFloat(parseFloat(z.ENG_FEE_BC_AMOUNT || 0) / parseFloat($("#POLH_CURRENCY_RATE").val() || 0)).toFixed(2) || 0;
};
$("#btn_add_feess").on("click", function () {
if (u.form_validation("#riskfeessForm")) {
let feesData = u.get_grid_data(u.getGlobal("udwEngRskFeeGrid")) || [];
const formData = u.parse_form("#riskfeessForm") || {};
if (feesData.Any(x => x.ENG_FEE_CODE === formData.ENG_FEE_CODE)) return u.growl_warning(`Fee with code ${formData.ENG_FEE_CODE} already exists`);
u.modal_confirmation("Are you sure you want to add this fee?", function () {
/*---------------------
* GET RISK DATA
*-------------------**/
let Risk = u.getRow(u.getSelRow(u.getGlobal("udwEngGrid")), u.getGlobal("udwEngGrid")) || {};
/*------------------
* GET FEES FORM DATA
*----------------**/
formData.ENG_FEE_STATUS = "U";
formData.ENG_FEE_CRTE_BY = u.getUserCode();
formData.ENG_FEE_CRTE_DATE = u.get_date();
formData.ENG_FEE_END_NO = Risk.ENG_POLH_END_NO;
formData.ENG_FEE_RNW_NO = Risk.ENG_POLH_RNW_NO;
formData.ENG_FEE_RK_SYS_ID = Risk.ENG_SYS_ID;
//formData.ENG_FEE_RK_CODE = Risk.ENG_RISK_CODE;
$scope.RiskFeesCalculate(formData);
u.getGlobal("udwEngRskFeeGrid").addRowData(undefined, formData);
if (!u.get_grid_data(u.getGlobal("udwPolFeesGrid")).Any(x => x.POL_FEE_CODE === formData.ENG_FEE_CODE)) {
var compFeedata = [formData];
var linq = Enumerable.From(compFeedata);
var data =
linq.GroupBy(function (x) { return x.ENG_FEE_CODE; })
.Select(function (x) {
//console.log(x);
return {
POL_FEE_CODE: x.Key(),
POL_FEE_NAME: x.source[0]["ENG_FEE_NAME"],
POL_FEE_FC_AMOUNT: x.Sum(function (y) { return parseFloat(y.ENG_FEE_FC_AMOUNT || 0); }),
POL_FEE_BC_AMOUNT: x.Sum(function (y) { return parseFloat(y.ENG_FEE_BC_AMOUNT || 0); }),
POL_FEE_END_NO: 0, //$("#POL_END_NO").val()
POL_FEE_STATUS: "U"
};
}).ToArray();
//u.getGlobal("udwPolFeesGrid").jqGrid("clearGridData");
u.getGlobal("udwPolFeesGrid").addRowData(data.POL_FEE_CODE, data);
}
u.hide_confirm();
u.growl_success("Fee successfully added");
u.form_reset("#riskfeessForm");
});
} else {
u.growl_error("Please fill out the fields that are marked red");
}
});
$("#btn_update_feess").on("click", function () {
if (u.grid_empty(u.getGlobal("udwEngRskFeeGrid"))) return u.growl_info("Grid is empty");
if (u.form_validation("#riskfeessForm")) {
u.modal_confirmation("Are you sure you want to update the selected fee?", function () {
const grid = u.getGlobal("udwEngRskFeeGrid");
const rowId = u.getSelRow(grid);
let data = rowId ? u.getRow(rowId, grid) : {};
let formData = u.parse_form("#riskfeessForm") || {};
if (data.ENG_FEE_CODE === formData.ENG_FEE_CODE) {
data = u.objectSpread(data, formData);
for (let i in data) grid.jqGrid("setCell", rowId, i, data[i]);
grid.refresh();
u.hide_confirm();
u.growl_success("Fee updated successfully");
} else {
u.hide_confirm();
u.growl_warning("Please select the correct row to edit");
}
u.form_reset("#riskfeessForm");
});
}
});
$("#btn_remove_feess").on("click", function () {
if (u.grid_empty(u.getGlobal("udwEngRskFeeGrid"))) return u.modalAlert("Grid is empty!!!");
let grid = u.getGlobal("udwEngRskFeeGrid");
let rowId = u.getSelRow(grid);
let Result = rowId ? u.getRow(rowId, grid) : {};
let formData = u.parse_form("#riskfeessForm") || {};
let polFees = u.get_grid_data(u.getGlobal("udwPolFeesGrid"));
if (Result.ENG_FEE_CODE === formData.ENG_FEE_CODE) {
/*----------------------------------
* PREVENT DELETE OF DEFAULT RECORD
*---------------------------------*/
if (Result.DL_DFT === "Y") return u.growl_warning("Default Discount/Load can not be deleted!!!");
/*-----------------------
* Display modal message
*---------------------*/
u.modal_confirmation("Are you sure you want to remove this fee?", function (e) {
/*--------------------------------------------
* Remove newly added record before saving
*------------------------------------------*/
if (Result.ENG_FEE_STATUS == "U") {
grid.jqGrid("delRowData", rowId);
let newPolFees = [];
polFees.ForEach(pf => {
if (pf.POL_FEE_CODE !== Result.ENG_FEE_CODE && pf.POL_FEE_STATUS !== "U") {
newPolFees.push(pf);
}
});
u.clear_grid_data(u.getGlobal("udwPolFeesGrid"));
u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", newPolFees);
u.hide_confirm();
u.growl_success("Selected fee successfully removed");
}
/*----------------------------------------
* Mark a record for deletion on saving
*--------------------------------------*/
if (Result.ENG_FEE_STATUS == "A") {
grid.jqGrid("setCell", rowId, "ENG_FEE_STATUS", "D");
$(`#${rowId}`, "#gridEngiCompFees").css({ color: "red" });
polFees.ForEach(pf => {
if (pf.POL_FEE_CODE === Result.ENG_FEE_CODE && pf.POL_FEE_STATUS === "A") {
pf.POL_FEE_STATUS = "D";
}
});
u.clear_grid_data(u.getGlobal("udwPolFeesGrid"));
u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees);
u.hide_confirm();
u.growl_success("Selected fee successfully marked for deletion, please click on the save button to save changes");
} else if (Result.ENG_FEE_STATUS == "D") {
$(`#${rowId}`, "#gridEngiCompFees").css({ color: "black" });
grid.jqGrid("setCell", rowId, "ENG_FEE_STATUS", "A");
polFees.ForEach(pf => {
if (pf.POL_FEE_CODE === Result.ENG_FEE_CODE && pf.POL_FEE_STATUS === "A") {
pf.POL_FEE_STATUS = "A";
}
});
u.clear_grid_data(u.getGlobal("udwPolFeesGrid"));
u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees);
u.hide_confirm();
u.growl_success("Fee successfully restored");
}
u.form_reset("#riskfeessForm");
});
}
});
$("#feesOk").click(function () {
var fees = u.get_grid_data(u.getGlobal("udwEngRskFeeGrid"));
var risks = u.get_grid_data(u.getGlobal("udwEngGrid"));
if (fees.length <= 0) {
var selLocationId = u.getSelRow(u.getGlobal("udwEngGrid"));
var selLocation = u.getRow(selLocationId, u.getGlobal("udwEngGrid")) || {};
risks.ForEach(r => {
if (parseInt(r.ENG_SYS_ID) == parseInt(selLocation.ENG_SYS_ID)) {
r.INS_UDW_ENGINEER_FEES = [];
}
});
u.clear_grid_data(u.getGlobal("udwEngGrid"));
u.grid_populate(u.getGlobal("udwEngGrid"), "", risks);
} else {
risks.ForEach(r => {
fees.ForEach(f => {
if (f.ENG_FEE_STATUS != "D") {
if (parseInt(r.ENG_SYS_ID) === parseInt(f.ENG_FEE_RK_SYS_ID)) {
r.INS_UDW_ENGINEER_FEES = u.parseJson(r.INS_UDW_ENGINEER_FEES);
r.INS_UDW_ENGINEER_FEES = r.INS_UDW_ENGINEER_FEES.Where(x => x.ENG_FEE_CODE !== f.ENG_FEE_CODE);
r.INS_UDW_ENGINEER_FEES.push(f);
var polFees = u.get_grid_data(u.getGlobal("udwPolFeesGrid"));
if (!polFees.Any(x => x.POL_FEE_CODE === f.ENG_FEE_CODE)) {
polFees.push({
POL_FEE_CODE: f.ENG_FEE_CODE,
POL_FEE_NAME: f.ENG_FEE_NAME ? f.ENG_FEE_NAME : "",
POL_FEE_FC_AMOUNT: parseFloat(f.ENG_FEE_FC_AMOUNT || 0),
POL_FEE_BC_AMOUNT: parseFloat(f.ENG_FEE_BC_AMOUNT || 0),
POL_FEE_END_NO: parseInt($("POLH_END_NO").val() || 0),
POL_FEE_STATUS: "U"
});
u.clear_grid_data(u.getGlobal("udwPolFeesGrid"));
u.grid_populate(u.getGlobal("udwPolFeesGrid"), "", polFees);
}
}
}
});
});
u.clear_grid_data(u.getGlobal("udwEngGrid"));
u.grid_populate(u.getGlobal("udwEngGrid"), "", risks);
u.clear_grid_data(u.getGlobal("udwEngRskFeeGrid"));
}
u.form_reset("#riskfeessForm");
$("#engRiskFeesModal").modal("hide");
});
$("#btnAddNewFeesEng").on("click", function () {
if ($("#POLH_CLASS_CODE").val() == "") {
u.growl_warning("Product Code is empty, Please check and try again");
} else {
$("#AddNewFeesModal").modal();
}
});
$("#btnQueryRiskFeesLov").on("click", async function () {
const riskFeesData = {
PRD_CODE: $("#POLH_SUB_CLASS_CODE").val(),
LEVEL: "R"
};
const grid = u.getGlobal("riskFeesLov");
let result = await s.getRiskFeesLovAsync(riskFeesData);
if (result && result.length && result.length > 0) {
grid.jqGrid("clearGridData");
u.bigDataPopulate(grid, result);
}
});
$("#riskFeesLovOk").on("click", function () {
const grid = u.getGlobal("riskFeesLov");
const selId = u.getSelRow(grid);
let data = selId ? u.getRow(selId, grid) : {};
data = {
ENG_FEE_CODE: data.PRF_FEE_CODE,
ENG_FEE_NAME: data.FEE_NAME,
ENG_FEE_FC_AMOUNT: data.PRF_FEE_AMOUNT,
ENG_FEE_BC_AMOUNT: data.PRF_FEE_AMOUNT,
ENG_FEE_RK_NO: data.PRF_SYS_ID,
// ENG_FEE_CURR_RATE: parseFloat($("#POLH_CURRENCY_RATE").val() || 0)
};
$scope.RiskFeesCalculate(data);
u.form_reset("#riskfeessForm");
u.fill_form(data, "#riskfeessForm");
$("#AddNewFeesModal").modal("hide");
});
u.setGlobalStatic("ProductUnendorse", async function () {
/*----------------------------------
* UNDO ENDORSMENT FOR PRODUCT RISK
*--------------------------------*/
const CurrentProduct = u.parse_form("#polheaderForm") || {};
if (!("EX").includes(CurrentProduct.POLH_TXN_STATE)) return u.growl_warning("Endorsements can not undo!!!");
u.modalConfirmationAsync("Are you sure you want to undo endorsement on this policy?", async function () {
$("#policyCalculationsModal").modal();
setTimeout(async function () {
const data = {
polSysId: CurrentProduct.POLH_SYS_ID,
endNo: parseFloat(CurrentProduct.POLH_END_NO) - 1,
rnwNo: CurrentProduct.POLH_RENEW_SER_NO
};
let response = await s.policyUnendorseAsync(data);
if (response.state) {
let Unendorsed = response.data || {};
u.getGlobalStatic("productSearchFill")(Unendorsed);
u.form_text_Green_color();
//$scope.premiumSummarizer();
u.growl_success("Policy successfully unendorsed.")
//let processRevert = await u.revertProcess(Unendorsed.POLH_UID);
//if (processRevert.state) {
// $("#netPremSummary h3").show();
// $("#netCustomerBc").text(Unendorsed.POLH_CURRENCY + " " + Unendorsed.POLH_POL_PREM_FC);
// $("#netCustomerFc").text(Unendorsed.POLH_CURRENCY + " " + Unendorsed.POLH_POL_PREM_BC);
// $("#endNetCustomerFc").text(" ");
// $("#endNetCustomerBc").text(" ");
// u.growl_success("Policy successfully unendorsed.");
//} else {
// u.growl_error(processRevert.message);
//}
}
else {
u.growl_error(response.message);
}
$("#policyCalculationsModal").modal("hide");
});
});
});
$("#btn_unendorsement").click(async function () {
const CurrentProduct = u.parse_form("#polheaderForm") || {};
let processRevert = await u.revertProcess(CurrentProduct.POLH_UID);
});
});
})(window.jQuery, window.service, window.utility, {});
(function ($, s, u, $scope) {
//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;
},
"END_VAT_DIFF_FC": function (amnt, row) {
if (row["END_TXN_STATE"] === "O") return ed.END_VAT_DIFF_FC || 0;
},
"END_VAT_DIFF_BC": function (amnt, row) {
if (row["END_TXN_STATE"] === "O") return ed.END_VAT_DIFF_BC || 0;
},
"MS_COL_ENDORSEMENT": function (amnt, row) {
if (row["END_TXN_STATE"] === "O") return ed.MS_COL_ENDORSEMENT || [];
},
"MS_RI_SHARE_ENDORSEMENT": function (amnt, row) {
if (row["END_TXN_STATE"] === "O") return ed.MS_RI_SHARE_ENDORSEMENT || [];
}
});
//show endorsement premium
$("#endPremSummary").show();
var endNetTCustomerFc = parseFloat(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);
$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 () {
u.form_text_Gold_color();
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;
}
});
};
$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,
let risk = u.getRow(riskRowId, u.getGlobal("udwEngOtherGrid"));
risk.INS_UDW_RISK_DISCLOAD = u.parseJson(risk.INS_UDW_RISK_DISCLOAD || "[]");
$scope.RiskDiscountLoadCalculate(risk);
sumNetPremFc = parseFloat(sumNetPremFc) - parseFloat(risk.ENG_OTHER_DISC_FC || 0) + parseFloat(risk.ENG_OTHER_LOAD_FC || 0);
sumNetPremBc = parseFloat(sumNetPremBc) - parseFloat(risk.ENG_OTHER_DISC_BC || 0) + parseFloat(risk.ENG_OTHER_LOAD_BC || 0);
sumDisBc = sumDisBc + parseFloat(risk.ENG_OTHER_DISC_BC || 0);
sumDisFc = sumDisFc + parseFloat(risk.ENG_OTHER_DISC_FC || 0);
sumLoadBc = sumLoadBc + parseFloat(risk.ENG_OTHER_LOAD_BC || 0);
sumLoadFc = sumLoadFc + parseFloat(risk.ENG_OTHER_LOAD_FC || 0);
// 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
sumRiPremFc = parseFloat(sumRiPremFc || 0) - parseFloat(sumDisFc || 0) + parseFloat(sumLoadFc || 0);
sumRiPremBc = parseFloat(sumRiPremBc || 0) - parseFloat(sumDisBc || 0) + parseFloat(sumLoadBc || 0);
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;
other.INS_UDW_RISK_DISCLOAD = u.parseJson(other.INS_UDW_RISK_DISCLOAD || "[]");
$scope.RiskDiscountLoadCalculate(other);
other.ENG_OTHER_RI_PREM_FC = parseFloat(other.ENG_OTHER_RI_PREM_FC || 0) - parseFloat(other.ENG_OTHER_DISC_FC || 0) + parseFloat(other.ENG_OTHER_LOAD_FC || 0);
other.ENG_OTHER_RI_PREM_BC = parseFloat(other.ENG_OTHER_RI_PREM_BC || 0) - parseFloat(other.ENG_OTHER_DISC_BC || 0) + parseFloat(other.ENG_OTHER_LOAD_BC || 0);
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 () {
$scope.SumCoverRiskValues();
u.getGlobal("EngPremSummarizer")();
//$scope.PremiumCalculator();
// 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());
$("#ENG_VALUE_ADDED_TAX_PERC").val($("#POLH_VAT_PERC").val());
$("#ENG_VALUE_ADDED_TAX_YN").val($("#POLH_VAT_YN").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();
formData.ENG_VALUE_ADDED_TAX_PERC = parseFloat($("#POLH_VAT_PERC").val() || 0) || 0;
formData.ENG_VALUE_ADDED_TAX_YN = $("#POLH_VAT_YN").val() || "N";
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 => {
loc.ENG_VALUE_ADDED_TAX_PERC = parseFloat($("#POLH_VAT_PERC").val() || 0) || 0;
loc.ENG_VALUE_ADDED_TAX_YN = $("#POLH_VAT_YN").val() || "N";
if (parseInt(loc.ENG_SYS_ID) === parseInt($("#ENG_SYS_ID").val())) {
if (!risks.Any()) {
loc.INS_UDW_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();
});
};
$scope.rawEngineeringOthers = function () {
const product = u.parse_form("#polheaderForm") || {};
/*----------------------------------
* GETS ALL REMAINING PRODUCT MODELS
*---------------------------------*/
u.getGlobal("Product")(product);
return product;
};
$scope.rawEngineeringOthersPopulateFull = function (policy) {
/*----------------------
* CONDITIONS AND CLAUSES
*----------------------*/
u.clear_grid_data(u.getGlobal("udwClausesGrid"));
policy.INS_UDW_POL_COND_CLAUSES = (typeof (policy.INS_UDW_POL_COND_CLAUSES) === "string" ? JSON.parse(policy.INS_UDW_POL_COND_CLAUSES || "[]") : policy.INS_UDW_POL_COND_CLAUSES) || [];
u.bigDataPopulate(u.getGlobal("udwClausesGrid"), policy.INS_UDW_POL_COND_CLAUSES);
/*----------------------------------------------------------
* HIDE POLICY CONDITION CLAUSE WITH STATUS (X) ON FROM GRID
*----------------------------------------------------------*/
u.getGlobal("PolicyConditionClauseRemoval")();
};
u.setGlobalStatic("subProductChange", async function () {
/*-----------------------------------------------------------
* i HAVE TO PREVENT THE RECALCULATION OF INS SOURCE RESELECT
*----------------------------------------------------------*/
let product = $scope.rawEngineeringOthers() || {};
/*-------------------------
* CONDITION CLAUSE REFETCH
*-------------------------*/
await u.getGlobal("ConditionClause")(product);
u.fill_form(product, "#polheaderForm", false);
if (true) {
/*-----------------------------------------------
* REPOPULATE THE GRID AND RECALCULATE THE RECORDS
*-----------------------------------------------*/
$scope.rawEngineeringOthersPopulateFull(product);
} else {
$scope.rawEngineeringOthersPopulateFull(product);
};
});
u.setGlobalStatic("RecalculateFill", async function () {
/*------------------------------------------
* PREMIUM BASIS PROPERTY && TREATY PROPERTY
*-----------------------------------------*/
let days = $("#POLH_POL_DAYS").val();
let subClassCode = $("#POLH_SUB_CLASS_CODE").val();
let premiumBasis = $("#POLH_PREM_BASIS").val();
let currency = $("#POLH_CURRENCY").val();
let year = $("#POLH_POL_UW_YEAR").val();
if (days.length && subClassCode.length && premiumBasis.length && currency.length && year.length) $scope.RecalculatePremium();
});
u.setGlobal("RecalculatePremium", $scope.RecalculatePremium);
/*--------------------------
* RI DESCRIPTION PROPERTIES
*--------------------------*/
$scope.riDisciption = function (v) {
const product = u.parse_form("#polheaderForm") || {};
let data = {
SubClass: product.PDT_NAME,
Region: v.ENG_REGION_NAME,
Area: v.ENG_AREA_NAME,
Address: v.ENG_LOC_NAME
}
let result = u.getGlobal("riDiscriptionConcat")(data);
return result;
}
/*
* RENEWAL PROCESSING CHECK
*/
$scope.query = $.url().param();
if (!jQuery.isEmptyObject($scope.query)) {
if ($scope.query.polid) {
const newUrl = location.href.split("?")[0];
u.modalConfirmationAsync("Continue with renewal?", async function () {
var response = await s.getPolicyAsync($scope.query.polid);
if (response.state) {
if (jQuery.isEmptyObject(response.data)) return u.growl_info("Policy not found");
if (response.data.POLH_TXN_STATE == "R") { return window.location.href = window.location.href + "?id=" + response.data.POLH_SYS_ID }
var renPolicy = u.getGlobal("renewalProcess")(response.data);
// fill policy header
u.getGlobalStatic("productSearchFill")(renPolicy);
renPolicy.INS_UDW_ENGINEER_LOC.ForEach(b => {
b.ENG_START_DATE = renPolicy.POLH_POL_START_DATE;
b.ENG_END_DATE = renPolicy.POLH_POL_END_DATE;
b.ENG_UW_YEAR = renPolicy.POLH_POL_UW_YEAR;
b.ENG_POLH_END_NO = 0;
b.ENG_POLH_RNW_NO = renPolicy.POLH_RENEW_SER_NO;
b.INS_UDW_ENG_OTHER = u.parseJson(b.INS_UDW_ENG_OTHER);
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;
});
});
b.INS_UDW_ENGINEER_FEES = u.parseJson(b.INS_UDW_ENGINEER_FEES);
b.INS_UDW_ENGINEER_FEES.ForEach(f => {
f.ENG_FEE_RNW_NO = renPolicy.POLH_RENEW_SER_NO;
f.ENG_FEE_END_NO = 0;
});
});
var newRenPolicy = $scope.renewalReSummarizer(renPolicy);
var treatyResult = await s.getProductTreatyAsync(renPolicy.POLH_SUB_CLASS_CODE, renPolicy.POLH_POL_UW_YEAR, renPolicy.POLH_CURRENCY);
if (!treatyResult.state && 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);
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);
}
});
$("#btn_risk_discloading").click(function () {
const grid = $scope.eng_grid;
if (u.grid_empty(grid)) return u.modalAlert("The risk Grid is empty!!!");
let selId = u.getSelRow(grid);
if (selId) {
u.form_reset("#riskdiscloadingForm");
u.clear_grid_data(u.getGlobal("udwRskDiscLoadingGrid"));
const data = u.getRow(selId, grid);
data.INS_UDW_RISK_DISCLOAD = (typeof (data.INS_UDW_RISK_DISCLOAD) == "string" ? JSON.parse(data.INS_UDW_RISK_DISCLOAD || "[]") : data.INS_UDW_RISK_DISCLOAD) || [];
data.INS_UDW_RISK_DISCLOAD.ForEach(x => { $scope.riskdiscloading_grid.addRowData(x.DL_SYS_ID, x); });
$("#DL_RISK_SYS_ID").val(data.ENG_OTHER_SYS_ID);
$("#riskDiscloadingModal").modal();
} else {
u.growl_info("Please select a risk");
}
});
/*-----------------------------------------------
* Interest Discount/Loading
*------------------------------------------------*/
$("#btn_add_riskdiscloading").on("click", function () {
if (u.form_validation("#riskdiscloadingForm")) {
u.modal_confirmation("Are you sure you want to add the Risk Discount/Loading Details?", function () {
let discountLoadData = u.get_grid_data($scope.riskdiscloading_grid) || [];
const formData = u.parse_form("#riskdiscloadingForm") || {};
if (discountLoadData.Any(x => x.DL_CODE === formData.DL_CODE)) return u.growl_warning(`Record with code ${formData.DL_CODE} already exists`);
/*---------------------
* GET RISK DATA
*-------------------**/
let Risk = u.getRow(u.getSelRow($scope.eng_grid), $scope.eng_grid) || {};
/*------------------
* GET DL FORM DATA
*----------------**/
formData.DL_STATUS = "U";
formData.DL_CRTE_BY = u.getUserCode();
formData.DL_CRTE_DATE = u.get_date();
formData.DL_PREM_FC = Risk.ENG_OTHER_RISK_PREM_FC;
formData.DL_PREM_BC = Risk.ENG_OTHER_RISK_PREM_BC;
formData.DL_RISK_SYS_ID = Risk.ENG_OTHER_SYS_ID;
formData.DL_END_NO = Risk.ENG_OTHER_POLH_END_NO;
formData.DL_RNW_NO = Risk.ENG_OTHER_POLH_RNW_NO;
$scope.DiscountLoadCalculate(formData);
$scope.riskdiscloading_grid.addRowData(undefined, formData);
u.hide_confirm();
u.growl_success("Record successfully added to grid");
u.form_reset("#riskdiscloadingForm");
});
} else {
u.growl_error("Please fill out the fields that are marked red");
}
});
$("#btn_remove_riskdiscloadings").on("click", function () {
if (u.grid_empty($scope.riskdiscloading_grid)) return u.modalAlert("Grid is empty!!!");
var grid = $scope.riskdiscloading_grid;
var rowId = grid.jqGrid("getGridParam", "selrow");
const code = grid.jqGrid("getCell", rowId, "DL_CODE");
let Result = u.getRow(rowId, grid) || {};
if (code === $("#riskdiscloadingForm").find("input[name='DL_CODE']").val()) {
var recordStatus = grid.jqGrid("getCell", rowId, "DL_STATUS");
/*----------------------------------------
* PREVENT DELETE OF DEFAULT DISCOUNT LOAD
*---------------------------------------*/
if (Result.DL_DFT === "Y") return u.growl_warning("Default Discount/Load can not be deleted!!!");
/*---------------------------------
* Display modal message
*------------------------------*/
u.modal_confirmation("Are you sure you want to remove the Record?", function (e) {
/*--------------------------------------------
* Remove newly added record before saving
*------------------------------------------*/
if (recordStatus == "U") {
grid.jqGrid("delRowData", rowId);
u.hide_confirm();
u.growl_success("Selected row successfully deleted");
}
/*----------------------------------------
* Mark a record for deletion on saving
*--------------------------------------*/
if (recordStatus == "A") {
grid.jqGrid("setCell", rowId, "DL_STATUS", "D");
$(`#${rowId}`, "#grdRiskDiscloading").css({ color: "red" });
u.hide_confirm();
u.growl_success("Selected row successfully marked for deletion, please click on the save button to save changes");
} else if (recordStatus == "D") {
$(`#${rowId}`, "#grdRiskDiscloading").css({ color: "black" });
grid.jqGrid("setCell", rowId, "DL_STATUS", "A");
u.hide_confirm();
u.growl_success("Data successfully restored");
}
});
}
});
$("#btn_update_riskdiscloading").on("click", function () {
if (u.grid_empty($scope.riskdiscloading_grid)) return u.growl_info("Grid is empty");
if (u.form_validation("#riskdiscloadingForm")) {
u.modal_confirmation("Are you sure you want to update the selected Discount/Loading?", function () {
const grid = $scope.riskdiscloading_grid;
const rowId = u.getSelRow(grid);
const code = grid.jqGrid("getCell", rowId, "DL_CODE");
if (code === $("#riskdiscloadingForm").find("input[name='DL_CODE']").val()) {
const data = u.parse_form("#riskdiscloadingForm");
for (let i in data) grid.jqGrid("setCell", rowId, i, data[i]);
grid.refresh();
u.hide_confirm();
u.growl_success("Risk Discount/Loading updated");
} else {
u.hide_confirm();
u.growl_warning("Please select the correct row to edit");
}
});
}
});
$scope.RiskDiscountLoadCalculate = function (b) {
/*-----------------------------------
* THIS IS WHERE THE TRANSITION STARTS
*----------------------------------*/
b.ENG_OTHER_DISC_FC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "D" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_FC || 0))).toFixed(2) || 0;
b.ENG_OTHER_DISC_BC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "D" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_BC || 0))).toFixed(2) || 0;
b.ENG_OTHER_LOAD_FC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "L" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_FC || 0))).toFixed(2) || 0;
b.ENG_OTHER_LOAD_BC = parseFloat(b.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_TYPE === "L" && d.DL_STATUS !== "D").Sum(e => parseFloat(e.DL_AMT_BC || 0))).toFixed(2) || 0;
b.ENG_OTHER_DL_AMT_FC = parseFloat(parseFloat(b.ENG_OTHER_LOAD_FC || 0) - parseFloat(b.ENG_OTHER_DISC_FC || 0)).toFixed(2) || 0;
b.ENG_OTHER_DL_AMT_BC = parseFloat(parseFloat(b.ENG_OTHER_LOAD_BC || 0) - parseFloat(b.ENG_OTHER_DISC_BC || 0)).toFixed(2) || 0;
//b.LINT_PRM_FC = parseFloat(parseFloat(b.LINT_GROSS_PRM_FC || 0) + parseFloat(b.LINT_DL_AMT_FC || 0)).toFixed(2) || 0;
//b.LINT_PRM_BC = parseFloat(parseFloat(b.LINT_GROSS_PRM_BC || 0) + parseFloat(b.LINT_DL_AMT_BC || 0)).toFixed(2) || 0;
b.ENG_OTHER_RISK_PREM_FC = parseFloat(parseFloat(b.ENG_OTHER_TOT_PREM_FC || 0) + parseFloat(b.ENG_OTHER_DL_AMT_FC || 0)) || 0;
b.ENG_OTHER_RISK_PREM_BC = parseFloat(parseFloat(b.ENG_OTHER_TOT_PREM_BC || 0) + parseFloat(b.ENG_OTHER_DL_AMT_BC || 0)) || 0;
};
$("#btnDiscountLoadinOk").click(function () {
const grid = $scope.riskdiscloading_grid;
if (/*u.grid_empty(grid)*/ false) {
$("#riskDiscloadingModal").modal("hide");
} else {
const rowId = $scope.eng_grid.jqGrid("getGridParam", "selrow");
let productResult = u.getRow(rowId, $scope.eng_grid);
const result = u.getGlobal("discountLoadingLevelCalculation")(productResult.ENG_OTHER_TOT_PREM_FC, productResult.ENG_OTHER_TOT_PREM_BC);
$("#policyCalculationsModal").modal();
setTimeout(async function () {
/*------------------------------------
* THIS IS WHERE THE TRANSITION STARTS
*----------------------------------*/
productResult.INS_UDW_RISK_DISCLOAD = (typeof (productResult.INS_UDW_RISK_DISCLOAD) === "string" ? JSON.parse(productResult.INS_UDW_RISK_DISCLOAD || "[]") : productResult.INS_UDW_RISK_DISCLOAD) || [];
productResult.INS_UDW_RISK_DISCLOAD = productResult.INS_UDW_RISK_DISCLOAD.Where(d => d.DL_STATUS === "X").ToList();
productResult.INS_UDW_RISK_DISCLOAD = [...result, ...productResult.INS_UDW_RISK_DISCLOAD];
$scope.RiskDiscountLoadCalculate(productResult);
for (let i in productResult) $scope.eng_grid.jqGrid("setCell", rowId, i, productResult[i]);
u.form_reset("#riskdiscloadingForm");
u.clear_grid_data($scope.riskdiscloading_grid);
$("#riskDiscloadingModal").modal("hide");
$("#policyCalculationsModal").modal("hide");
$scope.PolicyCalculations();
u.clear_grid_data($scope.cover_grid);
}, 500);
}
});
$scope.DiscountLoadCalculate = function (d) {
d.DL_AMT_FC = parseFloat(parseFloat(parseFloat(d.DL_RATE || 0) * 0.01) * parseFloat(d.DL_PREM_FC || 0)).toFixed(2) || 0;
d.DL_AMT_BC = parseFloat(parseFloat(parseFloat(d.DL_RATE || 0) * 0.01) * parseFloat(d.DL_PREM_BC || 0)).toFixed(2) || 0;
};
$("#RSK_DL_CODE").change(async function () {
let data = u.parse_form("#riskdiscloadingForm");
/*----------------------------------------
* PREVENT DEFAULT RATE OR PERCENTAGE FETCH
*---------------------------------------*/
//if (data.DL_DFT !== "Y") return;
/*-----------------------
* RISK DL LOV GRID DATA
*---------------------*/
let dlLovGrid = u.getGlobal("udwRskDiscLoadGrid");
let dlLovRowId = u.getSelRow(dlLovGrid);
let dlLovData = dlLovRowId ? (u.getRow(dlLovRowId, dlLovGrid) || {}) : {};
/*------------------
* TRAVEL RISK DATA
*-----------------*/
let riskGrid = $scope.eng_grid;
let rowId = u.getSelRow(riskGrid);
let riskData = rowId ? (u.getRow(rowId, riskGrid) || {}) : {};
/*------------
* DL LOV DATA
*----------**/
//data = { ...data, ...dlLovData };
data = u.objectSpread(data, dlLovData);
data.DL_PREM_FC = riskData.ENG_OTHER_RISK_PREM_FC;
data.DL_PREM_BC = riskData.ENG_OTHER_RISK_PREM_FC;
data.DL_RISK_SYS_ID = riskData.ENG_OTHER_SYS_ID;
/*----------------------------------------
* FETCHING NON-DEFAULT RATE OR PERCENTAGE
*---------------------------------------*/
let request = { SUB_CLASS: $("#POLH_SUB_CLASS_CODE").val() };
switch (data.DL_CODE) {
default:
break;
};
$scope.DiscountLoadCalculate(data);
u.fill_form(data, "#riskdiscloadingForm", false);
});
});
})(window.$, window.service, window.utility, {});