[IMP] pms-api-rest: several changes to takt into account out-of-service reservations

This commit is contained in:
Darío Lodeiros
2023-04-06 10:31:49 +02:00
parent 9f18a3e642
commit 0c916116b2
5 changed files with 18 additions and 9 deletions

View File

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

View File

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

View File

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

View File

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

View File

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