diff --git a/hotel_node_helper/models/inherited_hotel_room_type.py b/hotel_node_helper/models/inherited_hotel_room_type.py index f0e9bd96b..0887b49c1 100644 --- a/hotel_node_helper/models/inherited_hotel_room_type.py +++ b/hotel_node_helper/models/inherited_hotel_room_type.py @@ -32,10 +32,34 @@ class HotelRoomType(models.Model): ('date', '>=', dfrom), ('date', '<', dto), ('room_type_id', '=', room_type_id), + ], ['avail']) or [{'avail': availability_real}] - ], ['avail']) or float('inf') - - if isinstance(availability_plan, list): - availability_plan = min([r['avail'] for r in availability_plan]) + availability_plan = min([r['avail'] for r in availability_plan]) return min(availability_real, availability_plan) + + @api.model + def get_room_type_price_unit(self, dfrom, dto, room_type_id): + # TODO review how to get the prices + reservation_line_ids = self.env['hotel.reservation'].prepare_reservation_lines( + dfrom, + (fields.Date.from_string(dto) - fields.Date.from_string(dfrom)).days, + {'room_type_id': room_type_id} + ) + reservation_line_ids = reservation_line_ids['reservation_line_ids'] + # QUESTION Why add [[5, 0, 0], ¿? + del reservation_line_ids[0] + + return reservation_line_ids + + @api.model + def get_room_type_restrictions(self, dfrom, dto, room_type_id): + restrictions_plan = self.env['hotel.room.type.restriction.item'].search_read([ + ('date', '>=', dfrom), + ('date', '<', dto), + ('room_type_id', '=', room_type_id), + ], ['min_stay']) or [{'min_stay': 0}] + + min_stay = max([r['min_stay'] for r in restrictions_plan]) + + return min_stay diff --git a/hotel_node_master/__manifest__.py b/hotel_node_master/__manifest__.py index fb227bb0c..ab8d8f1b7 100644 --- a/hotel_node_master/__manifest__.py +++ b/hotel_node_master/__manifest__.py @@ -14,12 +14,12 @@ {'python' : ['odoorpc']}, 'license': "AGPL-3", 'data': [ + 'wizards/wizard_hotel_node_reservation.xml', 'views/hotel_node.xml', 'views/hotel_node_user.xml', 'views/hotel_node_group.xml', 'views/hotel_node_room_type.xml', 'views/inherited_res_partner_views.xml', - 'wizards/wizard_hotel_node_reservation.xml', 'security/hotel_node_security.xml', 'security/ir.model.access.csv' ], diff --git a/hotel_node_master/models/hotel_node.py b/hotel_node_master/models/hotel_node.py index 7f1575236..f6863cbb4 100644 --- a/hotel_node_master/models/hotel_node.py +++ b/hotel_node_master/models/hotel_node.py @@ -145,6 +145,13 @@ class HotelNode(models.Model): master_ids = [r['id'] for r in master_users] remote_ids = [r['remote_user_id'] for r in master_users] + # For the first hotel, gui_ids and xml_ids is empty. You must recover the previously written groups + master_groups = self.env["hotel.node.group"].search_read( + [('odoo_version', '=', self.odoo_version)], ['xml_id']) + + gui_ids = [r['id'] for r in master_groups] + xml_ids = [r['xml_id'] for r in master_groups] + user_ids = [] for user in remote_users: group_ids = [] diff --git a/hotel_node_master/views/hotel_node.xml b/hotel_node_master/views/hotel_node.xml index f30470568..b7db33479 100644 --- a/hotel_node_master/views/hotel_node.xml +++ b/hotel_node_master/views/hotel_node.xml @@ -8,11 +8,16 @@
- +
- + - + + - + - - + + + - - - + + @@ -43,10 +43,6 @@ - - - - +
+ + + + + + hotel.node.reservation.wizard.edit + node.folio.wizard + + + + + + + + + + + + + + + + + + + + + + + + + + + +