[IMP]pms_api_rest: added alerts per day service and datamodel

This commit is contained in:
braisab
2022-04-25 20:17:57 +02:00
committed by Darío Lodeiros
parent 926580fc60
commit fd71d882ea
2 changed files with 48 additions and 0 deletions

View File

@@ -65,3 +65,9 @@ class PmsCalendarInfo(Datamodel):
nextLineSplitted = fields.Boolean(required=False, allow_none=True)
previousLineSplitted = fields.Boolean(required=False, allow_none=True)
closureReason = fields.String(required=False, allow_none=True)
class PmsCalendarAlertsPerDay(Datamodel):
_name = "pms.calendar.alerts.per.day"
date = fields.String(required=True, allow_none=False)
overbooking = fields.Boolean(required=True, allow_none=False)

View File

@@ -256,3 +256,45 @@ class PmsCalendarService(Component):
)
)
return result
@restapi.method(
[
(
[
"/alerts-per-day",
],
"GET",
)
],
input_param=Datamodel("pms.calendar.search.param", is_list=False),
output_param=Datamodel("pms.calendar.alerts.per.day", is_list=True),
auth="jwt_api_pms",
)
def get_alerts_per_day(self, pms_calendar_search_param):
PmsCalendarAlertsPerDay = self.env.datamodels["pms.calendar.alerts.per.day"]
date_from = datetime.strptime(
pms_calendar_search_param.date_from, "%Y-%m-%d"
).date()
date_to = datetime.strptime(
pms_calendar_search_param.date_to, "%Y-%m-%d"
).date()
result = []
for day in (
date_from + timedelta(d) for d in range((date_to - date_from).days + 1)
):
overbooking = False
reservations = self.env["pms.reservation"].search(
[
("checkin", "=", day),
("pms_property_id", "=", pms_calendar_search_param.pms_property_id),
]
)
if any(reservation.overbooking for reservation in reservations):
overbooking = True
result.append(
PmsCalendarAlertsPerDay(
date=str(datetime.combine(day, datetime.min.time()).isoformat()),
overbooking=overbooking,
)
)
return result