Fix
This commit is contained in:
parent
ee25c6aa56
commit
8e98f84431
14
booking.py
14
booking.py
|
@ -778,20 +778,6 @@ class Booking(Workflow, ModelSQL, ModelView):
|
||||||
Folio = Pool().get('hotel.folio')
|
Folio = Pool().get('hotel.folio')
|
||||||
Folio.write(list(self.lines), {'registration_state': state})
|
Folio.write(list(self.lines), {'registration_state': state})
|
||||||
|
|
||||||
def check_rooms(self):
|
|
||||||
Housekeeping = Pool().get('hotel.housekeeping')
|
|
||||||
rooms_ids = []
|
|
||||||
for folio in self.lines:
|
|
||||||
if folio.registration_state == 'check_out':
|
|
||||||
continue
|
|
||||||
rooms_ids.append(folio.room.id)
|
|
||||||
housekeepings = Housekeeping.search([
|
|
||||||
('state', '!=', 'clean')
|
|
||||||
])
|
|
||||||
for hk in housekeepings:
|
|
||||||
if hk.room.id in rooms_ids:
|
|
||||||
raise UserError(gettext('hotel.msg_room_no_clean', s=hk.room.name))
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_context_price(cls,
|
def get_context_price(cls,
|
||||||
product, party=None, currency=None, _date=None, price_list=None,
|
product, party=None, currency=None, _date=None, price_list=None,
|
||||||
|
|
|
@ -189,6 +189,14 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<field name="perm_create" eval="False"/>
|
<field name="perm_create" eval="False"/>
|
||||||
<field name="perm_delete" eval="True"/>
|
<field name="perm_delete" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.model.access" id="access_booking_group_hotel_frontdesk">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.booking')]"/>
|
||||||
|
<field name="group" ref="group_hotel_frontdesk"/>
|
||||||
|
<field name="perm_read" eval="True"/>
|
||||||
|
<field name="perm_write" eval="True"/>
|
||||||
|
<field name="perm_create" eval="True"/>
|
||||||
|
<field name="perm_delete" eval="False"/>
|
||||||
|
</record>
|
||||||
<record model="ir.model.access" id="access_booking_group_hotel_admin">
|
<record model="ir.model.access" id="access_booking_group_hotel_admin">
|
||||||
<field name="model" search="[('model', '=', 'hotel.booking')]"/>
|
<field name="model" search="[('model', '=', 'hotel.booking')]"/>
|
||||||
<field name="group" ref="group_hotel_admin"/>
|
<field name="group" ref="group_hotel_admin"/>
|
||||||
|
|
10
folio.py
10
folio.py
|
@ -214,11 +214,19 @@ class Folio(ModelSQL, ModelView):
|
||||||
if rec.room is None:
|
if rec.room is None:
|
||||||
raise UserError(gettext('hotel.msg_missing_select_room'))
|
raise UserError(gettext('hotel.msg_missing_select_room'))
|
||||||
rec.set_registration_number()
|
rec.set_registration_number()
|
||||||
rec.booking.check_rooms()
|
rec.check_room()
|
||||||
rec.add_main_guest()
|
rec.add_main_guest()
|
||||||
cls.update_room(rec.room, 'dirty')
|
cls.update_room(rec.room, 'dirty')
|
||||||
cls.write(records, {'registration_state': 'check_in'})
|
cls.write(records, {'registration_state': 'check_in'})
|
||||||
|
|
||||||
|
def check_room(self):
|
||||||
|
Housekeeping = Pool().get('hotel.housekeeping')
|
||||||
|
housekeeping, _ = Housekeeping.search([
|
||||||
|
('room', '=', rec.room.id)
|
||||||
|
])
|
||||||
|
if housekeeping.state != 'clean':
|
||||||
|
raise UserError(gettext('hotel.msg_room_no_clean', s=hk.room.name))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
def check_out(cls, records):
|
def check_out(cls, records):
|
||||||
|
|
32
folio.xml
32
folio.xml
|
@ -165,6 +165,38 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<menuitem parent="menu_hotel" sequence="20" icon="hotel-guests"
|
<menuitem parent="menu_hotel" sequence="20" icon="hotel-guests"
|
||||||
action="act_board_folio_guest_view" id="menu_hotel_board_guest_folio"/>
|
action="act_board_folio_guest_view" id="menu_hotel_board_guest_folio"/>
|
||||||
|
|
||||||
|
<record model="ir.model.access" id="access_hotel_folio">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.folio')]"/>
|
||||||
|
<field name="perm_read" eval="False"/>
|
||||||
|
<field name="perm_write" eval="False"/>
|
||||||
|
<field name="perm_create" eval="False"/>
|
||||||
|
<field name="perm_delete" eval="False"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.model.access" id="access_hotel_folio_group_hotel">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.folio')]"/>
|
||||||
|
<field name="group" ref="group_hotel"/>
|
||||||
|
<field name="perm_read" eval="True"/>
|
||||||
|
<field name="perm_write" eval="False"/>
|
||||||
|
<field name="perm_create" eval="False"/>
|
||||||
|
<field name="perm_delete" eval="False"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.model.access" id="access_hotel_folio_group_hotel_frontdesk">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.folio')]"/>
|
||||||
|
<field name="group" ref="group_hotel_frontdesk"/>
|
||||||
|
<field name="perm_read" eval="True"/>
|
||||||
|
<field name="perm_write" eval="True"/>
|
||||||
|
<field name="perm_create" eval="True"/>
|
||||||
|
<field name="perm_delete" eval="True"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.model.access" id="access_hotel_folio_group_hotel_admin">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.folio')]"/>
|
||||||
|
<field name="group" ref="group_hotel_admin"/>
|
||||||
|
<field name="perm_read" eval="True"/>
|
||||||
|
<field name="perm_write" eval="True"/>
|
||||||
|
<field name="perm_create" eval="True"/>
|
||||||
|
<field name="perm_delete" eval="True"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!-- <record model="ir.ui.view" id="operation_maintenance_view_tree">
|
<!-- <record model="ir.ui.view" id="operation_maintenance_view_tree">
|
||||||
<field name="model">hotel.operation.maintenance</field>
|
<field name="model">hotel.operation.maintenance</field>
|
||||||
<field name="type">tree</field>
|
<field name="type">tree</field>
|
||||||
|
|
11
hotel.xml
11
hotel.xml
|
@ -6,6 +6,9 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<record model="res.group" id="group_hotel">
|
<record model="res.group" id="group_hotel">
|
||||||
<field name="name">Hotel</field>
|
<field name="name">Hotel</field>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="res.group" id="group_hotel_frontdesk">
|
||||||
|
<field name="name">Hotel Front-Desk</field>
|
||||||
|
</record>
|
||||||
<record model="res.group" id="group_hotel_admin">
|
<record model="res.group" id="group_hotel_admin">
|
||||||
<field name="name">Hotel Administration</field>
|
<field name="name">Hotel Administration</field>
|
||||||
</record>
|
</record>
|
||||||
|
@ -14,6 +17,10 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<field name="user" ref="res.user_admin"/>
|
<field name="user" ref="res.user_admin"/>
|
||||||
<field name="group" ref="group_hotel"/>
|
<field name="group" ref="group_hotel"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="res.user-res.group" id="user_admin_group_hotel_frontdesk">
|
||||||
|
<field name="user" ref="res.user_admin"/>
|
||||||
|
<field name="group" ref="group_hotel_frontdesk"/>
|
||||||
|
</record>
|
||||||
<record model="res.user-res.group" id="user_admin_group_hotel_admin">
|
<record model="res.user-res.group" id="user_admin_group_hotel_admin">
|
||||||
<field name="user" ref="res.user_admin"/>
|
<field name="user" ref="res.user_admin"/>
|
||||||
<field name="group" ref="group_hotel_admin"/>
|
<field name="group" ref="group_hotel_admin"/>
|
||||||
|
@ -40,8 +47,8 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<field name="path">icons/guests.svg</field>
|
<field name="path">icons/guests.svg</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<menuitem name="Hotel" sequence="10" id="menu_hotel"
|
<menuitem name="Hotel" sequence="10" id="menu_hotel"
|
||||||
icon="tryton-hotel" />
|
icon="tryton-hotel"/>
|
||||||
|
|
||||||
<record model="ir.ui.menu-res.group" id="menu_hotel_group_hotel">
|
<record model="ir.ui.menu-res.group" id="menu_hotel_group_hotel">
|
||||||
<field name="menu" ref="menu_hotel"/>
|
<field name="menu" ref="menu_hotel"/>
|
||||||
|
|
|
@ -47,6 +47,14 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<field name="perm_create" eval="False"/>
|
<field name="perm_create" eval="False"/>
|
||||||
<field name="perm_delete" eval="False"/>
|
<field name="perm_delete" eval="False"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.model.access" id="access_housekeeping_group_hotel_frontdesk">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.housekeeping')]"/>
|
||||||
|
<field name="group" ref="group_hotel_frontdesk"/>
|
||||||
|
<field name="perm_read" eval="True"/>
|
||||||
|
<field name="perm_write" eval="True"/>
|
||||||
|
<field name="perm_create" eval="False"/>
|
||||||
|
<field name="perm_delete" eval="False"/>
|
||||||
|
</record>
|
||||||
<record model="ir.model.access" id="access_housekeeping_group_hotel_admin">
|
<record model="ir.model.access" id="access_housekeeping_group_hotel_admin">
|
||||||
<field name="model" search="[('model', '=', 'hotel.housekeeping')]"/>
|
<field name="model" search="[('model', '=', 'hotel.housekeeping')]"/>
|
||||||
<field name="group" ref="group_hotel_admin"/>
|
<field name="group" ref="group_hotel_admin"/>
|
||||||
|
|
Binary file not shown.
8
room.xml
8
room.xml
|
@ -123,6 +123,14 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<field name="perm_create" eval="False"/>
|
<field name="perm_create" eval="False"/>
|
||||||
<field name="perm_delete" eval="False"/>
|
<field name="perm_delete" eval="False"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.model.access" id="access_room_group_hotel_frontdesk">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.room')]"/>
|
||||||
|
<field name="group" ref="group_hotel_frontdesk"/>
|
||||||
|
<field name="perm_read" eval="True"/>
|
||||||
|
<field name="perm_write" eval="False"/>
|
||||||
|
<field name="perm_create" eval="False"/>
|
||||||
|
<field name="perm_delete" eval="False"/>
|
||||||
|
</record>
|
||||||
<record model="ir.model.access" id="access_room_group_hotel_admin">
|
<record model="ir.model.access" id="access_room_group_hotel_admin">
|
||||||
<field name="model" search="[('model', '=', 'hotel.room')]"/>
|
<field name="model" search="[('model', '=', 'hotel.room')]"/>
|
||||||
<field name="group" ref="group_hotel_admin"/>
|
<field name="group" ref="group_hotel_admin"/>
|
||||||
|
|
|
@ -86,6 +86,14 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<field name="perm_create" eval="True"/>
|
<field name="perm_create" eval="True"/>
|
||||||
<field name="perm_delete" eval="False"/>
|
<field name="perm_delete" eval="False"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.model.access" id="access_service_group_hotel_frontdesk">
|
||||||
|
<field name="model" search="[('model', '=', 'hotel.service')]"/>
|
||||||
|
<field name="group" ref="group_hotel_frontdesk"/>
|
||||||
|
<field name="perm_read" eval="True"/>
|
||||||
|
<field name="perm_write" eval="True"/>
|
||||||
|
<field name="perm_create" eval="True"/>
|
||||||
|
<field name="perm_delete" eval="False"/>
|
||||||
|
</record>
|
||||||
<record model="ir.model.access" id="access_service_group_hotel_admin">
|
<record model="ir.model.access" id="access_service_group_hotel_admin">
|
||||||
<field name="model" search="[('model', '=', 'hotel.service')]"/>
|
<field name="model" search="[('model', '=', 'hotel.service')]"/>
|
||||||
<field name="group" ref="group_hotel_admin"/>
|
<field name="group" ref="group_hotel_admin"/>
|
||||||
|
|
Loading…
Reference in New Issue