From 86056dd6fc3d4f2aeae25dcf961b1b78d0d71740 Mon Sep 17 00:00:00 2001 From: Sara Lago Date: Fri, 7 Jan 2022 10:17:06 +0100 Subject: [PATCH] [IMP] pms_api_rest: add post reservations --- .../datamodels/pms_reservation_info.py | 15 ++++---- pms_api_rest/services/folio_services.py | 35 +++++++++++++++++-- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/pms_api_rest/datamodels/pms_reservation_info.py b/pms_api_rest/datamodels/pms_reservation_info.py index c36e7f872..ade4d7226 100644 --- a/pms_api_rest/datamodels/pms_reservation_info.py +++ b/pms_api_rest/datamodels/pms_reservation_info.py @@ -6,21 +6,20 @@ from odoo.addons.datamodel.core import Datamodel class PmsReservationInfo(Datamodel): _name = "pms.reservation.info" id = fields.Integer(required=False, allow_none=True) -<<<<<<< HEAD - price = fields.Float(required=False, allow_none=True) - checkin = fields.String(required=False, allow_none=True) - checkout = fields.String(required=False, allow_none=True) -======= partner = fields.String(required=False, allow_none=True) name = fields.String(required=False, allow_none=True) checkin = fields.String(required=False, allow_none=True) checkout = fields.String(required=False, allow_none=True) - roomTypeId = fields.String(required=False, allow_none=True) + roomTypeId = fields.Integer(required=False, allow_none=True) + roomTypeName = fields.String(required=False, allow_none=True) preferredRoomId = fields.String(required=False, allow_none=True) priceTotal = fields.Float(required=False, allow_none=True) priceOnlyServices = fields.Float(required=False, allow_none=True) priceOnlyRoom = fields.Float(required=False, allow_none=True) - pricelist = fields.String(required=False, allow_none=True) + pricelistName = fields.String(required=False, allow_none=True) + pricelistId = fields.Integer(required=False, allow_none=True) services = fields.List(fields.Dict(required=False, allow_none=True)) messages = fields.List(fields.Dict(required=False, allow_none=True)) ->>>>>>> d6e6a667... [IMP] pms_api_rest: add get_reservation and get_checkin_partners + property = fields.Integer(required=False, allow_none=True) + boardServiceId = fields.Integer(required=False, allow_none=True) + channelTypeId = fields.Integer(required=False, allow_none=True) diff --git a/pms_api_rest/services/folio_services.py b/pms_api_rest/services/folio_services.py index f202d1f81..251cc06f6 100644 --- a/pms_api_rest/services/folio_services.py +++ b/pms_api_rest/services/folio_services.py @@ -22,6 +22,7 @@ class PmsFolioService(Component): ], input_param=Datamodel("pms.folio.search.param"), output_param=Datamodel("pms.folio.info", is_list=True), + auth="jwt_api_pms", ) def get_folios(self, folio_search_param): domain = list() @@ -123,6 +124,7 @@ class PmsFolioService(Component): ) ], output_param=Datamodel("pms.reservation.info"), + auth="jwt_api_pms", ) def get_reservation(self, folio_id, reservation_id): reservation = ( @@ -168,7 +170,7 @@ class PmsFolioService(Component): preferredRoomId=reservation.preferred_room_id.name if reservation.preferred_room_id else "", - roomTypeId=reservation.room_type_id.name + roomTypeName=reservation.room_type_id.name if reservation.room_type_id else "", name=reservation.name, @@ -177,7 +179,7 @@ class PmsFolioService(Component): if reservation.price_services else 0.0, priceOnlyRoom=reservation.price_total, - pricelist=reservation.pricelist_id.name + pricelistName=reservation.pricelist_id.name if reservation.pricelist_id else "", services=services if services else [], @@ -195,6 +197,7 @@ class PmsFolioService(Component): ) ], output_param=Datamodel("pms.checkin.partner.info", is_list=True), + auth="jwt_api_pms", ) def get_checkin_partners(self, folio_id, reservation_id): reservation = ( @@ -240,6 +243,7 @@ class PmsFolioService(Component): ) ], output_param=Datamodel("pms.payment.info", is_list=True), + auth="jwt_api_pms", ) def get_folio_payments(self, folio_id): folio = self.env["pms.folio"].sudo().search([("id", "=", folio_id)]) @@ -276,3 +280,30 @@ class PmsFolioService(Component): ) ) return payments + + @restapi.method( + [ + ( + [ + "/", + ], + "POST", + ) + ], + input_param=Datamodel("pms.reservation.info", is_list=False), + auth="jwt_api_pms", + ) + def create_reservation(self, pms_reservation_info): + reservation = self.env["pms.reservation"].sudo().create( + { + "partner_name": pms_reservation_info.partner, + "pms_property_id": pms_reservation_info.property, + "room_type_id": pms_reservation_info.roomTypeId, + "pricelist_id": pms_reservation_info.pricelistId, + "checkin": pms_reservation_info.checkin, + "checkout": pms_reservation_info.checkout, + "board_service_room_id": pms_reservation_info.boardServiceId, + "channel_type_id": pms_reservation_info.channelTypeId, + } + ) + return reservation.id