Daily updates from Odoo
Thursday, April 23, 2026
16 changes
6 changes
Enhancements to existing features
Users can now split a manufacturing order directly from the serial number generation wizard. This makes it possible to assign one serial number per sub-order in a single step, instead of having to choose between splitting the order and generating serials separately.
Original PR description
Since 4bb4e08066449, producing multiple serial that have been generated is only doable on one mo. We can split mo. we can generate serial number but we cannot do both at the same time. This commit adds a new button into the generate serial wizard to split the main mo into the number of serial wanted and attribute one for each sub mo. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259156 Forward-Port-Of: odoo/odoo#255577
This update streamlines how notifications are sent within Odoo. Previously, notifications were delayed, but now they are sent immediately when a 'store' is created, improving efficiency. This change ensures notifications are delivered promptly and reliably, enhancing the user experience.
Original PR description
Since [1], store result is computed at the very end of the TX. As a result, no matter when `bus_send()` is called, the actual value of the notification will be the same: the one computed during bus's precommit hook, which creates the notifications. As a result, calling `bus_send()` manually is useless: we can just call as soon as a store is created, provided it has a bus target. part of task-5242369 [1]: https://github.com/odoo/odoo/pull/256079 enterprise: https://github.com/odoo/enterprise/pull/114187
This update improves WhatsApp functionality by automatically sending messages through the system's messaging bus when a WhatsApp channel is created. This streamlines the process of sending messages and ensures they are properly routed. It's part of a larger effort to enhance WhatsApp communication within Odoo Enterprise.
Original PR description
`Store` automatically calls bus send when a bus channel is given. part of task-5242369 community: https://github.com/odoo/odoo/pull/259865
This update improves the setup process for printers in our Point of Sale system. A new checklist document has been added to the POS form, guiding users through the necessary steps to enable LNA access for their printers via the browser. This will reduce user frustration and improve the overall POS experience.
Original PR description
The LNA configuration for printers is complicated for users. To help them this PR will add a check list document inside the point of sale form view which will explain all the steps the clients should do to enable LNA access for their printers in the browser. Task-[5933321](https://www.odoo.com/odoo/project/1737/tasks/5933321) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254551 Forward-Port-Of: odoo/odoo#249226
This update enhances the reporting of audits by allowing users to search for return types by name. Crucially, it now uses fiscal year periods instead of annual periods for generic, French, and Belgian audits, aligning with updated reporting requirements.
Original PR description
This change enables the user to search for the return types using the name of the return. In addition, it switches the generic audit, french audit and belgian audit to use the fiscal year periodicity instead of the annual periodicity. task: 5948404 Forward-Port-Of: odoo/enterprise#112280
This update streamlines offer contract management by automatically treating contract start dates within existing periods as amendments, creating new versions and archiving outdated data. A new warning system alerts users to potential replacements, and technical changes ensure data consistency and prevent cache issues, improving overall system stability.
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 Forward-Port-Of: odoo/enterprise#108552 Forward-Port-Of: odoo/enterprise#103846
3 changes
Enhancements to existing features
This update enhances the reporting of audits by allowing users to search for return types by name. Crucially, it now uses fiscal year periods instead of annual periods for generic, French, and Belgian audits, aligning with updated reporting requirements.
Original PR description
This change enables the user to search for the return types using the name of the return. In addition, it switches the generic audit, french audit and belgian audit to use the fiscal year periodicity instead of the annual periodicity. task: 5948404 Forward-Port-Of: odoo/enterprise#112280
This update adds the ability for users to easily attach documents from the Documents app to invoices and accounting statements through the Accounting Send & Print wizard. Previously, this functionality was limited to other modules like Quotations. This enhancement streamlines the process of sending invoices and statements with supporting documentation, improving efficiency.
Original PR description
The standard mail composer (e.g., used in Quotations) allows users to add files or paste links directly from the Documents app. However, this functionality was missing in the custom `account.move.send` wizard used for Invoicing and Accounting. This commit introduces the 'Add from Documents' feature to the Accounting Send & Print wizard. task- 5905930 Forward-Port-Of: odoo/enterprise#111422
This update enhances the visibility of tax return export files for users. Instead of being attached to the record, the generated XML and PDF files are now automatically posted to the chatter thread upon tax return validation, making them easily accessible for review and discussion.
Original PR description
The xml and pdf of export of the tax return are not so visible for the user, thus the change creates the files on the validation of the returns and exports them to the chatter where they would be pinned task: 5871091 Forward-Port-Of: odoo/enterprise#111769
4 changes
Enhancements to existing features
This update adds a Slovak VAT tax report, aligning with official DPHv25 form requirements. It includes mappings for key tax scenarios like bad debts and reverse charges, ensuring accurate reporting for Slovak businesses. This improves compliance and reporting capabilities within Odoo.
Original PR description
Backported the Slovak tax report introduced in saas-19.1 (commit 32afab28dacf79e200eef27ee10c66101e275e07) along with its related fix (commit 6414da3c4eeef23ca86ce70c05b426878602bb4d). Additionally, included a small adaptation commit to ensure the report works properly in v19. Related: https://github.com/odoo/enterprise/pull/114448 task-6139318 Forward-Port-Of: odoo/odoo#260337
This update enhances the process for finding audit return types by allowing searches based on return names. It also updates the standard, French, and Belgian audit reports to use fiscal year periods instead of annual periods, streamlining reporting and aligning with current regulations.
Original PR description
This change enables the user to search for the return types using the name of the return. In addition, it switches the generic audit, french audit and belgian audit to use the fiscal year periodicity instead of the annual periodicity. task: 5948404 Forward-Port-Of: odoo/enterprise#112280
This update enhances the visibility of tax return export files for users. Instead of being attached to the record, the generated XML and PDF files are now automatically posted as notes in the chatter thread upon tax return validation, making them easily accessible. This simplifies access to important tax documentation.
Original PR description
The xml and pdf of export of the tax return are not so visible for the user, thus the change creates the files on the validation of the returns and exports them to the chatter where they would be pinned task: 5871091 Forward-Port-Of: odoo/enterprise#111769
This update clarifies French accounting reports by splitting account 649 into two new accounts (6491 and 6492). This change accurately separates social security charges from salaries, aligning with French accounting standards (ANC PCG 2026). The original account remains but is marked as deprecated.
Original PR description
Splitting account 649 into two new accounts (6491 and 6492) is necessary to handle the Profit and Loss report properly. This ensures we can accurately separate social security charges from salaries in the report. Reference: ANC PCG 2026, page 445, note (h) https://www.anc.gouv.fr/files/anc/files/1_Normes_fran%C3%A7aises/recueil/RECEUIL-PCG-2026-AVEC-COUVERTURE.pdf task-6053784 Forward-Port-Of: odoo/odoo#257398 Forward-Port-Of: odoo/odoo#255038
2 changes
Enhancements to existing features
The Ecuador invoice report now places customer information in a separate table to avoid layout issues when there is more data to display. This makes the invoice easier to read and helps prevent overlapping or cramped information on printed reports.
Original PR description
EC invoice custom report had some visual issues due to the limited space where customer information is shown, which was more obvious once the customer information started to grow. To fix this, the customer info is moved to a new table. task-6093976
After databases are synchronized with Odoo.com, the system now tries to create a local API key for each database that does not already have one. This reduces reliance on the global key and can save time during database access, improving overall sync performance.
Original PR description
Before this commit, databases fetched from Odoo's SaaS were contacted using the global API key, which is more costly than using a key local to each database. Avoiding the call from the server to Odoo to check the foreign API key can spare about 500ms on each database where this key is not in the LRU. With this commit, after the synchronization with Odoo.com, we try to generate an API key on each database that doesn't have one yet. To do so, it relies on the API introduced by odoo/odoo#246118. Forward-Port-Of: odoo/enterprise#114406 Forward-Port-Of: odoo/enterprise#106372
1 change
Enhancements to existing features
This update expands access to return type configuration options within the Odoo Enterprise accounting reports module. Previously, these settings were limited to debug mode, hindering user flexibility. Now, these options are available for authorized users, streamlining report customization and improving usability.
Original PR description
Before, the menu return types in configuration was only available in debug mode. Now it is available for the group `account.group_account_readonly` task-5912751