Daily updates from Odoo
Wednesday, April 29, 2026
21 changes · master
Enhancements to existing features
This update removes unnecessary data from the internal data structures used in account reporting. This optimization improves the performance and efficiency of generating reports, particularly for large datasets. The change focuses on internal improvements within the account_reports module.
This update simplifies the URLs used to access spreadsheets within Odoo Enterprise. The change replaces a lengthy `sheet_id` parameter with a shorter `sid` parameter, making the URLs easier to read and manage. This is a minor improvement focused on user experience.
Original PR description
Current behavior before PR: - The URL used the `sheet_id` parameter, which was unnecessarily long. Desired behavior after PR is merged: - Replace `sheet_id` with `sid` to make the URL more concise and readable. Task: [6171969](https://www.odoo.com/odoo/project.task/6171969) Forward-Port-Of: odoo/enterprise#115488
Resolved issues and error corrections
This update enhances the stability of WhatsApp tests by modernizing the testing framework. The team replaced an older, deprecated technology (Deferred) with a more current Promise-based approach, ensuring compatibility and reliability in future test runs. This change is part of a larger effort to maintain a robust and dependable Odoo Enterprise platform.
Original PR description
Replace Deferred with Promise.withResolvers in tests. [Part of task-5262203](https://www.odoo.com/odoo/1519/tasks/5262203) Community: https://github.com/odoo/odoo/pull/261739
This update corrects a reporting issue where payslips were incorrectly marked as 'paid' during the generation of payment reports. The change ensures that payslips are accurately reflected in reports, improving the reliability of payroll accounting data. This resolves a potential discrepancy in financial reporting.
Original PR description
…t generation Forward-Port-Of: odoo/enterprise#115273
This update corrects a potential error in the account reports module where custom modules could cause conflicts with standard 'state' fields. The fix ensures that column references are clearly defined, preventing ambiguous column errors during report generation and improving data accuracy.
Original PR description
Issue: ------- There are cases where clients might have the same named 'state' field/column for custom modules in the models 'res.partner' or 'account.fiscal.position' and therefore they might get conflicted with the standard one's when the below query executes, https://github.com/odoo/enterprise/pull/84391/changes#diff-2f90e40d6e7b35681a4af03037e8e5ee0fddab2ba0876d9f148bf79786a91c29R1359 and can cause ``` File "/home/odoo/src/enterprise/account_reports/models/account_return.py", line 2204, in _check_suite_common_vat_report self.env.cr.execute(SQL( File "/home/odoo/src/odoo/odoo/sql_db.py", line 433, in execute self._obj.execute(query, params) psycopg2.errors.AmbiguousColumn: column reference "state" is ambiguous LINE 9: state = 'posted' ``` Solution: ------------ Use the corresponding alias while mentioning the column i.e; `move.state = 'posted'` OPW - 6044665 Forward-Port-Of: odoo/enterprise#114341
A minor technical issue was resolved where the wrong function was being used within the VoIP sales module. This fix ensures the system functions correctly and prevents potential errors in call processing. The change is considered low impact.
Original PR description
Shh! We used the wrong function. Forward-Port-Of: odoo/enterprise#114869
A recent update caused a crash when viewing customer previews after signing a Field Service worksheet. This fix corrects a misapplication of a previous patch that was adding unnecessary base64 encoding to signature data. By removing this encoding, the customer preview now functions correctly.
Original PR description
Steps to reproduce: - 1. Install 'planning_field_service_worksheet'. 2. Open a Field Service planning slot, pick a worksheet template that has a signature property, and sign it. 3. From the slot, open the customer preview (portal page). Issue: - The customer preview crashes with a traceback. Cause: - Commit https://github.com/odoo-dev/enterprise/commit/b6997ed6f9a8fc29233e1d324e91bbda7eae4df2 added .to_base64() on prop['value'] to follow the same pattern as: https://github.com/odoo-dev/odoo/commit/c62d1cec96498f424c42aee87b1428a4615d576c , which fixed real Binary/Image fields that returns BinaryValue objects. That patch was misapplied here. The signature value in this template does not come from a Binary field, it comes from a Properties field, so signature data is already stored as a base64 encoded str. Fix: - Drop the .to_base64() call and embed prop['value'] directly, since it is already a base64 string. task-6157798 Forward-Port-Of: odoo/enterprise#115231
This update ensures vehicle license plates are included in invoice exports only when the Enterprise module (`account_accountant_fleet`) is active. It also resolves a bug related to tax calculations, preventing incorrect line splitting. This improves data consistency across different Odoo versions and database types.
Original PR description
[FIX] account_accountant_fleet: vehicle sent in XML when an invoice line has a vehicle linked, the vehicle license plate will be in the export XML file only if the enterprise module `account_accountant_fleet` is installed. Any community db will then not have the ref included This commit moves the vehicle data in `account_fleet` to expose it to community dbs Also fix a bug when expense is installed: super was not called in a method about tax lines, causing side effects (splitting repartition lines when it shouldn't) runbot-242562 Forward-Port-Of: odoo/enterprise#114902
This update resolves a minor issue in the account reports module by correcting a sign error for the CTA value. The changes involve simplifying queries and functions within the module to improve efficiency and stability. This ensures accurate reporting data.
Original PR description
Followup PR of odoo/enterprise#103529 * Simplification of some queries * Simplification of functions * Sign correction for cta value Forward-Port-Of: odoo/enterprise#114338
This update simplifies the setup of financial accounts for Sri Lankan businesses by reducing the complexity of account codes. New lines for equity and liabilities have been added to the Balance Sheet report, providing a more complete financial picture. This change enhances flexibility and accuracy in reporting.
Original PR description
Reduces Balance Sheet account code formulas from 3-digit to 2-digit prefixes to make the COA setup more flexible. New equity and liability lines are also added to the Balance Sheet. Community PR: https://github.com/odoo/odoo/pull/260920 task-6141758 Forward-Port-Of: odoo/enterprise#115340 Forward-Port-Of: odoo/enterprise#114768
This update ensures that when a company is quickly created through the equity module, the system correctly identifies it as a company. Previously, this wasn't happening, leading to incorrect data. Additionally, a minor typo was corrected in the user interface for improved clarity.
Original PR description
The partner_id field on all equity models represents a company. Therefore, quick-creating a partner_id should create it with is_company set to True. However, that wasn't the case. This commit fixes this issue by making sure that partner_id when quick-created in equity models has is_company set to True. It also fixes a typo in the string attribute of valuation list and form views. task-6132343 Forward-Port-Of: odoo/enterprise#114375
This update resolves an issue where the SBR tax report wizard would crash if an SBR certificate wasn't configured. The change ensures the wizard gracefully handles missing certificates, guiding users to the correct settings and preventing errors. This improves report generation reliability for users in the Netherlands.
Original PR description
In the SBR tax report wizard, the code previously attempted to access the `pem_certificate` attribute on a potentially empty recordset if no certificate was configured (see [here](https://github.com/odoo-dev/enterprise/commit/0b50021bdae54779396d75d3cddbd9eb42571553)). This resulted in an AttributeError before the validation check could trigger the intended RedirectWarning. This commit fixes the logic by: * Checking for the existence of the `cert_sudo` recordset immediately after retrieval. * Raising the RedirectWarning if the certificate record is missing, guiding the user to the Accounting Settings. * Accessing the certificate and private key content only after confirming the record exists. no-task Forward-Port-Of: odoo/enterprise#115489
This update fixes a problem where payment reminder emails for subscriptions were missing the subscription's closing date. The fix ensures that all payment reminder emails, regardless of how they're sent (automatically or manually), accurately display the subscription's end date. This improves the clarity and accuracy of payment notifications.
Original PR description
### Issue before this commit: When sending a payment reminder email for a subscription using the email composer, the template was not correctly populated with the expected dynamic values. In…
### Issue before this commit: When sending a payment reminder email for a subscription using the email composer, the template was not correctly populated with the expected dynamic values. In particular, fields such as the subscription closing date and the subscription code were missing. ### Steps to reproduce the issue: 1. Install subscription and go to that app 2. Open one subscription 3. Send message > Load template: "Subscription: Payment Reminder" 4. Sentence is incomplete: missing end date of the subscription ### Cause of the issue: The issue was caused by the absence of a proper context injection when rendering the email template from the mail.compose.message wizard. The template relied on context variables like date_close, but these values were not being computed nor passed during manual email composition. Unlike automated flows, the composer did not provide the subscription-specific context required by the template. ### Reason to introduce the fix: The fix makes the payment reminder and closing templates self-sufficient by replacing context-based values with fields and helper methods directly available on the subscription record. A dedicated method is introduced to compute the subscription close date consistently, so the templates render the expected values both in automated flows and when manually loaded from the email composer. opw-6031613 Forward-Port-Of: odoo/enterprise#115164 Forward-Port-Of: odoo/enterprise#111801
This update simplifies the returns process by removing the 'reviewed' state. Now, returns are automatically considered ready for submission once all required checks are complete, improving efficiency. This change reduces manual steps and speeds up the return workflow.
Original PR description
task-5266305
This update ensures that Timesheet reports are only generated for invoices with service lines, not goods-only invoices. Previously, irrelevant reports were automatically created and attached, leading to wasted resources and potential confusion. This change improves efficiency and accuracy in invoice sending.
Original PR description
Before this PR: --- - When adding the Timesheets dynamic report to the "Invoice: Sending" email template, it was always included in the Send & Print wizard. - Even if the invoice contained only goods and no timesheet-based service lines, the Timesheets PDF was generated. - The wizard built attachment placeholders purely from the mail template configuration without validating invoice content. - As a result, irrelevant Timesheets PDFs were generated and attached to goods-only invoices. After this PR: --- - The Timesheets dynamic report is generated only when the invoice contains at least one timesheet-based service line. - For goods-only invoices, the Timesheets report does not appear in the Send & Print attachments widget. - The wizard now filters dynamic report placeholders based on actual invoice content. - Unnecessary Timesheets PDFs are no longer generated or sent. Related - https://github.com/odoo/odoo/pull/187381 task - 5361456
This update addresses an issue where Coda transaction files sometimes lacked complete data, leading to default 'No description' labels appearing on bank statements. The change ensures accurate payment references by handling potential missing data from the Coda file, preventing incorrect statement line descriptions.
Original PR description
It can happens that coda file with transaction have no communication or structure communication. This can cause problem since we will have an empty payment_ref for the statement line. This will add "No description" as a default value. task-6045138 Forward-Port-Of: odoo/enterprise#111300
This pull request addresses a problem with invoice testing related to rounding calculations in the l10n_mx_edi module. It reverts a previous change that introduced the issue and confirms the fix. This ensures accurate invoice generation and reporting for Mexican businesses using this module.
Original PR description
This reverts commit 50ad147e1f579a094141f6f126e02f75ecc62ab3. Forward-Port-Of: odoo/enterprise#115612
This update corrects a discrepancy in the automated tests for the Odoo Enterprise subscription module. The community branch now uses websocket communication instead of polling. The tests have been adjusted to reflect this change, ensuring accurate test results and maintaining the stability of the subscription functionality.
Original PR description
In community branch, polling was replaced by a websocket call Adjust tests to use that url instead of polling. task-4951436 See Also: https://github.com/odoo/odoo/pull/232112
This update fixes a bug in the payroll calculation that previously failed to account for zero worked hours. Now, the system accurately computes full-time equivalent (FTE) figures, ensuring payroll reports and data are reliable. This improves the accuracy of employee time tracking and reporting.
Original PR description
Before this commit, the full-time equivalent compute was not taking into account the fact that the total worked hours could be 0. Forward-Port-Of: odoo/enterprise#115598
This update corrects a technical issue where styling applied to list views was incorrectly affecting other views within the account reports module. The fix ensures that styling is applied only to the intended list views, improving the visual consistency of the reporting interface. This resolves a minor cosmetic problem.
Original PR description
The css selector used to add the small border at the start of the line. So it end-up being applied in other view as well. task-6141685 Forward-Port-Of: odoo/enterprise#115568 Forward-Port-Of: odoo/enterprise#114903
This update resolves an issue where the cumulated balance calculation in the general ledger was incorrect when using journal groups. The fix ensures that the balance is accurately computed regardless of whether all journals are selected, improving the reliability of financial reporting.
Original PR description
Usually the journal filters doesn't allow the selection of all journals when no journal group is present. However, when a journal group is added, the journal filters allow the selection of all the journal groups to be valid. So, we end up with a filter Journals, with all journals selected but the cumulated balance is not computed. To fix this, if all the journals are selected in the Journals filter, we dont add the journal_ids filter. Step to reproduce: - On any journal, create a journal group - Go to the general ledger - In the Journals filter select "Local Gapp" and the created journal group - Click the journal items button on the line of any account - The cumulated balance will be at 0 even when all the journals are selected. Forward-Port-Of: odoo/enterprise#112943