mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]pms: add avoid_availbility_check context to swap operations
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user