From 236a25e6033519cf3cf733a1f5ec7d1af50130b4 Mon Sep 17 00:00:00 2001 From: miguelpadin Date: Wed, 23 Nov 2022 16:40:02 +0100 Subject: [PATCH] [FIX] pms-api-rest: update folio @ folio service to add reservations --- pms_api_rest/services/pms_folio_service.py | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/pms_api_rest/services/pms_folio_service.py b/pms_api_rest/services/pms_folio_service.py index f0598e703..c905c0c68 100644 --- a/pms_api_rest/services/pms_folio_service.py +++ b/pms_api_rest/services/pms_folio_service.py @@ -53,6 +53,14 @@ class PmsFolioService(Component): if folio.internal_comment else None, invoiceStatus=folio.invoice_status, + pricelistId=folio.pricelist_id if folio.pricelist_id else None, + saleChannelId=folio.sale_channel_origin_id + if folio.sale_channel_origin_id + else None, + agencyId=folio.agency_id if folio.agency_id else None, + externalReference=folio.external_reference + if folio.external_reference + else None, ) else: raise MissingError(_("Folio not found")) @@ -508,6 +516,43 @@ class PmsFolioService(Component): reservation.confirm() if pms_folio_info.internalComment is not None: folio_vals["internal_comment"]: pms_folio_info.internalComment + for reservation in pms_folio_info.reservations: + vals = { + "folio_id": folio.id, + "room_type_id": reservation.roomTypeId, + "checkin": reservation.checkin, + "checkout": reservation.checkout, + "pms_property_id": pms_folio_info.pmsPropertyId, + "pricelist_id": pms_folio_info.pricelistId, + "external_reference": pms_folio_info.externalReference, + "board_service_room_id": reservation.boardServiceId, + "preferred_room_id": reservation.preferredRoomId, + "adults": reservation.adults, + "reservation_type": pms_folio_info.reservationType, + "children": reservation.children, + } + reservation_record = self.env["pms.reservation"].create(vals) + if reservation.services: + for service in reservation.services: + vals = { + "product_id": service.productId, + "reservation_id": reservation_record.id, + "is_board_service": False, + "service_line_ids": [ + ( + 0, + False, + { + "date": line.date, + "price_unit": line.priceUnit, + "discount": line.discount or 0, + "day_qty": line.quantity, + }, + ) + for line in service.serviceLines + ], + } + self.env["pms.service"].create(vals) if folio_vals: folio.write(folio_vals)