TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Sales/Point of Sale
Folder size
6.66 MB
License
LGPL-3
Application
Yes
Auto-installable
No
Website
https://www.odoo.com/app/point-of-sale-restaurant
Last tracking update
2026-10-05 00:19:44
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, odoo, Odoo Translation Bot, Christophe Matthieu, Géry Debongnie, Julien Castiaux, Victor Feyens, Sébastien Theys, Julien Mougenot, Tiffany Chang (tic), Pierre Paridans, roen-odoo, william-andre, Nicolas Bayet, Renaud Thiry, rhe-odoo, David Monnom (moda), Pedram (PEBR), Dylan Kiss (dyki), tong-odoo, Sarah Bellefroid, Louis Travaux, Adrien Guilliams (adgu), shag-odoo, Ahmad (khah), Chrysanthe (chgo), sami odoo, mano-odoo, Parth Solanki[PASO], manv-afk, Max Whale, parp-odoo, Loukas Wets (lowe), Xavier Luyckx (xlu), Stéphane Diez, paan-odoo, Jitendra Prajapat, David Monnom, Arthur Nanson, Pierre Pulinckx, Michaël Mattiello, Krzysztof Magusiak (krma), Ajit Singh, zadh-odoo, vpan-odoo, dhruv, vlst-odoo, Radu Macocian (admac), Guillaume V, Meet Jivani [MEJI], Hadi El Yakhni, bhra-odoo, romc-odoo, sjai-odoo, Julien Launois (jula), Laetitia (ldau), adip-odoo, path-odoo, Traina Ludo, rpka-odoo, Stephane Vanmeerhaeghe (stva), Léopold Cantraine, abhk-odoo, ELCO, Khaj-odoo, chpa-odoo, adgu-odoo, Shubham Agarwal, Shubham Agarwal(shag), jipr-odoo, krpat-odoo, Abhishek Khant, Louis Wicket, Vedant Pandey (vpan-odoo), Julien Coppin (jucop), Jean Schoenlaub, Elisabeth Dickinson (edi)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
l10n_be_pos_restaurant, pos_hr_restaurant, pos_restaurant_loyalty, pos_self_order, spreadsheet_dashboard_pos_restaurant
Description

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis info_outline

Views touched (15)
XML IDNameModelTypeStatus
pos_restaurant.pos_order_change_receipt pos_restaurant.pos_order_change_receipt ir.ui.view qweb Inherits point_of_sale.pos_order_change_receipt
pos_restaurant.pos_order_receipt_header pos_restaurant.pos_order_receipt_header ir.ui.view qweb Inherits point_of_sale.pos_order_receipt_header
pos_restaurant_pos_category_kanban_view pos.restaurant.pos.category.kanban pos.category kanban Inherits point_of_sale.view_pos_category_kanban
pos_restaurant_product_pos_category_tree_view pos.restaurant.pos.category.list.view pos.category list Inherits point_of_sale.product_pos_category_tree_view
res_config_settings_view_form res.config.settings.view.form.inherit.pos_restaurant res.config.settings form Inherits point_of_sale.res_config_settings_view_form
view_pos_category_form_inherit_course pos.category.form.inherit.course pos.category form Inherits point_of_sale.product_pos_category_form_view
view_pos_course_form pos.course.form pos.course form New
view_pos_course_list pos.course.list pos.course list New
view_pos_pos_form pos.order.form.view.inherit pos.order form Inherits point_of_sale.view_pos_pos_form
view_pos_preset_form_inherit_pos_restaurant pos.preset.form pos.preset form Inherits point_of_sale.view_pos_preset_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_search restaurant.floor.search restaurant.floor search New
view_restaurant_floor_tree Restaurant Floors restaurant.floor list New
view_restaurant_table_form Restaurant Table restaurant.table form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (13)

New fields (1)
  • course_id Many2one → pos.course
    index=True string='Course' args: 'pos.course'
Public methods (0)

No public methods.

New fields (6)
  • default_screen Selection
    default='tables' string='Default Screen' args: [('tables', 'Tables'), ('register', 'Register')]
  • floor_ids Many2many → restaurant.floor
    copy=False help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor'
  • floor_plan Json
    compute='_compute_floor_plan' string='Floor Plan'
  • floor_plan_settings Json
    string='Floor Plan Settings'
  • use_course_allocation Boolean
    string='Enable Course Allocation'
  • use_show_items_on_course_ticket Boolean
    help='Show items again on the fired course ticket in preparation printer' string='Show Items on Fired Course Ticket'
