From 1b7ce9649b1cc1dce89e09f46a5235024c14b28d Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 16 May 2022 15:45:00 +0530 Subject: [PATCH] fix: IN time not captured in Attendance through Employee Checkin (#31029) --- erpnext/hr/doctype/employee_checkin/employee_checkin.py | 4 ++++ erpnext/hr/doctype/employee_checkin/test_employee_checkin.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/erpnext/hr/doctype/employee_checkin/employee_checkin.py b/erpnext/hr/doctype/employee_checkin/employee_checkin.py index e07b5e5db5..ecee541ad6 100644 --- a/erpnext/hr/doctype/employee_checkin/employee_checkin.py +++ b/erpnext/hr/doctype/employee_checkin/employee_checkin.py @@ -227,11 +227,15 @@ def calculate_working_hours(logs, check_in_out_type, working_hours_calc_type): in_log = out_log = None if not in_log: in_log = log if log.log_type == "IN" else None + if in_log and not in_time: + in_time = in_log.time elif not out_log: out_log = log if log.log_type == "OUT" else None + if in_log and out_log: out_time = out_log.time total_hours += time_diff_in_hours(in_log.time, out_log.time) + return total_hours, in_time, out_time diff --git a/erpnext/hr/doctype/employee_checkin/test_employee_checkin.py b/erpnext/hr/doctype/employee_checkin/test_employee_checkin.py index ced42bbc6e..b603b3a622 100644 --- a/erpnext/hr/doctype/employee_checkin/test_employee_checkin.py +++ b/erpnext/hr/doctype/employee_checkin/test_employee_checkin.py @@ -125,6 +125,11 @@ class TestEmployeeCheckin(FrappeTestCase): ) self.assertEqual(working_hours, (4.5, logs_type_2[1].time, logs_type_2[-1].time)) + working_hours = calculate_working_hours( + [logs_type_2[1], logs_type_2[-1]], check_in_out_type[1], working_hours_calc_type[1] + ) + self.assertEqual(working_hours, (5.0, logs_type_2[1].time, logs_type_2[-1].time)) + def test_fetch_shift(self): employee = make_employee("test_employee_checkin@example.com", company="_Test Company")