From 592ef2492292f6d55daeb09ebbb981330c7afac7 Mon Sep 17 00:00:00 2001 From: "Adrien Guilliams (adgu)" Date: Mon, 16 Oct 2023 14:46:57 +0200 Subject: [PATCH] [IMP] pos*: improve tracking_number computation and payment method auto selected pos*: point_of_sale, pos_self_order In this PR, we improve the tracking_number computation decreasing the number of string manipulation and increasing the number of int manipulation in the backend. In the frontend, the computation of the tracking_number was wrong. It was previously taking the whole session id and concatenate it with the whole sequence number. We also fix that. It now takes the last digit of the session id and the 2 last digits of the sequence number. We also improve the payment_screen. Now, when the user arrives on the payment_screen. If there is only 1 payment method. This payment_method will be chose by default. We also fix the display of the tracking number in the order reminder page in pos_self_order. Enterprise PR: odoo/enterprise#48991 closes odoo/odoo#138813 Signed-off-by: David Monnom (moda) --- addons/point_of_sale/models/pos_order.py | 2 +- .../src/app/screens/payment_screen/payment_screen.js | 10 +++++++++- .../src/app/components/product_card/product_card.js | 1 - addons/pos_self_order/static/src/app/models/order.js | 4 ++-- .../pages/order_history_page/order_history_page.xml | 2 +- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index 15e6aa1cbc4..af7e8a5ec84 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -116,7 +116,7 @@ class PosOrder(models.Model): @api.depends('sequence_number', 'session_id') def _compute_tracking_number(self): for record in self: - record.tracking_number = str(record.session_id.id)[-1] + str(record.sequence_number)[-2:] + record.tracking_number = str((record.session_id.id % 10) * 100 + record.sequence_number % 100).zfill(3) @api.model def _process_order(self, order, draft, existing_order): diff --git a/addons/point_of_sale/static/src/app/screens/payment_screen/payment_screen.js b/addons/point_of_sale/static/src/app/screens/payment_screen/payment_screen.js index a1a5e912e92..c05e9b81927 100644 --- a/addons/point_of_sale/static/src/app/screens/payment_screen/payment_screen.js +++ b/addons/point_of_sale/static/src/app/screens/payment_screen/payment_screen.js @@ -15,7 +15,7 @@ import { ConnectionLostError } from "@web/core/network/rpc_service"; import { PaymentScreenPaymentLines } from "@point_of_sale/app/screens/payment_screen/payment_lines/payment_lines"; import { PaymentScreenStatus } from "@point_of_sale/app/screens/payment_screen/payment_status/payment_status"; import { usePos } from "@point_of_sale/app/store/pos_hook"; -import { Component, useState, useRef } from "@odoo/owl"; +import { Component, useState, useRef, onMounted } from "@odoo/owl"; import { renderToElement } from "@web/core/utils/render"; import { Numpad } from "@point_of_sale/app/generic_components/numpad/numpad"; import { floatIsZero } from "@web/core/utils/numbers"; @@ -46,7 +46,15 @@ export class PaymentScreen extends Component { this.payment_interface = null; this.error = false; this.validateOrder = useAsyncLockedMethod(this.validateOrder); + onMounted(this.onMounted); } + + onMounted() { + if (this.payment_methods_from_config.length == 1) { + this.addNewPaymentLine(this.payment_methods_from_config[0]); + } + } + getNumpadButtons() { return [ { value: "1" }, diff --git a/addons/pos_self_order/static/src/app/components/product_card/product_card.js b/addons/pos_self_order/static/src/app/components/product_card/product_card.js index ca1d94143ff..0135c5fa048 100644 --- a/addons/pos_self_order/static/src/app/components/product_card/product_card.js +++ b/addons/pos_self_order/static/src/app/components/product_card/product_card.js @@ -66,7 +66,6 @@ export class ProductCard extends Component { scaleUpPrice() { const priceElement = document.querySelector(".total-price"); - console.log(priceElement); if (!priceElement) { return; diff --git a/addons/pos_self_order/static/src/app/models/order.js b/addons/pos_self_order/static/src/app/models/order.js index cb930eceb68..5f6a5908825 100644 --- a/addons/pos_self_order/static/src/app/models/order.js +++ b/addons/pos_self_order/static/src/app/models/order.js @@ -55,8 +55,8 @@ export class Order extends Reactive { if (this.pos_reference) { const reference = this.pos_reference; const arrRef = reference.split(" ")[1].split("-"); - const sessionID = parseInt(arrRef[0]).toString(); - const sequence = parseInt(arrRef[2]).toString(); + const sessionID = arrRef[0][4]; + const sequence = arrRef[2].substr(2, 2); const trackingNumber = sessionID + sequence; return trackingNumber; } diff --git a/addons/pos_self_order/static/src/app/pages/order_history_page/order_history_page.xml b/addons/pos_self_order/static/src/app/pages/order_history_page/order_history_page.xml index b5c5b4122a3..d8d12aba4f6 100644 --- a/addons/pos_self_order/static/src/app/pages/order_history_page/order_history_page.xml +++ b/addons/pos_self_order/static/src/app/pages/order_history_page/order_history_page.xml @@ -17,7 +17,7 @@
- Tracking number: + Tracking number: