Repository
OCA/vertical-hotel · module folder · Try on Runboat
Module version
1.0.0
Category
Generic Modules/Hotel Restaurant
Folder size
5.56 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/vertical-hotel
Last tracking update
2026-08-19 11:39:08
Authors
Odoo Community Association (OCA), Odoo S.A., Serpent Consulting Services Pvt. Ltd.
Maintainers
Odoo Community Association (OCA), Odoo S.A., Serpent Consulting Services Pvt. Ltd.
Committers
OCA-git-bot, oca-ci, Vadan-serpentcs
Odoo dependencies
Python dependencies
python-dateutil
System dependencies
None
Required by
None
Description
This Module is providing table booking facilities and Managing customers
orders

You can manage:

- Restaurant Configuration (Food Item, Table)
- **Table Reservation**

![image](https://raw.githubusercontent.com/OCA/vertical-hotel/11.0/hotel_restaurant/static/description/res2.png)

- **Manage Food Orders**

![image](https://raw.githubusercontent.com/OCA/vertical-hotel/11.0/hotel_restaurant/static/description/res3.png)

- **Manage Kitchen Order ticket**

![image](https://raw.githubusercontent.com/OCA/vertical-hotel/11.0/hotel_restaurant/static/description/res4.png)

- **Quick Table Reservation Facility With Its Food Order**

![image](https://raw.githubusercontent.com/OCA/vertical-hotel/11.0/hotel_restaurant/static/description/res5.png)

- **Order's History In Hotel Folio**

![image](https://raw.githubusercontent.com/OCA/vertical-hotel/11.0/hotel_restaurant/static/description/res6.png)

- Payment
- Different Reports are also provided, mainly for Restaurant.

Code Analysis

Views touched (30)
XML IDNameModelTypeStatus
hotel_manucard_kanban_view Menucard Kanban hotel.menucard kanban New
report_hotel_order_kot report_hotel_order_kot ir.ui.view qweb New
report_order_bill report_order_bill ir.ui.view qweb New
report_res_order_bill report_res_order_bill ir.ui.view qweb New
report_res_table report_res_table ir.ui.view qweb New
report_reserv_order report_reserv_order ir.ui.view qweb New
report_rest_order report_rest_order ir.ui.view qweb New
view_folio_rest_reservation view.folio.rest.reservation folio.rest.reservation form New
view_hotel_menucard_form hotel.menucard.form hotel.menucard form New
view_hotel_menucard_search_new hotel.menucard.search hotel.menucard search New
view_hotel_menucard_tree hotel.menucard.list hotel.menucard list New
view_hotel_menucard_type_form hotel_menucard_type_form hotel.menucard.type form New
view_hotel_menucard_type_tree hotel_menucard_type_list hotel.menucard.type list New
view_hotel_reservation_order_form hotel_reservation_order.form hotel.reservation.order form New
view_hotel_reservation_order_search hotel.reservation.order.search hotel.reservation.order search New
view_hotel_reservation_order_tree hotel_reservation_order.list hotel.reservation.order list New
view_hotel_restaurant_kitchen_order_search hotel.restaurant.kitchen.order.tickets.search hotel.restaurant.kitchen.order.tickets search New
view_hotel_restaurant_kitchen_order_tickets_form hotel_restaurant_kitchen_order_tickets.form hotel.restaurant.kitchen.order.tickets form New
view_hotel_restaurant_kitchen_order_tickets_tree hotel_restaurant_kitchen_order_tickets.list hotel.restaurant.kitchen.order.tickets list New
view_hotel_restaurant_order_form hotel_restaurant_order.form hotel.restaurant.order form New
view_hotel_restaurant_order_search hotel.restaurant.order.search hotel.restaurant.order search New
view_hotel_restaurant_order_tree hotel_restaurant_order.list hotel.restaurant.order list New
view_hotel_restaurant_reservation_form hotel_restaurant_reservation.form hotel.restaurant.reservation form New
view_hotel_restaurant_reservation_search hotel.restaurant.reservation.search hotel.restaurant.reservation search New
view_hotel_restaurant_reservation_tree hotel_restaurant_reservation.list hotel.restaurant.reservation list New
view_hotel_restaurant_tables_form hotel_restaurant_tables.form hotel.restaurant.tables form New
view_hotel_restaurant_tables_search hotel_restaurant_tables.search hotel.restaurant.tables search New
view_hotel_restaurant_tables_tree hotel_restaurant_tables.list hotel.restaurant.tables list New
view_hotelfolio1_form1_inherited hotel.folio1.form1.inherited hotel.folio form Inherits hotel.view_hotel_folio_form
wizard_hotel_restaurant_form_view wizard.hotel.restaurant.form wizard.hotel.restaurant form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (15)

New fields (3)
  • check Boolean
    args: 'With Details'
  • date_end Datetime
    args: 'End Date'
  • date_start Datetime
    args: 'Start Date'
Public methods (3)
  • check_date(self)
    @api.constrains('date_start', 'date_end')
  • print_reserv_report(self)
  • print_rest_report(self)

New fields (2)
  • hotel_reservation_orders_ids Many2many → hotel.reservation.order
    args: 'hotel.reservation.order', 'hotel_res_rel', 'hotel_folio_id', 'reste_id', 'Reservation Orders'
  • hotel_restaurant_orders_ids Many2many → hotel.restaurant.order
    args: 'hotel.restaurant.order', 'hotel_res_resv', 'hfolio_id', 'reserves_id', 'Restaurant Orders'
Public methods (0)

No public methods.

New fields (3)
  • menu_card_categ_id Many2one → hotel.menucard.type
    args: 'hotel.menucard.type', 'Food Item Category'
  • product_id Many2one → product.product
    delegate=True index=True ondelete='cascade' required=True args: 'product.product', 'Hotel Menucard'
  • product_manager_id Many2one → res.users
    args: 'res.users', 'Product Manager'
Public methods (0)

No public methods.

New fields (4)
  • child_ids One2many → hotel.menucard.type
    args: 'hotel.menucard.type', 'menu_id', 'Child Categories'
  • display_name Char
    compute='_compute_display_name' recursive=True
  • menu_id Many2one → hotel.menucard.type
    args: 'hotel.menucard.type', 'Food Item Type'
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (15)
  • amount_subtotal Float
    compute='_compute_amount_all_total' string='Subtotal'
  • amount_total Float
    compute='_compute_amount_all_total' string='Total'
  • folio_id Many2one → hotel.folio
    args: 'hotel.folio', 'Folio No'
  • is_folio Boolean
    help='is customer residing in hotel or not' args: 'Is a Hotel Guest??'
  • kitchen Integer
    args: 'Kitchen Id'
  • order_date Datetime
    default=<expr> required=True args: 'Date'
  • order_list_ids One2many → hotel.restaurant.order.list
    args: 'hotel.restaurant.order.list', 'reservation_order_id', 'Order List'
  • order_number Char
    readonly=True args: 'Order No'
  • reservation_id Many2one → hotel.restaurant.reservation
    args: 'hotel.restaurant.reservation', 'Reservation No'
  • rests_ids Many2many → hotel.restaurant.order.list
    args: 'hotel.restaurant.order.list', 'reserv_id', 'kitchen_id', 'res_kit_ids', 'Rest'
  • room_id Many2one → product.product
    args: 'product.product', 'Room No'
  • state Selection
    default='draft' readonly=True required=True args: [('draft', 'Draft'), ('order', 'Order Created'), ('done', 'Done')]
  • table_nos_ids Many2many → hotel.restaurant.tables
    args: 'hotel.restaurant.tables', 'temp_table4', 'table_no', 'name', 'Table Number'
  • tax Float
    args: 'Tax (%) '
  • waiter_id Many2one → res.partner
    args: 'res.partner', 'Waiter Name'
Public methods (4)
  • create(self, vals_list)
    @api.model_create_multi
    Overrides orm create method. @param self: The object pointer @param vals: dictionary of fields value.
  • done_kot(self)
    This method is used to change the state to done of the hotel reservation order ---------------------------------------- @param self: object pointer
  • reservation_generate_kot(self)
    This method creates or updates a record for hotel restaurant order list. -------------------------------------------------------------- @param self: The object pointer @return: updated record set for hotel restaurant order list.
  • reservation_update_kot(self)
    This method update record for hotel restaurant order list. ---------------------------------------------------------- @param self: The object pointer @return: update record set for hotel restaurant order list.

New fields (7)
  • kot_date Datetime
    args: 'Date'
  • kot_list_ids One2many → hotel.restaurant.order.list
    help='Kitchen order list' args: 'hotel.restaurant.order.list', 'kot_order_id', 'Order List'
  • order_number Char
    readonly=True
  • reservation_number Char
  • room_no Char
    readonly=True
  • table_nos_ids Many2many → hotel.restaurant.tables
    help='Table reservation detail.' args: 'hotel.restaurant.tables', 'restaurant_kitchen_order_rel', 'table_no', 'name', 'Table Number'
  • waiter_name Char
    readonly=True
Public methods (0)

No public methods.

New fields (15)
  • amount_subtotal Float
    compute='_compute_amount_all_total' string='Subtotal'
  • amount_total Float
    compute='_compute_amount_all_total' string='Total'
  • customer_id Many2one → res.partner
    required=True args: 'res.partner', 'Customer Name'
  • folio_id Many2one → hotel.folio
    args: 'hotel.folio', 'Folio No'
  • is_folio Boolean
    help='is customer residing in hotel or not' args: 'Is a Hotel Guest??'
  • kitchen Integer
  • o_date Datetime
    default=<expr> required=True args: 'Order Date'
  • order_list_ids One2many → hotel.restaurant.order.list
    args: 'hotel.restaurant.order.list', 'restaurant_order_id', 'Order List'
  • order_no Char
    readonly=True args: 'Order Number'
  • rest_item_id Many2many → hotel.restaurant.order.list
    args: 'hotel.restaurant.order.list', 'restaurant_kitchen_rel', 'restau_id', 'kit_id', 'Rest'
  • room_id Many2one → product.product
    args: 'product.product', 'Room No'
  • state Selection
    copy=False default='draft' readonly=True required=True args: [('draft', 'Draft'), ('order', 'Order Created'), ('done', 'Done'), ('cancel', 'Cancelled')]
  • table_nos_ids Many2many → hotel.restaurant.tables
    args: 'hotel.restaurant.tables', 'restaurant_table_order_rel', 'table_no', 'name', 'Table Number'
  • tax Float
    args: 'Tax (%) '
  • waiter_id Many2one → res.partner
    args: 'res.partner', 'Waiter'
Public methods (6)
  • create(self, vals_list)
    @api.model_create_multi
    Overrides orm create method. @param self: The object pointer @param vals: dictionary of fields value.
  • done_cancel(self)
    This method is used to change the state to cancel of the hotel restaurant order ---------------------------------------- @param self: object pointer
  • done_order_kot(self)
    This method is used to change the state to done of the hotel restaurant order ---------------------------------------- @param self: object pointer
  • generate_kot(self)
    This method create new record for hotel restaurant order list. @param self: The object pointer @return: new record set for hotel restaurant order list.
  • generate_kot_update(self)
    This method update record for hotel restaurant order list. ---------------------------------------------------------- @param self: The object pointer @return: update record set for hotel restaurant order list.
  • set_to_draft(self)
    This method is used to change the state to draft of the hotel restaurant order ---------------------------------------- @param self: object pointer

New fields (7)
  • item_qty Integer
    default=1 required=True args: 'Qty'
  • item_rate Float
    args: 'Rate'
  • kot_order_id Many2one → hotel.restaurant.kitchen.order.tickets
    args: 'hotel.restaurant.kitchen.order.tickets', 'Kitchen Order Tickets'
  • menucard_id Many2one → hotel.menucard
    required=True args: 'hotel.menucard', 'Item Name'
  • price_subtotal Float
    compute='_compute_price_subtotal' string='Subtotal'
  • reservation_order_id Many2one → hotel.reservation.order
    args: 'hotel.reservation.order', 'Reservation Order'
  • restaurant_order_id Many2one → hotel.restaurant.order
    args: 'hotel.restaurant.order', 'Restaurant Order'
Public methods (0)

No public methods.

New fields (10)
  • customer_id Many2one → res.partner
    required=True args: 'res.partner', 'Customer Name'
  • end_date Datetime
    required=True args: 'End Time'
  • folio_id Many2one → hotel.folio
    args: 'hotel.folio', 'Folio No'
  • is_folio Boolean
    args: 'Is a Hotel Guest??'
  • partner_address_id Many2one → res.partner
    args: 'res.partner', 'Address'
  • reservation_id Char
    index=True readonly=True args: 'Reservation No'
  • room_id Many2one → product.product
    args: 'product.product', 'Room No'
  • start_date Datetime
    default=<expr> required=True args: 'Start Time'
  • state Selection
    copy=False default='draft' readonly=True required=True args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled'), ('order', 'Order Created')], 'state'
  • table_nos_ids Many2many → hotel.restaurant.tables
    help='Table reservation detail.' string='Table Number' args: 'hotel.restaurant.tables', 'reservation_table', 'reservation_table_id', 'name'
Public methods (6)
  • action_set_to_draft(self)
    This method is used to change the state to draft of the hotel restaurant reservation -------------------------------------------- @param self: object pointer
  • create(self, vals_list)
    @api.model_create_multi
    Overrides orm create method. @param self: The object pointer @param vals: dictionary of fields value.
  • create_order(self)
    This method is for create a new order for hotel restaurant reservation .when table is booked and create order button is clicked then this method is called and order is created. You can see this created order in "Orders" ------------------------------------------------------------ @param self: The object pointer @return: new record set for hotel restaurant reservation.
  • table_cancel(self)
    This method is used to change the state to cancel of the hotel restaurant reservation -------------------------------------------- @param self: object pointer
  • table_done(self)
    This method is used to change the state to done of the hotel restaurant reservation -------------------------------------------- @param self: object pointer
  • table_reserved(self)
    when CONFIRM BUTTON is clicked this method is called for table reservation @param self: The object pointer @return: change a state depending on the condition

New fields (2)
  • capacity Integer
  • name Char
    required=True args: 'Table Number'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_res_data(self, date_start, date_end)

New fields (0)

No new fields.

Public methods (2)
  • get_data(self, date_start, date_end)
  • get_reserv(self, date_start, date_end)

New fields (0)

No new fields.

Public methods (2)
  • get_data(self, date_start, date_end)
  • get_rest(self, date_start, date_end)

New fields (2)
  • date_end Datetime
    required=True args: 'End Date'
  • date_start Datetime
    required=True args: 'Start Date'
Public methods (2)
  • check_date(self)
    @api.constrains('date_start', 'date_end')
  • print_report(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…