From 5d0ce7939f6fefdc9f30b12213e1893494d8b2e8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 15 Jun 2015 17:59:37 +0530 Subject: [PATCH] Show only users with Expense Approver role in Expense Claim Approver field --- erpnext/hr/doctype/expense_claim/expense_claim.js | 2 +- erpnext/hr/doctype/expense_claim/expense_claim.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js index d279074f84..b556172a78 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.js +++ b/erpnext/hr/doctype/expense_claim/expense_claim.js @@ -63,7 +63,7 @@ cur_frm.cscript.onload = function(doc,cdt,cdn) { cur_frm.set_query("exp_approver", function() { return { - filters: [["UserRole", "role", "=", "Expense Approver"]] + query: "erpnext.hr.doctype.expense_claim.expense_claim.get_expense_approver" }; }); } diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py index 6687399f37..112a626bf6 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.py +++ b/erpnext/hr/doctype/expense_claim/expense_claim.py @@ -58,4 +58,13 @@ class ExpenseClaim(Document): def validate_sanctioned_amount(self): for d in self.get('expenses'): if flt(d.sanctioned_amount) > flt(d.claim_amount): - frappe.throw(_("Sanctioned Amount cannot be greater than Claim Amount in Row {0}.").format(d.idx)) \ No newline at end of file + frappe.throw(_("Sanctioned Amount cannot be greater than Claim Amount in Row {0}.").format(d.idx)) + + +@frappe.whitelist() +def get_expense_approver(doctype, txt, searchfield, start, page_len, filters): + return frappe.db.sql(""" + select u.name, concat(u.first_name, ' ', u.last_name) + from tabUser u, tabUserRole r + where u.name = r.parent and r.role = 'Expense Approver' and u.name like %s + """, ("%" + txt + "%")) \ No newline at end of file