Daily updates from Odoo
Monday, July 28, 2025
5 changes · master
Resolved issues and error corrections
The disallowed expenses reports now create unique identifiers for lines with a zero or missing rate. This prevents duplicate-key errors and helps users open the report reliably in affected expense and fleet scenarios.
Original PR description
Before this **PR**: When only the account_disallowed_expenses module was installed, the report failed with a duplicate key error if a line had a 0 rate or no rate at all. This was because such child lines were assigned the same line_id as their parent. After this **PR**: Lines with a 0 or no rate have the parent account appended to their line_id to ensure uniqueness and avoid key collisions. Forward-Port-Of: odoo/enterprise#90236
Balance sheet reports in multiple country-specific Odoo localizations now correctly support the Split Horizontally option. This fixes missing report configuration so users in affected countries can view balance sheet sections side by side as intended.
Original PR description
Before this PR: Some localizations (e.g., Switzerland, Germany and others) were missing the `horizontal_split_side` field in their report templates to support the `Split Horizontally` feature in the balance sheet report. After this PR: Balance sheets in these localizations now properly support the `Split Horizontally` feature after adding the missing `horizontal_split_side` field to their report templates. Task: 4791197
This fixes when company and website fields appear in Documents, so users only see them when relevant and permitted. Internal users see these fields only in multi-company or multi-website setups, while non-internal users do not see them.
Original PR description
Fixes the visibility of the `website_id` and `company_id` fields. These fields other than hidden from non internal users, they should be visible to internal users only when multiple websites or multiple companies are available, respectively. Partial revert of: ddf102e5 task-4505668 Forward-Port-Of: odoo/enterprise#90965 Forward-Port-Of: odoo/enterprise#86181
This fix prevents an error when Belgian reporting data exists for a shared contact and the Inventory app is installed afterward. It keeps Belgian 281.50/325 tax reporting records valid while avoiding unnecessary company consistency failures, improving reliability for Belgian accounting workflows.
Original PR description
### Steps to reproduce: - Install l10n_be_reports & account_accountant. - Switch to "BE Company CoA" company. - Add "281.50" tag to "YourCompany" contact. - Accounting > Configuration > Accounting >…
### Steps to reproduce: - Install l10n_be_reports & account_accountant. - Switch to "BE Company CoA" company. - Add "281.50" tag to "YourCompany" contact. - Accounting > Configuration > Accounting > Chart of Accounts > Add "281.50 - Commissions" tag to 600000 account in CoA. - Create a Vendor Bill for partner "YourCompany" selling "[E-COM11]". Date it sometime in 2024 and confirm. - Go to Accounting > Reporting > Open 325 Forms. - Create a new form for 2024. - Verify that there is a line for "YourCompany" in the form and generate the XML. - Try to install Inventory. #### > Traceback due to a company inconsistencies. ### Cause of the issue: When creating the new `l10n_be.form.281.50` form for 2024, we create a record for "BE Company CoA" and which `partner_id` is the `res.partner` "YourCompany" which does not belong to any company (and hence is accessible from any). However, on the `forms_281_50` related field of the `res.partner` model is `check_company=True`: https://github.com/odoo/enterprise/blob/bc36a68b68c3d0296ee18c3a121b029dd418f430/l10n_be_reports/models/res_partner.py#L15-L23 Currently, this did not matter because we did no call of the `_check_company`. But if we where to launch a call of the `_check_company` on "YourCompany" `res.partner` we would raise a company error. Now, when you install stock 2 things happen and provoke this call: 1) The `res.partner` model becomes `_check_company_auto`: https://github.com/odoo/odoo/blob/b7dbf15aa8116e51708bd51b8dda9bd12bba0a9e/addons/stock/models/res_partner.py#L8-L10 2) We create a warehouse for "Your company and update the `partner_data` https://github.com/odoo/odoo/blob/b7dbf15aa8116e51708bd51b8dda9bd12bba0a9e/addons/stock/models/stock_warehouse.py#L143-L145 https://github.com/odoo/odoo/blob/b7dbf15aa8116e51708bd51b8dda9bd12bba0a9e/addons/stock/models/stock_warehouse.py#L315 However, the `property_stock_customer` and `property_stock_supplier` are `check_company` related fields: https://github.com/odoo/odoo/blob/b7dbf15aa8116e51708bd51b8dda9bd12bba0a9e/addons/stock/models/res_partner.py#L12-L17 Therefore, writing on them for a `_check_company_auto` record will launch a call of the `check_company` for all the fields of the record (including the already inconsistent `forms_281_50`): https://github.com/odoo/odoo/blob/b7dbf15aa8116e51708bd51b8dda9bd12bba0a9e/odoo/models.py#L3780-L3781 https://github.com/odoo/odoo/blob/b7dbf15aa8116e51708bd51b8dda9bd12bba0a9e/odoo/models.py#L3867-L3868 ### Fix: We loosen the company check on the `forms_281_50` to not rely on the `_check_company` since the current workflow lead functionally to valid record data's that will always be considered invalid by this method. opw-4845434 Forward-Port-Of: odoo/enterprise#89590
Project profitability now includes budget lines linked through the correct analytic plan, even when a project's account is associated with a different plan after migration. This prevents valid budget information from being hidden, giving users a more complete view of project performance.
Original PR description
In version 17.3, the analytic mixin was introduced in budget.line model to allow to link a budget line to multiple analytic accounts belonging to different analytic plans. The issue is that we have…
In version 17.3, the analytic mixin was introduced in budget.line model to allow to link a budget line to multiple analytic accounts belonging to different analytic plans. The issue is that we have not adapted the code in project profitability, to take those changes into account. A problematic situation could be the following: 1. We have a project where the account "X" is set to the main project plan (the first one) "Projects" BUT the account "X" actually belongs to the analytic plan "Departments" (yes, it's possible that there is a mismatch between the project plan and the analytic plan, especially after the 18.0 upgrade where "analytic_account_id" just became "account_id", no matter in which plan it was). 2. We have a budget line linked to the account "X" for the plan "Departments". 3. We want to display the budget lines in project profitability, but this line does not appear. That's because we currently only look for the budget lines belonging to the analytic plan "Projects" aka the main/first plan, that match the account "X" of the project. But as account "X" actually belongs to the analytic plan "Departments", no budget lines are found. task-4901400 version-18.0 Forward-Port-Of: odoo/enterprise#88658