feat: persist and restore the last active POS cashier across sessions using sessionStorage

This commit is contained in:
Suherdy Yacob 2026-06-12 07:59:40 +07:00
parent 6c0592af82
commit 42d87e2e77
2 changed files with 11 additions and 9 deletions

View File

@ -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();
}
this.cashierLogIn();
}
}
});

View File

@ -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;