Added Holiday List filter

This commit is contained in:
Kanchan Chauhan 2016-07-11 15:16:47 +05:30
parent 12e8277b6b
commit 54860cd57d
2 changed files with 22 additions and 7 deletions

View File

@ -16,6 +16,12 @@ frappe.query_reports["Employee Holiday Attendance"] = {
"fieldtype": "Date", "fieldtype": "Date",
"reqd": 1, "reqd": 1,
"default": frappe.datetime.year_end() "default": frappe.datetime.year_end()
},
{
"fieldname":"holiday_list",
"label": __("Holiday List"),
"fieldtype": "Link",
"options": "Holiday List"
} }
] ]
} }

View File

@ -24,25 +24,34 @@ def get_columns():
_("Holiday") + ":Data:200" _("Holiday") + ":Data:200"
] ]
def get_employees(filters): def get_employees(filters):
holiday_filter = {"holiday_date": (">=", filters.from_date),
"holiday_date": ("<=", filters.to_date)}
if filters.holiday_list:
holiday_filter["parent"] = filters.holiday_list
holidays = frappe.get_all("Holiday", fields=["holiday_date", "description"], holidays = frappe.get_all("Holiday", fields=["holiday_date", "description"],
filters=[["holiday_date", ">=", filters=holiday_filter)
filters.from_date],
["holiday_date", "<=", filters.to_date]])
holiday_names = {} holiday_names = {}
holidays_list = [] holidays_list = []
for holiday in holidays: for holiday in holidays:
holidays_list.append(holiday.holiday_date) holidays_list.append(holiday.holiday_date)
holiday_names[holiday.holiday_date] = holiday.description holiday_names[holiday.holiday_date] = holiday.description
if(holidays_list): if(holidays_list):
cond = " att_date in %(holidays_list)s"
if filters.holiday_list:
cond += """ and (employee in (select employee from tabEmployee where holiday_list = %(holidays)s))"""
employee_list = frappe.db.sql("""select employee_list = frappe.db.sql("""select
employee, employee_name, att_date, status employee, employee_name, att_date, status
from tabAttendance from tabAttendance
where where %s"""% cond.format(', '.join(["%s"] * len(holidays_list))),
att_date in ({0})""".format(', '.join(["%s"] * len(holidays_list))), {'holidays_list':holidays_list,
holidays_list, as_list=True) 'holidays':filters.holiday_list}, as_list=True)
for employee_data in employee_list: for employee_data in employee_list:
employee_data.append(holiday_names[employee_data[2]]) employee_data.append(holiday_names[employee_data[2]])