From 5ffe019b436c2eeeaa4bfb414a11b0b68cad3426 Mon Sep 17 00:00:00 2001 From: "Adrien Guilliams (adgu)" Date: Wed, 18 Oct 2023 15:17:21 +0200 Subject: [PATCH] [IMP] pos_online_payment_self_order, pos_self_order: change order_widget In this commit, we change the way the order_widget acts. Now, if we are in mobile with pay after meal, the order_widget will show 'To Order' instead of 'To Pay' when clicking on 'Order Now' for a second time and the order button will be disable until a new line is added. To see what is already sent to the waiters, we can click on the 'My Order' button in the landing page which will display the cart. Part-of: odoo/odoo#139187 --- .../src/app/components/order_widget/order_widget.js | 12 +++--------- .../src/app/components/order_widget/order_widget.xml | 3 +-- .../static/src/app/pages/cart_page/cart_page.js | 1 + 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/addons/pos_self_order/static/src/app/components/order_widget/order_widget.js b/addons/pos_self_order/static/src/app/components/order_widget/order_widget.js index 59de980fa2c..395f4431efa 100644 --- a/addons/pos_self_order/static/src/app/components/order_widget/order_widget.js +++ b/addons/pos_self_order/static/src/app/components/order_widget/order_widget.js @@ -41,13 +41,14 @@ export class OrderWidget extends Component { const payAfter = this.selfOrder.config.self_ordering_pay_after; const kioskPayment = this.selfOrder.pos_payment_methods; const isNoLine = this.selfOrder.currentOrder.lines.length === 0; + const hasNotAllLinesSent = this.selfOrder.currentOrder.hasNotAllLinesSent(); let label = ""; let disabled = false; if (currentPage === "product_list") { label = _t("Order"); - disabled = isNoLine; + disabled = isNoLine || hasNotAllLinesSent.length == 0; } else if (payAfter === "meal" && !this.selfOrder.currentOrder.isSavedOnServer) { label = _t("Order"); disabled = isNoLine; @@ -61,15 +62,8 @@ export class OrderWidget extends Component { get lineNotSend() { const order = this.selfOrder.currentOrder; - - if (order.isSavedOnServer) { - return { - price: order.amount_total, - count: order.totalQuantity, - }; - } - const lineNotSend = order.hasNotAllLinesSent(); + return lineNotSend.reduce( (acc, line) => { const currentQty = line.qty; diff --git a/addons/pos_self_order/static/src/app/components/order_widget/order_widget.xml b/addons/pos_self_order/static/src/app/components/order_widget/order_widget.xml index cd9e3bc6391..228757bfd28 100644 --- a/addons/pos_self_order/static/src/app/components/order_widget/order_widget.xml +++ b/addons/pos_self_order/static/src/app/components/order_widget/order_widget.xml @@ -12,8 +12,7 @@