[FIX] point_of_sale,pos_restaurant: load data on new pos config

In this commit 2 issues are fixed. The first issue is when trying to load
demo data when the default pos configs are deleted. The second is when trying to
reload onboarding data when the products are already loaded but archived
(task-3539455).

steps to reproduce the first issue:
- load db without demo data
- delete pos created by default
- create a new pos config
- open and try to load demo data

steps to reproduce the second issue:
- load db without demo data
- open pos and load demo data
- archive products
- open pos and try to load demo data

changes:
- main pos config demo data has been separated from onboarding data.
- condition has been added in the search count of _pos_has_valid_product
method to check for archived products.

closes odoo/odoo#138035

Related: odoo/enterprise#48621
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
This commit is contained in:
Loukas Wets (lowe)
2023-10-16 12:00:04 +00:00
committed by Joseph Caburnay
parent 633e031aa8
commit 3764cef64a
9 changed files with 721 additions and 720 deletions
@@ -14,10 +14,6 @@
<field name="image_128" type="base64" file="point_of_sale/static/img/chair_category.png" />
</record>
<record model="pos.config" id="pos_config_main">
<field name="iface_start_categ_id" ref="pos_category_desks" />
<field name="start_category">True</field>
</record>
<function model="pos.config" name="add_cash_payment_method" />
<!-- Preparation Printer -->
@@ -666,17 +662,6 @@
<field name="exclude_for" eval="[(6, 0, [ref('point_of_sale.product_template_attribute_exclusion_3')])]" />
</record>
<!-- Closed Sessions -->
<!-- forcecreate is set to false in order to not create record when updating the db -->
<function model="ir.model.data" name="_update_xmlids">
<value model="base" eval="[{
'xml_id': 'point_of_sale.payment_method',
'record': obj().env.ref('point_of_sale.pos_config_main')._get_payment_method('cash'),
'noupdate': True,
}]" />
</function>
<record id="product_product_12" model="product.product">
<field name="name">Office Chair Black</field>
<field name="categ_id" ref="product.product_category_1"/>
@@ -906,190 +891,4 @@
<field name="taxes_id" eval="[(5,)]"/> <!-- no taxes -->
<field name="pos_categ_ids" eval="[(6, 0, [ref('pos_category_miscellaneous')])]"/>
</record>
<!-- Closed Session 1 -->
<record id="pos_closed_session_1" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at"
eval="(DateTime.today() + relativedelta(days=-1, hours=1)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_1_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_1" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0001</field>
<field name="state">paid</field>
<field name="amount_total">4.81</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">4.81</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-001-1001</field>
</record>
<record id="pos_closed_orderline_1_1_1" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="wall_shelf" />
<field name="price_subtotal">1.98</field>
<field name="price_subtotal_incl">1.98</field>
<field name="price_unit">1.98</field>
<field name="order_id" ref="pos_closed_order_1_1" />
<field name="full_product_name">Wall Shelf</field>
</record>
<record id="pos_closed_orderline_1_1_2" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="small_shelf" />
<field name="price_subtotal">2.83</field>
<field name="price_subtotal_incl">2.83</field>
<field name="price_unit">2.83</field>
<field name="order_id" ref="pos_closed_order_1_1" />
<field name="full_product_name">Small Shelf</field>
</record>
<record id="pos_payment_1" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_1_1" />
<field name="amount">4.81</field>
</record>
<record id="pos_closed_order_1_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_1" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0002</field>
<field name="state">paid</field>
<field name="amount_total">2220.50</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">2220.50</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-001-1002</field>
</record>
<record id="pos_closed_orderline_1_2_1" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="product_product_12" />
<field name="price_subtotal">120.50</field>
<field name="price_subtotal_incl">120.5</field>
<field name="price_unit">120.50</field>
<field name="order_id" ref="pos_closed_order_1_2" />
<field name="full_product_name">Office Chair Black</field>
</record>
<record id="pos_closed_orderline_1_2_2" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="product_product_22" />
<field name="price_subtotal">2100.0</field>
<field name="price_subtotal_incl">2100.0</field>
<field name="price_unit">2100.0</field>
<field name="order_id" ref="pos_closed_order_1_2" />
<field name="full_product_name">Desk Stand with Screen</field>
</record>
<record id="pos_payment_2" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_1_2" />
<field name="amount">2220.50</field>
</record>
<function model="pos.session" name="post_closing_cash_details" eval="[[ref('pos_closed_session_1')], 2225.31]" />
<function model="pos.session" name="update_closing_control_state_session"
eval="[[ref('pos_closed_session_1')], '']" />
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_1')]]" />
<!-- Closed Session 2 -->
<record id="pos_closed_session_2" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(hours=-3)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at" eval="(DateTime.today() + relativedelta(hours=-2)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_2_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_2" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0003</field>
<field name="state">paid</field>
<field name="amount_total">9.90</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">9.90</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-002-1001</field>
</record>
<record id="pos_closed_orderline_2_1_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.1.1</field>
<field name="product_id" ref="letter_tray" />
<field name="price_subtotal">4.80</field>
<field name="price_subtotal_incl">4.80</field>
<field name="price_unit">4.80</field>
<field name="order_id" ref="pos_closed_order_2_1" />
<field name="full_product_name">Letter Tray</field>
</record>
<record id="pos_closed_orderline_2_1_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.1.2</field>
<field name="product_id" ref="desk_organizer" />
<field name="price_subtotal">5.10</field>
<field name="price_subtotal_incl">5.10</field>
<field name="price_unit">5.10</field>
<field name="order_id" ref="pos_closed_order_2_1" />
<field name="full_product_name">Desk Organizer</field>
</record>
<record id="pos_payment_3" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_2_1" />
<field name="amount">9.90</field>
</record>
<record id="pos_closed_order_2_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_2" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0004</field>
<field name="state">paid</field>
<field name="amount_total">8.36</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">8.36</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-002-1002</field>
</record>
<record id="pos_closed_orderline_2_2_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.2.1</field>
<field name="product_id" ref="magnetic_board" />
<field name="price_subtotal">1.98</field>
<field name="price_subtotal_incl">1.98</field>
<field name="price_unit">1.98</field>
<field name="order_id" ref="pos_closed_order_2_2" />
<field name="full_product_name">Magnetic Board</field>
</record>
<record id="pos_closed_orderline_2_2_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.1.2</field>
<field name="product_id" ref="monitor_stand" />
<field name="price_subtotal">6.38</field>
<field name="price_subtotal_incl">6.38</field>
<field name="qty">2</field>
<field name="price_unit">3.19</field>
<field name="order_id" ref="pos_closed_order_2_2" />
<field name="full_product_name">Monitor Stand</field>
</record>
<record id="pos_payment_4" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_2_2" />
<field name="amount">8.36</field>
</record>
<function model="pos.session" name="post_closing_cash_details"
eval="[[ref('pos_closed_session_2')], 2243.57]" />
<function model="pos.session" name="update_closing_control_state_session"
eval="[[ref('pos_closed_session_2')], '']" />
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_2')]]" />
</odoo>
@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="pos.config" id="pos_config_main">
<field name="iface_start_categ_id" ref="pos_category_desks" />
<field name="start_category">True</field>
</record>
<function model="ir.model.data" name="_update_xmlids">
<value model="base" eval="[{
'xml_id': 'point_of_sale.payment_method',
'record': obj().env.ref('point_of_sale.pos_config_main')._get_payment_method('cash'),
'noupdate': True,
}]" />
</function>
<!-- Closed Session 1 -->
<record id="pos_closed_session_1" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at"
eval="(DateTime.today() + relativedelta(days=-1, hours=1)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_1_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_1" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0001</field>
<field name="state">paid</field>
<field name="amount_total">4.81</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">4.81</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-001-1001</field>
</record>
<record id="pos_closed_orderline_1_1_1" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="wall_shelf" />
<field name="price_subtotal">1.98</field>
<field name="price_subtotal_incl">1.98</field>
<field name="price_unit">1.98</field>
<field name="order_id" ref="pos_closed_order_1_1" />
<field name="full_product_name">Wall Shelf</field>
</record>
<record id="pos_closed_orderline_1_1_2" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="small_shelf" />
<field name="price_subtotal">2.83</field>
<field name="price_subtotal_incl">2.83</field>
<field name="price_unit">2.83</field>
<field name="order_id" ref="pos_closed_order_1_1" />
<field name="full_product_name">Small Shelf</field>
</record>
<record id="pos_payment_1" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_1_1" />
<field name="amount">4.81</field>
</record>
<record id="pos_closed_order_1_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_1" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0002</field>
<field name="state">paid</field>
<field name="amount_total">2220.50</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">2220.50</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-001-1002</field>
</record>
<record id="pos_closed_orderline_1_2_1" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="product_product_12" />
<field name="price_subtotal">120.50</field>
<field name="price_subtotal_incl">120.5</field>
<field name="price_unit">120.50</field>
<field name="order_id" ref="pos_closed_order_1_2" />
<field name="full_product_name">Office Chair Black</field>
</record>
<record id="pos_closed_orderline_1_2_2" model="pos.order.line" forcecreate="False">
<field name="product_id" ref="product_product_22" />
<field name="price_subtotal">2100.0</field>
<field name="price_subtotal_incl">2100.0</field>
<field name="price_unit">2100.0</field>
<field name="order_id" ref="pos_closed_order_1_2" />
<field name="full_product_name">Desk Stand with Screen</field>
</record>
<record id="pos_payment_2" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_1_2" />
<field name="amount">2220.50</field>
</record>
<function model="pos.session" name="post_closing_cash_details" eval="[[ref('pos_closed_session_1')], 2225.31]" />
<function model="pos.session" name="update_closing_control_state_session"
eval="[[ref('pos_closed_session_1')], '']" />
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_1')]]" />
<!-- Closed Session 2 -->
<record id="pos_closed_session_2" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(hours=-3)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at" eval="(DateTime.today() + relativedelta(hours=-2)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_2_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_2" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0003</field>
<field name="state">paid</field>
<field name="amount_total">9.90</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">9.90</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-002-1001</field>
</record>
<record id="pos_closed_orderline_2_1_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.1.1</field>
<field name="product_id" ref="letter_tray" />
<field name="price_subtotal">4.80</field>
<field name="price_subtotal_incl">4.80</field>
<field name="price_unit">4.80</field>
<field name="order_id" ref="pos_closed_order_2_1" />
<field name="full_product_name">Letter Tray</field>
</record>
<record id="pos_closed_orderline_2_1_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.1.2</field>
<field name="product_id" ref="desk_organizer" />
<field name="price_subtotal">5.10</field>
<field name="price_subtotal_incl">5.10</field>
<field name="price_unit">5.10</field>
<field name="order_id" ref="pos_closed_order_2_1" />
<field name="full_product_name">Desk Organizer</field>
</record>
<record id="pos_payment_3" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_2_1" />
<field name="amount">9.90</field>
</record>
<record id="pos_closed_order_2_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_2" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0004</field>
<field name="state">paid</field>
<field name="amount_total">8.36</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">8.36</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-002-1002</field>
</record>
<record id="pos_closed_orderline_2_2_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.2.1</field>
<field name="product_id" ref="magnetic_board" />
<field name="price_subtotal">1.98</field>
<field name="price_subtotal_incl">1.98</field>
<field name="price_unit">1.98</field>
<field name="order_id" ref="pos_closed_order_2_2" />
<field name="full_product_name">Magnetic Board</field>
</record>
<record id="pos_closed_orderline_2_2_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 2.1.2</field>
<field name="product_id" ref="monitor_stand" />
<field name="price_subtotal">6.38</field>
<field name="price_subtotal_incl">6.38</field>
<field name="qty">2</field>
<field name="price_unit">3.19</field>
<field name="order_id" ref="pos_closed_order_2_2" />
<field name="full_product_name">Monitor Stand</field>
</record>
<record id="pos_payment_4" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="point_of_sale.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_2_2" />
<field name="amount">8.36</field>
</record>
<function model="pos.session" name="post_closing_cash_details"
eval="[[ref('pos_closed_session_2')], 2243.57]" />
<function model="pos.session" name="update_closing_control_state_session"
eval="[[ref('pos_closed_session_2')], '']" />
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_2')]]" />
</odoo>
+14 -11
View File
@@ -2206,24 +2206,27 @@ class PosSession(models.Model):
self.message_post(body=body, author_id=partner_id)
def _pos_has_valid_product(self):
return self.env['product.product'].sudo().search_count(['&', ('available_in_pos', '=', True), ('list_price', '>', 0)], limit=1) > 0
return self.env['product.product'].sudo().search_count([('available_in_pos', '=', True), ('list_price', '>', 0), '|', ('active', '=', False), ('active', '=', True)], limit=1) > 0
@api.model
def _load_onboarding_data(self):
convert.convert_file(self.env, 'point_of_sale', 'data/point_of_sale_onboarding.xml', None, mode='init', kind='data')
shop_config = self.env.ref('point_of_sale.pos_config_main')
if len(shop_config.session_ids.filtered(lambda s: s.state == 'opened')) == 0:
self.env['pos.session'].create({
'config_id': shop_config.id,
'user_id': self.env.ref('base.user_admin').id,
})
shop_config = self.env.ref('point_of_sale.pos_config_main', raise_if_not_found=False)
if shop_config:
convert.convert_file(self.env, 'point_of_sale', 'data/point_of_sale_onboarding_main_config.xml', None, mode='init', kind='data')
if len(shop_config.session_ids.filtered(lambda s: s.state == 'opened')) == 0:
self.env['pos.session'].create({
'config_id': shop_config.id,
'user_id': self.env.ref('base.user_admin').id,
})
def _after_load_onboarding_data(self):
config = self.env.ref('point_of_sale.pos_config_main', raise_if_not_found=False)
config.with_context(bypass_categories_forbidden_change=True).write({
'limit_categories': True,
'iface_available_categ_ids': [Command.link(self.env.ref('point_of_sale.pos_category_miscellaneous').id), Command.link(self.env.ref('point_of_sale.pos_category_desks').id), Command.link(self.env.ref('point_of_sale.pos_category_chairs').id)]
})
if config:
config.with_context(bypass_categories_forbidden_change=True).write({
'limit_categories': True,
'iface_available_categ_ids': [Command.link(self.env.ref('point_of_sale.pos_category_miscellaneous').id), Command.link(self.env.ref('point_of_sale.pos_category_desks').id), Command.link(self.env.ref('point_of_sale.pos_category_chairs').id)]
})
def load_product_frontend(self):
allowed = not self._pos_has_valid_product()
@@ -66,9 +66,7 @@ export class ProductsWidget extends Component {
}
return false;
}
get posHasValidProduct() {
return this.pos.posHasValidProduct();
}
get selectedCategoryId() {
return this.pos.selectedCategoryId;
}
@@ -16,7 +16,7 @@
debounceMillis="100" />
</div>
<div class="product-list-container flex-grow-1 overflow-y-auto">
<div t-if="productsToDisplay.length != 0 and posHasValidProduct" t-attf-class="product-list {{this.pos.productListViewMode}} p-1">
<div t-if="productsToDisplay.length != 0 and pos.posHasValidProduct()" t-attf-class="product-list {{this.pos.productListViewMode}} p-1">
<t t-foreach="productsToDisplay" t-as="product" t-key="product.id">
<ProductCard
class="pos.productViewMode"
@@ -35,7 +35,7 @@
<p>No products found for <b>"<t t-esc="searchWord"/>"</b> in this category.</p>
</t>
<t t-else="">
<t t-if="posHasValidProduct">
<t t-if="pos.posHasValidProduct()">
<p>There are no products in this category.</p>
</t>
<t t-else="">
@@ -489,10 +489,7 @@ export class PosStore extends Reactive {
* @returns true if the POS app (not only this POS config) has at least one valid product.
*/
posHasValidProduct() {
return (
this.pos_has_valid_product ||
Object.values(this.db.product_by_id).some((p) => p.available_in_pos && p.lst_price > 0)
);
return this.pos_has_valid_product;
}
setSelectedCategoryId(categoryId) {
@@ -231,492 +231,5 @@
<field name="image_1920" type="base64" file="pos_restaurant/static/img/th-fanta.jpg"/>
</record>
<!-- Pos Config -->
<record model="pos.config" id="pos_config_main_restaurant">
<field name="name">Restaurant</field>
<field name="iface_printbill">True</field>
<field name="iface_start_categ_id" ref="food" />
<field name="start_category">True</field>
</record>
<!-- Closed Sessions -->
<!-- forcecreate is set to false in order to not create record when updating the db -->
<function model="ir.model.data" name="_update_xmlids">
<value model="base" eval="[{
'xml_id': 'pos_restaurant.payment_method',
'record': obj().env.ref('pos_restaurant.pos_config_main_restaurant')._get_payment_method('bank'),
'noupdate': True,
}]" />
</function>
<!-- Closed Session 3 -->
<record id="pos_closed_session_3" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main_restaurant" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at"
eval="(DateTime.today() + relativedelta(days=-1, hours=1)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_3_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_3" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0005</field>
<field name="state">paid</field>
<field name="amount_total">14.0</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">14.0</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-003-1001</field>
</record>
<record id="pos_closed_orderline_3_1_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 3.1.1</field>
<field name="product_id" ref="pos_food_margherita" />
<field name="price_subtotal">7.0</field>
<field name="price_subtotal_incl">7.0</field>
<field name="price_unit">7.0</field>
<field name="order_id" ref="pos_closed_order_3_1" />
<field name="full_product_name">Margherita</field>
</record>
<record id="pos_closed_orderline_3_1_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 3.1.2</field>
<field name="product_id" ref="pos_food_funghi" />
<field name="price_subtotal">7.0</field>
<field name="price_subtotal_incl">7.0</field>
<field name="price_unit">7.0</field>
<field name="order_id" ref="pos_closed_order_3_1" />
<field name="full_product_name">Funghi</field>
</record>
<record id="pos_payment_1" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_3_1" />
<field name="amount">14.0</field>
</record>
<record id="pos_closed_order_3_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_3" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0006</field>
<field name="state">paid</field>
<field name="amount_total">7.0</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">7.0</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-003-1002</field>
</record>
<record id="pos_closed_orderline_3_2_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 3.2.1</field>
<field name="product_id" ref="pos_food_vege" />
<field name="price_subtotal">7.0</field>
<field name="price_subtotal_incl">7.0</field>
<field name="price_unit">7.0</field>
<field name="order_id" ref="pos_closed_order_3_2" />
<field name="full_product_name">Vegetarian</field>
</record>
<record id="pos_payment_2" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_3_2" />
<field name="amount">7.0</field>
</record>
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_3')]]" />
<!-- Closed Session 4 -->
<record id="pos_closed_session_4" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main_restaurant" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at"
eval="(DateTime.today() + relativedelta(days=-1, hours=1)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_4_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_4" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0007</field>
<field name="state">paid</field>
<field name="amount_total">6.7</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">6.7</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-004-1001</field>
</record>
<record id="pos_closed_orderline_4_1_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 4.1.1</field>
<field name="product_id" ref="water" />
<field name="price_subtotal">2.20</field>
<field name="price_subtotal_incl">2.20</field>
<field name="price_unit">2.20</field>
<field name="order_id" ref="pos_closed_order_4_1" />
<field name="full_product_name">Water</field>
</record>
<record id="pos_closed_orderline_4_1_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 4.1.2</field>
<field name="product_id" ref="pos_food_bolo" />
<field name="price_subtotal">4.5</field>
<field name="price_subtotal_incl">4.5</field>
<field name="price_unit">4.5</field>
<field name="order_id" ref="pos_closed_order_4_1" />
<field name="full_product_name">Pasta Bolognese</field>
</record>
<record id="pos_payment_3" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_4_1" />
<field name="amount">6.7</field>
</record>
<record id="pos_closed_order_4_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_4" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0008</field>
<field name="state">paid</field>
<field name="amount_total">28.0</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">28.0</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-004-1002</field>
</record>
<record id="pos_closed_orderline_4_2_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 4.2.1</field>
<field name="product_id" ref="pos_food_cheeseburger" />
<field name="price_subtotal">28.0</field>
<field name="price_subtotal_incl">28.0</field>
<field name="price_unit">7.0</field>
<field name="qty">4</field>
<field name="order_id" ref="pos_closed_order_4_2" />
<field name="full_product_name">Cheese Burger</field>
</record>
<record id="pos_payment_4" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_4_2" />
<field name="amount">28.0</field>
</record>
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_4')]]" />
<!-- Floors: Main Floor -->
<record id="floor_main" model="restaurant.floor">
<field name="name">Main Floor</field>
<field name="background_color">rgb(136,137,242)</field>
<field name="pos_config_ids" eval="[(6, 0, [ref('pos_restaurant.pos_config_main_restaurant')])]" />
</record>
<record id="table_01" model="restaurant.table">
<field name="name">1</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">50</field>
<field name="position_v">50</field>
</record>
<record id="table_02" model="restaurant.table">
<field name="name">2</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">212</field>
<field name="position_v">50</field>
</record>
<record id="table_03" model="restaurant.table">
<field name="name">3</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">374</field>
<field name="position_v">50</field>
</record>
<record id="table_04" model="restaurant.table">
<field name="name">4</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">536</field>
<field name="position_v">50</field>
</record>
<record id="table_05" model="restaurant.table">
<field name="name">5</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">698</field>
<field name="position_v">50</field>
</record>
<record id="table_06" model="restaurant.table">
<field name="name">6</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">860</field>
<field name="position_v">50</field>
</record>
<record id="table_07" model="restaurant.table">
<field name="name">7</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">50</field>
<field name="position_v">280</field>
</record>
<record id="table_08" model="restaurant.table">
<field name="name">8</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">212</field>
<field name="position_v">280</field>
</record>
<record id="table_09" model="restaurant.table">
<field name="name">9</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">698</field>
<field name="position_v">280</field>
</record>
<record id="table_10" model="restaurant.table">
<field name="name">10</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">860</field>
<field name="position_v">280</field>
</record>
<record id="table_11" model="restaurant.table">
<field name="name">11</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(78,210,190)</field>
<field name="shape">round</field>
<field name="width">210</field>
<field name="height">210</field>
<field name="position_h">400</field>
<field name="position_v">230</field>
</record>
<!-- Restaurant Floor: Patio -->
<record id="floor_patio" model="restaurant.floor">
<field name="name">Patio</field>
<field name="background_color">rgb(130, 233, 171)</field>
<field name="pos_config_ids" eval="[(6, 0, [ref('pos_restaurant.pos_config_main_restaurant')])]" />
</record>
<!-- Patio: Left table row -->
<record id="table_21" model="restaurant.table">
<field name="name">1</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">50</field>
</record>
<record id="table_22" model="restaurant.table">
<field name="name">2</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">166</field>
</record>
<record id="table_23" model="restaurant.table">
<field name="name">3</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">283</field>
</record>
<record id="table_24" model="restaurant.table">
<field name="name">4</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">400</field>
</record>
<!-- Patio: Right table row -->
<record id="table_25" model="restaurant.table">
<field name="name">5</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">50</field>
</record>
<record id="table_26" model="restaurant.table">
<field name="name">6</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">166</field>
</record>
<record id="table_27" model="restaurant.table">
<field name="name">7</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">283</field>
</record>
<record id="table_28" model="restaurant.table">
<field name="name">8</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">400</field>
</record>
<!-- Patio: Center table block -->
<record id="table_29" model="restaurant.table">
<field name="name">9</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">330</field>
<field name="position_v">100</field>
</record>
<record id="table_29" model="restaurant.table">
<field name="name">9</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">330</field>
<field name="position_v">100</field>
</record>
<record id="table_30" model="restaurant.table">
<field name="name">10</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">560</field>
<field name="position_v">100</field>
</record>
<record id="table_31" model="restaurant.table">
<field name="name">11</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">330</field>
<field name="position_v">315</field>
</record>
<record id="table_32" model="restaurant.table">
<field name="name">12</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">560</field>
<field name="position_v">315</field>
</record>
<function model="pos.config" name="add_cash_payment_method" />
</odoo>
@@ -0,0 +1,488 @@
<odoo>
<!-- Pos Config -->
<record model="pos.config" id="pos_config_main_restaurant">
<field name="name">Restaurant</field>
<field name="iface_printbill">True</field>
<field name="iface_start_categ_id" ref="food" />
<field name="start_category">True</field>
</record>
<!-- Closed Sessions -->
<!-- forcecreate is set to false in order to not create record when updating the db -->
<function model="ir.model.data" name="_update_xmlids">
<value model="base" eval="[{
'xml_id': 'pos_restaurant.payment_method',
'record': obj().env.ref('pos_restaurant.pos_config_main_restaurant')._get_payment_method('bank'),
'noupdate': True,
}]" />
</function>
<!-- Closed Session 3 -->
<record id="pos_closed_session_3" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main_restaurant" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at"
eval="(DateTime.today() + relativedelta(days=-1, hours=1)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_3_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_3" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0005</field>
<field name="state">paid</field>
<field name="amount_total">14.0</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">14.0</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-003-1001</field>
</record>
<record id="pos_closed_orderline_3_1_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 3.1.1</field>
<field name="product_id" ref="pos_food_margherita" />
<field name="price_subtotal">7.0</field>
<field name="price_subtotal_incl">7.0</field>
<field name="price_unit">7.0</field>
<field name="order_id" ref="pos_closed_order_3_1" />
<field name="full_product_name">Margherita</field>
</record>
<record id="pos_closed_orderline_3_1_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 3.1.2</field>
<field name="product_id" ref="pos_food_funghi" />
<field name="price_subtotal">7.0</field>
<field name="price_subtotal_incl">7.0</field>
<field name="price_unit">7.0</field>
<field name="order_id" ref="pos_closed_order_3_1" />
<field name="full_product_name">Funghi</field>
</record>
<record id="pos_payment_1" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_3_1" />
<field name="amount">14.0</field>
</record>
<record id="pos_closed_order_3_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_3" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0006</field>
<field name="state">paid</field>
<field name="amount_total">7.0</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">7.0</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-003-1002</field>
</record>
<record id="pos_closed_orderline_3_2_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 3.2.1</field>
<field name="product_id" ref="pos_food_vege" />
<field name="price_subtotal">7.0</field>
<field name="price_subtotal_incl">7.0</field>
<field name="price_unit">7.0</field>
<field name="order_id" ref="pos_closed_order_3_2" />
<field name="full_product_name">Vegetarian</field>
</record>
<record id="pos_payment_2" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_3_2" />
<field name="amount">7.0</field>
</record>
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_3')]]" />
<!-- Closed Session 4 -->
<record id="pos_closed_session_4" model="pos.session" forcecreate="False" context="{'onboarding_creation': True}">
<field name="config_id" ref="pos_config_main_restaurant" />
<field name="user_id" ref="base.user_admin" />
<field name="start_at" eval="(DateTime.today() + relativedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="stop_at"
eval="(DateTime.today() + relativedelta(days=-1, hours=1)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
<record id="pos_closed_order_4_1" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_4" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0007</field>
<field name="state">paid</field>
<field name="amount_total">6.7</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">6.7</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-004-1001</field>
</record>
<record id="pos_closed_orderline_4_1_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 4.1.1</field>
<field name="product_id" ref="water" />
<field name="price_subtotal">2.20</field>
<field name="price_subtotal_incl">2.20</field>
<field name="price_unit">2.20</field>
<field name="order_id" ref="pos_closed_order_4_1" />
<field name="full_product_name">Water</field>
</record>
<record id="pos_closed_orderline_4_1_2" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 4.1.2</field>
<field name="product_id" ref="pos_food_bolo" />
<field name="price_subtotal">4.5</field>
<field name="price_subtotal_incl">4.5</field>
<field name="price_unit">4.5</field>
<field name="order_id" ref="pos_closed_order_4_1" />
<field name="full_product_name">Pasta Bolognese</field>
</record>
<record id="pos_payment_3" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_4_1" />
<field name="amount">6.7</field>
</record>
<record id="pos_closed_order_4_2" model="pos.order" forcecreate="False">
<field name="session_id" ref="pos_closed_session_4" />
<field name="company_id" ref="base.main_company" />
<field name="name">ClosedDemo/0008</field>
<field name="state">paid</field>
<field name="amount_total">28.0</field>
<field name="amount_tax">0.0</field>
<field name="amount_paid">28.0</field>
<field name="amount_return">0.0</field>
<field name="pos_reference">Order 00000-004-1002</field>
</record>
<record id="pos_closed_orderline_4_2_1" model="pos.order.line" forcecreate="False">
<field name="name">Closed Orderline 4.2.1</field>
<field name="product_id" ref="pos_food_cheeseburger" />
<field name="price_subtotal">28.0</field>
<field name="price_subtotal_incl">28.0</field>
<field name="price_unit">7.0</field>
<field name="qty">4</field>
<field name="order_id" ref="pos_closed_order_4_2" />
<field name="full_product_name">Cheese Burger</field>
</record>
<record id="pos_payment_4" model="pos.payment" forcecreate="False">
<field name="payment_method_id" ref="pos_restaurant.payment_method" />
<field name="pos_order_id" ref="pos_closed_order_4_2" />
<field name="amount">28.0</field>
</record>
<function model="pos.session" name="action_pos_session_closing_control"
eval="[[ref('pos_closed_session_4')]]" />
<!-- Floors: Main Floor -->
<record id="floor_main" model="restaurant.floor">
<field name="name">Main Floor</field>
<field name="background_color">rgb(136,137,242)</field>
<field name="pos_config_ids" eval="[(6, 0, [ref('pos_restaurant.pos_config_main_restaurant')])]" />
</record>
<record id="table_01" model="restaurant.table">
<field name="name">1</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">50</field>
<field name="position_v">50</field>
</record>
<record id="table_02" model="restaurant.table">
<field name="name">2</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">212</field>
<field name="position_v">50</field>
</record>
<record id="table_03" model="restaurant.table">
<field name="name">3</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">374</field>
<field name="position_v">50</field>
</record>
<record id="table_04" model="restaurant.table">
<field name="name">4</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">536</field>
<field name="position_v">50</field>
</record>
<record id="table_05" model="restaurant.table">
<field name="name">5</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">698</field>
<field name="position_v">50</field>
</record>
<record id="table_06" model="restaurant.table">
<field name="name">6</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">860</field>
<field name="position_v">50</field>
</record>
<record id="table_07" model="restaurant.table">
<field name="name">7</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">50</field>
<field name="position_v">280</field>
</record>
<record id="table_08" model="restaurant.table">
<field name="name">8</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">212</field>
<field name="position_v">280</field>
</record>
<record id="table_09" model="restaurant.table">
<field name="name">9</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">698</field>
<field name="position_v">280</field>
</record>
<record id="table_10" model="restaurant.table">
<field name="name">10</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(235,109,109)</field>
<field name="shape">square</field>
<field name="width">100</field>
<field name="height">100</field>
<field name="position_h">860</field>
<field name="position_v">280</field>
</record>
<record id="table_11" model="restaurant.table">
<field name="name">11</field>
<field name="floor_id" ref="pos_restaurant.floor_main" />
<field name="seats">4</field>
<field name="color">rgb(78,210,190)</field>
<field name="shape">round</field>
<field name="width">210</field>
<field name="height">210</field>
<field name="position_h">400</field>
<field name="position_v">230</field>
</record>
<!-- Restaurant Floor: Patio -->
<record id="floor_patio" model="restaurant.floor">
<field name="name">Patio</field>
<field name="background_color">rgb(130, 233, 171)</field>
<field name="pos_config_ids" eval="[(6, 0, [ref('pos_restaurant.pos_config_main_restaurant')])]" />
</record>
<!-- Patio: Left table row -->
<record id="table_21" model="restaurant.table">
<field name="name">1</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">50</field>
</record>
<record id="table_22" model="restaurant.table">
<field name="name">2</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">166</field>
</record>
<record id="table_23" model="restaurant.table">
<field name="name">3</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">283</field>
</record>
<record id="table_24" model="restaurant.table">
<field name="name">4</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">100</field>
<field name="position_v">400</field>
</record>
<!-- Patio: Right table row -->
<record id="table_25" model="restaurant.table">
<field name="name">5</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">50</field>
</record>
<record id="table_26" model="restaurant.table">
<field name="name">6</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">166</field>
</record>
<record id="table_27" model="restaurant.table">
<field name="name">7</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">283</field>
</record>
<record id="table_28" model="restaurant.table">
<field name="name">8</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">2</field>
<field name="color">rgb(53,211,116)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">85</field>
<field name="position_h">800</field>
<field name="position_v">400</field>
</record>
<!-- Patio: Center table block -->
<record id="table_29" model="restaurant.table">
<field name="name">9</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">330</field>
<field name="position_v">100</field>
</record>
<record id="table_29" model="restaurant.table">
<field name="name">9</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">330</field>
<field name="position_v">100</field>
</record>
<record id="table_30" model="restaurant.table">
<field name="name">10</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">560</field>
<field name="position_v">100</field>
</record>
<record id="table_31" model="restaurant.table">
<field name="name">11</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">330</field>
<field name="position_v">315</field>
</record>
<record id="table_32" model="restaurant.table">
<field name="name">12</field>
<field name="floor_id" ref="pos_restaurant.floor_patio" />
<field name="seats">4</field>
<field name="color">rgb(235,191,109)</field>
<field name="shape">square</field>
<field name="width">130</field>
<field name="height">120</field>
<field name="position_h">560</field>
<field name="position_v">315</field>
</record>
</odoo>
+15 -12
View File
@@ -67,21 +67,24 @@ class PosSession(models.Model):
def _load_onboarding_data(self):
super()._load_onboarding_data()
convert.convert_file(self.env, 'pos_restaurant', 'data/pos_restaurant_onboarding.xml', None, mode='init', kind='data')
restaurant_config = self.env.ref('pos_restaurant.pos_config_main_restaurant')
if len(restaurant_config.session_ids.filtered(lambda s: s.state == 'opened')) == 0:
self.env['pos.session'].create({
'config_id': restaurant_config.id,
'user_id': self.env.ref('base.user_admin').id,
})
convert.convert_file(self.env, 'pos_restaurant', 'data/pos_restaurant_onboarding_open_session.xml', None, mode='init', kind='data')
restaurant_config = self.env.ref('pos_restaurant.pos_config_main_restaurant', raise_if_not_found=False)
if restaurant_config:
convert.convert_file(self.env, 'pos_restaurant', 'data/pos_restaurant_onboarding_main_config.xml', None, mode='init', kind='data')
if len(restaurant_config.session_ids.filtered(lambda s: s.state == 'opened')) == 0:
self.env['pos.session'].create({
'config_id': restaurant_config.id,
'user_id': self.env.ref('base.user_admin').id,
})
convert.convert_file(self.env, 'pos_restaurant', 'data/pos_restaurant_onboarding_open_session.xml', None, mode='init', kind='data')
def _after_load_onboarding_data(self):
super()._after_load_onboarding_data()
configs = self.config_id.filtered('module_pos_restaurant').union(self.env.ref('pos_restaurant.pos_config_main_restaurant', raise_if_not_found=False))
configs.with_context(bypass_categories_forbidden_change=True).write({
'limit_categories': True,
'iface_available_categ_ids': [Command.link(self.env.ref('pos_restaurant.food').id), Command.link(self.env.ref('pos_restaurant.drinks').id)]
})
configs = self.config_id.filtered('module_pos_restaurant')
if configs:
configs.with_context(bypass_categories_forbidden_change=True).write({
'limit_categories': True,
'iface_available_categ_ids': [Command.link(self.env.ref('pos_restaurant.food').id), Command.link(self.env.ref('pos_restaurant.drinks').id)]
})
@api.model
def _set_last_order_preparation_change(self, order_ids):