Thursday, June 25, 2026
3 changes · 17.0
Resolved issues and error corrections
This update resolves a technical issue where the Intrastat report generation would fail when a company record lacked a country ID. The fix ensures a safer fallback mechanism in the SQL query, preventing errors and improving report reliability. This ensures accurate reporting for all companies.
Original PR description
When there is no `country_id` on the company we get `False`. The generated query then fail at: ``` ... CASE WHEN (code.country_id IS NULL OR code.country_id = false) THEN code.code ELSE NULL END AS commodity_code, ... ``` with: ``` ERROR: operator does not exist: integer = boolean LINE 12: ... WHEN (code.country_id IS NULL OR code.country_id = false) T... ```
This update fixes an issue where recurring subscription revenue was incorrectly displayed as 'To Invoice' even after invoices were fully processed. The change ensures that invoiced amounts are accurately deducted from revenue calculations, providing a more precise view of subscription income. This improves financial reporting accuracy.
Original PR description
**Steps to reproduce:** - Create a Sale Order for a service product with a recurring plan - Confirm it - Go to the Project Dashboard and observe MRR shown under "To Invoice" - Create an invoice for the subscription and post it - Go back to the dashboard **Issue:** Even after fully invoicing a subscription, its value is still shown under `to_invoice` in the revenues section. **Fix:** The profitability computation was not deducting the already invoiced amount from the total expected revenue. We now subtract the `amount_invoiced` from `amount_to_invoice`, ensuring that fully invoiced subscriptions no longer appear under `to_invoice`. task- 4797525
This update resolves an issue where creating and modifying contact records with blog posts would sometimes cause an error. The fix ensures that website URL calculations are skipped for temporary blog posts, preventing the system from attempting to generate URLs for records that don't yet have a permanent ID. This improves the stability and reliability of the contact form.
Original PR description
Steps to reproduce: 1. Install Blog, Contacts, and Studio 2. Open Contact form page and a new page with many2many field "Blog Post" 3. Save and create a contact record with email and a blog post. 4. Save and try to modify the email. Issue: `ValueError: Cannot slug non-existent record` Cause: - Since[1] Invisible fields also trigger `onchange` and compute methods during view processing. In this flow, `blog.post` records can be handled as transient `NewId` records. `_compute_website_url` was calling `slug(blog_post)` unconditionally, but `slug()` only accepts persisted records with a real id. Thus ValueError Solution: - Skip the website URL computation for non-persisted blog posts. - backport of https://github.com/odoo/odoo/commit/62ced8ac646fc781da24346f12c5dc9b9a0c592d [1] - https://github.com/odoo/odoo/commit/db63cb770365be1f81ba051fe6ca5a246dbc9036 opw-6175092