feat: fetch leave approver from both employee and department approvers (#19613)
* fix: fetch leave approvers from both department and employee master
* fix: creaate a set of approvers
diff --git a/erpnext/hr/doctype/department_approver/department_approver.py b/erpnext/hr/doctype/department_approver/department_approver.py
index d6b66da..df0f75a 100644
--- a/erpnext/hr/doctype/department_approver/department_approver.py
+++ b/erpnext/hr/doctype/department_approver/department_approver.py
@@ -20,10 +20,6 @@
department_details = {}
department_list = []
employee = frappe.get_value("Employee", filters.get("employee"), ["department", "leave_approver"], as_dict=True)
- if employee.leave_approver:
- approver = frappe.db.get_value("User", employee.leave_approver, ['name', 'first_name', 'last_name'])
- approvers.append(approver)
- return approvers
employee_department = filters.get("department") or employee.department
if employee_department:
@@ -34,6 +30,9 @@
and disabled=0
order by lft desc""", (department_details.lft, department_details.rgt), as_list=True)
+ if filters.get("doctype") == "Leave Application" and employee.leave_approver:
+ approvers.append(frappe.db.get_value("User", employee.leave_approver, ['name', 'first_name', 'last_name']))
+
if filters.get("doctype") == "Leave Application":
parentfield = "leave_approvers"
else:
@@ -47,4 +46,4 @@
and approver.parentfield = %s
and approver.approver=user.name""",(d, "%" + txt + "%", parentfield), as_list=True)
- return approvers
+ return set(tuple(approver) for approver in approvers)