I'm using odoo18 . In my custom pos module when call api canceled the order. The order state is cancel in database. But the pos ui when select tickets the order still paid . After refresh the data it's gone.
Thanks for help!
My code:
await this.pos.data.call(
'pos.order',
'cancel_payment',
[[this.currentOrder.id]],
);
const updatedOrders = await this.pos.data.searchRead("pos.order", [["id", "=", this.currentOrder.id]]);
if (updatedOrders.length > 0) {
const serverOrder = updatedOrders[0];
let order = this.pos.models["pos.order"].get(this.currentOrder.id);
order.state = serverOrder.state;
order.is_paying = false;
order.setScreenData({name: ""});
order.uiState.locked = true;
// I'm using this to update local order state , this not working.
this.pos.models["pos.order"].update(order, {'state': order.state});
}
// To new order
if (!this.pos.config.module_pos_restaurant) {
this.pos.selectedOrderUuid = this.pos.getEmptyOrder().uuid;
}
this.pos.searchProductWord = "";
const nextPage = this.pos.defaultPage;
this.pos.navigate(nextPage.page, nextPage.params);