diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/pos_restaurant/views | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/pos_restaurant/views')
| -rw-r--r-- | addons/pos_restaurant/views/pos_config_views.xml | 114 | ||||
| -rw-r--r-- | addons/pos_restaurant/views/pos_order_views.xml | 16 | ||||
| -rw-r--r-- | addons/pos_restaurant/views/pos_restaurant_templates.xml | 73 | ||||
| -rw-r--r-- | addons/pos_restaurant/views/pos_restaurant_views.xml | 171 |
4 files changed, 374 insertions, 0 deletions
diff --git a/addons/pos_restaurant/views/pos_config_views.xml b/addons/pos_restaurant/views/pos_config_views.xml new file mode 100644 index 00000000..4bf03185 --- /dev/null +++ b/addons/pos_restaurant/views/pos_config_views.xml @@ -0,0 +1,114 @@ +<?xml version="1.0"?> +<odoo> + + <record id="pos_config_view_form_inherit_restaurant" model="ir.ui.view"> + <field name="name">pos.config.form.inherit.restaurant</field> + <field name="model">pos.config</field> + <field name="inherit_id" ref="point_of_sale.pos_config_view_form"/> + <field name="arch" type="xml"> + <button id="btn_use_pos_restaurant" position="replace"/> + <div id="iface_invoicing" position="before"> + <div class="col-12 col-lg-6 o_setting_box" + id="iface_printbill" + attrs="{'invisible': [('module_pos_restaurant', '=', False)]}"> + <div class="o_setting_left_pane"> + <field name="iface_printbill"/> + </div> + <div class="o_setting_right_pane"> + <label for="iface_printbill"/> + <span class="fa fa-lg fa-cutlery" title="For bars and restaurants" role="img" aria-label="For bars and restaurants"/> + <div class="text-muted"> + Allow to print bill before payment + </div> + </div> + </div> + <div class="col-12 col-lg-6 o_setting_box" + id="iface_splitbill" + attrs="{'invisible': [('module_pos_restaurant', '=', False)]}"> + <div class="o_setting_left_pane"> + <field name="iface_splitbill"/> + </div> + <div class="o_setting_right_pane"> + <label for="iface_splitbill"/> + <span class="fa fa-lg fa-cutlery" title="For bars and restaurants" role="img" aria-label="For bars and restaurants"/> + <div class="text-muted"> + Split total or order lines + </div> + </div> + </div> + </div> + <div id="barcode_scanner" position="after"> + <div class="col-12 col-lg-6 o_setting_box" + id="is_order_printer" + attrs="{'invisible': [('module_pos_restaurant', '=', False)]}"> + <div class="o_setting_left_pane"> + <field name="is_order_printer"/> + </div> + <div class="o_setting_right_pane"> + <label for="is_order_printer"/> + <span class="fa fa-lg fa-cutlery" title="For bars and restaurants" role="img" aria-label="For bars and restaurants"/> + <div class="text-muted"> + Print orders at the kitchen, at the bar, etc. + </div> + <div class="content-group" attrs="{'invisible': [('is_order_printer', '=', False)]}"> + <div class="mt16"> + <label string="Printers" for="printer_ids" class="o_light_label"/> + <field name="printer_ids" widget="many2many_tags"/> + </div> + <div> + <button name="%(pos_restaurant.action_restaurant_printer_form)d" icon="fa-arrow-right" type="action" string="Printers" class="btn-link"/> + </div> + </div> + </div> + </div> + </div> + <div id="tip_product" position="after"> + <div attrs="{'invisible': ['|', ('module_pos_restaurant', '=', False), ('iface_tipproduct', '=', False)]}"> + <field name="set_tip_after_payment" class="oe_inline"/> + <label class="font-weight-normal" for="set_tip_after_payment" string="Add tip after payment (North America specific)"/> + <span class="fa fa-lg fa-cutlery" title="For bars and restaurants" role="img" aria-label="For bars and restaurants"/> + </div> + </div> + <div id="category_reference" position="before"> + <div class="col-12 col-lg-6 o_setting_box" + id="is_table_management" + attrs="{'invisible': [('module_pos_restaurant', '=', False)]}"> + <div class="o_setting_left_pane"> + <field name="is_table_management" attrs="{'readonly': [('has_active_session','=', True)]}"/> + </div> + <div class="o_setting_right_pane"> + <label for="is_table_management"/> + <span class="fa fa-lg fa-cutlery" title="For bars and restaurants" role="img" aria-label="For bars and restaurants"/> + <div class="text-muted"> + Design floors and assign orders to tables + </div> + <div class="content-group" attrs="{'invisible': [('is_table_management','=',False)]}"> + <div class="mt16"> + <label string="Floors" for="floor_ids" class="o_light_label"/> + <field name="floor_ids" widget="many2many_tags" attrs="{'readonly': [('has_active_session','=', True)]}" domain="['|', ('pos_config_id', '=', False), ('pos_config_id', '=', active_id)]"/> + </div> + <div> + <button name="%(pos_restaurant.action_restaurant_floor_form)d" icon="fa-arrow-right" type="action" string="Floors" class="btn-link"/> + </div> + </div> + </div> + </div> + <div class="col-12 col-lg-6 o_setting_box" + id="iface_orderline_notes" + attrs="{'invisible': [('module_pos_restaurant', '=', False)]}"> + <div class="o_setting_left_pane"> + <field name="iface_orderline_notes"/> + </div> + <div class="o_setting_right_pane"> + <label for="iface_orderline_notes"/> + <span class="fa fa-lg fa-cutlery" title="For bars and restaurants" role="img" aria-label="For bars and restaurants"/> + <div class="text-muted"> + Add notes on order lines + </div> + </div> + </div> + </div> + </field> + </record> + +</odoo> diff --git a/addons/pos_restaurant/views/pos_order_views.xml b/addons/pos_restaurant/views/pos_order_views.xml new file mode 100644 index 00000000..182eb8d4 --- /dev/null +++ b/addons/pos_restaurant/views/pos_order_views.xml @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<odoo> + + <record id="view_pos_pos_form" model="ir.ui.view"> + <field name="name">pos.order.form.view.inherit</field> + <field name="model">pos.order</field> + <field name="inherit_id" ref="point_of_sale.view_pos_pos_form"></field> + <field name="arch" type="xml"> + <xpath expr="//group[@name='order_fields']" position="inside"> + <field name="table_id"/> + <field name="customer_count"/> + </xpath> + </field> + </record> + +</odoo> diff --git a/addons/pos_restaurant/views/pos_restaurant_templates.xml b/addons/pos_restaurant/views/pos_restaurant_templates.xml new file mode 100644 index 00000000..8f5727a9 --- /dev/null +++ b/addons/pos_restaurant/views/pos_restaurant_templates.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + + <template id="assets" inherit_id="point_of_sale.assets"> + <xpath expr="." position="inside"> + <script type="text/javascript" src="/pos_restaurant/static/lib/js/jquery.ui.touch-punch.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/multiprint.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/floors.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/notes.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/payment.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Resizeable.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/OrderlineNoteButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/TableGuestsButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/PrintBillButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/SubmitOrderButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/SplitBillButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/TransferOrderButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ProductScreen/Orderline.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/BillScreen.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/SplitBillScreen/SplitBillScreen.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/SplitBillScreen/SplitOrderline.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/FloorScreen/FloorScreen.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/FloorScreen/EditBar.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/FloorScreen/TableWidget.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/FloorScreen/EditableTable.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/OrderManagementScreen/OrderManagementScreen.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/OrderManagementScreen/OrderRow.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/TicketScreen.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/ChromeWidgets/BackToFloorButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/ChromeWidgets/TicketButton.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Chrome.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/ReceiptScreen/ReceiptScreen.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/PaymentScreen.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/src/js/Screens/TipScreen.js"></script> + </xpath> + <xpath expr="//link[@id='pos-stylesheet']" position="after"> + <link rel="stylesheet" href="/pos_restaurant/static/src/css/restaurant.css"/> + </xpath> + </template> + + <template id="assets_backend" name="hr assets" inherit_id="web.assets_backend"> + <xpath expr="." position="inside"> + <link rel="stylesheet" type="text/scss" href="/point_of_sale/static/src/scss/pos_dashboard.scss"/> + </xpath> + </template> + + <template id="assets_tests" name="POS Restaurant Assets Tests" inherit_id="web.assets_tests"> + <xpath expr="." position="inside"> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/ProductScreenTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/ChromeTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/FloorScreenTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/SplitBillScreenTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/TextAreaPopupTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/TextInputPopupTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/BillScreenTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/helpers/TipScreenTourMethods.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/pos_restaurant.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/SplitBillScreen.tour.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/ControlButtons.tour.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/FloorScreen.tour.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/OrderManagementScreen.tour.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/TicketScreen.tour.js"></script> + <script type="text/javascript" src="/pos_restaurant/static/tests/tours/TipScreen.tour.js"></script> + </xpath> + </template> + + <template id="pos_restaurant.qunit_suite_tests" inherit_id="point_of_sale.qunit_suite_tests"> + <xpath expr="." position="inside"> + <script type="text/javascript" src="/pos_restaurant/static/tests/unit/test_FloorScreen.js"></script> + </xpath> + </template> + +</odoo> diff --git a/addons/pos_restaurant/views/pos_restaurant_views.xml b/addons/pos_restaurant/views/pos_restaurant_views.xml new file mode 100644 index 00000000..5db31bbd --- /dev/null +++ b/addons/pos_restaurant/views/pos_restaurant_views.xml @@ -0,0 +1,171 @@ +<?xml version="1.0"?> +<odoo> + <!-- RESTAURANTS FLOORS --> + + <record id="view_restaurant_floor_form" model="ir.ui.view"> + <field name="name">Restaurant Floors</field> + <field name="model">restaurant.floor</field> + <field name="arch" type="xml"> + <form string="Restaurant Floor"> + <sheet> + <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/> + <field name="active" invisible="1"/> + <group col="4"> + <field name="name" /> + <field name="pos_config_id" /> + <field name="background_color" groups="base.group_no_one" /> + </group> + <field name="table_ids"> + <tree string='Tables'> + <field name="name" /> + <field name="seats" /> + <field name="shape" /> + </tree> + </field> + </sheet> + </form> + </field> + </record> + + <record id="view_restaurant_floor_tree" model="ir.ui.view"> + <field name="name">Restaurant Floors</field> + <field name="model">restaurant.floor</field> + <field name="arch" type="xml"> + <tree string="Restaurant Floors"> + <field name="sequence" widget="handle" /> + <field name="name" /> + <field name="pos_config_id" /> + </tree> + </field> + </record> + + <record id="view_restaurant_floor_search" model="ir.ui.view"> + <field name="name">restaurant.floor.search</field> + <field name="model">restaurant.floor</field> + <field name="arch" type="xml"> + <search> + <field name="name"/> + <filter string="Archived" name="active" domain="[('active', '=', False)]"/> + </search> + </field> + </record> + + <record id="view_restaurant_floor_kanban" model="ir.ui.view"> + <field name="name">restaurant.floor.kanban</field> + <field name="model">restaurant.floor</field> + <field name="arch" type="xml"> + <kanban class="o_kanban_mobile"> + <field name="name"/> + <field name="pos_config_id" /> + <templates> + <t t-name="kanban-box"> + <div t-attf-class="oe_kanban_global_click"> + <div><strong>Floor Name: </strong><t t-esc="record.name.value"/></div> + <div><strong>Point of Sale: </strong><t t-esc="record.pos_config_id.value"/></div> + </div> + </t> + </templates> + </kanban> + </field> + </record> + + <record id="action_restaurant_floor_form" model="ir.actions.act_window"> + <field name="name">Floor Plans</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">restaurant.floor</field> + <field name="view_mode">tree,kanban,form</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Add a new restaurant floor + </p><p> + A restaurant floor represents the place where customers are served, this is where you can + define and position the tables. + </p> + </field> + </record> + + <record id="view_restaurant_table_form" model="ir.ui.view"> + <field name="name">Restaurant Table</field> + <field name="model">restaurant.table</field> + <field name="arch" type="xml"> + <form string="Restaurant Table"> + <group col="2"> + <field name="name" /> + <field name="seats" /> + </group> + <group col="4" string="Appearance" groups="base.group_no_one"> + <field name="shape" /> + <field name="color" /> + <field name="position_h" /> + <field name="position_v" /> + <field name="width" /> + <field name="height" /> + </group> + </form> + </field> + </record> + + <menuitem id="menu_restaurant_floor_all" + parent="point_of_sale.menu_point_config_product" + action="action_restaurant_floor_form" + sequence="10" + groups="base.group_no_one"/> + + <!-- RESTAURANT PRINTERS --> + + <record id="view_restaurant_printer_form" model="ir.ui.view"> + <field name="name">Order Printer</field> + <field name="model">restaurant.printer</field> + <field name="arch" type="xml"> + <form string="POS Printer"> + <sheet> + <group> + <field name="name" /> + <field name="printer_type" widget="radio"/> + <field name="proxy_ip" attrs="{'invisible': [('printer_type', '!=', 'iot')]}"/> + <field name="product_categories_ids" /> + </group> + </sheet> + </form> + </field> + </record> + + <record id="action_restaurant_printer_form" model="ir.actions.act_window"> + <field name="name">Order Printers</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">restaurant.printer</field> + <field name="view_mode">tree,kanban,form</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Add a new restaurant order printer + </p><p> + Order Printers are used by restaurants and bars to print the + order updates in the kitchen/bar when the waiter updates the order. + </p><p> + Each Order Printer has an IP Address that defines the IoT Box/Hardware + Proxy where the printer can be found, and a list of product categories. + An Order Printer will only print updates for products belonging to one of + its categories. + </p> + </field> + </record> + + <record id="view_restaurant_printer" model="ir.ui.view"> + <field name="name">Order Printers</field> + <field name="model">restaurant.printer</field> + <field name="arch" type="xml"> + <tree string="Restaurant Order Printers"> + <field name="name" /> + <field name="proxy_ip" /> + <field name="product_categories_ids" /> + </tree> + </field> + </record> + + <menuitem id="menu_restaurant_printer_all" + parent="point_of_sale.menu_point_config_product" + action="action_restaurant_printer_form" + sequence="15" + groups="base.group_no_one"/> + +</odoo> |
