Daily updates from Odoo
Wednesday, July 29, 2026
8 changes · saas-19.3
Enhancements to existing features
Australian payroll now applies a superannuation contribution cap in the relevant quarterly earnings rule. This helps businesses stay aligned with ATO requirements for maximum superannuation contributions, including updated super guarantee calculations from 1 July 2026.
Original PR description
Added superannuation limit to the QE rule. Task-6221399 Forward-Port-Of: odoo/enterprise#119792
Users who try to create an expense card before Stripe is connected are now directed to the correct settings page to complete the connection. This makes setup clearer and helps reduce confusion or support requests when card creation cannot proceed.
Original PR description
When a user tries to create a card but the configuration is not connected, redirect the user towards the settings to do the connection. task-6272805 Forward-Port-Of: odoo/enterprise#125113
Bank reconciliation now alerts users when they match a bank statement line to a different partner than the one currently linked to that bank account. This helps users decide whether to move the bank account to the reconciled partner, reducing partner-account mismatches in accounting records.
Original PR description
Add a new notification in the bank reco widget when a user do a reconciliation with a partner different from the one on the st_line. The idea is to let the user chose if he wants to move the bank account from the st_line partner to the move he tries to reconcile. task-6303397 Forward-Port-Of: odoo/enterprise#125702 Forward-Port-Of: odoo/enterprise#120900
Belgian payroll now uses the bicycle reimbursement rates applicable from October 1, 2026. The allowance increases to €0.32 per kilometer and the daily tax-exempt cap rises to €12.80, helping payroll calculations stay aligned with Belgian regulations.
Original PR description
This PR updates the Belgian bicycle reimbursement rates to reflect the amounts applicable from October 1, 2026. ### Changes - Increase the bicycle reimbursement rate from the previous amount to €0.32/km. - Increase the maximum daily tax-exempt reimbursement to €12.80/day. These values are aligned with the latest Belgian regulations and are required for payroll calculations from October 1, 2026. Task-6385742 Forward-Port-Of: odoo/enterprise#124481
Automatic bank reconciliation has been optimized for companies with large accounting histories, reducing a query that could time out to a much faster execution. This helps scheduled reconciliation jobs complete reliably in multi-company databases and reduces delays in accounting operations.
Original PR description
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the…
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the 15-minute execution limit. Even when throttled to a batch size of 10 records, the query required approximately 18.8 seconds to execute. The performance degradation was driven by the following factors: 1. Suboptimal Lateral Filtering: The statement line batch array filter was placed inside the `LATERAL` block's `WHERE` clause. This prevented the query planner from optimizing the drive path effectively across iterations. 2. Inefficient Join Sequence and Filtering: The original join order scanned `account_move_line` before resolving the company hierarchy constraint. As a result, millions of rows across all companies were retrieved from the index, forcing repeated primary key lookups on `res_company` before ultimately discarding over 99.9% of the records via the late `parent_path` hierarchy filter. This commit addresses these issues by: 1. Moving the `st_line.id` filtering constraint out of the lateral subquery and into the outer main query block to guide the execution path properly. 2. Reordering the inner `LATERAL` subquery to resolve the company hierarchy (`res_company`) prior to joining `account_move_line`. This constraints the scan boundaries early in the pipeline. Performance Benchmarks (10 record batch): - Before Execution Time: ~18,818 ms - Before Shared Hit Blocks: 8,535,272 - After Execution Time: ~130 ms - After Shared Hit Blocks: 67,204 ms Before Plan: https://explain.dalibo.com/plan/h4739gh3519eaa43 After Plan: https://explain.dalibo.com/plan/5ebc5g8deff272gc Forward-Port-Of: odoo/enterprise#125686 Forward-Port-Of: odoo/enterprise#125250
Odoo now limits Chilean company activity selections to the maximum supported by the official electronic document format. This helps prevent electronic invoices and related documents from being rejected because too many activities were selected.
Original PR description
The Chilean XML schema supports maximum of 4 activities (l10n_cl_company_activity_ids), but we allow to add more than that. If this happens, it causes rejections since electronic documents are being sent with more than 4 options selected, and returning rejection errors. Adding constraint to limit l10n_cl_company_activity_ids task-id: 6329320 Forward-Port-Of: odoo/enterprise#123856
Timesheet Assistant suggestions can now be managed with keyboard shortcuts, including moving between rows, selecting items, and selecting ranges. This improves accessibility and helps users review and process timesheet suggestions more efficiently, while avoiding keyboard shortcut interference outside the suggestions list.
Original PR description
Implement full keyboard controls for managing timesheet suggestions to improve accessibility and user efficiency. This adds support for the following interactions: - ArrowUp / ArrowDown to navigate focus through rows - Space to select/deselect the focused item (and set the selection anchor) - Shift + Arrows to select continuous ranges of suggestions task: 6267620 Forward-Port-Of: odoo/enterprise#120437
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278805 Forward-Port-Of: odoo/odoo#278208
Original PR description
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278805 Forward-Port-Of: odoo/odoo#278208