diff --git a/addons/point_of_sale/static/src/js/Screens/ProductScreen/ProductScreen.js b/addons/point_of_sale/static/src/js/Screens/ProductScreen/ProductScreen.js index 158cfc4daf7..19d935e3426 100644 --- a/addons/point_of_sale/static/src/js/Screens/ProductScreen/ProductScreen.js +++ b/addons/point_of_sale/static/src/js/Screens/ProductScreen/ProductScreen.js @@ -16,6 +16,7 @@ odoo.define('point_of_sale.ProductScreen', function(require) { setup() { super.setup(); useListener('update-selected-orderline', this._updateSelectedOrderline); + useListener('select-line', this._selectLine); useListener('set-numpad-mode', this._setNumpadMode); useListener('click-product', this._clickProduct); useListener('click-partner', this.onClickPartner); @@ -161,6 +162,9 @@ odoo.define('point_of_sale.ProductScreen', function(require) { NumberBuffer.reset(); this.env.pos.numpadMode = mode; } + _selectLine() { + NumberBuffer.reset(); + } async _updateSelectedOrderline(event) { if (this.env.pos.numpadMode === 'quantity' && this.env.pos.disallowLineQuantityChange()) { let order = this.env.pos.get_order(); diff --git a/addons/point_of_sale/static/tests/tours/ProductScreen.tour.js b/addons/point_of_sale/static/tests/tours/ProductScreen.tour.js index f532bb59f1f..8fc7c15b2a0 100644 --- a/addons/point_of_sale/static/tests/tours/ProductScreen.tour.js +++ b/addons/point_of_sale/static/tests/tours/ProductScreen.tour.js @@ -66,6 +66,26 @@ odoo.define('point_of_sale.tour.ProductScreen', function (require) { ProductScreen.do.clickSubcategory('Chairs'); ProductScreen.check.productIsDisplayed('Letter Tray'); ProductScreen.do.clickHomeCategory(); + + // Add two orderlines and update quantity + ProductScreen.do.clickDisplayedProduct('Whiteboard Pen'); + ProductScreen.do.clickDisplayedProduct('Wall Shelf Unit'); + ProductScreen.do.clickOrderline('Whiteboard Pen', '1.0'); + ProductScreen.check.selectedOrderlineHas('Whiteboard Pen', '1.0'); + ProductScreen.do.pressNumpad('2'); + ProductScreen.check.selectedOrderlineHas('Whiteboard Pen', '2.0'); + ProductScreen.do.clickOrderline('Wall Shelf Unit', '1.0'); + ProductScreen.check.selectedOrderlineHas('Wall Shelf Unit', '1.0'); + ProductScreen.do.pressNumpad('2'); + ProductScreen.check.selectedOrderlineHas('Wall Shelf Unit', '2.0'); + ProductScreen.do.pressNumpad('Backspace'); + ProductScreen.check.selectedOrderlineHas('Wall Shelf Unit', '0.0'); + ProductScreen.do.pressNumpad('Backspace'); + ProductScreen.check.selectedOrderlineHas('Whiteboard Pen', '2.0'); + ProductScreen.do.pressNumpad('Backspace'); + ProductScreen.check.selectedOrderlineHas('Whiteboard Pen', '0.0'); + ProductScreen.do.pressNumpad('Backspace'); + ProductScreen.check.orderIsEmpty(); // Add multiple orderlines then delete each of them until empty ProductScreen.do.clickDisplayedProduct('Whiteboard Pen');