From f904489e6269009ddd960cfa4ba41d7b9e13e2e7 Mon Sep 17 00:00:00 2001 From: Sara Lago Date: Fri, 6 Aug 2021 09:41:52 +0200 Subject: [PATCH] [IMP] pms_api_rest: add cancellation flow and more --- pms_api_rest/controllers/pms_rest.py | 1 + .../datamodels/pms_reservation_short_info.py | 10 +++++- pms_api_rest/services/reservation_services.py | 32 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/pms_api_rest/controllers/pms_rest.py b/pms_api_rest/controllers/pms_rest.py index 0c914527b..1669215d0 100644 --- a/pms_api_rest/controllers/pms_rest.py +++ b/pms_api_rest/controllers/pms_rest.py @@ -1,4 +1,5 @@ from odoo.addons.base_rest.controllers import main + from ..lib_jwt.jwt_http import jwt_http from ..lib_jwt.validator import validator diff --git a/pms_api_rest/datamodels/pms_reservation_short_info.py b/pms_api_rest/datamodels/pms_reservation_short_info.py index db0555842..71f9d886e 100644 --- a/pms_api_rest/datamodels/pms_reservation_short_info.py +++ b/pms_api_rest/datamodels/pms_reservation_short_info.py @@ -14,4 +14,12 @@ class PmsReservationShortInfo(Datamodel): roomTypeId = fields.String(required=True, allow_none=False) name = fields.String(required=True, allow_none=False) partnerRequests = fields.String(required=False, allow_none=True) - pwaActionButtons = fields.Dict(required=False, allow_none=True) + state = fields.String(required=True, allow_none=False) + priceTotal = fields.Float(required=True, allow_none=True) + adults = fields.Integer(required=True, allow_none=False) + channelTypeId = fields.String(required=False, allow_none=True) + agencyId = fields.String(required=False, allow_none=True) + boardServiceId = fields.String(required=False, allow_none=True) + checkinsRatio = fields.Float(required=True, allow_none=False) + outstanding = fields.Float(required=True, allow_none=False) + pwaActionButtons = fields.Dict(required=True, allow_none=False) diff --git a/pms_api_rest/services/reservation_services.py b/pms_api_rest/services/reservation_services.py index 71f20c567..e61ab368d 100644 --- a/pms_api_rest/services/reservation_services.py +++ b/pms_api_rest/services/reservation_services.py @@ -55,9 +55,41 @@ class PmsReservationService(Component): partnerRequests=reservation.partner_requests if reservation.partner_requests else "", + state=dict(reservation.fields_get(["state"])["state"]["selection"])[ + reservation.state + ], + priceTotal=reservation.price_total, + adults=reservation.adults, + channelTypeId=reservation.channel_type_id + if reservation.channel_type_id + else "", + agencyId=reservation.agency_id if reservation.agency_id else "", + boardServiceId=reservation.board_service_room_id.pms_board_service_id.name + if reservation.board_service_room_id + else "", + checkinsRatio=reservation.checkins_ratio, + outstanding=reservation.folio_id.pending_amount, pwaActionButtons=json.loads(reservation.pwa_action_buttons) if reservation.pwa_action_buttons else {}, ) ) return res + + @restapi.method( + [ + ( + [ + "//cancellation", + ], + "POST", + ) + ], + auth="public", + ) + def cancel_reservation(self, reservation_id): + reservation = self.env["pms.reservation"].search([("id", "=", reservation_id)]) + if not reservation: + pass + else: + reservation.action_cancel()