Daily updates from Odoo
Thursday, August 14, 2025
5 changes · 18.0
Enhancements to existing features
Italian Public Administration invoices can now be routed through Namirial for the required qualified XADES signature before being sent. This improves compliance handling by adding signing configuration, clearer error responses, and ensuring the signed XML replaces the original before attachment.
Original PR description
Invoices for the Italian Public Administration businesses must be signed with XADES before sending. We use Namirial's third-party signing services. - This upgrade adds configuration, a signing process, and new returns to handle this case. Old versions should be able to ignore this, as the invoice will stay blocked in the requires_user_signature state in Odoo, now deprecated, without being sent to the EDI. - Handle more error types, with dedicated server exceptions with an error code map. Old versions should be able to just handle them as before, generically. - When the Proxy Server signs an invoice, the XML will replace the one on the Odoo instance before it's actually attached. Needs: odoo/odoo#210572 Also see: odoo/iap-apps#978 Task [link](https://www.odoo.com/odoo/project/967/tasks/4477745) task-4477745
Point of Sale now avoids repeating the same product preparation work when loading loyalty rewards. This significantly reduces startup time for businesses with many loyalty programs and products, helping staff open POS sessions faster.
Original PR description
In databases with many Loyalty Rewards and products, the POS loading time can become very slow due to repeated product serialization in the `compute_discount_product_ids` function. This commit stores serialized and non-serialized versions of the product list once to avoid redundant serialization. On a DB with 144 programs and ~6500 products, loading time was reduced from 55s to 14s with this change. opw-4986057
Danish companies can now prepare and send VAT report information from Odoo to the Danish tax authority's online services. The update retrieves required filing dates, submits a draft VAT return for approval on skat.dk, and can fetch the final receipt and payment details after approval.
Original PR description
The Danish government has set up a system enabling users of accounting software to send their tax reports to the government directly from the accounting software. To do this, there are 3 different…
The Danish government has set up a system enabling users of accounting software to send their tax reports to the government directly from the accounting software. To do this, there are 3 different web services: - VirksomhedKalenderHent: This web service returns the dates on which the legal entity must submit its VAT returns. These dates are required to submit VAT returns. - ModtagMomsangivelseForeloebig: This web service submits a draft VAT return to skat.dk with all the fields to be filled in. The web service returns a deep link to skat.dk, where the legal entity can access and approve the submitted VAT declaration. - MomsangivelseKvitteringHent: This web service provides a receipt for the VAT return, given that the legal entity has approved it. This service also includes information on how to pay any outstanding balance. These three web services use SOAP and encryption to function. What we decided to do was to take the SOAP envelopes of the requests and create them by hand and send them to the government portals. task: 3326971 Iap: https://github.com/odoo/iap-apps/pull/1090 Forward-Port-Of: odoo/enterprise#72094
Subscriptions that were churned now return to active status when their invoice is paid, including payments made by bank transfer or manually. This helps avoid paid customers remaining incorrectly marked as churned, while still respecting the allowed automatic closing period.
Original PR description
Before: - A subscription is reopened only when a customer pays through the portal. - Manual payments do not reopen the subscription. - invoice is paid but subscription remains churned. After: - Subscriptions now reopen when invoice paid through bank transfer. - Additionally, reopening is the subscription will only reopen if the next_invoice_date is within the allowed automatic closing limit (next_invoice_date >= today - automatic closing limit). Impact: - Paid invoices now always bring the subscription back to active status task-4277444
Belgian Annual Accounts exports from the General Ledger now generate an XML file instead of a fixed-format TXT file. This better matches official formatting expectations and improves compatibility for downstream processing, including account balances, multilingual descriptions, and related metadata.
Original PR description
The previous Annual Accounts export in the General Ledger generated a TXT file with a fixed column order, which did not meet the structural or formatting requirements for downstream usage. This commit replaces the TXT export with an XML export conforming to the official format, including fields such as account code, debit, credit, multilingual descriptions, and metadata. task-5005345 Forward-Port-Of: odoo/enterprise#92071