diff --git a/addons/point_of_sale/static/src/app/screens/receipt_screen/receipt/order_receipt.xml b/addons/point_of_sale/static/src/app/screens/receipt_screen/receipt/order_receipt.xml index 1d995d1f7a1..b6f16b2babb 100644 --- a/addons/point_of_sale/static/src/app/screens/receipt_screen/receipt/order_receipt.xml +++ b/addons/point_of_sale/static/src/app/screens/receipt_screen/receipt/order_receipt.xml @@ -11,8 +11,13 @@ diff --git a/addons/point_of_sale/static/src/app/store/models.js b/addons/point_of_sale/static/src/app/store/models.js index 74b81ec4e8b..74a90d70e46 100644 --- a/addons/point_of_sale/static/src/app/store/models.js +++ b/addons/point_of_sale/static/src/app/store/models.js @@ -1081,6 +1081,7 @@ export class Orderline extends PosModel { customerNote: this.get_customer_note(), internalNote: this.getNote(), comboParent: this.comboParent?.get_full_product_name(), + pack_lot_lines: this.get_lot_lines(), }; } } diff --git a/addons/point_of_sale/static/tests/tours/ReceiptScreen.tour.js b/addons/point_of_sale/static/tests/tours/ReceiptScreen.tour.js index 48db7534667..24c22230b62 100644 --- a/addons/point_of_sale/static/tests/tours/ReceiptScreen.tour.js +++ b/addons/point_of_sale/static/tests/tours/ReceiptScreen.tour.js @@ -114,3 +114,19 @@ registry.category("web_tour.tours").add("OrderPaidInCash", { ProductScreen.lastClosingCashIs("25.00"), ].flat(), }); + +registry + .category("web_tour.tours") + .add("ReceiptTrackingMethodTour", { + test: true, + url: "/pos/ui", + steps: () => [ + ProductScreen.clickHomeCategory(), + ProductScreen.clickDisplayedProduct('Product A'), + ProductScreen.enterLotNumber('123456789'), + ProductScreen.clickPayButton(), + PaymentScreen.clickPaymentMethod('Cash'), + PaymentScreen.clickValidate(), + ReceiptScreen.trackingMethodIsLot(), + ].flat(), + }); diff --git a/addons/point_of_sale/static/tests/tours/helpers/ReceiptScreenTourMethods.js b/addons/point_of_sale/static/tests/tours/helpers/ReceiptScreenTourMethods.js index ba2f8640e21..b91266ff998 100644 --- a/addons/point_of_sale/static/tests/tours/helpers/ReceiptScreenTourMethods.js +++ b/addons/point_of_sale/static/tests/tours/helpers/ReceiptScreenTourMethods.js @@ -89,3 +89,13 @@ export function emailIsSuccessful() { export function nextOrder() { return [...isShown(), ...clickNextOrder()]; } + +export function trackingMethodIsLot() { + return [ + { + content: `tracking method is Lot`, + trigger: `li:contains("Lot Number")`, + run: () => {}, + }, + ]; +} \ No newline at end of file diff --git a/addons/point_of_sale/tests/test_frontend.py b/addons/point_of_sale/tests/test_frontend.py index 87ceda9ca1d..ae71811854c 100644 --- a/addons/point_of_sale/tests/test_frontend.py +++ b/addons/point_of_sale/tests/test_frontend.py @@ -1036,6 +1036,17 @@ class TestUi(TestPointOfSaleHttpCommon): self.main_pos_config.open_ui() self.start_tour("/pos/ui?config_id=%d" % self.main_pos_config.id, 'LotRefundTour', login="accountman") + def test_receipt_tracking_method(self): + self.product_a = self.env['product.product'].create({ + 'name': 'Product A', + 'type': 'product', + 'tracking': 'lot', + 'categ_id': self.env.ref('product.product_category_all').id, + 'available_in_pos': True, + }) + self.main_pos_config.open_ui() + self.start_tour("/pos/ui?config_id=%d" % self.main_pos_config.id, 'ReceiptTrackingMethodTour', login="accountman") + # This class just runs the same tests as above but with mobile emulation class MobileTestUi(TestUi): browser_size = '375x667'