Added Holiday List filter
This commit is contained in:
parent
12e8277b6b
commit
54860cd57d
@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -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]])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user