Tuesday, December 30, 2025
9 changes · saas-18.3
New functionality added to Odoo
This update incorporates new master data for Brazil, aligning with recent changes to the country's fiscal regulations. These adjustments ensure Odoo continues to accurately reflect Brazilian tax requirements, streamlining financial reporting and compliance for our Brazilian clients. The changes primarily affect tax definitions and reporting templates.
Original PR description
task-4939796 Forward-Port-Of: odoo/odoo#240988
Enhancements to existing features
This update introduces dedicated account tags specifically for Ireland's accounting standards. These tags are linked to both Irish and standard accounts, enabling more accurate reporting in new financial statement analysis tools. This improves the accuracy of financial reporting for Irish businesses using Odoo.
Original PR description
Added dedicated account tags for ireland CoA. And set these tags to corresponding Irish and default accounts. These tags are used for computation in new PL and BS tags reports. Related Enterprise PR: https://github.com/odoo/enterprise/pull/91903 Task: 4978415 Forward-Port-Of: odoo/odoo#222186
Resolved issues and error corrections
This update fixes an issue where multiple order lines were incorrectly refunded when a user initiated a refund. Now, only the selected line is refunded, and deleting a refund order properly restores the ticket screen. This ensures accurate refund processing and a better user experience for Point of Sale transactions.
Original PR description
Steps to reproduce: - In POS, select a paid order in the ticket screen with multiple lines. - Select the first line, choose a quantity to refund, and click Refund. - Return to the ticket screen, select the same paid order again. - Select another line and quantity, and click Refund. Issue: - In the second refund, all order lines were being refunded, even though only one line was selected. - After deleting a refund order, the ticket screen still showed messages like "Refunding x quantities in xyz order." Fix: - Only the selected lines are refunded. - Deleting a refund order restores the state of the linked order correctly. Task-5095578 Forward-Port-Of: odoo/odoo#241347 Forward-Port-Of: odoo/odoo#227937
This update prepares Odoo for Brazil's upcoming shift to a new consumption tax system starting in 2026. Users can control enabling this new system based on their business location and transaction types. The changes adapt existing modules to comply with the new requirements, primarily impacting tax calculations and EDI processes.
Original PR description
2026 marks the start of Brazil's 8-year plan to migrate to a completely new consumption tax system [1]. The new system is meant to be simpler than the old one, but we defer to Avalara for tax…
2026 marks the start of Brazil's 8-year plan to migrate to a completely new consumption tax system [1]. The new system is meant to be simpler than the old one, but we defer to Avalara for tax calculation so we don't really notice it technically. The old and new system have to coexist for the foreseeable future because the rollout happens gradually over many years. Whether the new system has to be enabled depends on the federal state the business is in, the type of transactions they do, and other factors. The user has the option to enable it through the l10n_br_is_icbs Boolean flag on the company, which gates all the new functionality. These changes impact both tax calculation and EDI. This set of modules adapts our existing l10n_br* modules to the new requirements set out by Avalara. We are required to send extra values to their API, and in some cases adapt existing ones. task-4939796 [1] https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp214.htm Forward-Port-Of: odoo/enterprise#102706
This update adjusts payroll rule parameters to reflect changes in US tax regulations for the 2026 tax year. These updates ensure accurate salary calculations and maintain compliance with US payroll requirements. This is a necessary improvement to guarantee correct financial reporting.
Original PR description
Purpose: Certain US Payroll values changes yearly. The payroll rule parameters must be updated for accurate salary calculation for 2026 for compliance. task-5409739 Forward-Port-Of: odoo/enterprise#102759 Forward-Port-Of: odoo/enterprise#102711
This update enhances the preparation display filters in the Point of Sale module, providing more flexible options for managing order preparation. Specifically, it removes the 'All' time filter option, adds a 'Now' option for real-time orders, and introduces multi-select capabilities. These changes improve the user experience and allow for more efficient order management.
Original PR description
- Time filter: * Remove "All" option (now default) * Add "Now" option for unscheduled and next-slot orders * Allow multi-selection - Preset filter: * Add multi-select preset filter * Only shown if related POS configs use presets - Category/Product filter: * Always show pos.category filter (even if no preparation card contains this category) * Move category/product filters below Time and Preset filters task: https://www.odoo.com/odoo/project/1737/tasks/5060221 community PR: https://github.com/odoo/odoo/pull/233920
This update fixes a bug that caused calls to unexpectedly end when users joined from multiple browser tabs. The change ensures stability during multi-tab scenarios, preventing crashes and improving the user experience when joining calls from different windows.
Original PR description
**Steps to reproduce:** - Start a meeting with user A - Share the invitation link with user B - Login with user B and join the call - Open another browser tab/window with the same user B - Join the same call in that tab using the invitation link - The call ends for that user as the RTC session is terminated - **_TAB1_**: join the call again - **_TAB2_**: error **Current behavior before PR:** When the same user joined the same call from another tab or during RTC renegotiation, selfSession could temporarily be undefined. **Desired behavior after PR is merged:** This PR ensures that no crash happens when dealing with the RTC Session in a `multi-tab` scenario. task-[5263097](https://www.odoo.com/odoo/project/1519/tasks/5263097) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240881
This update fixes an issue where part-time employee time off calculations incorrectly included company working days, even on holidays. Now, time off is accurately calculated based on the employee's actual working schedule, ensuring correct holiday deductions for part-time staff. This improves payroll accuracy and compliance.
Original PR description
Currently when a employee has a diferent working schedule than the company's one (part time employee), when he takes time off the computation includes days where he is not working but is an active working day for the company. That is not considering holidays. e.g. -employee works monday to wednesday -company works monday to friday -there is a holiday on the thursday taking monday to wednesday should count 4 days. added holidays support for this case opw-5082080 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240299 Forward-Port-Of: odoo/odoo#228960
This update fixes an issue where combo prices were incorrectly recalculated after changing the order's preset (e.g., from dine-in to delivery). The fix ensures that extra items within a combo are accurately priced based on the combo's base price, preventing unexpected price adjustments.
Original PR description
**Problem:** When ordering a combo product, you can order more products than the combo requires, which will the add *base_price* to the combo price. The problem is that when changing the preset, like…
**Problem:** When ordering a combo product, you can order more products than the combo requires, which will the add *base_price* to the combo price. The problem is that when changing the preset, like going from eat in to delivery, the pricelist is reconfigured, and it does not take the extra products from the combo into account. This means that the price will go back to the combo's price without the extra products. **Steps to reproduce:** - Have a combo that can take on multiple free products and has a limit above this free product number - Order more than the free quantity - Change the preset (from eat in to delivery) - The price is recomputed without taking the extra products into account **Why the fix:** The extra articles were not accounted for when changing the pricelist, meaning they would end up free and the price would change. We now make a separation between the free products (that are from the combo) and the extra products. The extra products cost the *base_price* of said combo. To do that, we need to get the extra lines from the combo, which are the products that are not free in the case where there are more products selected in the combo than free products defined in the definition of the combo. To make that happen, we add the non free lines to the extra lines list once we have at least as many free products as defined in the combo definition. In the case where the quantity of a product is greater than the number of free items, the lines are automatically split. Meaning if we have a combo with 2 free items but we order 3, we will have a line with a quantity of 2 and another line with a quantity of 1. In that case, the first line will be free, but the second line will be an extra. This logic is implemented here https://github.com/odoo/odoo/blob/0087cc96b2d2190ab107c3d50d3bdd48f7a687e9/addons/point_of_sale/static/src/app/components/popups/combo_configurator_popup/combo_configurator_popup.js#L88-L106 Which is then retrieved here to make the separation in the combo's price https://github.com/odoo/odoo/blob/0087cc96b2d2190ab107c3d50d3bdd48f7a687e9/addons/point_of_sale/static/src/app/services/pos_store.js#L879 opw-4885574