diff --git a/pms_api_rest/datamodels/pms_calendar.py b/pms_api_rest/datamodels/pms_calendar.py index 9e54796ae..7b7483fad 100644 --- a/pms_api_rest/datamodels/pms_calendar.py +++ b/pms_api_rest/datamodels/pms_calendar.py @@ -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) diff --git a/pms_api_rest/datamodels/pms_folio.py b/pms_api_rest/datamodels/pms_folio.py index 75375556b..9efb69ea3 100644 --- a/pms_api_rest/datamodels/pms_folio.py +++ b/pms_api_rest/datamodels/pms_folio.py @@ -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) diff --git a/pms_api_rest/datamodels/pms_reservation.py b/pms_api_rest/datamodels/pms_reservation.py index 0c69fbb48..b139b37aa 100644 --- a/pms_api_rest/datamodels/pms_reservation.py +++ b/pms_api_rest/datamodels/pms_reservation.py @@ -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) diff --git a/pms_api_rest/services/pms_calendar_service.py b/pms_api_rest/services/pms_calendar_service.py index 47245b405..2e9b33763 100644 --- a/pms_api_rest/services/pms_calendar_service.py +++ b/pms_api_rest/services/pms_calendar_service.py @@ -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 diff --git a/pms_api_rest/services/pms_folio_service.py b/pms_api_rest/services/pms_folio_service.py index 3c8376214..db5cc2b78 100644 --- a/pms_api_rest/services/pms_folio_service.py +++ b/pms_api_rest/services/pms_folio_service.py @@ -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 = {