From 82ffedfd71743b2ee7ffe817a26988c95ff973b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Sat, 6 Mar 2021 13:31:40 +0100 Subject: [PATCH] [IMP] partner_id reservation as required on compute --- pms/models/pms_reservation.py | 11 +++++++--- pms/tests/test_pms_folio.py | 13 ++++++----- pms/tests/test_pms_pricelist_priority.py | 4 ++++ pms/tests/test_pms_reservation.py | 22 +++++++++++++++++++ .../test_pms_room_type_availability_rules.py | 10 +++++++++ pms/tests/test_pms_sale_channel.py | 2 ++ 6 files changed, 53 insertions(+), 9 deletions(-) diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index 66333c5ba..fb61d5f65 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -598,7 +598,7 @@ class PmsReservation(models.Model): elif reservation.agency_id: reservation.partner_id = reservation.agency_id else: - reservation.partner_id = False + raise ValidationError(_("Partner is requires on reservation")) @api.depends("partner_id") def _compute_partner_invoice_id(self): @@ -1389,9 +1389,14 @@ class PmsReservation(models.Model): def create(self, vals): if "folio_id" in vals: folio = self.env["pms.folio"].browse(vals["folio_id"]) - elif "partner_id" in vals: + elif "partner_id" in vals or "agency_id" in vals: folio_vals = { - "partner_id": int(vals.get("partner_id")), + "partner_id": int(vals.get("partner_id")) + if vals.get("partner_id") + else False, + "agency_id": int(vals.get("agency_id")) + if vals.get("agency_id") + else False, } # Create the folio in case of need # (To allow to create reservations direct) diff --git a/pms/tests/test_pms_folio.py b/pms/tests/test_pms_folio.py index 3d1203597..47f43094e 100644 --- a/pms/tests/test_pms_folio.py +++ b/pms/tests/test_pms_folio.py @@ -80,17 +80,18 @@ class TestPmsFolio(TestHotel): } ) + folio = PmsFolio.create( + { + "agency_id": agency.id, + } + ) + reservation = PmsReservation.create( { "checkin": datetime.datetime.now(), "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "agency_id": agency.id, - } - ) - folio = PmsFolio.create( - { - "agency_id": agency.id, - "reservation_ids": [reservation.id], + "folio_id": folio.id, } ) diff --git a/pms/tests/test_pms_pricelist_priority.py b/pms/tests/test_pms_pricelist_priority.py index fc07803bc..41db9707b 100644 --- a/pms/tests/test_pms_pricelist_priority.py +++ b/pms/tests/test_pms_pricelist_priority.py @@ -73,6 +73,8 @@ class TestPmsPricelistRules(common.TransactionCase): } ) + self.partner1 = self.env["res.partner"].create({"name": "Carles"}) + @freeze_time("2000-01-01") def test_simple_price_without_items(self): # TEST CASE : no items applied @@ -86,6 +88,7 @@ class TestPmsPricelistRules(common.TransactionCase): "checkout": datetime.datetime.today() + datetime.timedelta(days=3), "preferred_room_id": self.room.id, "pms_property_id": self.property1.id, + "partner_id": self.partner1.id, } ) @@ -468,6 +471,7 @@ class TestPmsPricelistRules(common.TransactionCase): # ACT reservation = self.env["pms.reservation"].create( { + "partner_id": self.partner1.id, "checkin": datetime.datetime.now(), "checkout": datetime.datetime.now() + datetime.timedelta(days=3), diff --git a/pms/tests/test_pms_reservation.py b/pms/tests/test_pms_reservation.py index cb294011c..b0dbcbf95 100644 --- a/pms/tests/test_pms_reservation.py +++ b/pms/tests/test_pms_reservation.py @@ -148,6 +148,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "adults": 2, "preferred_room_id": self.room1.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r_test.flush() @@ -186,6 +187,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=2), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r_test.flush() @@ -218,6 +220,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r1.reservation_line_ids[0].room_id = self.room2.id @@ -230,6 +233,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r2.reservation_line_ids[0].room_id = self.room3.id @@ -242,6 +246,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=2), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r3.reservation_line_ids[0].room_id = self.room1.id @@ -254,6 +259,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=2), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r4.reservation_line_ids[0].room_id = self.room3.id @@ -268,6 +274,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=4), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r_test.flush() @@ -302,6 +309,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r1.reservation_line_ids[0].room_id = self.room2.id @@ -314,6 +322,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r2.reservation_line_ids[0].room_id = self.room3.id @@ -326,6 +335,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=2), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r3.reservation_line_ids[0].room_id = self.room1.id @@ -338,6 +348,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=2), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r4.reservation_line_ids[0].room_id = self.room3.id @@ -350,6 +361,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r5.reservation_line_ids[0].room_id = self.room2.id @@ -363,6 +375,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=4), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r_test.flush() @@ -402,6 +415,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r1.reservation_line_ids[0].room_id = self.room1 @@ -416,6 +430,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "adults": 2, "preferred_room_id": self.room1.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r_test.flush() @@ -443,6 +458,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=2), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r1.reservation_line_ids[0].room_id = self.room1 @@ -458,6 +474,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "adults": 2, "preferred_room_id": self.room1.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r_test.flush() @@ -485,6 +502,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r1.reservation_line_ids[0].room_id = self.room1 @@ -499,6 +517,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r2.reservation_line_ids[0].room_id = self.room2 @@ -513,6 +532,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) r3.reservation_line_ids[0].room_id = self.room3 @@ -529,6 +549,7 @@ class TestPmsReservations(TestHotel): "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "adults": 2, "room_type_id": self.room_type_double.id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) @@ -547,6 +568,7 @@ class TestPmsReservations(TestHotel): "checkin": datetime.datetime.now(), "checkout": datetime.datetime.now() + datetime.timedelta(days=1), "room_type_id": self.browse_ref("pms.pms_room_type_0").id, + "partner_id": self.env.ref("base.res_partner_12").id, } ) diff --git a/pms/tests/test_pms_room_type_availability_rules.py b/pms/tests/test_pms_room_type_availability_rules.py index d7400765a..56794c63e 100644 --- a/pms/tests/test_pms_room_type_availability_rules.py +++ b/pms/tests/test_pms_room_type_availability_rules.py @@ -118,6 +118,8 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "capacity": 1, } ) + # partner + self.partner1 = self.env["res.partner"].create({"name": "Charles"}) def create_scenario_multiproperty(self): self.create_common_scenario() @@ -199,6 +201,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "pms_property_id": self.test_property.id, "checkin": checkin, "checkout": checkout, + "partner_id": self.partner1.id, } ) @@ -459,6 +462,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "adults": 2, "room_type_id": self.test_room_type_double.id, "pricelist_id": self.test_pricelist1.id, + "partner_id": self.partner1.id, } ) @@ -493,6 +497,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "adults": 2, "room_type_id": self.test_room_type_double.id, "preferred_room_id": self.test_room1_double.id, + "partner_id": self.partner1.id, } ) @@ -504,6 +509,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "adults": 2, "room_type_id": self.test_room_type_double.id, "preferred_room_id": self.test_room2_double.id, + "partner_id": self.partner1.id, } ) @@ -521,6 +527,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "adults": 2, "room_type_id": self.test_room_type_double.id, "pricelist_id": self.test_pricelist1.id, + "partner_id": self.partner1.id, } ) @@ -552,6 +559,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "adults": 2, "room_type_id": self.test_room_type_double.id, "pricelist_id": self.test_pricelist1.id, + "partner_id": self.partner1.id, } ) r1.flush() @@ -567,6 +575,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "adults": 2, "room_type_id": self.test_room_type_double.id, "pricelist_id": self.test_pricelist1.id, + "partner_id": self.partner1.id, } ) @@ -603,6 +612,7 @@ class TestPmsRoomTypeAvailabilityRules(TestHotel): "adults": 2, "room_type_id": self.test_room_type_double.id, "pricelist_id": self.test_pricelist1.id, + "partner_id": self.partner1.id, } ) diff --git a/pms/tests/test_pms_sale_channel.py b/pms/tests/test_pms_sale_channel.py index d9e5ea937..1cab21ead 100644 --- a/pms/tests/test_pms_sale_channel.py +++ b/pms/tests/test_pms_sale_channel.py @@ -32,11 +32,13 @@ class TestPmsSaleChannel(TestHotel): PmsSaleChannel = self.env["pms.sale.channel"] # ACT salechannel = PmsSaleChannel.create({"channel_type": "direct"}) + partner1 = self.env["res.partner"].create({"name": "partner1"}) reservation = PmsReservation.create( { "checkin": datetime.datetime.now(), "checkout": datetime.datetime.now() + datetime.timedelta(days=3), "channel_type_id": salechannel.id, + "partner_id": partner1.id, } ) # ASSERT