mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] pms-api-rest: several changes to takt into account out-of-service reservations
This commit is contained in:
@@ -64,10 +64,9 @@ class PmsCalendarInfo(Datamodel):
|
||||
pendingPayment = fields.Float(required=False, allow_none=True)
|
||||
numNotifications = fields.Integer(required=False, allow_none=True)
|
||||
adults = fields.Integer(required=False, allow_none=True)
|
||||
hasNextLine = fields.Boolean(required=False, allow_none=True)
|
||||
nextLineSplitted = fields.Boolean(required=False, allow_none=True)
|
||||
previousLineSplitted = fields.Boolean(required=False, allow_none=True)
|
||||
closureReason = fields.String(required=False, allow_none=True)
|
||||
closureReasonId = fields.Number(required=False, allow_none=True)
|
||||
priceDayTotal = fields.Number(required=False, allow_none=True)
|
||||
priceDayTotalServices = fields.Number(required=False, allow_none=True)
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ class PmsFolioInfo(Datamodel):
|
||||
agencyId = fields.Integer(required=False, allow_none=True)
|
||||
externalReference = fields.String(required=False, allow_none=True)
|
||||
closureReasonId = fields.Integer(required=False, allow_none=True)
|
||||
outOfServiceDescription = fields.String(required=False, allow_none=True)
|
||||
preconfirm = fields.Boolean(required=False, allow_none=True)
|
||||
internalComment = fields.String(required=False, allow_none=True)
|
||||
# REVIEW: Mail workflow folio
|
||||
@@ -53,3 +54,5 @@ class PmsFolioShortInfo(Datamodel):
|
||||
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))
|
||||
reservationType = fields.String(required=False, allow_none=True)
|
||||
closureReasonId = fields.Integer(required=False, allow_none=True)
|
||||
|
||||
@@ -19,7 +19,7 @@ class PmsReservationShortInfo(Datamodel):
|
||||
paymentState = fields.String(required=False, allow_none=True)
|
||||
readyForCheckin = fields.Boolean(required=False, allow_none=True)
|
||||
allowedCheckout = fields.Boolean(required=False, allow_none=True)
|
||||
splitted = fields.Boolean(required=False, allow_none=True)
|
||||
isSplitted = fields.Boolean(required=False, allow_none=True)
|
||||
priceTotal = fields.Float(required=False, allow_none=True)
|
||||
servicesCount = fields.Integer(required=False, allow_none=True)
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ class PmsCalendarService(Component):
|
||||
"folio_pending_amount": "folio.pending_amount",
|
||||
"adults": "reservation.adults",
|
||||
"price_day_total": "night.price_day_total",
|
||||
"closure_reason_id": "folio.closure_reason_id",
|
||||
# "price_day_total_services": subselect_sum_services_price,
|
||||
}
|
||||
selected_fields_sql = list(selected_fields_mapper.values())
|
||||
@@ -149,10 +150,7 @@ class PmsCalendarService(Component):
|
||||
adults=line["adults"],
|
||||
nextLineSplitted=next_line_splitted,
|
||||
previousLineSplitted=previous_line_splitted,
|
||||
hasNextLine=not is_last_night, # REVIEW: redundant with isLastNight?
|
||||
closureReason=line[
|
||||
"partner_name"
|
||||
], # REVIEW: is necesary closure_reason_id?
|
||||
closureReasonId=line["closure_reason_id"],
|
||||
)
|
||||
)
|
||||
return result_lines
|
||||
|
||||
@@ -61,6 +61,10 @@ class PmsFolioService(Component):
|
||||
externalReference=folio.external_reference
|
||||
if folio.external_reference
|
||||
else None,
|
||||
closureReasonId=folio.closure_reason_id,
|
||||
outOfServiceDescription=folio.out_service_description
|
||||
if folio.out_service_description
|
||||
else None,
|
||||
)
|
||||
else:
|
||||
raise MissingError(_("Folio not found"))
|
||||
@@ -156,7 +160,7 @@ class PmsFolioService(Component):
|
||||
"agencyId": reservation.agency_id.id
|
||||
if reservation.agency_id
|
||||
else None,
|
||||
"splitted": reservation.splitted,
|
||||
"isSplitted": reservation.splitted,
|
||||
}
|
||||
)
|
||||
result_folios.append(
|
||||
@@ -173,6 +177,8 @@ class PmsFolioService(Component):
|
||||
"selection"
|
||||
]
|
||||
)[folio.payment_state],
|
||||
reservationType=folio.reservation_type,
|
||||
closureReasonId=folio.closure_reason_id,
|
||||
)
|
||||
)
|
||||
return result_folios
|
||||
@@ -370,7 +376,7 @@ class PmsFolioService(Component):
|
||||
else None,
|
||||
readyForCheckin=reservation.ready_for_checkin,
|
||||
allowedCheckout=reservation.allowed_checkout,
|
||||
splitted=reservation.splitted,
|
||||
isSplitted=reservation.splitted,
|
||||
priceTotal=round(reservation.price_room_services_set, 2),
|
||||
servicesCount=sum(
|
||||
reservation.service_ids.filtered(
|
||||
@@ -400,6 +406,9 @@ class PmsFolioService(Component):
|
||||
"pms_property_id": pms_folio_info.pmsPropertyId,
|
||||
"reservation_type": pms_folio_info.reservationType,
|
||||
"closure_reason_id": pms_folio_info.closureReasonId,
|
||||
"out_service_description": pms_folio_info.outOfServiceDescription
|
||||
if pms_folio_info.outOfServiceDescription
|
||||
else None,
|
||||
}
|
||||
else:
|
||||
vals = {
|
||||
|
||||
Reference in New Issue
Block a user