From f776c9dc891efa19947edadd0addfb6681c82a99 Mon Sep 17 00:00:00 2001 From: miguelpadin Date: Fri, 18 Feb 2022 09:07:02 +0000 Subject: [PATCH] [IMP] pms: add fields to planning (reserv. line) --- pms_api_rest/datamodels/pms_calendar.py | 9 +++-- pms_api_rest/services/pms_calendar_service.py | 33 +++++++++++++++++-- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/pms_api_rest/datamodels/pms_calendar.py b/pms_api_rest/datamodels/pms_calendar.py index 062a9e0ba..f9bea7052 100644 --- a/pms_api_rest/datamodels/pms_calendar.py +++ b/pms_api_rest/datamodels/pms_calendar.py @@ -41,9 +41,14 @@ class PmsCalendarInfo(Datamodel): reservationId = fields.Integer(required=False, allow_none=True) reservationName = fields.String(required=False, allow_none=True) reservationType = fields.String(required=False, allow_none=True) - isFirstDay = fields.Boolean(required=False, allow_none=True) - isLastDay = fields.Boolean(required=False, allow_none=True) + isFirstNight = fields.Boolean(required=False, allow_none=True) + isLastNight = fields.Boolean(required=False, allow_none=True) totalPrice = fields.Float(required=False, allow_none=True) 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) + diff --git a/pms_api_rest/services/pms_calendar_service.py b/pms_api_rest/services/pms_calendar_service.py index 4acaa84ff..44b28cb9c 100644 --- a/pms_api_rest/services/pms_calendar_service.py +++ b/pms_api_rest/services/pms_calendar_service.py @@ -34,6 +34,30 @@ class PmsCalendarService(Component): for line in self.env["pms.reservation.line"].search( domain, ): + next_line_splitted = False + next_line = self.env['pms.reservation.line'].search( + [ + ("reservation_id", "=", line.reservation_id.id), + ("date", "=", line.date + timedelta(days=1)) + ] + ) + if next_line: + next_line_splitted = next_line.room_id != line.room_id + + previous_line_splitted = False + previous_line = self.env['pms.reservation.line'].search( + [ + ("reservation_id", "=", line.reservation_id.id), + ("date", "=", line.date + timedelta(days=-1)) + ] + ) + if previous_line: + previous_line_splitted = previous_line.room_id != line.room_id + + closureReason= '' + if line.reservation_id.reservation_type == 'out': + print(line.reservation_id.closure_reason_id) + result_lines.append( PmsCalendarInfo( id=line.id, @@ -48,13 +72,16 @@ class PmsCalendarService(Component): reservationId=line.reservation_id, reservationName=line.reservation_id.name, reservationType=line.reservation_id.reservation_type, - isFirstDay=line.reservation_id.checkin == line.date, - isLastDay=line.reservation_id.checkout - == (line.date + timedelta(days=1)), + isFirstNight=line.reservation_id.checkin == line.date, + isLastNight=line.reservation_id.checkout + timedelta(days=-1) == line.date, totalPrice=line.reservation_id.price_total, pendingPayment=line.reservation_id.folio_pending_amount, numNotifications=len(line.reservation_id.message_ids), adults=line.reservation_id.adults, + nextLineSplitted=next_line_splitted, + previousLineSplitted=previous_line_splitted, + hasNextLine=bool(next_line), + closureReason='', ) ) return result_lines