Manage grouping of salary component for flexible benefit
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 c9c2685..a01f6ac 100644
--- a/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.py
+++ b/erpnext/hr/doctype/employee_benefit_application/employee_benefit_application.py
@@ -92,13 +92,22 @@
def get_components(employee_benefit_application, salary_slip):
salary_components_array = []
+ group_component_amount = {}
payroll_period_days = get_payroll_period_days(salary_slip.start_date, salary_slip.end_date, salary_slip.company)
for employee_benefit in employee_benefit_application.employee_benefits:
if employee_benefit.is_pro_rata_applicable == 1:
struct_row = {}
salary_components_dict = {}
- salary_component = frappe.get_doc("Salary Component", employee_benefit.earning_component)
amount = get_amount(payroll_period_days, salary_slip.start_date, salary_slip.end_date, employee_benefit.amount)
+ sc = frappe.get_doc("Salary Component", employee_benefit.earning_component)
+ salary_component = sc
+ if sc.earning_component_group and not sc.is_group and not sc.flexi_default:
+ salary_component = frappe.get_doc("Salary Component", sc.earning_component_group)
+ if group_component_amount and group_component_amount.has_key(sc.earning_component_group):
+ group_component_amount[sc.earning_component_group] += amount
+ else:
+ group_component_amount[sc.earning_component_group] = amount
+ amount = group_component_amount[sc.earning_component_group]
struct_row['depends_on_lwp'] = salary_component.depends_on_lwp
struct_row['salary_component'] = salary_component.name
struct_row['abbr'] = salary_component.salary_component_abbr
diff --git a/erpnext/hr/doctype/salary_component/salary_component.js b/erpnext/hr/doctype/salary_component/salary_component.js
index 86203ab..e58a05e 100644
--- a/erpnext/hr/doctype/salary_component/salary_component.js
+++ b/erpnext/hr/doctype/salary_component/salary_component.js
@@ -12,7 +12,15 @@
"is_group": 0,
"company": d.company
}
- }
- })
+ };
+ });
+ frm.set_query("earning_component_group", function(frm) {
+ return {
+ filters: {
+ "is_group": 1,
+ "is_flexible_benefit": 1
+ }
+ };
+ });
}
-});
\ No newline at end of file
+});
diff --git a/erpnext/hr/doctype/salary_component/salary_component.json b/erpnext/hr/doctype/salary_component/salary_component.json
index 3a9402f..6764e0c 100644
--- a/erpnext/hr/doctype/salary_component/salary_component.json
+++ b/erpnext/hr/doctype/salary_component/salary_component.json
@@ -1001,7 +1001,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-05-15 18:53:09.115910",
+ "modified": "2018-05-16 12:27:03.005070",
"modified_by": "Administrator",
"module": "HR",
"name": "Salary Component",