Compare commits

...

3 Commits

Author SHA1 Message Date
Deepesh Garg
3c6d8435a1 chore: version bump 2022-04-20 16:22:16 +05:30
mergify[bot]
c3c59f1274 fix: shift fetching fails in Employee Checkin if shift assignment has an end date (backport #30701) (#30751)
* fix: shift fetching fails in Employee Checkin if shift assignment has an end date

Co-authored-by: Ejaaz Khan <ejaazrkhan@gmail.com>
(cherry picked from commit 98cccf221e)

* test: shift fetching when assignment has an end date

(cherry picked from commit 3cddc1e97e)

Co-authored-by: Rucha Mahabal <ruchamahabal2@gmail.com>
2022-04-20 16:18:45 +05:30
Ankush Menat
fc75cfdeb6 Merge pull request #30647 from frappe/develop
chore: Release for v14.0.0-beta.3
2022-04-08 17:28:16 +05:30
3 changed files with 27 additions and 2 deletions

View File

@@ -2,7 +2,7 @@ import inspect
import frappe
__version__ = "14.0.0-dev"
__version__ = "14.0.0-beta.4"
def get_default_company(user=None):

View File

@@ -153,6 +153,31 @@ class TestEmployeeCheckin(FrappeTestCase):
log = make_checkin(employee, timestamp)
self.assertIsNone(log.shift)
def test_fetch_shift_for_assignment_with_end_date(self):
employee = make_employee("test_employee_checkin@example.com", company="_Test Company")
# shift setup for 8-12
shift1 = setup_shift_type()
# 12:30 - 16:30
shift2 = setup_shift_type(shift_type="Shift 2", start_time="12:30:00", end_time="16:30:00")
date = getdate()
make_shift_assignment(shift1.name, employee, date, add_days(date, 15))
make_shift_assignment(shift2.name, employee, date, add_days(date, 15))
timestamp = datetime.combine(date, get_time("08:45:00"))
log = make_checkin(employee, timestamp)
self.assertEqual(log.shift, shift1.name)
timestamp = datetime.combine(date, get_time("12:45:00"))
log = make_checkin(employee, timestamp)
self.assertEqual(log.shift, shift2.name)
# log after end date
timestamp = datetime.combine(add_days(date, 16), get_time("12:45:00"))
log = make_checkin(employee, timestamp)
self.assertIsNone(log.shift)
def test_shift_start_and_end_timings(self):
employee = make_employee("test_employee_checkin@example.com", company="_Test Company")

View File

@@ -251,7 +251,7 @@ def get_shifts_for_date(employee: str, for_timestamp: datetime) -> List[Dict[str
Criterion.any(
[
assignment.end_date.isnull(),
(assignment.end_date.isnotnull() & (getdate(for_timestamp.date()) >= assignment.end_date)),
(assignment.end_date.isnotnull() & (getdate(for_timestamp.date()) <= assignment.end_date)),
]
)
)