diff --git a/pms/__init__.py b/pms/__init__.py
index 3f3f8679b..7588e52c8 100644
--- a/pms/__init__.py
+++ b/pms/__init__.py
@@ -1,5 +1,4 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import models
-
-# from . import wizard
+from . import wizards
diff --git a/pms/__manifest__.py b/pms/__manifest__.py
index 965ad2ae1..5fc1b87f1 100644
--- a/pms/__manifest__.py
+++ b/pms/__manifest__.py
@@ -63,6 +63,7 @@
"views/product_template_views.xml",
"views/webclient_templates.xml",
"views/ir_sequence_views.xml",
+ "wizards/wizard_reservation.xml",
],
"demo": [
"demo/pms_master_data.xml",
diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py
index 7c0709295..4cfb3fc8c 100644
--- a/pms/models/pms_reservation.py
+++ b/pms/models/pms_reservation.py
@@ -106,6 +106,7 @@ class PmsReservation(models.Model):
# required=True,
)
priority = fields.Integer(compute="_compute_priority", store="True", index=True)
+
preferred_room_id = fields.Many2one(
"pms.room",
string="Room",
@@ -785,6 +786,24 @@ class PmsReservation(models.Model):
"target": "new",
}
+ def open_reservation_wizard(self):
+ rooms_available = self.env["pms.room.type.availability"].rooms_available(
+ checkin=self.checkin,
+ checkout=self.checkout,
+ current_lines=self.reservation_line_ids.ids,
+ )
+ # REVIEW: check capacity room
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'name': 'Unify the reservation',
+ 'res_model': 'pms.reservation.wizard',
+ 'target': 'new',
+ 'type': 'ir.actions.act_window',
+ 'context': {'rooms_available': rooms_available.ids,
+ }
+ }
+
# ORM Overrides
@api.model
def name_search(self, name="", args=None, operator="ilike", limit=100):
diff --git a/pms/models/pms_reservation_line.py b/pms/models/pms_reservation_line.py
index 716700ecb..3787b7041 100644
--- a/pms/models/pms_reservation_line.py
+++ b/pms/models/pms_reservation_line.py
@@ -123,7 +123,6 @@ class PmsReservationLine(models.Model):
# otherwise we assign the first of those available for the entire stay
else:
line.room_id = rooms_available[0]
- line.reservation_id.preferred_room_id = line.room_id.id
# if there is no availability for the entire stay without changing rooms (we assume a split reservation)
else:
diff --git a/pms/security/ir.model.access.csv b/pms/security/ir.model.access.csv
index 3530f26ab..02f4a382b 100644
--- a/pms/security/ir.model.access.csv
+++ b/pms/security/ir.model.access.csv
@@ -47,3 +47,4 @@ manager_access_pms_board_service_line,manager_access_pms_board_service_line,mode
manager_access_property,manager_access_property,model_pms_property,pms.group_pms_manager,1,1,1,1
manager_access_pms_cancelation_rule,manager_access_pms_cancelation_rule,model_pms_cancelation_rule,pms.group_pms_manager,1,1,1,1
manager_access_availability,manager_access_availability,model_pms_room_type_availability,pms.group_pms_manager,1,1,1,1
+user_access_pms_reservation_wizard,user_access_pms_reservation_wizard,model_pms_reservation_wizard,pms.group_pms_user,1,1,1,1
diff --git a/pms/tests/test_pms_reservation.py b/pms/tests/test_pms_reservation.py
index 672d8db74..80aa1e087 100644
--- a/pms/tests/test_pms_reservation.py
+++ b/pms/tests/test_pms_reservation.py
@@ -377,7 +377,7 @@ class TestPmsReservations(TestHotel):
@freeze_time("1980-11-01")
def test_split_reservation06(self):
"""
- The preferred room_id is not available
+ There's no availability in the preferred_room_id provided
+------------+------+------+------+----+----+----+
| room/date | 01 | 02 | 03 | 04 | 05 | 06 |
+------------+------+------+------+----+----+----+
@@ -419,7 +419,7 @@ class TestPmsReservations(TestHotel):
@freeze_time("1980-11-01")
def test_split_reservation07(self):
"""
- The preferred room_type_id is not available
+ There's no availability
+------------+------+------+------+----+----+----+
| room/date | 01 | 02 | 03 | 04 | 05 | 06 |
+------------+------+------+------+----+----+----+
diff --git a/pms/views/pms_reservation_views.xml b/pms/views/pms_reservation_views.xml
index c8f11b809..7fe2bdcd1 100644
--- a/pms/views/pms_reservation_views.xml
+++ b/pms/views/pms_reservation_views.xml
@@ -66,14 +66,13 @@
style="margin-bottom:0px;"
attrs="{'invisible': [('splitted','=',False)]}"
>
- This reservation is part of splitted reservation!, you can check it
- in the
+ This reservation is part of splitted reservation, you can try to unify the reservation here
@@ -167,8 +166,10 @@
options="{'no_create': True,'no_open': True}"
placeholder="Room"
style="margin-right: 30px;"
- required='1'
+ attrs="{'invisible': [('splitted','=',True)]}"
+
/>
+
+
+
+ Reservation Wizard
+ pms.reservation.wizard
+
+
+
+
+