[WIP] pms-api-rest: reservation service

This commit is contained in:
miguelpadin
2021-11-03 17:41:03 +01:00
committed by Darío Lodeiros
parent 1122c3093b
commit d615fbf8b4
6 changed files with 118 additions and 0 deletions

View File

@@ -6,3 +6,7 @@ from . import pms_folio_short_info
from . import pms_room_short_info
from . import pms_room_search_param
from . import pms_partner_short_info
from . import pms_reservation_short_info

View File

@@ -0,0 +1,9 @@
from marshmallow import fields
from odoo.addons.datamodel.core import Datamodel
class PmsPartnerShortInfo(Datamodel):
_name = "pms.partner.short.info"
id = fields.Integer(required=False, allow_none=True)
name = fields.String(required=False, allow_none=True)

View File

@@ -0,0 +1,11 @@
from marshmallow import fields
from odoo.addons.datamodel.core import Datamodel
class PmsReservationShortInfo(Datamodel):
_name = "pms.reservation.short.info"
id = fields.Integer(required=False, allow_none=True)
price = fields.Float(required=False, allow_none=True)
checkin = fields.String(required=False, allow_none=True)
checkout = fields.String(required=False, allow_none=True)

View File

@@ -1,3 +1,7 @@
from . import folio_services
from . import room_services
from . import calendar_service
from . import partner_services
from . import reservation_services

View File

@@ -0,0 +1,42 @@
from odoo.addons.base_rest import restapi
from odoo.addons.base_rest_datamodel.restapi import Datamodel
from odoo.addons.component.core import Component
class PmsPartnerService(Component):
_inherit = "base.rest.service"
_name = "pms.partner.service"
_usage = "partners"
_collection = "pms.reservation.service"
@restapi.method(
[
(
[
"/",
],
"GET",
)
],
output_param=Datamodel("pms.partner.short.info", is_list=True),
auth="public",
)
def get_partners(self):
domain = []
result_partners = []
PmsPartnerShortInfo = self.env.datamodels["pms.partner.short.info"]
for partner in (
self.env["res.partner"]
.sudo()
.search(
domain,
)
):
result_partners.append(
PmsPartnerShortInfo(
id=partner.id,
name=partner.name,
)
)
return result_partners

View File

@@ -0,0 +1,48 @@
from datetime import datetime
from odoo.addons.base_rest import restapi
from odoo.addons.base_rest_datamodel.restapi import Datamodel
from odoo.addons.component.core import Component
class PmsRoomService(Component):
_inherit = "base.rest.service"
_name = "pms.reservation.service"
_usage = "reservations"
_collection = "pms.reservation.service"
@restapi.method(
[
(
[
"/",
],
"GET",
)
],
output_param=Datamodel("pms.reservation.short.info", is_list=True),
auth="public",
)
def get_reservations(self):
domain = []
result_reservations = []
PmsReservationShortInfo = self.env.datamodels["pms.reservation.short.info"]
for reservation in (
self.env["pms.reservation"]
.sudo()
.search(
domain,
)
):
print(type(reservation.checkin))
result_reservations.append(
PmsReservationShortInfo(
id=reservation.id,
price=reservation.price_subtotal,
checkin=datetime.combine(reservation.checkin, datetime.min.time()).isoformat(),
checkout=datetime.combine(reservation.checkout, datetime.min.time()).isoformat(),
)
)
return result_reservations