Monday, February 16, 2026
6 changes · 19.0
Enhancements to existing features
This update enhances the payroll dashboard for Odoo users in Switzerland by addressing specific requirements. It disables irrelevant generic warnings and introduces new warnings to alert users to missing or incorrect data within Swiss employee and company records. This ensures accurate payroll processing and compliance in the Swiss market.
Original PR description
This PR improves the payroll dashboard for Switzerland by: 1- Disabling the generic warnings as they are currently irrelevant to Switzerland. 2- Add new warnings for the missing/invalidity of some needed fields in swiss employees and companies. Task: 5856084
Resolved issues and error corrections
This update enables archiving of Indian Goods and Services Tax (GST) returns regardless of their state, aligning with Indian regulatory requirements. The change includes a technical update to improve flexibility and prevent further processing of archived returns, ensuring compliance and streamlining the accounting workflow.
Original PR description
Previously, the Archive action was only available in the `new` state. However, the Indian GST workflow requires returns to be archivable in any state. This commit: - Introduces a computed boolean to control the visibility of the Archive action, making the behavior extensible for localizations. - Updates the Indian localization to allow archiving in all states. - Hides functional action buttons on archived GSTR returns to prevent further processing. task-5247758
This update resolves a bug that prevented users from saving invoices in Mexico when a line item had a price of zero. The fix ensures that required tax object fields are correctly populated for all invoice lines, regardless of price, to comply with Mexican tax regulations. This ensures invoices can be properly processed and submitted.
Original PR description
**PROBLEM** If you create an invoice, and add a line with a product with a price of 0, you cannot save the invoice. **STEP TO REPRODUCE** 1. On a mx company, create an invoice for a mx client. 2. Add a line with a product with a price of 0. 3. Try saving the invoice, it will fails. **CAUSE** Field `l10n_mx_edi_tax_object` is required on invoice line with mx company. However, for lines with a price of 0, it is not set by `_compute_l10n_mx_edi_tax_object` because `_l10n_mx_edi_cfdi_invoice_line_ids()` filters them. opw-5402045 Forward-Port-Of: odoo/enterprise#103981
This update corrects a bug in the salary configuration where changing a bank account would create duplicate entries, leading to incorrect allocation percentages. The fix now completely replaces existing bank accounts with the new one, ensuring accurate payroll processing. This resolves a potential issue with payments being misdirected.
Original PR description
When changing a bank account in the salary configurator, the system was adding the new bank account to the employee's existing bank accounts list, ending up having multiple bank accounts where the first retained 100% allocation and subsequent ones had 0% allocation. The fix replaces all existing bank accounts with only the new one. task-5905542
This update adjusts the calculation of sickness relapse periods for Belgian payroll, aligning with a new tax regulation effective January 1, 2026. The relapse period between sick leaves has been increased from 14 to 56 days, ensuring accurate payroll processing according to Belgian tax law. This change was implemented with new tests and data types to support the updated calculation.
Original PR description
Spec :- Since 01/01/2026, the period between two sick time off to consider it as a relapse has been increased from 14 days to 56 days. Implementation :- . Update sickness relapse period from 14 to 56 days if the leave starts from 2026 . Add leave work_entry type where work_entry use date_start . Add corresponding tests task-5476174 Forward-Port-Of: odoo/enterprise#104782
This update resolves an issue preventing the WhatsApp sign migration process from completing due to manually deleted template records. By adjusting how Odoo handles missing templates, the migration now proceeds smoothly, avoiding a critical upgrade block. This ensures consistent and reliable WhatsApp sign functionality.
Original PR description
Issue: ------ The database migration was blocked during the `config_parameter` [loading](https://github.com/odoo/enterprise/blob/19.0/whatsapp_sign/data/config_parameter_whatsapp_template.xml#L6)…
Issue:
------
The database migration was blocked during the `config_parameter` [loading](https://github.com/odoo/enterprise/blob/19.0/whatsapp_sign/data/config_parameter_whatsapp_template.xml#L6) phase. This occurred because several `ir.config_parameter` records used `ref()` to point to [whatsapp templates](https://github.com/odoo/enterprise/blob/19.0/whatsapp_sign/data/sign_request_whatsapp_templates.xml) that were manually deleted in the production environment.
ValueError is raised:
```py
raise ValueError('External ID not found in the system: %s' % xmlid)
ValueError: External ID not found in the system: whatsapp_sign.sign_request_whatsapp_template
```
Cause:
-------
Since these whatsapp templates are defined with [`forcecreate="0"`](https://github.com/odoo/enterprise/blob/19.0/whatsapp_sign/data/sign_request_whatsapp_templates.xml#L3), Odoo does not recreate them automatically during migration. This left the External IDs (IMD) pointing to non-existent records, causing a `ValueError: External ID not found in the system` that blocked the migration.
Solution:
-----------
Updated the `ref()` calls in the XML for these configuration parameters to include `raise_if_not_found=False`. This allows the registry to initialize successfully by returning None instead of crashing if a template is missing.
tgb: [2448](https://upgrade.odoo.com/odoo/tbg/2448?debug=1)
upg: [3895200](https://upgrade.odoo.com/odoo/upgrade.request/3895200?debug=1)
opw: [5931388](https://www.odoo.com/odoo/project/70/tasks/5931388?debug=1)