[FIX] point_of_sale: reset number buffer when the select order line
Before this commit: if you add two products in PoS and try to change the quantity for the first one, it works fine, but when you click on the other order line and try to update the quantity, it uses the previous number buffer. The solution is to reset the number buffer after selecting the order line. closes odoo/odoo#103834 Issue: https://github.com/odoo/odoo/issues/103230 X-original-commit: 51f6a6798ce2cc3c23a2fc55280cbd1a80df6bec Signed-off-by: Trinh Jacky (trj) <trj@odoo.com> Signed-off-by: Pedram Bi Ria (pebr) <pebr@odoo.com>
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user