[IMP]pms: add avoid_availbility_check context to swap operations

This commit is contained in:
Darío Lodeiros
2023-04-06 09:41:03 +02:00
parent 0afe67982a
commit ff93534112
2 changed files with 16 additions and 15 deletions

View File

@@ -425,6 +425,7 @@ class PmsReservationLine(models.Model):
).ids
if (
record.occupies_availability
and not self.env.context.get("avoid_availability_check", False)
and record.room_id.id
in avail.get_rooms_not_avail(
checkin=record.date,

View File

@@ -110,7 +110,14 @@ class ReservationSplitJoinSwapWizard(models.TransientModel):
record.checkin + datetime.timedelta(days=x)
for x in range(0, (record.checkout - record.checkin).days)
]:
domain_lines = []
domain_lines = [
("occupies_availability", "=", True),
(
"pms_property_id",
"=",
record.reservation_id.pms_property_id.id,
),
]
if record.room_source and record.room_target:
domain_lines.extend(
[
@@ -129,7 +136,7 @@ class ReservationSplitJoinSwapWizard(models.TransientModel):
[
("id", "in", reservation_ids),
("rooms", "!=", False),
]
],
)
.sorted("rooms")
)
@@ -279,19 +286,12 @@ class ReservationSplitJoinSwapWizard(models.TransientModel):
[("date", "=", date_iterator), ("room_id", "=", target)]
)
if line_room_source and line_room_target:
# this causes an unique error constraint
line_room_target.occupies_availability = False
line_room_source.occupies_availability = False
line_room_target.room_id = source
line_room_source.room_id = target
self.flush()
line_room_target._compute_occupies_availability()
line_room_source._compute_occupies_availability()
line_room_target.with_context(
avoid_availability_check=True
).room_id = source
line_room_source.with_context(
avoid_availability_check=True
).room_id = target
elif line_room_source:
line_room_source.room_id = target
elif line_room_target: