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",