Tuesday, February 24, 2026
12 changes · saas-18.4
New functionality added to Odoo
A new internal check detects when tests add temporary methods to Odoo models without properly cleaning them up. This helps prevent one test from accidentally affecting another, improving reliability of the test suite and reducing risk of hidden regressions.
Original PR description
Setting methods on models during tests and not removing them afterwards can cause misbehaviour of other tests. Setting mock or test-specific methods is not an issue but it should be done via patchers. https://runbot.odoo.com/odoo/error/237983 Forward-Port-Of: odoo/odoo#249491 Forward-Port-Of: odoo/odoo#247151
Resolved issues and error corrections
The point of sale customer display now closes the online payment QR code once an order is completed. This prevents staff or customers from having to manually dismiss an outdated QR popup after payment is finalized.
Original PR description
Steps: --- - Configure online payment on the POS configuration. - Open a POS session and the customer display. - Add a product and an online payment line. - Validate the order and complete the payment via QR code. Issue: --- - The order is finalized, but the payment QR code remains visible on the customer display. - The QR popup must be closed manually every time. Cause: --- - The customer display popup lifecycle depends on `onlinePaymentData`. - This data was not cleared when the order was finalized. Fix: --- - Clear `onlinePaymentData` when the order is completed. task-5502344 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#249932 Forward-Port-Of: odoo/odoo#244991
Romanian EDI stock delivery slips now print correctly when a customer or partner uses a non-English language, such as Spanish. The report now relies on stable internal fields instead of translated labels, preventing crashes and improving reliability for multilingual operations.
Original PR description
Steps to reproduce: 1. Switch the partner language to Spanish. 2. Print the Delivery Slip. 3. The report crashes due to translated XPath anchors. Cause: XPath targeted hardcoded English strings 'Tracking Number' and 'Total Weight'. Solution: Target technical fields o.carrier_tracking_ref and o.shipping_weight instead of text labels. opw-5493498 Forward-Port-Of: odoo/odoo#248679
Vendor payments in the Argentinian withholding module now ignore withholding taxes that have been deactivated. This prevents incorrect tax amounts from being applied after a tax is turned off, improving payment accuracy without changing vendor setup.
Original PR description
# How to reproduce - Install the l10n_ar_withholding module - Pick a Vendor and add a Purchase Withholding tax in the accounting tab - Go into configuration and disable that tax - Create a Vendor Bill with that Vendor - Confirm the bill and create a payment # The problem The deactivated tax is still computed in the payment # Why The function that fetches the withholding taxes does not check if the taxes are active or not # The fix I though of 2 solution : - Add an override to remove the taxes from the Vendor when they are deactivated - Add a filter to the fetch function to check if the taxes are active I chose the 2nd solution as it is the least invasive one. opw-5917257 Forward-Port-Of: odoo/odoo#247831
This update fixes a discrepancy where tests weren't updated after a recent change to the Hong Kong payroll salary rule. The correction ensures that all tests accurately reflect the new rule, maintaining the integrity of the payroll calculations. This prevents potential errors in reporting and financial data.
Original PR description
In odoo/enterprise:100842 a salary rule was corrected, but the related tests were not. This will correct that mistake. Forward-Port-Of: odoo/enterprise#108241
This update corrects a rounding issue in the stock barcode functionality that was causing inaccurate stock quantities to be recorded when scanning barcodes during delivery order processing. Specifically, it ensures that stock quantities are displayed more accurately, preventing discrepancies in inventory tracking. This improves the reliability of stock management.
Original PR description
To reproduce the issue: - Create a stock quantity of product1 for example of 275.84 kg in PACK1 - Create a delivery order of 3.6 kg - Go to the delivery order on stock barcode - Scan PACK1 - The new line is created as 272.2399999999 Forward-Port-Of: odoo/enterprise#108198 Forward-Port-Of: odoo/enterprise#89300
This update corrects a minor oversight in the system's invoice matching tolerance settings. Previously, a hardcoded value wasn't updated, leading to potential inaccuracies in bank statement reconciliation. This fix ensures more reliable matching of invoices to bank transactions, improving financial reporting.
Original PR description
During this commit:https://github.com/odoo/enterprise/commit/15d26e62f14bb0224712a1712b47ebe16c3b8702 we forgot to change one part of the hardcoded tolerance. task-5952881 Forward-Port-Of: odoo/enterprise#108112
This update resolves a testing issue that prevented users from validating Arabic VAT invoices in test environments. The change uses elevated permissions to bypass typical user access restrictions, ensuring consistent and reliable testing. This improves the stability and accuracy of the Arabic VAT module.
Original PR description
This pull request makes a minor update to the `_dummy_afip_validation` method in `account_move.py`, improving its reliability for testing environments. * Testing reliability: The method now uses `sudo()` when writing dummy AFIP fields, ensuring that the operation succeeds even if the current user lacks write permissions. Without this fix, if the user doesn't belong to group "base system", it won't be able to validate invoices in testing environment. <img width="1258" height="454" alt="image" src="https://github.com/user-attachments/assets/522bfd9d-33be-4bcd-a60b-ef4c09a8e0d6" /> Forward-Port-Of: odoo/enterprise#107937
This update resolves an issue where tests were failing due to how patches were being applied within the Odoo Enterprise system. The team has streamlined the patching process, specifically converting certain patches to instance-level configurations to avoid triggering test detection errors. This enhances the reliability of our test suite.
Original PR description
Otherwise they trip the on-test-side-effect-detector (at least in its current incarnation). Forward-Port-Of: odoo/enterprise#107940 Forward-Port-Of: odoo/enterprise#106948
This update corrects a test case related to how Odoo handles multiple product transfers. Specifically, it now accurately reflects the new behavior where transfers merge into existing ones only when a procurement group is defined. This ensures the quality control process aligns with the latest changes in Odoo's picking and transfer functionality.
Original PR description
Fix the test case to align with the updated picking move merge behavior, where the next transfer merges into an existing one only when a procurement group (group_id) is set TaskID-5242340 Forward-Port-Of: odoo/enterprise#99342
This update resolves a bug that caused Odoo Enterprise to crash when Avatax company credentials were missing. The fix prevents a crash by handling the missing credentials gracefully within the Avatax integration process, ensuring stability and continued functionality.
Original PR description
When `_find_avatax_credentials_company` returns `None`, `_get_avatax_service_params` crashes accessing `.avalara_commit` on it. `_find_avatax_credentials_company` should probably return an empty `res.company` recordset when it cannot find a company, but for stability reasons we won't change the return value and instead fix it locally in `_get_avatax_service_params`. opw-5939708
This update corrects a display issue in the Timesheet app's grid view. Previously, hovering over the total overtime cell showed 'Weekly Overtime' instead of the accurate 'Total Overtime'. The fix renames the cell to 'Total Overtime' to ensure consistent and correct overtime calculations across day, week, and month views.
Original PR description
### Issue: When displaying the month in the grid view and hovering the bottom right cell, where the total overtime is displayed, it shows "Weekly overtime". ### Steps to reproduce: - Open Timesheet app - In "My Timesheet", display the grid in day or month - Hover the bottom right cell - It displays "Weekly Overtime" ### Solution: Rename it to "Total overtime" to handle all periods (day, week, month). opw-5502864 Forward-Port-Of: odoo/enterprise#107642