Daily updates from Odoo
Wednesday, March 4, 2026
8 changes · 19.0
Enhancements to existing features
This update ensures Odoo's Uruguay-specific electronic invoicing (CFE) reports comply with recent changes mandated by the Uruguayan tax authority (DGI). Specifically, a new reporting option for 'Export under Mandate' has been added, and adjustments have been made to how reference invoices are transmitted to accurately reflect export transactions.
Original PR description
Purpose: The DGI introduced changes in CFE version 25. The following changes below needs to be implemented for legal compliance.
Required Changes:
- Introduce a new selection value,("91", "Export under Mandate")for field, l10n_uy_edi_cfe_sale_mode. This option is required when documenting export operation performed as a mandating entity, where the definitive export will be carried out by a third party.
- The reference document(credit note or debit note) of an existing account move will need to send:
- Amount (MntCFEref)
- Currency (TpoMonedaRef)
- Exchange Rate (TpoCambioRef) if the currency is not Uruguayan Pesos
task-5419331
task-5419331
Forward-Port-Of: odoo/enterprise#108430
Forward-Port-Of: odoo/enterprise#103881This update simplifies the process for Italian businesses filing withholding tax returns. The default periodicity has been changed to monthly, aligning with Italian regulations and improving ease of use. This change ensures accurate reporting and reduces the complexity for users.
Original PR description
In Italy, withholding tax return periodicity is monthly. but it's hard to discover/configure. Default periodicity should be monthly. task-5985704 Forward-Port-Of: odoo/enterprise#109185
This update addresses significant changes in the format for Spanish VAT reporting (Mod303). Specifically, a new field for petrol has been added, and the placement of several Casillas has been adjusted to align with the latest requirements. This ensures accurate reporting for Spanish businesses using Odoo Enterprise.
Resolved issues and error corrections
This update fixes inconsistencies in how rental dates and planning slots are synchronized, ensuring accurate scheduling and order management. It automatically updates all related dates and quantities when changes are made to rental orders or planning slots, resolving previous issues with quantity discrepancies and resource conflicts. This improves data accuracy and reduces potential scheduling errors.
Original PR description
## [FIX] sale_renting_planning: fix sync between rental dates and planning slots dates Before this commit, it was possible to have `Planning Slots` with `Sync Shifts and Rental Orders` whose dates…
## [FIX] sale_renting_planning: fix sync between rental dates and planning slots dates Before this commit, it was possible to have `Planning Slots` with `Sync Shifts and Rental Orders` whose dates were different from the `Rental order`. This commit makes sure that all dates are always synced: - If the `Rental Order` dates are changed then all `Planning Slots`' dates changed to the new dates. - If a `Planning Slot` dates have changed then all other `Planning Slots` and the `Rental Order` Dates are changed to the new dates. ## [FIX] sale_renting_planning: fix sync between order line quantity and planning slots Before this commit, adding/removing a `Planning Slot` would not change the `SOL quantity` and changing the `SOL quantity` would not add/remove `Planning Slots` unless all slots are being deleted. This commit makes sure that when the `SOL quantity` is changed, the number of `Planning Slots` is changed accordingly, and if a Planning Slot` was added/removed, the `SOL quantity` would update accordingly. Note: The new sync behaviour from `SOL quantity` is ignored for `Products` with `hour UOM` because it is not clear yet how to update the `Planning Slots` if the new quantity of hours doesn't span a full rental interval. ## [FIX] sale_renting_planning: fix set multiple slots to resources Before this commit, adding multiple `Planning Slots` at the same time with the same `Role` can assign them to the same `Resource` even if they conflict with each other. This commit makes sure that when adding multiple `Planning Slots` none of them would conflict with each other after being added. task-5187356 Forward-Port-Of: odoo/enterprise#104771
This update resolves an issue preventing the export of Eco-Voucher data to Excel after a recent system update. The change addresses a discrepancy in data tracking between the old 'contracts' system and the new 'versions' system, ensuring accurate export functionality for Belgian companies using the payroll module.
Original PR description
Since the switch from contracts to versions, exporting Eco-Vouchers to excel has not been functional, this commit fixes this. **Steps to reproduce:** - Open Payroll App as a Belgian company - Under Reporting Menu, select Eco-Vouchers - Try exporting with XLSX **Issue:** Since introduction of versions, version module does not contain state field anymore which was present in contracts **Fix:** Removed the state field and replaced it with the corresponding field in version. task:5163668 Forward-Port-Of: odoo/enterprise#97375
This update resolves a crash issue that occurred when viewing pay runs on mobile devices with a smaller screen size. The fix ensures the system correctly identifies and interacts with the pay run Kanban view, preventing unexpected errors and improving stability for users. It addresses a technical problem related to how the system locates and manages scrollable content.
Original PR description
**Steps to Reproduce:** 1. Open Payroll->Payslips->Pay Runs 2. Click on a Pay Run in Mobile View (Width < 600px). 3. Return to the previous view using the breadcrumb. 4. The system crashes with…
**Steps to Reproduce:** 1. Open Payroll->Payslips->Pay Runs 2. Click on a Pay Run in Mobile View (Width < 600px). 3. Return to the previous view using the breadcrumb. 4. The system crashes with Traceback: TypeError: Cannot set properties of null (setting 'scrollLeft') **Bug Cause:** The custom 'hr_payroll.PayrunKanbanRenderer' template overrode the 'class' attribute of the root div. By setting it only to 'o_payrun_kanban', the standard 'o_renderer' class was removed. The Kanban controller's scroll restoration logic (introduced in recent lazy-loading updates) relies on the '.o_renderer' selector to find the scrollable container. When missing, querySelector returns null, leading to a traceback. **Solution:** Updated the XML template to explicitly include 'o_renderer' in the class list. This restores the functional hook required by the JavaScript controller for scroll restoration while maintaining the custom 'o_payrun_kanban' layout. Task: 5971861 Forward-Port-Of: odoo/enterprise#108847
This update resolves an issue in the Swiss payroll module (l10n_ch_hr_payroll) where the contractual annual wage wasn't being correctly calculated. The change reintroduces this essential element, ensuring accurate payroll processing for Swiss businesses using this module. This correction impacts payroll accuracy and compliance.
Original PR description
Forward-Port-Of: odoo/enterprise#109228
This update resolves an issue where foreign vendor VAT invoices were not correctly identifying the country of origin. The fix adds the necessary country code to vendor bills, ensuring accurate JPK report generation and compliance with Polish tax regulations. This improves the accuracy of financial reporting.
Original PR description
PR #81359 fixed the country code for foreign VAT companies by adding the country code to the start. However, this was only fixed for invoices going out, not vendor bills coming in. [opw-5917264](https://www.odoo.com/odoo/project.task/5917264) Forward-Port-Of: odoo/enterprise#109080