[leave application] [employee query] allow employee lookup for which the current user is leave approver or thhe employee has no leave approvers mentioned or the user is the employee

This commit is contained in:
Anand Doshi 2013-04-22 18:59:04 +05:30
parent b41bb5de2a
commit a7b8f35539
2 changed files with 22 additions and 2 deletions

View File

@ -16,7 +16,6 @@
cur_frm.add_fetch('employee','employee_name','employee_name');
cur_frm.cscript.onload = function(doc, dt, dn) {
if(!doc.posting_date)
set_multiple(dt,dn,{posting_date:get_today()});
@ -127,4 +126,8 @@ cur_frm.cscript.calculate_total_days = function(doc, dt, dn) {
}
}
cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
cur_frm.fields_dict.employee.get_query = function() {
return {
query: "hr.doctype.leave_application.leave_application.query_for_permitted_employees"
};
}

View File

@ -330,3 +330,20 @@ def add_holidays(events, start, end, employee, company):
"title": _("Holiday") + ": " + cstr(holiday.description),
"name": holiday.name
})
@webnotes.whitelist()
def query_for_permitted_employees(doctype, txt, searchfield, start, page_len, filters):
txt = cstr(txt) + "%"
return webnotes.conn.sql("""select name, employee_name from `tabEmployee` emp
where status = 'Active' and docstatus < 2 and
(`%s` like %s or employee_name like %s) and
(exists(select ela.name from `tabEmployee Leave Approver` ela
where ela.parent=emp.name and ela.leave_approver=%s) or
not exists(select ela.name from `tabEmployee Leave Approver` ela where ela.parent=emp.name)
or user_id = %s)
order by
case when name like %s then 0 else 1 end,
case when employee_name like %s then 0 else 1 end,
name limit %s, %s""" % tuple([searchfield] + ["%s"]*8),
(txt, txt, webnotes.session.user, webnotes.session.user, txt, txt, start, page_len), debug=1)