Wednesday, April 1, 2026
1 change · 19.0
Resolved issues and error corrections
This fix closes a loophole that allowed users to change tax settings while a Point of Sale session was active. Previously, the system only prevented changes to certain tax fields, but missed the price_include_override field which controls tax-inclusive pricing. This could cause discrepancies between receipts and invoices. The fix adds this field to the protected list so users cannot modify tax behavior mid-session.
Original PR description
There is a safeguard in account.tax.write prevents modifying taxes as it is forbidden to modify a tax used in a POS order not posted. This guard only applies for a predefined set of fields in…
There is a safeguard in account.tax.write prevents modifying taxes as it is forbidden to modify a tax used in a POS order not posted. This guard only applies for a predefined set of fields in account_tax.py. After 18.0, the tax-included behavior is controlled through the `price_include_override` field instead of `price_include`. However, this field was not added in the forbidden fields, allowing users to modify tax inclusion while a POS session is open. This bypasses the safeguard and can lead to inconsistencies, as the POS caches tax configuration at session start. For example, changing this setting mid-session may differences between POS receipts and backend invoices. By adding `price_include_override` to the forbidden fields, the UserError can properly be raised. Additional note: test_fiscal_position_between_frontend_and_backend was updated to close the POS session before changing taxes since the safeguard now correctly blocks this. Related ticket: opw-6042367 Forward-Port-Of: odoo/odoo#255895 Forward-Port-Of: odoo/odoo#254487