Tuesday, April 14, 2026
5 changes · 19.0
Enhancements to existing features
Users in India localization can now open tax return views even when GST e-filing is disabled, so non-GST e-filing returns remain accessible. GSTR returns are no longer generated automatically without the feature enabled, and users get clear guidance if they try to create them manually.
Original PR description
BEFORE: - Before this commit, when we disable the gst e-filing feature from the configuration and try to access the tax return view, we are getting blocked by the redirect warning, which suggests enabling the gst e-filing feature from the configuration. - Which is not desirable, as there might be some returns that are not related to gst e-filing, which should be accessible by the user. AFTER: - After this commit, removed the RedirectWarning when accessing the tax return view with gst e-filing feature disabled. So now the user can access tax returns without enabling gst e-filing feature. - At the time of setting the fiscal year(generating/refreshing returns automatically), the GSTR returns will not be created. - And at the time of manual GSTR return creation, we are raising UserError to instruct the user about enabling the gst e-filing feature. Related Ent PR: https://github.com/odoo/enterprise/pull/105983 Task-5486586
Printed survey participant reports now include the answers even for surveys configured to hide answers during scoring. This makes printed reports complete and consistent for review, recordkeeping, or sharing.
Original PR description
Previously, printing surveys of type scoring_without_answers omitted participants' answers, resulting in incomplete and inconsistent reports. This commit ensures answers are always included, regardless of survey type. Task-5407701 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#258616
Duplicate bill alerts now make it easier to tell whether a suspected duplicate has the same reference or only a different one. Draft bills can show caution-level warnings, while posted bills keep only the strongest duplicate warnings, helping users focus on the most important risks.
Original PR description
In this commit for bills: - Highlight the reference in red when it is identical and in yellow when references are different. Apply the same logic to the duplicate document warning in the form view. - In the form view duplicate warning, use the Bill Reference if available, then the Move Name, then "Draft". - Yellow warnings are restricted to Draft moves; only red warnings remain visible once Posted. task-5916255
This update enhances budget reporting by automatically including asset accounts (current, non-current, and fixed) in budget reports. This provides a more complete financial picture for users who track expenses and budgets related to company assets.
Original PR description
Expand the scope of budget tracking to include asset accounts. Modified the account filtering logic so that when a budget type is set to "Expenses" or "Both", the query includes 'asset_current', 'asset_non_current', and 'asset_fixed' account types. task-5994048 Forward-Port-Of: odoo/enterprise#109496
This update automatically treats new offer start dates within existing contract periods as amendments, creating new contract versions and archiving outdated ones. A warning alerts users to potential replacements, ensuring data accuracy and preventing conflicts. This improves the management of employee contracts and simplifies the versioning process.
Original PR description
**Contract Amendment & Versioning Logic** * When an offer's contract start date falls within an existing contract period, it is treated as a contract amendment (new version) rather than a new…
**Contract Amendment & Versioning Logic** * When an offer's contract start date falls within an existing contract period, it is treated as a contract amendment (new version) rather than a new contract. * For contract amendments, the offer's contract end date is read-only and automatically inherited from the existing contract. * When creating a new offer, any existing versions with effective dates **on or after** the new offer's contract start date are automatically archived, as they likely contain outdated data. * Added a warning to notify users when a new offer will replace existing future versions. **Technical Refactoring** * Simplified the `employee_version_id` computation by delegating to the existing `_get_version` method on the employee model. This ensures the selected employee version correctly matches the contractual state effective at the new offer's * Ensured cache invalidation after rollback savepoints to prevent stale data. The overridden `_get_version` in `hr_contract_salary_payroll` writes to `employee.version_id` and the `contract_template_id`; although rolled back, it polluted the cache. We now always invalidate the cache after rollbacks to avoid inconsistencies, including later module installation. **Simulation & Chatter** * Inside the simulation, when calling `_get_version`, we need to adjust the contract dates of the version being simulated. The main challenge is allocating this simulated version between existing employee versions without creating contract overlaps, since overlaps raise validation errors. * To avoid this issue, we move to a new approach. We archive all versions after `employee.version_id` and set `employee.version_id.contract_date_end = False`. * Then, instead of replacing the active version, we create the simulation version as an amendment to `employee.version_id`. The amendment's effective date is set to `max(fields.Date.today(), employee.version_id.contract_date_start, self.contract_start_date)` + 1 day. This ensures the current version remains unchanged, avoids contract overlaps, and prevents chatter pollution. task: 5408192