From 4acf3c6c7950ed3ea67b5f50353cb78ece5f8943 Mon Sep 17 00:00:00 2001 From: Jitendra Prajapat Date: Thu, 29 Feb 2024 10:29:16 +0530 Subject: [PATCH] [FIX] pos_self_order: kiosk print receipt when nothing to pay Before this commit: =================== If there is an order with a total amount of 0 in kiosk mode, then after the cart page it is redirected to the home page without printing a receipt. After this commit: ================== with this commit, if an order amount is 0 then it will redirect to the confirmation/receipt page like a normal order with the amount without redirecting to the payment page. task - 3773450 closes odoo/odoo#155826 Signed-off-by: Quentin Lejeune (qle) --- .../app/components/order_widget/order_widget.js | 4 ---- .../static/src/app/self_order_service.js | 17 ++++++++++++++--- 2 files changed, 14 insertions(+), 7 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 250edf36a12..27b9f3cdd7c 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 @@ -58,10 +58,6 @@ export class OrderWidget extends Component { disabled = !kioskPayment && !isMobilePayment; } - if (this.selfOrder.currentOrder.amount_total === 0) { - label = _t("Order"); - } - return { label, disabled }; } diff --git a/addons/pos_self_order/static/src/app/self_order_service.js b/addons/pos_self_order/static/src/app/self_order_service.js index dd5b18d666a..aa35e1332f7 100644 --- a/addons/pos_self_order/static/src/app/self_order_service.js +++ b/addons/pos_self_order/static/src/app/self_order_service.js @@ -195,11 +195,22 @@ export class SelfOrder extends Reactive { } get currentOrder() { - if (this.editedOrder && this.editedOrder.state === "draft") { + if ( + this.editedOrder && + (this.editedOrder.state === "draft" || + (this.editedOrder.state === "paid" && + this.editedOrder.amount_total === 0 && + this.config.self_ordering_mode === "kiosk")) + ) { return this.editedOrder; } - - const existingOrder = this.orders.find((o) => o.state === "draft"); + const existingOrder = this.orders.find( + (o) => + o.state === "draft" || + (o.state === "paid" && + o.amount_total === 0 && + this.config.self_ordering_mode === "kiosk") + ); if (!existingOrder) { const newOrder = new Order({ pos_config_id: this.pos_config_id,