From 5342c846d2795ce4cecf0d9f7d25b28f8181ac28 Mon Sep 17 00:00:00 2001 From: Parth Kharwar Date: Thu, 30 Jan 2020 13:12:56 +0530 Subject: [PATCH 1/2] feat: request for work from home marked in attendance --- erpnext/hr/doctype/attendance_request/attendance_request.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/hr/doctype/attendance_request/attendance_request.py b/erpnext/hr/doctype/attendance_request/attendance_request.py index a4598a798e..090d53262c 100644 --- a/erpnext/hr/doctype/attendance_request/attendance_request.py +++ b/erpnext/hr/doctype/attendance_request/attendance_request.py @@ -38,6 +38,8 @@ class AttendanceRequest(Document): attendance.employee_name = self.employee_name if self.half_day and date_diff(getdate(self.half_day_date), getdate(attendance_date)) == 0: attendance.status = "Half Day" + elif self.reason == "Work From Home": + attendance.status = "Work From Home" else: attendance.status = "Present" attendance.attendance_date = attendance_date From 823964f3a65c6138b2064cafc65baab975d301ee Mon Sep 17 00:00:00 2001 From: Parth Kharwar Date: Fri, 31 Jan 2020 14:30:38 +0530 Subject: [PATCH 2/2] fix: test added to check work from home application --- .../test_attendance_request.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/erpnext/hr/doctype/attendance_request/test_attendance_request.py b/erpnext/hr/doctype/attendance_request/test_attendance_request.py index a2c39d9a71..92b1eaee2c 100644 --- a/erpnext/hr/doctype/attendance_request/test_attendance_request.py +++ b/erpnext/hr/doctype/attendance_request/test_attendance_request.py @@ -13,7 +13,28 @@ class TestAttendanceRequest(unittest.TestCase): for doctype in ["Attendance Request", "Attendance"]: frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype)) - def test_attendance_request(self): + def test_on_duty_attendance_request(self): + today = nowdate() + employee = get_employee() + attendance_request = frappe.new_doc("Attendance Request") + attendance_request.employee = employee.name + attendance_request.from_date = date(date.today().year, 1, 1) + attendance_request.to_date = date(date.today().year, 1, 2) + attendance_request.reason = "On Duty" + attendance_request.company = "_Test Company" + attendance_request.insert() + attendance_request.submit() + attendance = frappe.get_doc('Attendance', { + 'employee': employee.name, + 'attendance_date': date(date.today().year, 1, 1), + 'docstatus': 1 + }) + self.assertEqual(attendance.status, 'Present') + attendance_request.cancel() + attendance.reload() + self.assertEqual(attendance.docstatus, 2) + + def test_work_from_home_attendance_request(self): today = nowdate() employee = get_employee() attendance_request = frappe.new_doc("Attendance Request") @@ -29,7 +50,7 @@ class TestAttendanceRequest(unittest.TestCase): 'attendance_date': date(date.today().year, 1, 1), 'docstatus': 1 }) - self.assertEqual(attendance.status, 'Present') + self.assertEqual(attendance.status, 'Work From Home') attendance_request.cancel() attendance.reload() self.assertEqual(attendance.docstatus, 2)