mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[RFC]pms_api_rest: refactor in datamodels and services
This commit is contained in:
@@ -23,7 +23,7 @@ from . import pms_pricelist_item
|
||||
from . import pms_availability_plan
|
||||
from . import pms_availability_plan_rule
|
||||
|
||||
from . import pms_id_categories
|
||||
from . import pms_id_category
|
||||
from . import res_country
|
||||
from . import res_partner_category
|
||||
from . import res_city_zip
|
||||
|
||||
@@ -7,4 +7,4 @@ class PmsAccountJournalInfo(Datamodel):
|
||||
_name = "pms.account.journal.info"
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
name = fields.String(required=False, allow_none=True)
|
||||
allowedPmsPayments = fields.Boolean(required=False, allow_none=True)
|
||||
allowedPayments = fields.Boolean(required=False, allow_none=True)
|
||||
|
||||
@@ -12,3 +12,4 @@ class PmsAgencyInfo(Datamodel):
|
||||
_name = "pms.agency.info"
|
||||
id = fields.Integer(required=True, allow_none=False)
|
||||
name = fields.String(required=True, allow_none=False)
|
||||
image = fields.String(required=False, allow_none=True)
|
||||
|
||||
@@ -13,4 +13,5 @@ class PmsAmenityInfo(Datamodel):
|
||||
_name = "pms.amenity.info"
|
||||
id = fields.Integer(required=True, allow_none=False)
|
||||
name = fields.String(required=True, allow_none=False)
|
||||
amenityTypeId = fields.Integer(required=True, allow_none=False)
|
||||
defaultCode = fields.String(required=False, allow_none=True)
|
||||
amenityTypeId = fields.Integer(required=False, allow_none=True)
|
||||
|
||||
@@ -5,7 +5,7 @@ from odoo.addons.datamodel.core import Datamodel
|
||||
|
||||
class PmsBoardServiceLineSearchParam(Datamodel):
|
||||
_name = "pms.board.service.line.search.param"
|
||||
pmsBoarServiceId = fields.Integer(required=True, allow_none=False)
|
||||
boardServiceId = fields.Integer(required=True, allow_none=False)
|
||||
|
||||
|
||||
class PmsBoardServiceLineInfo(Datamodel):
|
||||
|
||||
@@ -30,5 +30,6 @@ class PmsFolioShortInfo(Datamodel):
|
||||
partnerPhone = fields.String(required=False, allow_none=True)
|
||||
partnerEmail = fields.String(required=False, allow_none=True)
|
||||
amountTotal = fields.Float(required=False, allow_none=True)
|
||||
paymentState = fields.String(required=False, allow_none=True)
|
||||
paymentStateCode = fields.String(required=False, allow_none=True)
|
||||
paymentStateDescription = fields.String(required=False, allow_none=True)
|
||||
reservations = fields.List(fields.Dict(required=False, allow_none=True))
|
||||
|
||||
@@ -3,7 +3,7 @@ from marshmallow import fields
|
||||
from odoo.addons.datamodel.core import Datamodel
|
||||
|
||||
|
||||
class PmsIdCategoriesInfo(Datamodel):
|
||||
_name = "pms.id.categories.info"
|
||||
class PmsIdCategoryInfo(Datamodel):
|
||||
_name = "pms.id.category.info"
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
documentType = fields.String(required=False, allow_none=True)
|
||||
@@ -8,5 +8,4 @@ class PmsPaymentInfo(Datamodel):
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
amount = fields.Float(required=False, allow_none=True)
|
||||
journalId = fields.Integer(required=False, allow_none=True)
|
||||
journalName = fields.String(required=False, allow_none=True)
|
||||
date = fields.String(required=False, allow_none=True)
|
||||
|
||||
@@ -7,4 +7,6 @@ class PmsPricelistInfo(Datamodel):
|
||||
_name = "pms.pricelist.info"
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
name = fields.String(required=False, allow_none=True)
|
||||
cancelationRuleId = fields.Integer(required=False, allow_none=True)
|
||||
defaultAvailabilityPlanId = fields.Integer(required=False, allow_none=True)
|
||||
pmsPropertyIds = fields.List(fields.Integer(required=False, allow_none=True))
|
||||
|
||||
@@ -14,7 +14,6 @@ class PmsPropertyInfo(Datamodel):
|
||||
name = fields.String(required=False, allow_none=True)
|
||||
company = fields.String(required=False, allow_none=True)
|
||||
defaultPricelistId = fields.Integer(required=False, allow_none=True)
|
||||
defaultAvailabilityPlanId = fields.Integer(required=False, allow_none=True)
|
||||
colorOptionConfig = fields.String(required=False, allow_none=True)
|
||||
preReservationColor = fields.String(required=False, allow_none=True)
|
||||
confirmedReservationColor = fields.String(required=False, allow_none=True)
|
||||
|
||||
@@ -6,17 +6,18 @@ from odoo.addons.datamodel.core import Datamodel
|
||||
class PmsReservationShortInfo(Datamodel):
|
||||
_name = "pms.reservation.short.info"
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
boardServiceName = fields.String(required=False, allow_none=True)
|
||||
boardServiceId = fields.Integer(required=False, allow_none=True)
|
||||
checkin = fields.String(required=False, allow_none=True)
|
||||
checkout = fields.String(required=False, allow_none=True)
|
||||
roomTypeName = fields.String(required=False, allow_none=True)
|
||||
preferredRoomShortName = fields.String(required=False, allow_none=True)
|
||||
roomTypeId = fields.Integer(required=False, allow_none=True)
|
||||
preferredRoomId = fields.Integer(required=False, allow_none=True)
|
||||
adults = fields.Integer(required=False, allow_none=True)
|
||||
state = fields.String(required=False, allow_none=True)
|
||||
stateCode = fields.String(required=False, allow_none=True)
|
||||
stateDescription = fields.String(required=False, allow_none=True)
|
||||
children = fields.Integer(required=False, allow_none=True)
|
||||
readyForCheckin = fields.Boolean(required=False, allow_none=True)
|
||||
allowedCheckout = fields.Boolean(required=False, allow_none=True)
|
||||
isSplitted = fields.Boolean(required=False, allow_none=True)
|
||||
splitted = fields.Boolean(required=False, allow_none=True)
|
||||
priceTotal = fields.Float(required=False, allow_none=True)
|
||||
servicesCount = fields.Integer(required=False, allow_none=True)
|
||||
|
||||
@@ -26,6 +27,7 @@ class PmsReservationInfo(Datamodel):
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
name = fields.String(required=False, allow_none=True)
|
||||
folioId = fields.Integer(required=False, allow_none=True)
|
||||
folioSequence = fields.Integer(required=False, allow_none=True)
|
||||
partnerName = fields.String(required=False, allow_none=True)
|
||||
boardServiceId = fields.Integer(required=False, allow_none=True)
|
||||
saleChannelId = fields.Integer(required=False, allow_none=True)
|
||||
@@ -42,7 +44,8 @@ class PmsReservationInfo(Datamodel):
|
||||
adults = fields.Integer(required=False, allow_none=True)
|
||||
overbooking = fields.Boolean(required=False, allow_none=True)
|
||||
externalReference = fields.String(required=False, allow_none=True)
|
||||
state = fields.String(required=False, allow_none=True)
|
||||
stateCode = fields.String(required=False, allow_none=True)
|
||||
stateDescription = fields.String(required=False, allow_none=True)
|
||||
children = fields.Integer(required=False, allow_none=True)
|
||||
readyForCheckin = fields.Boolean(required=False, allow_none=True)
|
||||
allowedCheckout = fields.Boolean(required=False, allow_none=True)
|
||||
|
||||
@@ -7,7 +7,7 @@ class PmsServiceLineInfo(Datamodel):
|
||||
_name = "pms.service.line.info"
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
isBoardService = fields.Boolean(required=False, allow_none=True)
|
||||
productId = fields.Integer(required=False,allow_none=True)
|
||||
productId = fields.Integer(required=False, allow_none=True)
|
||||
date = fields.String(required=False, allow_none=True)
|
||||
priceUnit = fields.Float(required=False, allow_none=True)
|
||||
priceTotal = fields.Float(required=False, allow_none=True)
|
||||
|
||||
@@ -10,13 +10,13 @@ from . import pms_property_service
|
||||
from . import pms_login_service
|
||||
from . import pms_pricelist_service
|
||||
from . import pms_availability_plan_service
|
||||
from . import pms_id_categories_service
|
||||
from . import pms_id_category_service
|
||||
from . import res_country_service
|
||||
from . import res_partner_category_service
|
||||
from . import res_city_zip_service
|
||||
from . import pms_room_type_class_service
|
||||
from . import pms_ubication_service
|
||||
from . import pms_extra_beds_service
|
||||
from . import pms_extra_bed_service
|
||||
|
||||
from . import pms_amenity_service
|
||||
from . import pms_amenity_type_service
|
||||
|
||||
@@ -39,6 +39,9 @@ class PmsAgencyService(Component):
|
||||
PmsAgencyInfo(
|
||||
id=agency.id,
|
||||
name=agency.name,
|
||||
image=agency.image_1024.decode("utf-8")
|
||||
if agency.image_1024
|
||||
else None,
|
||||
)
|
||||
)
|
||||
return result_agencies
|
||||
@@ -66,7 +69,8 @@ class PmsAgencyService(Component):
|
||||
PmsAgencieInfo = self.env.datamodels["pms.agency.info"]
|
||||
return PmsAgencieInfo(
|
||||
id=agency.id,
|
||||
name=agency.name,
|
||||
name=agency.name if agency.name else None,
|
||||
image=agency.image_1024.decode("utf-8") if agency.image_1024 else None,
|
||||
)
|
||||
else:
|
||||
raise MissingError(_("Agency not found"))
|
||||
|
||||
@@ -72,8 +72,10 @@ class PmsAmenityService(Component):
|
||||
return PmsAmenityInfo(
|
||||
id=amenity.id,
|
||||
name=amenity.name,
|
||||
defaultCode=amenity.default_code,
|
||||
pmsAmenityTypeId=amenity.pms_amenity_type_id.id,
|
||||
defaultCode=amenity.default_code if amenity.default_code else None,
|
||||
amenityTypeId=amenity.pms_amenity_type_id.id
|
||||
if amenity.pms_amenity_type_id
|
||||
else None,
|
||||
)
|
||||
else:
|
||||
raise MissingError(_("Amenity not found"))
|
||||
|
||||
@@ -86,7 +86,9 @@ class PmsAvailabilityPlanService(Component):
|
||||
)
|
||||
if not record_availability_plan_id:
|
||||
raise MissingError
|
||||
PmsAvailabilityPlanInfo = self.env.datamodels["pms.availability.plan.rule.info"]
|
||||
PmsAvailabilityPlanRuleInfo = self.env.datamodels[
|
||||
"pms.availability.plan.rule.info"
|
||||
]
|
||||
rooms = self.env["pms.room"].search(
|
||||
[
|
||||
(
|
||||
@@ -121,7 +123,7 @@ class PmsAvailabilityPlanService(Component):
|
||||
]
|
||||
)
|
||||
if rule:
|
||||
availability_plan_rule_info = PmsAvailabilityPlanInfo(
|
||||
availability_plan_rule_info = PmsAvailabilityPlanRuleInfo(
|
||||
roomTypeId=room_type.id,
|
||||
date=datetime.combine(date, datetime.min.time()).isoformat(),
|
||||
availabilityRuleId=rule.id,
|
||||
|
||||
@@ -9,7 +9,7 @@ from odoo.addons.component.core import Component
|
||||
class PmsBoardServiceService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.board.service.line.service"
|
||||
_usage = "board-service-line"
|
||||
_usage = "board-service-lines"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
@@ -27,12 +27,12 @@ class PmsBoardServiceService(Component):
|
||||
)
|
||||
def get_board_service_lines(self, board_service_lines_search_param):
|
||||
domain = []
|
||||
if board_service_lines_search_param.pmsBoardServiceId:
|
||||
if board_service_lines_search_param.boardServiceId:
|
||||
domain.append(
|
||||
(
|
||||
"pms_board_service_room_type_id",
|
||||
"=",
|
||||
board_service_lines_search_param.pmsBoardServiceId,
|
||||
board_service_lines_search_param.boardServiceId,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ from odoo.addons.component.core import Component
|
||||
class PmsBoardServiceService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.board.service.service"
|
||||
_usage = "board-service"
|
||||
_usage = "board-services"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
|
||||
@@ -7,7 +7,7 @@ from odoo.addons.component.core import Component
|
||||
|
||||
class PmsCalendarService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.private.services"
|
||||
_name = "pms.private.service"
|
||||
_usage = "calendar"
|
||||
_collection = "pms.services"
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ from odoo.addons.component.core import Component
|
||||
class PmsCancelationRuleService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.cancelation.rule.service"
|
||||
_usage = "cancelation-rule"
|
||||
_usage = "cancelation-rules"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
|
||||
@@ -3,7 +3,7 @@ from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||
from odoo.addons.component.core import Component
|
||||
|
||||
|
||||
class PmsExtraBedsService(Component):
|
||||
class PmsExtraBedService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.extra.beds.service"
|
||||
_usage = "extra-beds"
|
||||
@@ -123,20 +123,23 @@ class PmsFolioService(Component):
|
||||
"checkout": datetime.combine(
|
||||
reservation.checkout, datetime.min.time()
|
||||
).isoformat(),
|
||||
"preferredRoomShortName": reservation.preferred_room_id.short_name
|
||||
"preferredRoomId": reservation.preferred_room_id.id
|
||||
if reservation.preferred_room_id
|
||||
else None,
|
||||
"roomTypeId": reservation.room_type_id.id
|
||||
if reservation.room_type_id
|
||||
else None,
|
||||
"adults": reservation.adults,
|
||||
"pricelistName": reservation.pricelist_id.name,
|
||||
"saleChannel": reservation.channel_type_id.name
|
||||
"pricelistId": reservation.pricelist_id.id
|
||||
if reservation.pricelist_id
|
||||
else None,
|
||||
"saleChannelId": reservation.channel_type_id.id
|
||||
if reservation.channel_type_id
|
||||
else None,
|
||||
"agency": reservation.agency_id.name
|
||||
"agencyId": reservation.agency_id.id
|
||||
if reservation.agency_id
|
||||
else None,
|
||||
"agencyImage": reservation.agency_id.image_1024.decode("utf-8")
|
||||
if reservation.agency_id and reservation.agency_id.image_1024
|
||||
else None,
|
||||
"splitted": reservation.splitted,
|
||||
}
|
||||
)
|
||||
result_folios.append(
|
||||
@@ -147,13 +150,12 @@ class PmsFolioService(Component):
|
||||
partnerEmail=folio.email if folio.email else None,
|
||||
amountTotal=folio.amount_total,
|
||||
reservations=[] if not reservations else reservations,
|
||||
paymentState=dict(
|
||||
paymentStateCode=folio.payment_state,
|
||||
paymentStateDescription=dict(
|
||||
folio.fields_get(["payment_state"])["payment_state"][
|
||||
"selection"
|
||||
]
|
||||
)[folio.payment_state]
|
||||
if folio.payment_state
|
||||
else None,
|
||||
)[folio.payment_state],
|
||||
)
|
||||
)
|
||||
return result_folios
|
||||
@@ -174,7 +176,8 @@ class PmsFolioService(Component):
|
||||
def get_folio_payments(self, folio_id, pms_search_param):
|
||||
domain = list()
|
||||
domain.append(("id", "=", folio_id))
|
||||
domain.append(("pms_property_id", "=", pms_search_param.pmsPropertyId))
|
||||
if pms_search_param.pmsPropertyId:
|
||||
domain.append(("pms_property_id", "=", pms_search_param.pmsPropertyId))
|
||||
folio = self.env["pms.folio"].search(domain)
|
||||
payments = []
|
||||
PmsPaymentInfo = self.env.datamodels["pms.payment.info"]
|
||||
@@ -191,9 +194,10 @@ class PmsFolioService(Component):
|
||||
PmsPaymentInfo(
|
||||
id=payment.id,
|
||||
amount=payment.amount,
|
||||
journalId=payment.journal_id,
|
||||
journalName=payment.journal_id.name,
|
||||
date=str(payment.date),
|
||||
journalId=payment.journal_id.id,
|
||||
date=datetime.combine(
|
||||
payment.date, datetime.min.time()
|
||||
).isoformat(),
|
||||
)
|
||||
)
|
||||
if folio.payment_ids:
|
||||
@@ -203,9 +207,10 @@ class PmsFolioService(Component):
|
||||
PmsPaymentInfo(
|
||||
id=payment.id,
|
||||
amount=payment.amount,
|
||||
journalId=payment.journal_id,
|
||||
journalName=payment.journal_id.name,
|
||||
date=str(payment.date),
|
||||
journalId=payment.journal_id.id,
|
||||
date=datetime.combine(
|
||||
payment.date, datetime.min.time()
|
||||
).isoformat(),
|
||||
)
|
||||
)
|
||||
return payments
|
||||
@@ -234,25 +239,32 @@ class PmsFolioService(Component):
|
||||
reservations.append(
|
||||
PmsReservationShortInfo(
|
||||
id=reservation.id,
|
||||
boardServiceName=reservation.board_service_room_id.pms_board_service_id.name
|
||||
or None,
|
||||
boardServiceId=reservation.board_service_room_id.id
|
||||
if reservation.board_service_room_id
|
||||
else None,
|
||||
checkin=datetime.combine(
|
||||
reservation.checkin, datetime.min.time()
|
||||
).isoformat(),
|
||||
checkout=datetime.combine(
|
||||
reservation.checkout, datetime.min.time()
|
||||
).isoformat(),
|
||||
roomTypeName=reservation.room_type_id.name or None,
|
||||
preferredRoomShortName=reservation.preferred_room_id.short_name
|
||||
or None,
|
||||
roomTypeId=reservation.room_type_id.id
|
||||
if reservation.room_type_id
|
||||
else None,
|
||||
preferredRoomId=reservation.preferred_room_id.id
|
||||
if reservation.preferred_room_id
|
||||
else None,
|
||||
adults=reservation.adults,
|
||||
state=dict(
|
||||
stateCode=reservation.state,
|
||||
stateDescription=dict(
|
||||
reservation.fields_get(["state"])["state"]["selection"]
|
||||
)[reservation.state],
|
||||
children=reservation.children or None,
|
||||
children=reservation.children
|
||||
if reservation.children
|
||||
else None,
|
||||
readyForCheckin=reservation.ready_for_checkin,
|
||||
allowedCheckout=reservation.allowed_checkout,
|
||||
isSplitted=reservation.splitted,
|
||||
splitted=reservation.splitted,
|
||||
priceTotal=reservation.price_room_services_set,
|
||||
servicesCount=len(
|
||||
reservation.service_ids.filtered(
|
||||
|
||||
@@ -3,10 +3,10 @@ from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||
from odoo.addons.component.core import Component
|
||||
|
||||
|
||||
class PmsIdCategoriesService(Component):
|
||||
class PmsIdCategoryService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.id.categories.services"
|
||||
_usage = "id_categories"
|
||||
_name = "pms.id.category.service"
|
||||
_usage = "id-categories"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
@@ -18,15 +18,15 @@ class PmsIdCategoriesService(Component):
|
||||
"GET",
|
||||
)
|
||||
],
|
||||
output_param=Datamodel("pms.id.categories.info", is_list=True),
|
||||
output_param=Datamodel("pms.id.category.info", is_list=True),
|
||||
auth="jwt_api_pms",
|
||||
)
|
||||
def get_id_categories(self):
|
||||
result_id_categories = []
|
||||
PmsIdCategoriesInfo = self.env.datamodels["pms.id.categories.info"]
|
||||
PmsIdCategoryInfo = self.env.datamodels["pms.id.category.info"]
|
||||
for id_category in self.env["res.partner.id_category"].search([]):
|
||||
result_id_categories.append(
|
||||
PmsIdCategoriesInfo(
|
||||
PmsIdCategoryInfo(
|
||||
id=id_category.id,
|
||||
documentType=id_category.name,
|
||||
)
|
||||
@@ -32,7 +32,7 @@ class PmsPartnerService(Component):
|
||||
result_partners.append(
|
||||
PmsPartnerInfo(
|
||||
id=partner.id,
|
||||
name=partner.name,
|
||||
name=partner.name if partner.name else None,
|
||||
)
|
||||
)
|
||||
return result_partners
|
||||
@@ -72,51 +72,51 @@ class PmsPartnerService(Component):
|
||||
# id=doc_number.partner_id.id,
|
||||
name=doc_number.partner_id.name
|
||||
if doc_number.partner_id.name
|
||||
else "",
|
||||
else None,
|
||||
firstname=doc_number.partner_id.firstname
|
||||
if doc_number.partner_id.firstname
|
||||
else "",
|
||||
else None,
|
||||
lastname=doc_number.partner_id.lastname
|
||||
if doc_number.partner_id.lastname
|
||||
else "",
|
||||
else None,
|
||||
lastname2=doc_number.partner_id.lastname2
|
||||
if doc_number.partner_id.lastname2
|
||||
else "",
|
||||
else None,
|
||||
email=doc_number.partner_id.email
|
||||
if doc_number.partner_id.email
|
||||
else "",
|
||||
else None,
|
||||
mobile=doc_number.partner_id.mobile
|
||||
if doc_number.partner_id.mobile
|
||||
else "",
|
||||
else None,
|
||||
documentType=doc_type.id,
|
||||
documentNumber=doc_number.name,
|
||||
documentExpeditionDate=document_expedition_date
|
||||
if doc_number.valid_from
|
||||
else "",
|
||||
else None,
|
||||
documentSupportNumber=doc_number.support_number
|
||||
if doc_number.support_number
|
||||
else "",
|
||||
else None,
|
||||
gender=doc_number.partner_id.gender
|
||||
if doc_number.partner_id.gender
|
||||
else "",
|
||||
else None,
|
||||
birthdate=birthdate_date
|
||||
if doc_number.partner_id.birthdate_date
|
||||
else "",
|
||||
else None,
|
||||
residenceStreet=doc_number.partner_id.residence_street
|
||||
if doc_number.partner_id.residence_street
|
||||
else "",
|
||||
else None,
|
||||
zip=doc_number.partner_id.residence_zip
|
||||
if doc_number.partner_id.residence_zip
|
||||
else "",
|
||||
else None,
|
||||
residenceCity=doc_number.partner_id.residence_city
|
||||
if doc_number.partner_id.residence_city
|
||||
else "",
|
||||
else None,
|
||||
nationality=doc_number.partner_id.nationality_id.id
|
||||
if doc_number.partner_id.nationality_id
|
||||
else -1,
|
||||
else None,
|
||||
countryState=doc_number.partner_id.residence_state_id.id
|
||||
if doc_number.partner_id.residence_state_id
|
||||
else -1,
|
||||
else None,
|
||||
)
|
||||
)
|
||||
return partners
|
||||
|
||||
@@ -60,6 +60,10 @@ class PmsPricelistService(Component):
|
||||
PmsPricelistInfo(
|
||||
id=pricelist.id,
|
||||
name=pricelist.name,
|
||||
cancellationPolicyId=pricelist.cancelation_rule_id.id
|
||||
if pricelist.cancelation_rule_id
|
||||
else None,
|
||||
defaultAvailabilityPlanId=pricelist.availability_plan_id.id,
|
||||
pmsPropertyIds=pricelist.pms_property_ids.mapped("id"),
|
||||
)
|
||||
)
|
||||
|
||||
@@ -32,9 +32,7 @@ class PmsPropertyService(Component):
|
||||
PmsPropertyInfo(
|
||||
id=prop.id,
|
||||
name=prop.name,
|
||||
company=prop.company_id.name,
|
||||
defaultPricelistId=prop.default_pricelist_id.id,
|
||||
defaultAvailabilityPlanId=prop.default_pricelist_id.availability_plan_id.id,
|
||||
colorOptionConfig=prop.color_option_config,
|
||||
preReservationColor=prop.pre_reservation_color,
|
||||
confirmedReservationColor=prop.confirmed_reservation_color,
|
||||
@@ -66,7 +64,6 @@ class PmsPropertyService(Component):
|
||||
)
|
||||
def get_property(self, property_id):
|
||||
pms_property = self.env["pms.property"].search([("id", "=", property_id)])
|
||||
default_avail = pms_property.default_pricelist_id.availability_plan_id.id
|
||||
res = []
|
||||
PmsPropertyInfo = self.env.datamodels["pms.property.info"]
|
||||
if not pms_property:
|
||||
@@ -77,7 +74,6 @@ class PmsPropertyService(Component):
|
||||
name=pms_property.name,
|
||||
company=pms_property.company_id.name,
|
||||
defaultPricelistId=pms_property.default_pricelist_id.id,
|
||||
defaultAvailabilityPlanId=default_avail,
|
||||
colorOptionConfig=pms_property.color_option_config,
|
||||
preReservationColor=pms_property.pre_reservation_color,
|
||||
confirmedReservationColor=pms_property.confirmed_reservation_color,
|
||||
@@ -120,7 +116,7 @@ class PmsPropertyService(Component):
|
||||
PmsAccountJournalInfo(
|
||||
id=payment_method.id,
|
||||
name=payment_method.name,
|
||||
allowedPmsPayments=payment_method.allowed_pms_payments,
|
||||
allowedPayments=payment_method.allowed_pms_payments,
|
||||
)
|
||||
)
|
||||
return res
|
||||
|
||||
@@ -38,20 +38,6 @@ class PmsReservationService(Component):
|
||||
if not reservation:
|
||||
pass
|
||||
else:
|
||||
# services = []
|
||||
# for service in reservation.service_ids:
|
||||
# if service.is_board_service:
|
||||
# services.append(
|
||||
# {
|
||||
# "id": service.id,
|
||||
# "name": service.name,
|
||||
# "quantity": service.product_qty,
|
||||
# "priceTotal": service.price_total,
|
||||
# "priceSubtotal": service.price_subtotal,
|
||||
# "priceTaxes": service.price_tax,
|
||||
# "discount": service.discount,
|
||||
# }
|
||||
# )
|
||||
# messages = []
|
||||
# import re
|
||||
|
||||
@@ -69,10 +55,15 @@ class PmsReservationService(Component):
|
||||
id=reservation.id,
|
||||
name=reservation.name,
|
||||
folioId=reservation.folio_id.id,
|
||||
folioSequence=reservation.folio_sequence,
|
||||
partnerName=reservation.partner_name,
|
||||
boardServiceId=reservation.board_service_room_id.id or None,
|
||||
saleChannelId=reservation.channel_type_id.id or None,
|
||||
agencyId=reservation.agency_id.id or None,
|
||||
boardServiceId=reservation.board_service_room_id.id
|
||||
if reservation.board_service_room_id
|
||||
else None,
|
||||
saleChannelId=reservation.channel_type_id.id
|
||||
if reservation.channel_type_id
|
||||
else None,
|
||||
agencyId=reservation.agency_id.id if reservation.agency_id else None,
|
||||
checkin=datetime.combine(
|
||||
reservation.checkin, datetime.min.time()
|
||||
).isoformat(),
|
||||
@@ -81,16 +72,25 @@ class PmsReservationService(Component):
|
||||
).isoformat(),
|
||||
arrivalHour=reservation.arrival_hour,
|
||||
departureHour=reservation.departure_hour,
|
||||
roomTypeId=reservation.room_type_id.id or None,
|
||||
preferredRoomId=reservation.preferred_room_id.id or None,
|
||||
pricelistId=reservation.pricelist_id.id,
|
||||
adults=reservation.adults,
|
||||
roomTypeId=reservation.room_type_id.id
|
||||
if reservation.room_type_id
|
||||
else None,
|
||||
preferredRoomId=reservation.preferred_room_id.id
|
||||
if reservation.preferred_room_id
|
||||
else None,
|
||||
pricelistId=reservation.pricelist_id.id
|
||||
if reservation.pricelist_id
|
||||
else None,
|
||||
adults=reservation.adults if reservation.adults else None,
|
||||
overbooking=reservation.overbooking,
|
||||
externalReference=reservation.external_reference or None,
|
||||
state=dict(reservation.fields_get(["state"])["state"]["selection"])[
|
||||
reservation.state
|
||||
],
|
||||
children=reservation.children or None,
|
||||
externalReference=reservation.external_reference
|
||||
if reservation.external_reference
|
||||
else None,
|
||||
stateCode=reservation.state,
|
||||
stateDescription=dict(
|
||||
reservation.fields_get(["state"])["state"]["selection"]
|
||||
)[reservation.state],
|
||||
children=reservation.children if reservation.children else None,
|
||||
readyForCheckin=reservation.ready_for_checkin,
|
||||
allowedCheckout=reservation.allowed_checkout,
|
||||
isSplitted=reservation.splitted,
|
||||
@@ -101,13 +101,13 @@ class PmsReservationService(Component):
|
||||
segmentationId=reservation.segmentation_ids[0].id
|
||||
if reservation.segmentation_ids
|
||||
else None,
|
||||
cancellationPolicyId=reservation.pricelist_id.cancelation_rule_id.id
|
||||
or None,
|
||||
toAssign=reservation.to_assign,
|
||||
reservationType=reservation.reservation_type,
|
||||
priceTotal=reservation.price_room_services_set,
|
||||
discount=reservation.discount,
|
||||
commissionAmount=reservation.commission_amount or None,
|
||||
commissionAmount=reservation.commission_amount
|
||||
if reservation.commission_amount
|
||||
else None,
|
||||
priceOnlyServices=reservation.price_services,
|
||||
priceOnlyRoom=reservation.price_total,
|
||||
)
|
||||
@@ -338,46 +338,46 @@ class PmsReservationService(Component):
|
||||
name=checkin_partner.name if checkin_partner.name else "",
|
||||
firstname=checkin_partner.firstname
|
||||
if checkin_partner.firstname
|
||||
else "",
|
||||
else None,
|
||||
lastname=checkin_partner.lastname
|
||||
if checkin_partner.lastname
|
||||
else "",
|
||||
else None,
|
||||
lastname2=checkin_partner.lastname2
|
||||
if checkin_partner.lastname2
|
||||
else "",
|
||||
else None,
|
||||
email=checkin_partner.email if checkin_partner.email else "",
|
||||
mobile=checkin_partner.mobile if checkin_partner.mobile else "",
|
||||
documentType=checkin_partner.document_type.id
|
||||
if checkin_partner.document_type
|
||||
else -1,
|
||||
else None,
|
||||
documentNumber=checkin_partner.document_number
|
||||
if checkin_partner.document_number
|
||||
else "",
|
||||
else None,
|
||||
documentExpeditionDate=document_expedition_date
|
||||
if checkin_partner.document_expedition_date
|
||||
else "",
|
||||
else None,
|
||||
documentSupportNumber=checkin_partner.support_number
|
||||
if checkin_partner.support_number
|
||||
else "",
|
||||
else None,
|
||||
gender=checkin_partner.gender if checkin_partner.gender else "",
|
||||
birthdate=birthdate_date
|
||||
if checkin_partner.birthdate_date
|
||||
else "",
|
||||
else None,
|
||||
residenceStreet=checkin_partner.residence_street
|
||||
if checkin_partner.residence_street
|
||||
else "",
|
||||
else None,
|
||||
zip=checkin_partner.residence_zip
|
||||
if checkin_partner.residence_zip
|
||||
else "",
|
||||
else None,
|
||||
residenceCity=checkin_partner.residence_city
|
||||
if checkin_partner.residence_city
|
||||
else "",
|
||||
else None,
|
||||
nationality=checkin_partner.residence_country_id.id
|
||||
if checkin_partner.residence_country_id
|
||||
else -1,
|
||||
else None,
|
||||
countryState=checkin_partner.residence_state_id.id
|
||||
if checkin_partner.residence_state_id
|
||||
else -1,
|
||||
else None,
|
||||
checkinPartnerState=checkin_partner.state,
|
||||
)
|
||||
)
|
||||
|
||||
@@ -78,7 +78,9 @@ class PmsRoomService(Component):
|
||||
roomTypeClassId=room.room_type_id.class_id,
|
||||
ubicationId=room.ubication_id,
|
||||
extraBedsAllowed=room.extra_beds_allowed,
|
||||
roomAmenityIds=room.room_amenity_ids.ids,
|
||||
roomAmenityIds=room.room_amenity_ids.ids
|
||||
if room.room_amenity_ids
|
||||
else None,
|
||||
)
|
||||
)
|
||||
return result_rooms
|
||||
|
||||
@@ -6,7 +6,7 @@ from odoo.addons.component.core import Component
|
||||
class PmsRoomTypeClassService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.room.type.class.service"
|
||||
_usage = "room-type-class"
|
||||
_usage = "room-type-classes"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
|
||||
@@ -9,7 +9,7 @@ from odoo.addons.component.core import Component
|
||||
class PmsSaleChannelService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.sale.channel.service"
|
||||
_usage = "sale-channel"
|
||||
_usage = "sale-channels"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
@@ -58,7 +58,7 @@ class PmsSaleChannelService(Component):
|
||||
result_sale_channels.append(
|
||||
PmsSaleChannelInfo(
|
||||
id=sale_channel.id,
|
||||
name=sale_channel.name,
|
||||
name=sale_channel.name if sale_channel.name else None,
|
||||
)
|
||||
)
|
||||
return result_sale_channels
|
||||
@@ -83,7 +83,7 @@ class PmsSaleChannelService(Component):
|
||||
PmsSaleChannelInfo = self.env.datamodels["pms.sale.channel.info"]
|
||||
return PmsSaleChannelInfo(
|
||||
id=sale_channel.id,
|
||||
name=sale_channel.name,
|
||||
name=sale_channel.name if sale_channel else None,
|
||||
)
|
||||
else:
|
||||
raise MissingError(_("Sale Channel not found"))
|
||||
|
||||
@@ -11,7 +11,7 @@ from odoo.addons.component.core import Component
|
||||
class PmsServiceService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.reservation.line.service"
|
||||
_usage = "service"
|
||||
_usage = "services"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
@@ -27,9 +27,7 @@ class PmsServiceService(Component):
|
||||
auth="jwt_api_pms",
|
||||
)
|
||||
def get_service_lines(self, service_id):
|
||||
service = self.env["pms.service"].search(
|
||||
[("id", "=", service_id)]
|
||||
)
|
||||
service = self.env["pms.service"].search([("id", "=", service_id)])
|
||||
if not service:
|
||||
raise MissingError(_("Service not found"))
|
||||
result_service_lines = []
|
||||
@@ -49,4 +47,3 @@ class PmsServiceService(Component):
|
||||
)
|
||||
)
|
||||
return result_service_lines
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ from odoo.addons.component.core import Component
|
||||
class PmsUbicationService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "pms.ubication.service"
|
||||
_usage = "ubication"
|
||||
_usage = "ubications"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
@@ -47,15 +47,15 @@ class PmsUbicationService(Component):
|
||||
|
||||
result_ubications = []
|
||||
PmsUbicationInfo = self.env.datamodels["pms.ubication.info"]
|
||||
for room in self.env["pms.ubication"].search(
|
||||
for ubication in self.env["pms.ubication"].search(
|
||||
domain,
|
||||
):
|
||||
|
||||
result_ubications.append(
|
||||
PmsUbicationInfo(
|
||||
id=room.id,
|
||||
name=room.name,
|
||||
pmsPropertyIds=room.pms_property_ids.mapped("id"),
|
||||
id=ubication.id,
|
||||
name=ubication.name,
|
||||
pmsPropertyIds=ubication.pms_property_ids.mapped("id"),
|
||||
)
|
||||
)
|
||||
return result_ubications
|
||||
|
||||
@@ -3,10 +3,10 @@ from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||
from odoo.addons.component.core import Component
|
||||
|
||||
|
||||
class PmsIdCategoriesService(Component):
|
||||
class ResCityZipService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "res.city.zip.services"
|
||||
_usage = "zip"
|
||||
_name = "res.city.zip.service"
|
||||
_usage = "zips"
|
||||
_collection = "pms.services"
|
||||
|
||||
@restapi.method(
|
||||
|
||||
@@ -5,7 +5,7 @@ from odoo.addons.component.core import Component
|
||||
|
||||
class ResCountryService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "res.country.services"
|
||||
_name = "res.country.service"
|
||||
_usage = "countries"
|
||||
_collection = "pms.services"
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||
from odoo.addons.component.core import Component
|
||||
|
||||
|
||||
class PmsIdCategoriesService(Component):
|
||||
class PmsPartnerCategoriesService(Component):
|
||||
_inherit = "base.rest.service"
|
||||
_name = "res.partner.category.services"
|
||||
_name = "res.partner.category.service"
|
||||
_usage = "segmentations"
|
||||
_collection = "pms.services"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user