From d66fb842c1de5ef8071d77656d263146877049c6 Mon Sep 17 00:00:00 2001 From: Jamsheer Date: Tue, 15 May 2018 13:01:49 +0530 Subject: [PATCH] Employee Benefit Application - validate max benefit for employee --- .../employee_benefit_application.js | 2 +- .../employee_benefit_application.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.js b/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.js index 45c67e6639..65619b3777 100644 --- a/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.js +++ b/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.js @@ -20,7 +20,7 @@ frappe.ui.form.on('Employee Benefit Application', { callback: function (data) { if(!data.exc){ if(data.message){ - frm.set_value("max_benefits", data.message) + frm.set_value("max_benefits", data.message); } } } diff --git a/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.py b/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.py index edc7288259..33ad75846f 100644 --- a/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.py +++ b/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.py @@ -9,6 +9,10 @@ from frappe.utils import nowdate from frappe.model.document import Document class EmployeeBenefitApplication(Document): + def validate(self): + if self.max_benefits <= 0: + frappe.throw(_("Employee {0} has no maximum benefit amount").format(self.employee)) + def before_submit(self): self.validate_duplicate_on_payroll_period() self.validate_max_benefit_for_component() @@ -42,7 +46,13 @@ class EmployeeBenefitApplication(Document): def get_max_benefits(self): sal_struct = get_assigned_salary_sturecture(self.employee, self.date) if sal_struct: - return frappe.db.get_value("Salary Structure", sal_struct[0][0], "max_benefits") + max_benefits = frappe.db.get_value("Salary Structure", sal_struct[0][0], "max_benefits") + if max_benefits > 0: + return max_benefits + else: + frappe.throw(_("Employee {0} has no max benefits in salary structure {1}").format(self.employee, sal_struct[0][0])) + else: + frappe.throw(_("Employee {0} has no salary structure assigned").format(self.employee)) @frappe.whitelist()