diff --git a/pms/demo/pms_master_data.xml b/pms/demo/pms_master_data.xml
index 6d1c7b1c3..04a899f6f 100644
--- a/pms/demo/pms_master_data.xml
+++ b/pms/demo/pms_master_data.xml
@@ -310,16 +310,16 @@
- Prop. Demo Economic
- ECO
+ Prop. Demo Suite
+ SUI
21.00
- Prop. Demo Single
- SNG
+ Prop. Demo Views
+ VIE
20.00
+
"out"
diff --git a/pms/models/pms_board_service_room_type.py b/pms/models/pms_board_service_room_type.py
index 24cbeb3c1..fae85fa23 100644
--- a/pms/models/pms_board_service_room_type.py
+++ b/pms/models/pms_board_service_room_type.py
@@ -48,7 +48,7 @@ class PmsBoardServiceRoomType(models.Model):
"pms.board.service.room.type.line", "pms_board_service_room_type_id"
)
pms_property_id = fields.Many2one(
- "pms.property", related="pms_room_type_id.pms_property_id"
+ "pms.property",
)
price_type = fields.Selection(
[("fixed", "Fixed"), ("percent", "Percent")],
diff --git a/pms/models/pms_property.py b/pms/models/pms_property.py
index 03d713947..0a67406c0 100644
--- a/pms/models/pms_property.py
+++ b/pms/models/pms_property.py
@@ -30,7 +30,6 @@ class PmsProperty(models.Model):
"user_id",
string="Accepted Users",
)
- room_type_ids = fields.Many2many("pms.room.type", "pms_property_ids", "Room Types")
room_ids = fields.One2many("pms.room", "pms_property_id", "Rooms")
default_pricelist_id = fields.Many2one(
"product.pricelist",
diff --git a/pms/models/pms_room.py b/pms/models/pms_room.py
index f8e20b89f..461640c84 100644
--- a/pms/models/pms_room.py
+++ b/pms/models/pms_room.py
@@ -68,46 +68,6 @@ class PmsRoom(models.Model):
)
)
- # CRUD methods
- @api.model
- def create(self, vals):
- if (
- vals.get("pms_property_id", self.env.user.pms_property_id.id)
- != self.env["pms.room.type"].browse(vals["room_type_id"]).pms_property_id.id
- ):
- raise ValidationError(
- _(
- "A room cannot be created in a room type \
- of another property."
- )
- )
- return super().create(vals)
-
- def write(self, vals):
- for record in self:
- if (
- vals.get("pms_property_id", record.pms_property_id.id)
- != record.pms_property_id.id
- ):
- raise ValidationError(
- _("A room cannot be changed to another property.")
- + " "
- + _("%s does not belong to %s.") % (record, record.pms_property_id)
- )
- room_type_ids = (
- self.env["pms.room.type"]
- .search([("pms_property_id", "=", record.pms_property_id.id)])
- .ids
- )
- if vals.get("room_type_id", record.room_type_id.id) not in room_type_ids:
- raise ValidationError(
- _(
- "A room cannot be changed to a room type of \
- another property or unlinked from a room type."
- )
- )
- return super().write(vals)
-
# Business methods
def get_capacity(self, extra_bed=0):
diff --git a/pms/models/pms_room_type.py b/pms/models/pms_room_type.py
index 27774277b..105ffdaa6 100644
--- a/pms/models/pms_room_type.py
+++ b/pms/models/pms_room_type.py
@@ -17,11 +17,6 @@ class PmsRoomType(models.Model):
_inherits = {"product.product": "product_id"}
_order = "sequence, code_type, name"
- # Default methods
- @api.model
- def _get_default_pms_property(self):
- return self.env.user.pms_property_id
-
# Fields declaration
product_id = fields.Many2one(
"product.product",
@@ -30,12 +25,13 @@ class PmsRoomType(models.Model):
delegate=True,
ondelete="cascade",
)
- pms_property_id = fields.Many2one(
+ pms_property_ids = fields.Many2many(
"pms.property",
- "Property",
- required=True,
+ "pms_property_room_type_rel",
+ "room_type_id",
+ "pms_property_id",
ondelete="restrict",
- default=_get_default_pms_property,
+ string="Properties",
)
room_ids = fields.One2many("pms.room", "room_type_id", "Rooms")
class_id = fields.Many2one("pms.room.type.class", "Property Type Class")
@@ -77,8 +73,8 @@ class PmsRoomType(models.Model):
_sql_constraints = [
(
"code_type_pms_unique",
- "unique(code_type, pms_property_id)",
- "Room Type Code must be unique by Property!",
+ "unique(code_type)",
+ "Room Type Code must be unique",
),
]
diff --git a/pms/models/pms_shared_room.py b/pms/models/pms_shared_room.py
index f10e54ad1..22b10711e 100644
--- a/pms/models/pms_shared_room.py
+++ b/pms/models/pms_shared_room.py
@@ -20,11 +20,9 @@ class PmsSharedRoom(models.Model):
ondelete="restrict",
domain=[("shared_room", "=", True)],
)
- pms_property_id = fields.Many2one(
+ # TODO: properties relation
+ pms_property_ids = fields.Many2many(
"pms.property",
- store=True,
- readonly=True,
- related="room_type_id.pms_property_id",
)
floor_id = fields.Many2one(
"pms.floor",
diff --git a/pms/views/pms_property_views.xml b/pms/views/pms_property_views.xml
index bb5e98180..e807628ff 100644
--- a/pms/views/pms_property_views.xml
+++ b/pms/views/pms_property_views.xml
@@ -43,7 +43,6 @@
-
diff --git a/pms/views/pms_room_type_views.xml b/pms/views/pms_room_type_views.xml
index 047f8d408..13ed6c3c2 100644
--- a/pms/views/pms_room_type_views.xml
+++ b/pms/views/pms_room_type_views.xml
@@ -27,7 +27,7 @@
-
+
-
+