Merge pull request #20475 from ParthKharwar/dev-work-from-home-application
feat: request for work from home marked in attendance
diff --git a/erpnext/hr/doctype/attendance_request/attendance_request.py b/erpnext/hr/doctype/attendance_request/attendance_request.py
index a4598a7..090d532 100644
--- a/erpnext/hr/doctype/attendance_request/attendance_request.py
+++ b/erpnext/hr/doctype/attendance_request/attendance_request.py
@@ -38,6 +38,8 @@
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
diff --git a/erpnext/hr/doctype/attendance_request/test_attendance_request.py b/erpnext/hr/doctype/attendance_request/test_attendance_request.py
index a2c39d9..92b1eae 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 @@
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 @@
'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)