From 465dd898c4582d88b196e9f83187ac3e184eed78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Wed, 13 Jul 2022 18:46:20 +0200 Subject: [PATCH] [ADD]pms_api_rest: Add POST reservation//reservation-lines --- .../services/pms_reservation_service.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/pms_api_rest/services/pms_reservation_service.py b/pms_api_rest/services/pms_reservation_service.py index c37348086..53a7cb9de 100644 --- a/pms_api_rest/services/pms_reservation_service.py +++ b/pms_api_rest/services/pms_reservation_service.py @@ -248,6 +248,41 @@ class PmsReservationService(Component): ) return result_lines + @restapi.method( + [ + ( + [ + "//reservation-lines", + ], + "POST", + ) + ], + input_param=Datamodel("pms.reservation.line.info", is_list=False), + auth="jwt_api_pms", + ) + def create_reservation_line(self, reservation_id, reservation_line_info): + reservation = self.env["pms.reservation"].search([("id", "=", reservation_id)]) + date = datetime.strptime(reservation_line_info.date, "%Y-%m-%d").date() + if not reservation: + raise MissingError(_("Reservation not found")) + if not reservation_line_info.date or not reservation_line_info.price: + raise MissingError(_("Date and price are required")) + if ( + date != reservation.checkin - timedelta(days=1) + and date != reservation.checkout + ): + raise MissingError(_("It is only allowed to create contiguous nights to the reservation")) + vals = dict() + vals.update({ + "reservation_id": reservation.id, + "date": date, + "price": reservation_line_info.price, + "room_id": reservation_line_info.roomId + if reservation_line_info.roomId + else reservation.preferred_room_id.id, + }) + self.env["pms.reservation.line"].create(vals) + @restapi.method( [ (