From 5a80ee15c396a03ea4aef50f9fb215a97d173ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Mon, 4 Oct 2021 15:52:06 +0200 Subject: [PATCH] [FIX]pms: allowed late checkin on checkout day --- pms/models/pms_checkin_partner.py | 2 +- pms/tests/test_pms_checkin_partner.py | 30 +++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py index 3aeac229d..1621615ea 100644 --- a/pms/models/pms_checkin_partner.py +++ b/pms/models/pms_checkin_partner.py @@ -652,7 +652,7 @@ class PmsCheckinPartner(models.Model): for record in self: if record.reservation_id.checkin > fields.Date.today(): raise ValidationError(_("It is not yet checkin day!")) - if record.reservation_id.checkout <= fields.Date.today(): + if record.reservation_id.checkout < fields.Date.today(): raise ValidationError(_("Its too late to checkin")) if any( diff --git a/pms/tests/test_pms_checkin_partner.py b/pms/tests/test_pms_checkin_partner.py index 7dfd4a666..77de1fb3a 100644 --- a/pms/tests/test_pms_checkin_partner.py +++ b/pms/tests/test_pms_checkin_partner.py @@ -168,7 +168,7 @@ class TestPmsCheckinPartner(TestPms): ) @freeze_time("2012-01-14") - def test_late_checkin(self): + def test_premature_checkin(self): """ Check that cannot change checkin_partner state to onboard if it's not yet checkin day @@ -184,8 +184,34 @@ class TestPmsCheckinPartner(TestPms): with self.assertRaises(ValidationError, msg="Cannot do checkin onboard"): self.checkin1.action_on_board() + @freeze_time("2012-01-14") + def test_late_checkin_on_checkout_day(self): + """ + Check that allowed register checkin arrival the next day + even if it is the same day of checkout + """ + + # ARRANGE + self.reservation_1.write( + { + "checkin": datetime.date.today() + datetime.timedelta(days=-1), + "checkout": datetime.date.today(), + } + ) + + # ACT + self.checkin1.action_on_board() + + # ASSERT + self.assertEqual( + self.checkin1.arrival, + fields.datetime.now(), + """The system did not allow to check in the next + day because it was the same day of checkout""", + ) + @freeze_time("2012-01-13") - def test_premature_checkin(self): + def test_late_checkin(self): """ When host arrives late anad has already passed the checkin day, the arrival date is updated up to that time.