refactor: move closing receipt printing to occur after successful server session closure
This commit is contained in:
parent
fbf70c34b8
commit
94a4072d45
@ -154,15 +154,6 @@ patch(ClosePosPopup.prototype, {
|
|||||||
.filter((pm) => pm.type === "bank")
|
.filter((pm) => pm.type === "bank")
|
||||||
.map((pm) => [pm.id, this.getDifference(pm.id)]);
|
.map((pm) => [pm.id, this.getDifference(pm.id)]);
|
||||||
|
|
||||||
// ── Print BEFORE closing session on server ───────────────────────
|
|
||||||
// IMPORTANT: Must print here while IndexedDB is still fully open.
|
|
||||||
// After close_session_from_ui responds, the Odoo bus/sync detects
|
|
||||||
// the session state change and begins IDB teardown. Any OWL render
|
|
||||||
// or Logger.log call after that point throws:
|
|
||||||
// InvalidStateError: Failed to execute 'transaction' on
|
|
||||||
// 'IDBDatabase': The database connection is closing.
|
|
||||||
await this._printClosingReceipt(receiptData);
|
|
||||||
|
|
||||||
const response = await this.pos.data.call(
|
const response = await this.pos.data.call(
|
||||||
"pos.session",
|
"pos.session",
|
||||||
"close_session_from_ui",
|
"close_session_from_ui",
|
||||||
@ -178,6 +169,9 @@ patch(ClosePosPopup.prototype, {
|
|||||||
return this.handleClosingError(response);
|
return this.handleClosingError(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ── Print AFTER closing session on server ────────────────────────
|
||||||
|
await this._printClosingReceipt(receiptData);
|
||||||
|
|
||||||
// Mark session closed locally
|
// Mark session closed locally
|
||||||
this.pos.session.state = "closed";
|
this.pos.session.state = "closed";
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user