fix: monthly attendance sheet (#30748)

This commit is contained in:
Raffael Meyer
2022-04-20 08:59:45 +02:00
committed by GitHub
parent 77e8c542dd
commit 0b4e3f1467

View File

@@ -57,11 +57,10 @@ def execute(filters=None):
data = [] data = []
leave_list = None leave_types = None
if filters.summarized_view: if filters.summarized_view:
leave_types = frappe.db.sql("""select name from `tabLeave Type`""", as_list=True) leave_types = frappe.get_all("Leave Type", pluck="name")
leave_list = [d[0] + ":Float:120" for d in leave_types] columns.extend([leave_type + ":Float:120" for leave_type in leave_types])
columns.extend(leave_list)
columns.extend([_("Total Late Entries") + ":Float:120", _("Total Early Exits") + ":Float:120"]) columns.extend([_("Total Late Entries") + ":Float:120", _("Total Early Exits") + ":Float:120"])
if filters.group_by: if filters.group_by:
@@ -81,13 +80,19 @@ def execute(filters=None):
holiday_map, holiday_map,
conditions, conditions,
default_holiday_list, default_holiday_list,
leave_list=leave_list, leave_types=leave_types,
) )
emp_att_map.update(emp_att_data) emp_att_map.update(emp_att_data)
data += record data += record
else: else:
record, emp_att_map = add_data( record, emp_att_map = add_data(
emp_map, att_map, filters, holiday_map, conditions, default_holiday_list, leave_list=leave_list emp_map,
att_map,
filters,
holiday_map,
conditions,
default_holiday_list,
leave_types=leave_types,
) )
data += record data += record
@@ -104,12 +109,10 @@ def get_chart_data(emp_att_map, days):
{"name": "Leave", "values": []}, {"name": "Leave", "values": []},
] ]
for idx, day in enumerate(days, start=0): for idx, day in enumerate(days, start=0):
p = day.replace("::65", "")
labels.append(day.replace("::65", "")) labels.append(day.replace("::65", ""))
total_absent_on_day = 0 total_absent_on_day = 0
total_leave_on_day = 0 total_leave_on_day = 0
total_present_on_day = 0 total_present_on_day = 0
total_holiday = 0
for emp in emp_att_map.keys(): for emp in emp_att_map.keys():
if emp_att_map[emp][idx]: if emp_att_map[emp][idx]:
if emp_att_map[emp][idx] == "A": if emp_att_map[emp][idx] == "A":
@@ -134,9 +137,8 @@ def get_chart_data(emp_att_map, days):
def add_data( def add_data(
employee_map, att_map, filters, holiday_map, conditions, default_holiday_list, leave_list=None employee_map, att_map, filters, holiday_map, conditions, default_holiday_list, leave_types=None
): ):
record = [] record = []
emp_att_map = {} emp_att_map = {}
for emp in employee_map: for emp in employee_map:
@@ -222,7 +224,7 @@ def add_data(
else: else:
leaves[d.leave_type] = d.count leaves[d.leave_type] = d.count
for d in leave_list: for d in leave_types:
if d in leaves: if d in leaves:
row.append(leaves[d]) row.append(leaves[d])
else: else: