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 @@ - + - +