From ef891043f4f78b00d6f1c10c118cbfd96717c517 Mon Sep 17 00:00:00 2001 From: miguelpadin Date: Wed, 16 Oct 2024 16:02:19 +0100 Subject: [PATCH] [FIX] pms: avoid compute board service line ids when it's set in context to do that & rename name of parameter and compute --- pms/models/pms_reservation.py | 8 ++++---- pms/models/pms_service.py | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index bf978825c..76bb28d10 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -209,7 +209,7 @@ class PmsReservation(models.Model): store=True, comodel_name="pms.service", inverse_name="reservation_id", - compute="_compute_service_ids", + compute="_compute_board_service_ids", check_company=True, check_pms_properties=True, ) @@ -986,8 +986,8 @@ class PmsReservation(models.Model): reservation.check_in_out_dates() @api.depends("board_service_room_id") - def _compute_service_ids(self): - if self.env.context.get("skip_compute_service_ids", False): + def _compute_board_service_ids(self): + if self.env.context.get("skip_compute_board_service_ids", False): return for reservation in self: board_services = [] @@ -2259,7 +2259,7 @@ class PmsReservation(models.Model): # compute_service_ids dont run (compute with readonly to False), # and we must force it to compute the services linked with the board service: if "board_service_room_id" in vals and "service_ids" in vals: - self._compute_service_ids() + self._compute_board_service_ids() def get_folios_to_update_channel(self, vals): folios_to_update_channel = self.env["pms.folio"] diff --git a/pms/models/pms_service.py b/pms/models/pms_service.py index a54edea13..33180f985 100644 --- a/pms/models/pms_service.py +++ b/pms/models/pms_service.py @@ -332,6 +332,14 @@ class PmsService(models.Model): ) # flake8:noqa=C901 def _compute_service_line_ids(self): + if ( + self.env.context.get("skip_compute_board_service_ids", False) + and self.is_board_service + ) or ( + self.env.context.get("skip_compute_service_line_ids", False) + and not self.is_board_service + ): + return for service in self: if service.no_auto_add_lines: continue