Daily updates from Odoo
Tuesday, June 30, 2026
14 changes · master
Enhancements to existing features
Australian payroll calculations have been updated for the 2026-27 financial year. The change also corrects how Medicare exemptions are applied from 2024 onward, helping ensure payslips and corrections use the right tax amounts.
Original PR description
Update tax rates and formulas for the 2026-27 financial year in the Australian payroll module. This commit also amends the tax rates and formulas from 2024 onwards. The Medicare exemption is now properly factored into the tax rates from the 2024-25 fiscal year forward, with the revised formula applied accordingly. Data for pre-2024 remains supported to facilitate importing historical payslips for corrections, aligning with the ATO rule allowing amendments for up to 5 years after the original payslip date. 6252689 Forward-Port-Of: odoo/enterprise#121561
This update adds two additional food delivery providers, Food Zapp and Enqueue, to the Point of Sale delivery integration. It expands the available local options for businesses operating in the UAE and Saudi Arabia, making it easier to connect with region-specific delivery services.
Original PR description
In this commit: - We are introducing two new providers, FoodZapp and Enqueue, for the UAE and KSA, respectively. Task-6263190,6263310 Forward-Port-Of: odoo/enterprise#122001 Forward-Port-Of: odoo/enterprise#121461
The timesheet assistant manager now makes more reliable suggestions when helping users fill in timesheets. This improves day-to-day accuracy and reduces the chance of suggested entries needing manual correction.
Original PR description
This commit's purpose is to add a few bugprovement to the timesheet assistant manager. Those imp concerns mostly the timesheets suggested by the assistant manager. task-6179842 Forward-Port-Of: odoo/enterprise#121946 Forward-Port-Of: odoo/enterprise#118494
The Belgian payroll settings now calculate the percentage option against withholding tax instead of taxable salary, making deductions more accurate. We also added clearer option labels, a way to set a total monthly tax target, and automatic limits so deductions cannot exceed what is available.
Original PR description
The percentage option was previously computed on the taxable salary instead of the withholding tax amount. Also, a total guaranteed tax ceiling option and a net salary safety cap were missing. - Change % option calculation to scale against withholding taxes (PP). - Rename '€/month' option to '€ extra/month'. - Add '€ in total /month' option to pay a target total tax amount. - Add descriptive help messages to clarify calculation methods for users. - Cap the deduction automatically to never exceed available taxable salary. Task-ID: 6326856
The Belgian payroll rules now use a single clear setting to determine Intellectual Property wage handling, instead of relying on a redundant separate field. This makes the payroll setup easier to maintain and reduces the risk of inconsistencies in contract and payslip calculations.
Original PR description
The current Intellectual Property (IP) setup for Belgian payroll is broken. The `ip` field is a redundant field which can be removed and replaced by the ip_wage_rate for computation making it much simpler. This commit cleans up the redundant schema and simplifies the workflow: - Removes the `ip` field. - Updates the payslip computation to rely solely on `ip_wage_rate` (if > 0, IP is applied). - Cleans up views and Python references where this field was utilized. Task: 6259513
Belgian payroll salary rules were updated so several deductions and insurance amounts now appear in the new complementary information section on payslips. A new meal voucher employer contribution line was also added, and one deduction label was clarified to make payslip information easier to understand for employees and payroll users.
Belgian payroll calculations now apply the legally required gradual reduction of the company withholding tax exemption starting in 2027. This keeps the figures shown in the interface aligned with the amounts reported in the official declaration, while avoiding unnecessary database updates.
Original PR description
Belgian regulations require lowering the company withholding tax exemption starting in 2027 to increase state revenue. A centralized multiplier is introduced to apply these progressive yearly reductions (97% in 2027, 93.35% in 2028, 95.9% for 2029+). By applying this directly in-memory during the 274.XX compute loops and Finprof XML rendering, we ensure perfect alignment between the UI and the legal declaration while avoiding redundant database writes. task-6317135
Users can now add an information text and an optional “see more” link to charts. The content is available from the info icon and can be edited in the spreadsheet design panel, making charts more informative and easier to explain.
Original PR description
It's now possible to add a information text and/or a see more link to a chart. Accessible with the info icon on the chart. Editable in the design side panel. Task: 5365254
The Belgian payroll rules now include the Flemish reduction for inexperienced employees. This applies automatically for eligible contracts and work locations, helping companies benefit from the correct payroll deduction for the first four quarters, with the right restart rules after interruptions.
Original PR description
Implement DMFA deduction code 6340 for the Flemish ONSS reduction for inexperienced employees. The reduction applies for the first four quarters starting from the employee's first contract date, provided that: * the contract version has the **Flanders Inexperienced** flag enabled; * the work address maps to a Flanders (`fl`) DMFA location unit. If the contract is interrupted for more than four quarters, the reduction period resets and is applied again upon resumption. If the contract is interrupted after the first two quarters and resumes within four quarters, the reduction continues for the remaining two quarters only (it does not reset). task-6149059
This update makes it easier to correct superannuation amounts after a payslip has already been submitted and paid. It also updates STP reporting so these corrections are recorded properly, reducing manual work and helping payroll reports stay accurate.
Original PR description
Amending STP creates an update action if full file replacement is not available. Amended STPs create delta superannuation stream lines. task-6245415 Forward-Port-Of: odoo/enterprise#119946
Turkey payroll users will now see missing field warnings directly on payslips instead of running into hard errors when generating reports. This makes it easier to fix incomplete company or employee information in advance, while also improving report naming, settings placement, and field guidance for a smoother payroll setup.
Original PR description
- Instead of raising hard errors during report generation, warnings and errors for missing required MUHSGK fields are now displayed directly on the payslips. - This allows users to identify and correct missing information (such as tax/SGK codes on the company or occupation/social insurance numbers on the employee) before generating the payment reports. - Additionally, the workplace agent sequence number on the report is now dynamically fetched from the company's configuration rather than being hardcoded to '000'. - Moves the Turkey payroll settings to the payroll section in settings. - Renames the report selection and downloaded files from "MUHSGK" to "1003B (MPHB)". - Adds clear descriptions/tooltips to the SGK registration number, unit codes, and intermediary code fields. Task-6284594
Odoo can now use email contact data captured by the Gmail browser extension to improve timesheet suggestions. When emails are read or composed, the related people can be matched to projects or tasks and added as helpful key suggestions, making it easier to find the right work items faster.
Original PR description
[IMP] timesheet_grid: Gmail watcher In this commit, Odoo now consumes data from the new Gmail Chrome and Firefox web extension, which captures the from, to, cc, and bcc fields of read and composed emails and sends them to Activity Watch. Odoo retrieves these events, extracts the emails, searches for partners linked to projects and/or tasks, and adds them to suggestions as keyEvents. task-5956040 Forward-Port-Of: odoo/enterprise#120727 Forward-Port-Of: odoo/enterprise#112014
Employers can now record transport subscriptions paid directly to a provider on Belgian payroll slips. This ensures the amount is reflected in the employee’s individual statement and the 281.10 tax report, while keeping the employee’s actual net pay unchanged.
Original PR description
Before this commit, when an employer paid an employee's transport subscription directly (e.g. a bus company billing the company), there was no way to record that amount on the payslip, so it never appeared on the individual account or the 281.10 fiscal report. After this commit, two CP200 salary rules handle it: an input rule (TRANSPORT_3P) adds the encoded subscription to the net, and a deduction rule (TRANSPORT_3P_DED) subtracts the same amount before the net, keeping real net pay unchanged. The declared amount now flows into 281.10 box 14a, alongside other public transport reimbursements. task-6293778
Users can now set a down payment as either a percentage or a fixed amount before an order is confirmed. The system keeps both values in sync automatically, and disabling prepayment is now done by setting the down payment to zero, simplifying the configuration.
Original PR description
Previously, we could only specify a down payment as a percentage. Now users can specify a fixed amount for the down payment required before confirming the order. When the amount changes, the percentage is automatically recalculated, and vice versa. When configuring the template, only a percentage can be set. We removed the online payment toggle and field. So now, to disable the prepayment feature, we have to set the down payment to 0. The **require_payment** field has been removed, and we now use _prepayment_percent = 0_ to indicate that _require_payment = False_. PR: https://github.com/odoo/odoo/pull/270071 Upgrade: https://github.com/odoo/upgrade/pull/10509 task-6293915