feat: persist and restore the last active POS cashier across sessions using sessionStorage
This commit is contained in:
parent
6c0592af82
commit
42d87e2e77
@ -19,16 +19,14 @@ patch(LoginScreen.prototype, {
|
||||
if (currentCashier) {
|
||||
this.cashierLogIn();
|
||||
} else {
|
||||
const allEmployees = this.pos.models["hr.employee"].getAll();
|
||||
if (allEmployees.length) {
|
||||
const nonWaiterEmployee = allEmployees.find(emp => emp.pos_role !== 'waiter');
|
||||
if (nonWaiterEmployee) {
|
||||
this.pos.setCashier(nonWaiterEmployee);
|
||||
} else {
|
||||
this.pos.setCashier(allEmployees[0]);
|
||||
}
|
||||
}
|
||||
const lastActiveCashierId = sessionStorage.getItem(`last_active_cashier_${this.pos.config.id}`);
|
||||
const lastActiveCashier = lastActiveCashierId ? this.pos.models["hr.employee"].get(Number(lastActiveCashierId)) : null;
|
||||
if (lastActiveCashier) {
|
||||
this.pos.setCashier(lastActiveCashier);
|
||||
this.cashierLogIn();
|
||||
} else {
|
||||
super.openRegister();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -15,6 +15,7 @@ patch(PosStore.prototype, {
|
||||
}
|
||||
this.setCashier(cashier);
|
||||
}
|
||||
sessionStorage.removeItem(`last_active_cashier_${this.config.id}`);
|
||||
return super.closeSession(...arguments);
|
||||
},
|
||||
|
||||
@ -92,6 +93,9 @@ patch(PosStore.prototype, {
|
||||
|
||||
setCashier(employee) {
|
||||
super.setCashier(...arguments);
|
||||
if (employee) {
|
||||
sessionStorage.setItem(`last_active_cashier_${this.config.id}`, employee.id);
|
||||
}
|
||||
const order = this.getOrder();
|
||||
if (order && !order.getOrderlines().length) {
|
||||
order.original_employee_id = employee;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user