feat: added Expense approver for employee and validation (#22244)
* feat: added Expense approver for employee nad validation
* fix: requested changes
diff --git a/erpnext/hr/doctype/department_approver/department_approver.py b/erpnext/hr/doctype/department_approver/department_approver.py
index df0f75a..d4c118f 100644
--- a/erpnext/hr/doctype/department_approver/department_approver.py
+++ b/erpnext/hr/doctype/department_approver/department_approver.py
@@ -19,7 +19,7 @@
approvers = []
department_details = {}
department_list = []
- employee = frappe.get_value("Employee", filters.get("employee"), ["department", "leave_approver"], as_dict=True)
+ employee = frappe.get_value("Employee", filters.get("employee"), ["department", "leave_approver", "expense_approver"], as_dict=True)
employee_department = filters.get("department") or employee.department
if employee_department:
@@ -33,10 +33,16 @@
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") == "Expense Claim" and employee.expense_approver:
+ approvers.append(frappe.db.get_value("User", employee.expense_approver, ['name', 'first_name', 'last_name']))
+
+
if filters.get("doctype") == "Leave Application":
parentfield = "leave_approvers"
+ field_name = "Leave Approver"
else:
parentfield = "expense_approvers"
+ field_name = "Expense Approver"
if department_list:
for d in department_list:
approvers += frappe.db.sql("""select user.name, user.first_name, user.last_name from
@@ -46,4 +52,12 @@
and approver.parentfield = %s
and approver.approver=user.name""",(d, "%" + txt + "%", parentfield), as_list=True)
+ if len(approvers) == 0:
+ frappe.throw(_("Please set {0} for the Employee or for Department: {1}").
+ format(
+ field_name, frappe.bold(employee_department),
+ frappe.bold(employee.name)
+ ),
+ title=_(field_name + " Missing"))
+
return set(tuple(approver) for approver in approvers)
diff --git a/erpnext/hr/doctype/employee/employee.json b/erpnext/hr/doctype/employee/employee.json
index 2c2b2f6..7dacacf1 100644
--- a/erpnext/hr/doctype/employee/employee.json
+++ b/erpnext/hr/doctype/employee/employee.json
@@ -62,6 +62,7 @@
"salary_mode",
"payroll_cost_center",
"column_break_52",
+ "expense_approver",
"bank_name",
"bank_ac_no",
"health_insurance_section",
@@ -798,13 +799,21 @@
{
"fieldname": "column_break_52",
"fieldtype": "Column Break"
+ },
+ {
+ "fieldname": "expense_approver",
+ "fieldtype": "Link",
+ "label": "Expense Approver",
+ "options": "User",
+ "show_days": 1,
+ "show_seconds": 1
}
],
"icon": "fa fa-user",
"idx": 24,
"image_field": "image",
"links": [],
- "modified": "2020-06-15 12:26:30.003741",
+ "modified": "2020-06-18 18:01:27.223535",
"modified_by": "Administrator",
"module": "HR",
"name": "Employee",