[IMP] pms_api_rest: add post reservations

This commit is contained in:
Sara Lago
2022-01-07 10:17:06 +01:00
committed by Darío Lodeiros
parent 060c93d420
commit 86056dd6fc
2 changed files with 40 additions and 10 deletions

View File

@@ -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)

View File

@@ -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