Daily updates from Odoo
Monday, July 28, 2025
9 changes
Enhancements to existing features
Online orders received through UrbanPiper now calculate and display taxes more accurately based on the restaurant’s country and fiscal setup. This helps businesses avoid tax mismatches, especially for Indian GST rules where aggregator-paid and merchant-paid taxes are handled differently.
Original PR description
**: pos_urban_piper_zomato, pos_urban_piper_swiggy After this commit: --- - For orders outside India, price are received from UrbanPiper as tax-inclusive. Odoo now properly computes the unit price and applies taxes based on the fiscal position. - For India, special handling is implemented: - 5% GST is collected and paid by the aggregator, so only this tax is added via fiscal position mapping. - For other tax rates like 12% or 18%, the merchant is responsible, so these must be configured explicitly in the fiscal position. Note: --- - If a user does **not** want to receive a particular tax in the order, they must manually add a line for it in the fiscal position. Task: 4862417 Forward-Port-Of: odoo/enterprise#91036 Forward-Port-Of: odoo/enterprise#88118
The editing toolbar now offers font color instead of strikethrough in compact mode, making common formatting easier to access. Knowledge article formatting options are also shown more selectively, so users only see relevant paragraph or normal text choices based on the editor context.
Original PR description
I. This PR replaces strike through with font color in compact toolbar. II. This PR replaces the baseContainer config with baseContainers, a list that defines the allowed base containers. The first element of the list now serves as the default, equivalent to the previous baseContainer. This change enables conditional display of "Normal" and "Paragraph" options in the toolbar. For example, if baseContainers only includes "DIV", only the "Normal" option will be shown. Similarly, if it only includes "P", only the "Paragraph" option will be shown. community-https://github.com/odoo/odoo/pull/216884 task-4770922
Users now see a confirmation popup when moving documents to a folder that would change who can access them. This helps prevent accidental permission changes and makes folder access implications clearer before the move is completed.
Original PR description
Purpose ======= Making sure people are aware of the access rights change when moving documents to a different folder. Specification ============= When moving documents to a target folder, add a confirmation popup specifying the target folder access rights if making the move will impact the dragged documents access rights. Task-4822908
The database expiration message now reflects the updated timing based on the next invoice date, giving customers a clearer payment window. This helps encourage earlier payments and reduces last-minute renewal risk.
Original PR description
Previously, the database expiration date was set to the same date as the expiration field, which is now defined as 15 days after the next invoice date. Issue: Users tend to wait until the last minute to pay. This improvement aims to better handle expiration timing and encourage timely payments. TaskID: 4384877 Forward-Port-Of: odoo/enterprise#90931 Forward-Port-Of: odoo/enterprise#90664
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