From 7652b857c8b7bdb88e648bc2fdcb8f1b5d0e0986 Mon Sep 17 00:00:00 2001 From: Kanchan Chauhan Date: Wed, 16 Nov 2016 15:29:01 +0530 Subject: [PATCH] [Fix] Filters to get employee in Payroll --- erpnext/controllers/queries.py | 4 +++- .../doctype/process_payroll/process_payroll.py | 6 +++--- .../salary_structure/salary_structure.js | 18 +++++++++--------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index 6da496ba17..98390ff2d2 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -32,12 +32,13 @@ def get_filters_cond(doctype, filters, conditions): # searches for active employees def employee_query(doctype, txt, searchfield, start, page_len, filters): + conditions = [] return frappe.db.sql("""select name, employee_name from `tabEmployee` where status = 'Active' and docstatus < 2 and ({key} like %(txt)s or employee_name like %(txt)s) - {mcond} + {fcond} {mcond} order by if(locate(%(_txt)s, name), locate(%(_txt)s, name), 99999), if(locate(%(_txt)s, employee_name), locate(%(_txt)s, employee_name), 99999), @@ -45,6 +46,7 @@ def employee_query(doctype, txt, searchfield, start, page_len, filters): name, employee_name limit %(start)s, %(page_len)s""".format(**{ 'key': searchfield, + 'fcond': get_filters_cond(doctype, filters, conditions), 'mcond': get_match_cond(doctype) }), { 'txt': "%%%s%%" % txt, diff --git a/erpnext/hr/doctype/process_payroll/process_payroll.py b/erpnext/hr/doctype/process_payroll/process_payroll.py index 3554669cca..2077982f13 100644 --- a/erpnext/hr/doctype/process_payroll/process_payroll.py +++ b/erpnext/hr/doctype/process_payroll/process_payroll.py @@ -22,7 +22,7 @@ class ProcessPayroll(Document): sal_struct = frappe.db.sql(""" select name from `tabSalary Structure` - where docstatus != 2 and company = %(company)s and + where docstatus != 2 and is_active = 'Yes' and company = %(company)s and ifnull(salary_slip_based_on_timesheet,0) = %(salary_slip_based_on_timesheet)s""", {"company": self.company, "salary_slip_based_on_timesheet":self.salary_slip_based_on_timesheet}) @@ -51,8 +51,8 @@ class ProcessPayroll(Document): def get_joining_releiving_condition(self): cond = """ - and ifnull(t1.date_of_joining, '0000-00-00') <= '%(from_date)s' - and ifnull(t1.relieving_date, '2199-12-31') >= '%(to_date)s' + and ifnull(t1.date_of_joining, '0000-00-00') <= '%(to_date)s' + and ifnull(t1.relieving_date, '2199-12-31') >= '%(from_date)s' """ % {"from_date": self.from_date, "to_date": self.to_date} return cond diff --git a/erpnext/hr/doctype/salary_structure/salary_structure.js b/erpnext/hr/doctype/salary_structure/salary_structure.js index 334e8a513d..c5df2e6518 100755 --- a/erpnext/hr/doctype/salary_structure/salary_structure.js +++ b/erpnext/hr/doctype/salary_structure/salary_structure.js @@ -28,7 +28,15 @@ frappe.ui.form.on('Salary Structure', { type: "deduction" } } - }) + }); + frm.set_query("employee", "employees", function(doc) { + return { + query: "erpnext.controllers.queries.employee_query", + filters: { + company: doc.company + } + } + }); }, refresh: function(frm) { @@ -182,11 +190,3 @@ frappe.ui.form.on('Salary Detail', { calculate_totals(frm.doc); } }) - -frappe.ui.form.on('Salary Structure Employee', { - onload: function(frm) { - frm.set_query("employee","employees", function(doc,cdt,cdn) { - return{ query: "erpnext.controllers.queries.employee_query" } - }) - } -});