Public methods (6)
  • create(self, vals_list)
    @api.model_create_multi
  • get_floor_plan(self)
  • load_onboarding_bar_scenario(self, with_demo_data=True)
    @api.model
  • load_onboarding_restaurant_scenario(self, with_demo_data=True)
    @api.model
  • save_floor_plan(self, floor_plan)
  • write(self, vals)

New fields (3)
  • category_ids One2many → pos.category
    copy=False string='Pos Category' args: 'pos.category', 'course_id'
  • name Char
    required=True string='Course Name'
  • sequence Integer
    default=_default_sequence string='Sequence'
Public methods (0)

No public methods.

New fields (4)
  • course_ids One2many → restaurant.order.course
    string='Courses' args: 'restaurant.order.course', 'order_id'
  • customer_count Integer
    help='The amount of customers that have been served by this order.' readonly=True string='Guests'
  • duration Char
    compute='_compute_duration' help='Shows how long the table has been occupied.' string='Duration'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index='btree_not_null' readonly=True string='Table' args: 'restaurant.table'
Public methods (1)
  • read_pos_data(self, data, config)

New fields (1)
  • course_id Many2one → restaurant.order.course
    index='btree_not_null' ondelete='set null' string='Course Ref' args: 'restaurant.order.course'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • order_receipt_generate_data(self, basic_receipt=False)

New fields (1)
  • use_guest Boolean
    default=False help='Force guest selection when clicking on order button in PoS restaurant' string='Guest'
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)
  • default_get(self, fields)
    @api.model

New fields (4)
  • pos_default_screen Selection
    readonly=False related='pos_config_id.default_screen'
  • pos_floor_ids Many2many
    readonly=False related='pos_config_id.floor_ids'
  • pos_use_course_allocation Boolean
    readonly=False related='pos_config_id.use_course_allocation'
  • pos_use_show_items_on_course_ticket Boolean
    readonly=False related='pos_config_id.use_show_items_on_course_ticket'
Public methods (0)

No public methods.

New fields (6)
  • active Boolean
    default=True
  • floor_plan_layout Json
    copy=False string='Floor Plan Layout'
  • name Char
    required=True args: 'Floor Name'
  • pos_config_ids Many2many → pos.config
    copy=False domain="[('module_pos_restaurant', '=', True)]" string='Point of Sales' args: 'pos.config'
  • sequence Integer
    default=1 args: 'Sequence'
  • table_ids One2many → restaurant.table
    string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (3)
  • add_floor_plan_image(self, name, data)
    @api.model
  • deactivate_floor(self, session_id)
  • write(self, vals)

New fields (8)
  • course_id Many2one → pos.course
    readonly=True string='Course' args: 'pos.course'
  • fired Boolean
    default=False string='Fired'
  • fired_date Datetime
    string='Fired Date'
  • index Integer
    default=0 string='Course index'
  • line_ids One2many → pos.order.line
    readonly=True string='Order Lines' args: 'pos.order.line', 'course_id'
  • name Char
    readonly=True string='Course Name'
  • order_id Many2one → pos.order
    index=True ondelete='cascade' required=True string='Order Ref' args: 'pos.order'
  • uuid Char
    copy=False default=<expr> readonly=True string='Uuid'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (7)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • floor_id Many2one → restaurant.floor
    index='btree_not_null' string='Floor' args: 'restaurant.floor'
  • floor_plan_layout Json
    string='Floor Plan Layout'
  • parent_id Many2one → restaurant.table
    help='The parent table if this table is part of a group of tables' string='Parent Table' args: 'restaurant.table'
  • parent_side Selection
    help='The parent table side where this table will be displayed' selection=[('left', 'Left'), ('right', 'Right'), ('top', 'Top'), ('bottom', 'Bottom')] string='Parent Side'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • table_number Integer
    default=0 help='The number of the table as displayed on the floor plan' required=True args: 'Table Number'
Public methods (2)
  • are_orders_still_in_draft(self)
  • set_parent_id(self, parent_id, parent_side, config_id)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…