diff --git a/addons/pos_self_order/controllers/entry.py b/addons/pos_self_order/controllers/entry.py index e0b2dad0de2..d558f491a72 100644 --- a/addons/pos_self_order/controllers/entry.py +++ b/addons/pos_self_order/controllers/entry.py @@ -36,7 +36,7 @@ class PosQRMenuController(http.Controller): pos_config_sudo = False pos_config_access_token = False - if config_id and config_id.isnumeric(): + if config_id and config_id.isnumeric() and access_token: pos_config_sudo = request.env["pos.config"].sudo().search([ ("id", "=", config_id), ('access_token', '=', access_token)], limit=1) @@ -46,9 +46,15 @@ class PosQRMenuController(http.Controller): pos_config_access_token = pos_config_sudo.access_token table_sudo = get_table_sudo(identifier=table_identifier) table_infos = table_sudo._get_self_order_data() if table_sudo else False + elif config_id and config_id.isnumeric(): + pos_config_sudo = request.env["pos.config"].sudo().search([ + ("id", "=", config_id), ("self_order_view_mode", "=", True)], limit=1) else: pos_config_sudo = get_any_pos_config_sudo() + if not pos_config_sudo: + raise werkzeug.exceptions.NotFound() + return request.render( 'pos_self_order.index', { diff --git a/addons/pos_self_order/static/src/models/line.js b/addons/pos_self_order/static/src/models/line.js index 26d69e6e3c8..a4f27f17eab 100644 --- a/addons/pos_self_order/static/src/models/line.js +++ b/addons/pos_self_order/static/src/models/line.js @@ -30,4 +30,14 @@ export class Line extends Reactive { this.price_subtotal = line.price_subtotal || 0; this.selected_attributes = line.selected_attributes || []; } + + isChange(lastChange) { + for (const key in lastChange) { + if (JSON.stringify(lastChange[key]) !== JSON.stringify(this[key])) { + return true; + } + } + + return false; + } } diff --git a/addons/pos_self_order/static/src/models/order.js b/addons/pos_self_order/static/src/models/order.js index 1c17a555ef6..3c31e9abdb4 100644 --- a/addons/pos_self_order/static/src/models/order.js +++ b/addons/pos_self_order/static/src/models/order.js @@ -60,6 +60,8 @@ export class Order extends Reactive { this.lastChangesSent = this.lines.reduce((acc, line) => { acc[line.uuid] = { qty: line.qty, + selected_attributes: line.selected_attributes, + customer_note: line.customer_note, }; return acc; }, {}); @@ -73,7 +75,7 @@ export class Order extends Reactive { return true; } - return lastSend.qty !== line.qty; + return lastSend.qty !== line.qty || line.isChange(lastSend); }); } } diff --git a/addons/pos_self_order/static/src/pages/order_cart/order_cart.xml b/addons/pos_self_order/static/src/pages/order_cart/order_cart.xml index a1de01429bb..8af8525f6e5 100644 --- a/addons/pos_self_order/static/src/pages/order_cart/order_cart.xml +++ b/addons/pos_self_order/static/src/pages/order_cart/order_cart.xml @@ -11,7 +11,7 @@