Wednesday, February 25, 2026
11 changes · 19.0
Enhancements to existing features
This update adds the representation of 'page 2 bis' to the 390 boe report format within the Spanish tax reporting module (l10n_es_reports). This enhancement ensures that all required data for Spanish tax filings is accurately included, improving compliance and reporting accuracy.
Original PR description
In this commit: - We are adding representation of page 2 bis to the 390 boe.txt task-5881396 Forward-Port-Of: odoo/enterprise#106861
This update enhances the restaurant order display by allowing users to group preparation cards by course (e.g., Appetizer, Main Course, Dessert). This provides a more organized and intuitive view of the order preparation process, making it easier for staff to manage and track items.
Original PR description
Adds the possibility to organize the preparation display by course instead of a flat list of orders. - Preparation Display: Added 'organize_by_course' boolean field to the configuration model and form view. - Frontend Display: Implemented a new layout that groups order cards under labeled course headers (e.g., "Course 1", "Course 2") when the option is active. task-id: 5969167
Resolved issues and error corrections
This update fixes a bug where the planning report generated through the standard print menu produced blank PDFs. The fix ensures users are directed to the correct Print button in the calendar view to generate the report, preventing errors and ensuring accurate report output.
Original PR description
**Problem:** When users in debug mode manually add the planning report action through Settings/Technical/Reports and then print from the list or form view, they receive a blank/invalid PDF report.…
**Problem:** When users in debug mode manually add the planning report action through Settings/Technical/Reports and then print from the list or form view, they receive a blank/invalid PDF report. **Steps to reproduce:** 1. Go to Settings app and enable debug mode 2. Navigate to Technical → Reports 3. Search for "slot_report" 4. Click "Add to print menu" button 5. Refresh the browser 6. Go to Planning app and switch to list view 7. Select a few planning.slot records 8. Click Print → Planning **Current behavior:** A blank or invalid PDF is generated. **Expected behavior:** Users should receive a clear error message directing them to use the correct print method from the calendar view. **Cause of the issue:** The planning report requires a pre-processed data structure (weeks, grouped slots per day/week, and group-by mappings) that is only prepared by the action_print_plannings() method called from the custom Print button in the calendar view. The standard print menu invokes _render_qweb_pdf() directly without this data preparation, and there is no mechanism to pass this complex data structure through the standard print workflow. This results in the template receiving empty data contexts, producing blank reports. **Fix:** Block the planning report from being printed through _render_qweb_pdf() when called without the proper data context. This is done by checking if the report name is 'planning.slot_report' and raising a UserError with a clear message directing users to use the Print button in the calendar view instead. This prevents the generation of invalid reports while guiding users to the correct workflow that properly prepares the required data. opw-5477184
This update fixes a bug where accounts without a code in the consolidating company were being excluded from reports, leading to inaccurate totals. Now, the system will automatically find a matching code on other companies to ensure accurate report consolidation and consistent financial data.
Original PR description
Description of the issue this commit addresses: When consolidating reports, any account that doesn't have a code on the consolidating company is filtered out of the consolidation. This will lead to amounts that do not match which should not happen. --- Desired behavior after this commit is merged: When an account should be used but is filtered out because of not having a code in the per company mapping, we try to find its code on any of the other companies he is and use that one as anchor in the consolidation. --- task-5911409
This update corrects a formatting issue in the Eco Voucher export file generated by the payroll module, ensuring it aligns with the requirements of the Monizze system. This resolves a potential export error, guaranteeing accurate data transmission for payroll reporting to Monizze.
Original PR description
This commit realigns the xlsx header with what's expected by Monizze for the eco voucher export.
This update fixes an issue where the Journal Audit report displayed incorrectly with large monetary amounts, causing tables to overflow. The fix adjusts the report's layout to handle these amounts properly, ensuring data is presented clearly and without errors. This improves the user experience when reviewing financial reports.
Original PR description
[FIX] account_reports: journal audit tax display **Problem:** The tax summary tables in the Journal Audit report overflow and collide when displaying large monetary amounts (9+ digits). **Steps to…
[FIX] account_reports: journal audit tax display **Problem:** The tax summary tables in the Journal Audit report overflow and collide when displaying large monetary amounts (9+ digits). **Steps to reproduce:** 1. Create and post invoices/bills with large amounts (e.g. 999,999,999) 2. Go to Accounting > Reporting > Audit Reports > Journal Audit 3. Observe the tax summary tables overflow their columns **Current behavior:** Large numbers overflow and collide because the sub-tables use `table-layout: fixed` and are placed in separate `<td>` elements with hardcoded `colspan`, preventing them from adapting to content width. **Expected behavior:** The tax summary tables should adapt their widths to accommodate large monetary amounts without overflow or collision. **Cause of the issue:** Several layout issues combined to waste space and cause overflow: - The sub-tables were in separate `<td>` elements with fixed `colspan` values (2 and 5), unrelated to actual content width - `table-layout: fixed` forced thin columns (e.g. country code) to take equal space as wider columns (amounts), causing larger values to overflow - The "Taxes Applied" header colspan used `taxesByCountry.length` which doesn't work on objects (always undefined), so the header never spanned the full width in multi-country scenarios - Full country names (e.g. "United States") consumed unnecessary horizontal space - Long tax names (common with OSS) wrapped to multiple lines, making the table very tall **Fix:** By placing both sub-tables inside a single `<td>` with a flex container, they can share the available width dynamically based on content rather than being constrained by arbitrary colspan splits. Removing `table-layout: fixed` lets columns size naturally to their content. Using country codes instead of full names and adding ellipsis on long tax names further reduces the space pressure. Backport of: ba8099ab7bad7a7a9fe445ed6fda8c4daa7abcbd opw-5477029
This update fixes an issue where generated Swiss payment XMLs (pain.001) were invalid due to incorrect use of bank identification codes (BIC). The change ensures that only one of BIC or ClrSysMmbId is used, aligning with Swiss banking standards. This prevents payment processing errors and ensures compliance.
Original PR description
**Steps to reproduce:** - Install 'account_iso20022', 'l10n_ch' and switch to a Swiss company - Have a bank with a BIC number and an account for that bank with a clearing number - Create a vendor…
**Steps to reproduce:** - Install 'account_iso20022', 'l10n_ch' and switch to a Swiss company - Have a bank with a BIC number and an account for that bank with a clearing number - Create a vendor bill for a Swiss partner or payrun report - Pay with "Swiss ISO20022" > generate xml pain001 - Validate against xsd or any swiss pain001 test plateform > Incorrect rules usage ! not valid xml ! **Cause:** In the XML the field BIC and ClrSysMmbId are present. Only one of them can be present. See the [documentation (page 27 and 33)](https://www.six-group.com/dam/download/banking-services/interbank-clearing/fr/standardization/iso/swiss-recommendations/archives/implementation-guidelines-ct/implementation-guidelines-ct_v1_6_1.pdf). **Solution:** Create the method `_get_ClrSysMmbId()` which will only return for Swiss if there is no BIC number. This is a partial unrevert of [this commit](https://github.com/odoo/enterprise/commit/177c7bbc890c3d142010de2cb7d0d9d6752c7fd9#diff-282e44e861d61542f3bc6d40e61b73fd1556f659d53ecd8bf9430dcec79c2fd6). opw-4872507
This update resolves a validation error occurring during tax calculations for Brazilian invoices using the Avatax service. The fix clears incorrect tax data from the invoice before sending it to Avatax, preventing a mismatch between totals and ensuring invoices are processed correctly. This improves invoice accuracy and avoids disruptions to the invoicing process.
Original PR description
Steps to reproduce: - Set up a Company with BR localization - Create a product as follows: - [General Information] Product Type: Service - [Sales] LC116 Code: 14.01 - [Sales] Purpose of Use: Not…
Steps to reproduce: - Set up a Company with BR localization - Create a product as follows: - [General Information] Product Type: Service - [Sales] LC116 Code: 14.01 - [Sales] Purpose of Use: Not applicable - [Sales] Service Code Origin: 14.01.3/168061/1524 - [Sales] Service Codes: 14.01.3/168061/1524 - Create an Invoice with Document Type "Electronic Service Invoice - NFS-e" - Add the product on the line - Compute taxes - Compute taxes again Issue: Action will be blocked by a validation error resulting from the external taxes call ``` odoo.exceptions.ValidationError: Odoo could not fetch the taxes related to Draft Invoice. Errors: Rejection: Total Installments doesnt match Total Lines ∑ installments[m]grossValue - ∑ (lines[n].lineAmount-line[n].lineTaxedDiscount) <> 0 ``` It occurs because during the call the system is considering the existing taxes on the line and it will send to the avatax service wrong amounts opw-5412456 opw-5409735 Forward-Port-Of: odoo/enterprise#108088
This update fixes an issue where international UPS shipments were generating commercial invoices with incorrect freight charges (showing $0.00). The fix ensures that freight charges are properly included on the invoice by specifying the necessary parameter during the shipment process. This ensures accurate customs documentation and avoids potential delays.
Original PR description
Issue ----- For international deliveries, the commercial invoice used for customs does not include the freight charges (it is set to 0). Steps to reproduce ----- - Create an international UPS sale - Confirm the delivery - Open the "UPSCommercialInvoice.pdf" file > In the price breakdown, freight is set to 0.0 Cause ----- It has to be specified in the `ship` request as `ShipmentServiceOptions.InternationalForms.FreightCharges.MonetaryValue` (source https://docs.rocketshipit.com/rs/docs/ups-api-parameters.html#shipment) Expected result ----- <img width="1912" height="963" alt="image" src="https://github.com/user-attachments/assets/170e49f7-6575-4524-b186-3829f4c20430" /> ----- Ticket: opw-5135494 Forward-Port-Of: odoo/enterprise#108465 Forward-Port-Of: odoo/enterprise#105505
This update resolves an issue preventing the BOE report export when using multi-company mode with companies having different VATs. The fix ensures the report correctly handles branch company selections, now requiring users to select all companies in the hierarchy for successful export.
Original PR description
**Steps to reproduce:** * Install the **l10n_es_reports** module. * Create a parent company with two branch companies with all has different VATs. * Enable **multi-company mode** with all companies selected. * Go to tax report `Mod 390` * From gear icon clck on `BOE`. **Observed behavior:** * A warning appears: Please select the main company and its branches in the company selector to proceed. * Not able to export BOE. **Cause:** * This is because the tax report's options only consider one of the two companies (because they have different VAT numbers). The button is not declared as branch_allowed, so when clicked, it checks whether all the companies of the branch hierachy are in the options => they're not => error. **Fix:** * Added the `'branch_allowed': True` to the `BOE` button options. opw-5891472 Forward-Port-Of: odoo/enterprise#107252
This update fixes an issue in the barcode picking interface where multiple extra product scans would repeatedly open a confirmation dialog. Now, the dialog opens only once and allows users to easily select or deselect extra items before confirming the addition, streamlining the picking process.
Original PR description
When adding extra products in the barcode picking interface, the confirmation dialog did not handle correctly the scan of multiple extra items. Before: Scanning multiple extra products successively opened (mutex + promise) the dialog multiple times. The user had to confirm/cancel each extra product addition one by one. After: The dialog is now only opened once and updated when scanning multiple extra products before confirming. The user can select/deselect the extra products to add before validating. [opw-5193269](https://www.odoo.com/odoo/project/49/tasks/5193269) Forward-Port-Of: odoo/enterprise#108393 Forward-Port-Of: odoo/enterprise#104932