diff --git a/hotel/data/hotel_data.xml b/hotel/data/hotel_data.xml index 7861a5487..dbd531704 100644 --- a/hotel/data/hotel_data.xml +++ b/hotel/data/hotel_data.xml @@ -13,33 +13,33 @@ - + Beds - + Connectivity - + Extra - + Twin Beds - + - + Double Beds - + - + Extra Bed - + - + 4G - + @@ -116,7 +116,7 @@ 25.00 3 - diff --git a/hotel/models/hotel_room.py b/hotel/models/hotel_room.py index c4896cc2e..a71d5c71c 100644 --- a/hotel/models/hotel_room.py +++ b/hotel/models/hotel_room.py @@ -16,7 +16,9 @@ class HotelRoom(models.Model): name = fields.Char('Room Name', required=True) active = fields.Boolean('Active', default=True) sequence = fields.Integer('Sequence', default=0) - room_type_id = fields.Many2one('hotel.room.type', 'Hotel Room Type') + room_type_id = fields.Many2one('hotel.room.type', 'Hotel Room Type', + required=True, + ondelete='restrict') floor_id = fields.Many2one('hotel.floor', 'Ubication', help='At which floor the room is located.') max_adult = fields.Integer('Max Adult') diff --git a/hotel/models/hotel_room_type.py b/hotel/models/hotel_room_type.py index 759f94d2d..068bfc18e 100644 --- a/hotel/models/hotel_room_type.py +++ b/hotel/models/hotel_room_type.py @@ -1,7 +1,8 @@ # Copyright 2017 Alexandre Díaz # Copyright 2017 Dario Lodeiros # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import models, fields, api +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError class HotelRoomType(models.Model): """ Before creating a 'room type', you need to consider the following: @@ -43,6 +44,15 @@ class HotelRoomType(models.Model): # total number of rooms in this type total_rooms_count = fields.Integer(compute='_compute_total_rooms') + @api.multi + @api.constrains('room_ids') + def _check_capacity(self): + for record in self: + for room in record.room_ids: + if room.room_type_id and room.room_type_id != record.id: + raise ValidationError(_("You need change de room type from de room form")) + + @api.depends('room_ids') def _compute_total_rooms(self): for record in self: