Repository
OCA/vertical-hotel · module folder · Try on Runboat
Module version
1.0.0
Category
Generic Modules/Hotel Reservation
Folder size
1.08 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/vertical-hotel
Last tracking update
2026-08-20 17:29:48
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, Vandan-OSI
Odoo dependencies
Python dependencies
python-dateutil, geoip2
System dependencies
None
Required by
None
Description
This module provides the feature of Reserving the Hotel Rooms.

You can manage:

- Guest Reservation
- Group Reservation

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

- **Manage Hotel Room Based on Room Types and It's Capacity**

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

- **Confirm Your Reservation And Get Reservation Information**

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

- **Generate Folio**

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

- **Summarize Detail of Reservation**

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

- **Easy And Quick Reservation from Reservation Summary**

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

Code Analysis

Views touched (17)
XML IDNameModelTypeStatus
hotel_calendar_view Room Reservation hotel.reservation calendar New
hotel_reservation_wizard_form_view hotel.reservation.wizard.form hotel.reservation.wizard form New
make_folio_wizard_form_view make.folio.wizard.form wizard.make.folio form New
quick_room_reservation_form_view quick.room.reservation.form quick.room.reservation form New
report_checkin_qweb report_checkin_qweb ir.ui.view qweb New
report_checkout_qweb report_checkout_qweb ir.ui.view qweb New
report_maxroom_qweb report_maxroom_qweb ir.ui.view qweb New
report_room_reservation_qweb report_room_reservation_qweb ir.ui.view qweb New
room_reservation_summary_form_view room.reservation.summary.form room.reservation.summary form New
view_hotel_folio1_search_inherited hotel.folio.search.inherited hotel.folio search Inherits hotel.view_hotel_folio_search
view_hotel_folio_form_inherited hotel.folio.form.inherited hotel.folio form Inherits hotel.view_hotel_folio_form
view_hotel_folio_tree_inherited hotel.folio.list.inherited hotel.folio list Inherits hotel.view_hotel_folio_tree
view_hotel_reservation_form hotel.reservation.form hotel.reservation form New
view_hotel_reservation_graph hotel.reservation.graph hotel.reservation graph New
view_hotel_reservation_search hotel.reservation.search hotel.reservation search New
view_hotel_reservation_tree hotel.reservation.list hotel.reservation list New
view_hotel_room_form_inherited view.hotel.room.form.inherited hotel.room form Inherits hotel.view_hotel_room_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (15)

New fields (1)
  • reservation_id Many2one → hotel.reservation
    ondelete='restrict' args: 'hotel.reservation', 'Reservation'
Public methods (1)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)
    Overrides ORM write method to update Hotel Room Reservation line history. @param vals: dictionary of field values.

New fields (16)
  • adults Integer
    help='List of adults there in guest list. ' readonly=True required=True
  • checkin Datetime
    readonly=True required=True args: 'Expected-Date-Arrival'
  • checkout Datetime
    readonly=True required=True args: 'Expected-Date-Departure'
  • children Integer
    help='Number of children there in guest list.' readonly=True
  • company_id Many2one → res.company
    default=<expr> index=True readonly=True required=True args: 'res.company', 'Hotel'
  • date_order Datetime
    default=<expr> index=True readonly=True required=True args: 'Date Ordered'
  • folio_id Many2many → hotel.folio
    string='Folio' args: 'hotel.folio', 'hotel_folio_reservation_rel', 'order_id', 'invoice_id'
  • no_of_folio Integer
    compute='_compute_folio_count' args: 'No. Folio'
  • partner_id Many2one → res.partner
    index=True readonly=True required=True args: 'res.partner', 'Guest Name'
  • partner_invoice_id Many2one → res.partner
    help='Invoice address for current reservation.' args: 'res.partner', 'Invoice Address'
  • partner_order_id Many2one → res.partner
    help='The name and address of the contact that requested the order or quotation.' readonly=True args: 'res.partner', 'Ordering Contact'
  • partner_shipping_id Many2one → res.partner
    help='Delivery addressfor current reservation. ' readonly=True args: 'res.partner', 'Delivery Address'
  • pricelist_id Many2one → product.pricelist
    help='Pricelist for current reservation.' readonly=True required=True args: 'product.pricelist', 'Scheme'
  • reservation_line One2many → hotel.reservation.line
    help='Hotel room reservation details.' readonly=True args: 'hotel.reservation.line', 'line_id'
  • reservation_no Char
    copy=False readonly=True
  • state Selection
    default='draft' readonly=True args: [('draft', 'Draft'), ('confirm', 'Confirm'), ('cancel', 'Cancel'), ('done', 'Done')]
Public methods (11)
  • action_send_reservation_mail(self)
    This function opens a window to compose an email, template message loaded by default. @param self: object pointer
  • cancel_reservation(self)
    This method cancel record set for hotel room reservation line ------------------------------------------------------------------ @param self: The object pointer @return: cancel record set for hotel room reservation line.
  • check_in_out_dates(self)
    @api.constrains('checkin', 'checkout')
    When date_order is less than check-in date or Checkout date should be greater than the check-in date.
  • check_overlap(self, date1, date2)
  • confirmed_reservation(self)
    This method create a new record set for hotel room reservation line ------------------------------------------------------------------- @param self: The object pointer @return: new record set for hotel room reservation line.
  • copy(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_folio(self)
    This method is for create new hotel folio. ----------------------------------------- @param self: The object pointer @return: new record set for hotel folio.
  • open_folio_view(self)
  • reservation_reminder_24hrs(self)
    @api.model
    This method is for scheduler every 1day scheduler will call this method to find all tomorrow's reservations. ---------------------------------------------- @param self: The object pointer @return: send a mail
  • set_to_draft_reservation(self)

New fields (4)
  • categ_id Many2one → hotel.room.type
    args: 'hotel.room.type', 'Room Type'
  • line_id Many2one → hotel.reservation
    args: 'hotel.reservation'
  • name Char
  • reserve Many2many → hotel.room
    domain="[('isroom','=',True), ('room_categ_id','=',categ_id)]" args: 'hotel.room', 'hotel_reservation_line_room_rel', 'hotel_reservation_line_id', 'room_id'
Public methods (2)
  • on_change_categ(self)
    @api.onchange('categ_id')
    When you change categ_id it check checkin and checkout are filled or not if not then raise warning --------------- @param self: object pointer
  • unlink(self)
    Overrides orm unlink method. @param self: The object pointer @return: True/False.

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

New fields (1)
  • room_reservation_line_ids One2many → hotel.room.reservation.line
    string='Room Reserve Line' args: 'hotel.room.reservation.line', 'room_id'
Public methods (1)
  • cron_room_line(self)
    @api.model
    This method is for scheduler every 1min scheduler will call this method and check Status of room is occupied or available -------------------------------------------------------------- @param self: The object pointer @return: update status of hotel room reservation line

New fields (6)
  • check_in Datetime
    required=True args: 'Check In Date'
  • check_out Datetime
    required=True args: 'Check Out Date'
  • reservation_id Many2one → hotel.reservation
    args: 'hotel.reservation', 'Reservation'
  • room_id Many2one → hotel.room
    args: 'hotel.room'
  • state Selection
    args: [('assigned', 'Assigned'), ('unassigned', 'Unassigned')], 'Room Status'
  • status Selection
    related='reservation_id.state' string='state'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • search_fetch(self, domain, field_names, offset=0, limit=None, order=None)
    @api.model
    Custom search_fetch override: - When called with context["from_room"], restricts to available rooms for given dates.

New fields (10)
  • adults Integer
  • check_in Datetime
    required=True
  • check_out Datetime
    required=True
  • company_id Many2one → res.company
    required=True args: 'res.company', 'Hotel'
  • partner_id Many2one → res.partner
    required=True args: 'res.partner', 'Customer'
  • partner_invoice_id Many2one → res.partner
    required=True args: 'res.partner', 'Invoice Address'
  • partner_order_id Many2one → res.partner
    required=True args: 'res.partner', 'Ordering Contact'
  • partner_shipping_id Many2one → res.partner
    required=True args: 'res.partner', 'Delivery Address'
  • pricelist_id Many2one → product.pricelist
    args: 'product.pricelist', 'pricelist'
  • room_id Many2one → hotel.room
    required=True args: 'hotel.room'
Public methods (2)
  • default_get(self, fields)
    @api.model
    To get default values for the object. @param self: The object pointer. @param fields: List of fields for which we want default values @return: A dictionary which of fields with values.
  • room_reserve(self)
    This method create a new record for hotel.reservation ----------------------------------------------------- @param self: The object pointer @return: new record set for hotel reservation.

New fields (0)

No new fields.

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

New fields (0)

No new fields.

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 (0)

No public methods.

New fields (5)
  • date_from Datetime
    default=<expr>
  • date_to Datetime
    default=<expr>
  • name Char
    default='Reservations Summary' args: 'Reservation Summary'
  • room_summary Text
  • summary_header Text
Public methods (2)
  • get_room_summary(self)
    @api.onchange('date_from', 'date_to')
    @param self: object pointer
  • room_reservation(self)
    @param self: object pointer

New fields (1)
  • grouped Boolean
    args: 'Group the Folios'
Public methods (1)
  • make_folios(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…