mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] pms_api_rest: add post reservations
This commit is contained in:
committed by
Darío Lodeiros
parent
060c93d420
commit
86056dd6fc
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user