Daily updates from Odoo
Thursday, December 4, 2025
7 changes · master
Resolved issues and error corrections
This update fixes an issue preventing correct XML generation for Colombian e-invoices related to the 'INC Bolsas' plastic bags tax. The changes add a dedicated tax flow and ensure accurate reporting of this tax in the invoice XML, resolving DIAN validation errors and enabling successful invoice submissions.
Original PR description
Before PR: -The plastic bags tax (INC Bolsas) was not handled by a specific flow. -This resulted in incorrect XML generation for Colombian e-invoices, leading to validation errors from the DIAN. After PR: -Dedicated logic flow has been added to correctly handle the INC Bolsas tax. -Generated XML now correctly reports this tax in a separate `TaxTotal` block. -It populates the `BaseUnitMeasure` and `PerUnitAmount` fields with the fixed tax rate per bag. Impact: -Colombian e-invoices that include plastic bags tax are now generated correctly. -Ensures compliance with DIAN's specific requirements for this nominal tax. -Prevents validation errors and allows for successful submission of invoices containing this tax. task-5086926 Forward-Port-Of: odoo/enterprise#100391 Forward-Port-Of: odoo/enterprise#95311
This update fixes an issue where the IoT printer was still being used when both an IoT and ePos printer were set up. Now, the system automatically prioritizes the ePos printer, ensuring the correct printer is selected for the user's workflow. This improves the user experience and prevents errors.
Original PR description
When setting an IoT printer and an ePos printer, a message is displayed to inform the user the ePos printer will be used. However, this is not the case and the IoT printer is still loaded. We now avoid loading if there already is a printer. Forward-Port-Of: odoo/enterprise#101130
This update corrects issues in tax reporting for businesses using multiple companies within a shared tax unit. It ensures that OSS reports and domestic tax returns are correctly linked to the appropriate main company, resolving inconsistencies and improving data accuracy. This enhances compliance and reporting reliability.
Original PR description
This PR delivers multiple fixes to ensure consistent and accurate behavior when working with tax units across OSS and standard tax return reports: [FIX] l10n_eu_oss_reports: Correct Tax Unit…
This PR delivers multiple fixes to ensure consistent and accurate behavior when working with tax units across OSS and standard tax return reports: [FIX] l10n_eu_oss_reports: Correct Tax Unit Detection for OSS Reports OSS reports lack a country, causing _get_available_tax_units to return no results. As a consequence, only the environment's main company was considered. This fix ensures that when multiple companies belong to the same tax unit, their OSS reports are correctly consolidated under that shared unit. [FIX] account_reports: Link Tax Unit Returns to the Main Company When generating domestic tax returns for a company that is part of a tax unit, the main company of the unit should be used since it is responsible for filing. This update ensures tax return generation is always aligned with the appropriate main company. [FIX] account_reports: Enforce Main Company When Generating Report Options get_options previously relied on the order of companies within a tax unit, assuming the first entry was the main company. Because this order is not guaranteed, the call is now explicitly scoped using with_company to ensure the main company is always used when preparing report options. Forward-Port-Of: odoo/enterprise#99715
This update fixes a previous issue where the AI agent's transcription summaries weren't displayed in the user's preferred language. Now, the agent automatically generates summaries in the language selected for the transcription, ensuring a more natural and user-friendly experience. This change also applies to date formatting within the summaries.
Original PR description
This commit introduces a change that makes the agent produce a summary in the selected language from the transcription tab. It injects a specific prompt using the `currentLanguage` of the transcription the component. Instructing the LLM to generate in the proper language. Forward-Port-Of: odoo/enterprise#101075
This update enhances the bank reconciliation widget to accurately display early payment discounts (EPD) when batch payments are used, particularly with invoices linked to payments. It now correctly handles EPD calculations and displays the discount amount alongside the payment, ensuring accurate reconciliation and reporting of early payment benefits.
Original PR description
In the bank reconciliation widget, it is now possible to have batch payments containing payments linked to only invoice_ids. Such batch payment, once mounted in the widget, should reflect the invoice or move amounts of its payments, and not only the payments amount. In the case of a payment-invoice combo that's elligible for an early payment discount, the early payment discount should also be displayed in the widget. Example: Invoice of 1000$ with possible EPD of 2%. A payment (with no move) is done (paid in the "early" period) for 980$. The payment is then put into a batch payment. Once in the bank rec widget, when mounting the 980$ batch payment to a statement line of 980$, the widget should display it as a batch payment line of 1000$ and add another 20$ Early payment Discount line. task-4681366 Forward-Port-Of: odoo/enterprise#100533 Forward-Port-Of: odoo/enterprise#83077
This update enhances the performance of our reports by streamlining how cached data is handled. The team removed a technical detail that was causing issues with report caching, now managed entirely on the client-side. This results in faster report loading times and a smoother user experience.
Original PR description
This commit is needed by PR https://github.com/odoo/enterprise/pull/96946, which introduces a cache for rpc calls executed by the reports, like the one we use for views. When setting an option filter to value A, then switching to B and finally coming back to A, we'd expect the cache to work, and basically reload the original value computed for A instantly. It did not work because of the loading_call_number key, which was always set with a different value in the options dict. We now entirely remove the loading_call_number from the options, and don't pass it to the server at all. Instead, everything is handled js-side, with function parameters. In the meantime, we address some potential async issues in the reports' js code, essentially by reordering some lines or assigning return values to variables before calling await.
This update fixes a reporting issue by ensuring the NIF (tax identification number) is included in the BOE export for model 347 reports in Spain. This aligns with Spanish tax regulations (specifically pages 3 & 12 of document 347) and improves the accuracy of tax reporting data. Users are responsible for providing a correct VAT number.
Original PR description
[FIX] l10n_es_reports: include NIF in boe export for model 347 The NIF must be included in the BOE export for modelo 347 https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_300_399/archivos/347.pdf pages 3 & 12. Before this commit, we read the vat but if it doesn't start with 'ES' we return an empty string because we based on TIN. Now we'll read the vat (without 'ES' if it starts with it). The user is responsible to fill a correct number in the vat field of the company. opw-5207241 Forward-Port-Of: odoo/enterprise#100489