Salary Structure - validate flexi with max benefit
diff --git a/erpnext/hr/doctype/salary_detail/salary_detail.json b/erpnext/hr/doctype/salary_detail/salary_detail.json
index 82b0af2..a0d699a 100644
--- a/erpnext/hr/doctype/salary_detail/salary_detail.json
+++ b/erpnext/hr/doctype/salary_detail/salary_detail.json
@@ -238,6 +238,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "depends_on": "eval:doc.is_flexible_benefit != 1",
"fieldname": "section_break_2",
"fieldtype": "Section Break",
"hidden": 0,
@@ -566,7 +567,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2018-05-17 12:43:22.606298",
+ "modified": "2018-05-22 15:11:02.341840",
"modified_by": "Administrator",
"module": "HR",
"name": "Salary Detail",
@@ -581,4 +582,4 @@
"sort_order": "DESC",
"track_changes": 0,
"track_seen": 0
-}
\ No newline at end of file
+}
diff --git a/erpnext/hr/doctype/salary_structure/salary_structure.py b/erpnext/hr/doctype/salary_structure/salary_structure.py
index affd2bb..12e3445 100644
--- a/erpnext/hr/doctype/salary_structure/salary_structure.py
+++ b/erpnext/hr/doctype/salary_structure/salary_structure.py
@@ -31,13 +31,15 @@
def validate_max_benefits_with_flexi(self):
have_a_flexi = False
- if self.max_benefits > 0 and self.earnings:
+ if self.earnings:
flexi_amount = 0
for earning_component in self.earnings:
if earning_component.is_flexible_benefit == 1:
have_a_flexi = True
max_of_component = frappe.db.get_value("Salary Component", earning_component.salary_component, "max_benefit_amount")
flexi_amount += max_of_component
+ if have_a_flexi and self.max_benefits == 0:
+ frappe.throw(_("Max benefits should be greater than zero to despense flexi"))
if self.max_benefits > flexi_amount:
frappe.throw(_("Total flexi component amount {0} should not be less \
than max benefits {1}").format(flexi_amount, self.max_benefits))