mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[imp] pms-api-rest: add fields capacity & room_type_class_id to planning service
This commit is contained in:
committed by
Darío Lodeiros
parent
2008354c49
commit
c19fb35d08
@@ -75,6 +75,8 @@ class PmsCalendarInfo(Datamodel):
|
|||||||
class PmsCalendarRenderInfo(Datamodel):
|
class PmsCalendarRenderInfo(Datamodel):
|
||||||
_name = "pms.calendar.render.info"
|
_name = "pms.calendar.render.info"
|
||||||
roomId = fields.Integer(required=True, allow_none=False)
|
roomId = fields.Integer(required=True, allow_none=False)
|
||||||
|
capacity = fields.Integer(required=True, allow_none=False)
|
||||||
|
roomTypeClassId = fields.Integer(required=True, allow_none=False)
|
||||||
roomTypeId = fields.Integer(required=True, allow_none=False)
|
roomTypeId = fields.Integer(required=True, allow_none=False)
|
||||||
dates = fields.List(fields.Dict(required=True, allow_none=False))
|
dates = fields.List(fields.Dict(required=True, allow_none=False))
|
||||||
|
|
||||||
|
|||||||
@@ -167,26 +167,28 @@ class PmsCalendarService(Component):
|
|||||||
date_from = datetime.strptime(calendar_search_param.dateFrom, "%Y-%m-%d").date()
|
date_from = datetime.strptime(calendar_search_param.dateFrom, "%Y-%m-%d").date()
|
||||||
date_to = datetime.strptime(calendar_search_param.dateTo, "%Y-%m-%d").date()
|
date_to = datetime.strptime(calendar_search_param.dateTo, "%Y-%m-%d").date()
|
||||||
selected_fields_mapper = {
|
selected_fields_mapper = {
|
||||||
"date": "date_room.date date",
|
"date": "dr.date date",
|
||||||
"room_id": "date_room.room_id room_id",
|
"room_id": "dr.room_id room_id",
|
||||||
"room_type_id": "date_room.room_type_id room_type_id",
|
"capacity": "dr.capacity capacity",
|
||||||
"id": "line.id id",
|
"room_type_id": "dr.room_type_id room_type_id",
|
||||||
"state": "line.state state",
|
"room_type_class_id": "dr.room_type_class_id room_type_class_id",
|
||||||
"price_day_total": "line.price_day_total price_day_total",
|
"id": "l.id id",
|
||||||
"to_assign": "reservation.to_assign to_assign",
|
"state": "l.state state",
|
||||||
"splitted": "reservation.splitted splitted",
|
"price_day_total": "l.price_day_total price_day_total",
|
||||||
"partner_id": "reservation.partner_id partner_id",
|
"to_assign": "r.to_assign to_assign",
|
||||||
"partner_name": "reservation.partner_name partner_name",
|
"splitted": "r.splitted splitted",
|
||||||
"folio_id": "reservation.folio_id folio_id",
|
"partner_id": "r.partner_id partner_id",
|
||||||
"reservation_id": "reservation.id reservation_id",
|
"partner_name": "r.partner_name partner_name",
|
||||||
"reservation_name": "reservation.name reservation_name",
|
"folio_id": "r.folio_id folio_id",
|
||||||
"reservation_type": "reservation.reservation_type reservation_type",
|
"reservation_id": "r.id reservation_id",
|
||||||
"checkin": "reservation.checkin checkin",
|
"reservation_name": "r.name reservation_name",
|
||||||
"checkout": "reservation.checkout checkout",
|
"reservation_type": "r.reservation_type reservation_type",
|
||||||
"price_total": "reservation.price_total price_total",
|
"checkin": "r.checkin checkin",
|
||||||
"adults": "reservation.adults adults",
|
"checkout": "r.checkout checkout",
|
||||||
"folio_pending_amount": "folio.pending_amount folio_pending_amount",
|
"price_total": "r.price_total price_total",
|
||||||
"closure_reason_id": "folio.closure_reason_id closure_reason_id",
|
"adults": "r.adults adults",
|
||||||
|
"folio_pending_amount": "f.pending_amount folio_pending_amount",
|
||||||
|
"closure_reason_id": "f.closure_reason_id closure_reason_id",
|
||||||
}
|
}
|
||||||
selected_fields_sql = list(selected_fields_mapper.values())
|
selected_fields_sql = list(selected_fields_mapper.values())
|
||||||
sql_select = "SELECT %s" % ", ".join(selected_fields_sql)
|
sql_select = "SELECT %s" % ", ".join(selected_fields_sql)
|
||||||
@@ -195,21 +197,27 @@ class PmsCalendarService(Component):
|
|||||||
{sql_select}
|
{sql_select}
|
||||||
FROM
|
FROM
|
||||||
(SELECT dates.date,
|
(SELECT dates.date,
|
||||||
rooms.id room_id,
|
r_rt_rtc.room_id,
|
||||||
rooms.room_type_id room_type_id
|
r_rt_rtc.capacity,
|
||||||
|
r_rt_rtc.room_type_id,
|
||||||
|
r_rt_rtc.room_type_class_id
|
||||||
FROM (SELECT (CURRENT_DATE + date ) date
|
FROM (SELECT (CURRENT_DATE + date ) date
|
||||||
FROM generate_series(date %s- CURRENT_DATE, date %s - CURRENT_DATE) date
|
FROM generate_series(date %s- CURRENT_DATE, date %s - CURRENT_DATE) date
|
||||||
) dates,
|
) dates,
|
||||||
(SELECT id, room_type_id FROM pms_room rooms WHERE pms_property_id = %s) rooms
|
(SELECT r.id room_id, r.capacity, rt.id room_type_id, rtc.id room_type_class_id
|
||||||
) date_room
|
FROM pms_room r
|
||||||
|
INNER JOIN pms_room_type rt ON rt.id = r.room_type_id
|
||||||
|
INNER JOIN pms_room_type_class rtc ON rtc.id = rt.class_id
|
||||||
|
WHERE pms_property_id = %s) r_rt_rtc
|
||||||
|
) dr
|
||||||
LEFT OUTER JOIN ( SELECT id, state, price_day_total, room_id, date, reservation_id
|
LEFT OUTER JOIN ( SELECT id, state, price_day_total, room_id, date, reservation_id
|
||||||
FROM pms_reservation_line
|
FROM pms_reservation_line
|
||||||
WHERE pms_property_id = %s AND state != 'cancel'
|
WHERE pms_property_id = %s AND state != 'cancel'
|
||||||
AND occupies_availability = true AND date < %s
|
AND occupies_availability = true AND date < %s
|
||||||
) line ON line.room_id = date_room.room_id AND line.date = date_room.date
|
) l ON l.room_id = dr.room_id AND l.date = dr.date
|
||||||
LEFT OUTER JOIN pms_reservation reservation ON line.reservation_id = reservation.id
|
LEFT OUTER JOIN pms_reservation r ON l.reservation_id = r.id
|
||||||
LEFT OUTER JOIN pms_folio folio ON reservation.folio_id = folio.id
|
LEFT OUTER JOIN pms_folio f ON r.folio_id = f.id
|
||||||
ORDER BY date_room.room_id, date_room.date
|
ORDER BY dr.room_id, dr.date
|
||||||
""",
|
""",
|
||||||
(
|
(
|
||||||
calendar_search_param.dateFrom,
|
calendar_search_param.dateFrom,
|
||||||
@@ -231,6 +239,8 @@ class PmsCalendarService(Component):
|
|||||||
response.append(
|
response.append(
|
||||||
CalendarRenderInfo(
|
CalendarRenderInfo(
|
||||||
roomId=item["room_id"],
|
roomId=item["room_id"],
|
||||||
|
capacity=item["capacity"],
|
||||||
|
roomTypeClassId=item["room_type_class_id"],
|
||||||
roomTypeId=item["room_type_id"],
|
roomTypeId=item["room_type_id"],
|
||||||
dates=[
|
dates=[
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user