[FIX] point_of_sale: select employee with pin by barcode

When switching employee on point of sale, we may have a PIN to enter.

If we enter the barcode and there is a PIN, we get an "Invalid Password"
error.

Why:
====

When we switch with a barcode 12, the barcode system will catch events
and prevent their propagation:

- {'type': 'keypress', 'key': 49}
- {'type': 'keypress', 'key': 50}
- {'type': 'keypress', 'key': 13}

For respectively '1', '2', 'Newline'.

If it match an employee, the PIN number modal is opened which will
listen to KEYUP events => it receives very shortly:

- {'type': 'KEYUP', 'key': 13}

which is the newline character which follows the KEYPRESS.

With a "Return" key received, the PIN modale closes with empty value
and an error "Invalid Password" is shown.

Solution:
=========

Ignore the newline character if no number has been selected.

opw-2448585

closes odoo/odoo#66466

X-original-commit: d056feb4ac885acc6c829c57531b985027d94daf
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Co-authored-by: Joseph Caburnay <jcb@odoo.com>
This commit is contained in:
Nicolas Lempereur
2021-02-23 17:18:56 +00:00
co-authored by Joseph Caburnay
parent c8c91f8c73
commit 3bbec520e9
@@ -47,6 +47,11 @@ odoo.define('point_of_sale.NumberPopup', function(require) {
return this.state.buffer;
}
}
confirm(event) {
if (NumberBuffer.get()) {
super.confirm();
}
}
sendInput(key) {
this.trigger('numpad-click-input', { key });
}