From 52fe2ff3b76885cc8ddcaa7518d094b260a2bf1a Mon Sep 17 00:00:00 2001 From: "David Monnom (moda)" Date: Thu, 22 Jun 2023 06:59:52 +0000 Subject: [PATCH] [FIX] pos_self_order: Prevent the order from being sent twice Added protection for the order button so that it cannot be inadvertently clicked twice. Part-of: odoo/odoo#125743 --- .../static/src/pages/order_cart/order_cart.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/addons/pos_self_order/static/src/pages/order_cart/order_cart.js b/addons/pos_self_order/static/src/pages/order_cart/order_cart.js index c955cc6be11..513f48a4bfa 100644 --- a/addons/pos_self_order/static/src/pages/order_cart/order_cart.js +++ b/addons/pos_self_order/static/src/pages/order_cart/order_cart.js @@ -14,6 +14,7 @@ export class OrderCart extends Component { static template = "pos_self_order.OrderCart"; setup() { this.selfOrder = useSelfOrder(); + this.sendInProgress = false; onWillStart(() => { this.selfOrder.getPricesFromServer(); @@ -24,9 +25,18 @@ export class OrderCart extends Component { return this.selfOrder.self_order_mode === "each" ? "Pay" : "Order"; } - processOrder() { + async processOrder() { + if (this.sendInProgress) { + return; + } + if (this.selfOrder.self_order_mode === "meal") { - this.selfOrder.sendDraftOrderToServer(); + this.sendInProgress = true; + try { + await this.selfOrder.sendDraftOrderToServer(); + } finally { + this.sendInProgress = false; + } } else { this.selfOrder.notification.add(_t("Not yet implemented!"), { type: "danger" }); }