Daily updates from Odoo
Wednesday, February 18, 2026
24 changes · master
Resolved issues and error corrections
This update simplifies the process for creating expense accounts by removing automated data pre-filling for KYC verification. This change addresses potential errors caused by inconsistent data formats in certain regions, like the Netherlands, and ensures a more reliable and accurate manual verification process.
Original PR description
Context:
When creating a livemode account, the data pre-sent by the database to stripe may cause issues in some localizations. e.g. the Netherland where people are forced to use a zip in the "\d{4} ?[A-Z]{2}" pattern, which they do not alway do
Solution:
Pre-filling KYC was deemed too error-prone and this would be switched to a fully manual KYC
OPW-5899276
Linked (but not depending on) https://github.com/odoo/iap-apps/pull/1431
Forward-Port-Of: odoo/enterprise#107115This update corrects a bug that occurred when KPIs with the same label but different identifiers were being sorted. The fix ensures accurate sorting by using a more efficient method within the system's data processing, preventing errors and improving data reliability.
Original PR description
When two KPIs have different identifiers but the same label, the call to `sorted` on a list of (priority, label, dict) tuples was wrong. As the two first criteria were the same, the comparison was made on the dict, which is not comparable, leading to the following error:
TypeError: '<' not supported between instances of 'dict' and 'dict'
With this commit, we instead use the `key=` argument to `sorted` in order to build the `(priority, label)` tuples, which is cleaner.
OPW-[5932549](https://www.odoo.com/odoo/project.task/5932549)
Forward-Port-Of: odoo/enterprise#107481This update resolves a problem where changing a bank account in the salary settings would incorrectly add multiple accounts to an employee's profile, leading to incorrect payment allocations. The fix now completely replaces existing bank accounts with the new one, ensuring accurate and consistent salary payments.
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 Forward-Port-Of: odoo/enterprise#106333
This update resolves an issue related to how version numbers are tracked within the Belgian HR Payroll module. The fix ensures accurate identification and management of module versions, preventing potential errors during updates and deployments. This improves the stability and reliability of the payroll processing functionality.
Original PR description
Forward-Port-Of: odoo/enterprise#107482
This update corrects a display issue where percentage fields in employee contracts were showing decimal values (e.g., 0.25%) instead of the intended percentage format (e.g., 25%). The underlying calculations remain accurate, and this change ensures a more user-friendly presentation of percentage data within the HR contract module.
Original PR description
Percentage fields are stored as a decimal in the DB (0.25) but represent a percent value (25%) The calculations are correct but the display to the user shows 0.25%, this PR fixes that without modifying the values stored on the database task-5350196 Forward-Port-Of: odoo/enterprise#106989
This update fixes a problem where the system was creating multiple, empty pay runs when generating payslips. The change ensures that only one temporary pay run is created during the selection dialog process, preventing unnecessary database clutter and improving system stability. This resolves a potential performance issue and ensures accurate payroll data.
Original PR description
When generating payslips from the selection dialog the UI previously created a new hr.payslip.run on every attempt; server-side validation can fail and each failed attempt left an empty pay run in the database. Fixed by allowing the dialog to create at most one temporary pay run per dialog lifecycle, reuses it on retries, and removes it if generation fails or the dialog is closed. task-5920710 Forward-Port-Of: odoo/enterprise#106857
This update fixes a payment error related to work accident entries on employee payslips. Previously, a new entry type wasn't correctly linked, leading to accidental payments. The fix adds the necessary entry type to the payroll structure, ensuring accurate payment processing for work accident compensation.
Original PR description
The unpaid work accident work entry type was added, but not included in `unpaid_work_entry_type_ids`, causing it to be paid by mistake. Add it to `unpaid_work_entry_type_ids` for the following structures: - structure_type_employee_cp200 - structure_type_employee_cp200_pfi Task: 5484866 Forward-Port-Of: odoo/enterprise#106435
This update resolves an issue where FedEx freight requests were failing due to missing information required by the FedEx API. Specifically, the system was unable to send a crucial detail – a 'bookingConfirmationNumber' – which is necessary for the API to validate shipments. This fix ensures that rate calculations for FedEx freight can be retrieved, but delivery validation remains functional.
Original PR description
Issue ----- Fedex freights services require extra information not present in the db, so requests will not be accepted by the API. A rate can be retrieved but the delivery cannot by validated by users as they get a `SHIPMENT.LOADCOUNT.INVALID` error. This is due to the lack of a `expressFreightDetail` entry in the request sent to the Fedex API. This `expressFreightDetail` field should contain some information which Odoo does not have a way to retrieve, such as a `bookingConfirmationNumber`. API details: https://developer.fedex.com/api/en-us/catalog/ship/v1/docs.html#:~:text=expressFreightDetail Feedback 5913471 ----- Ticket: opw-5876616 Forward-Port-Of: odoo/enterprise#106590
This update corrects a minor issue in the calculation of payroll fees and deductions, specifically related to union and professional association fees. The change ensures more accurate processing of these deductions, improving the reliability of payroll reporting for Australian businesses using the Enterprise module.
Original PR description
. Update `Union and professional association fees` code in computations of `Fees and Deductions` rule task-5402666 Forward-Port-Of: odoo/enterprise#104911
This update resolves an error that occurred when generating timesheet reports grouped by employee, specifically when filtering by billing time. The fix corrects a data structure issue preventing the report from correctly displaying hours worked by each employee. This ensures accurate timesheet reporting functionality.
Original PR description
## Short functional explanation of the error In Timesheets, when reporting by billing time, if we try to group by employee, an error occurs. ## Reproduction Steps 1. Go to Timesheets. 2. Click on the…
## Short functional explanation of the error
In Timesheets, when reporting by billing time, if we try to group by employee, an error occurs.
## Reproduction Steps
1. Go to Timesheets.
2. Click on the Reporting tab > By Billing type.
3. Click on the search bar and click on Employee under the Group By section.
### Expected behavior
A report shows the different hours worked on billing time for each employee.
### Unexpected behavior
An error occurs:
```TypeError: data.forEach is not a function```
## Origin of the issue
When retrieving the data to show in the report after having grouped
it by employee, this piece of code is called:
https://github.com/odoo/enterprise/blob/42102423069c2cebbc01eb4d1d8f9b6215358639/sale_timesheet_enterprise/static/src/views/timesheet_analysis_pivot/timesheet_analysis_pivot_model.js#L23-L36
However, the variable (data) on which we perform the forEach isn't
an array: it's an object of structure:
```
{ "group": { "rowValues": [], "colValues": [] }, "rowGroupBy": [ "employee_id" ], "colGroupBy": [], "subGroupIndex": 2, "subGroups": [ { "employee_id": [ 1, "Administrator" ], "__extra_domain": [ [ "employee_id", "=", 1 ] ], "unit_amount:sum": 0, "__count": 2, "__domain": [ "&", [ "project_id", "!=", false ], [ "employee_id", "=", 1 ] ] } ] }
```
on which we can't perform a forEach. The data we want to access to
use in the report is actually the `subGroups` element of data.
__
opw-5864458
Forward-Port-Of: odoo/enterprise#106969This update resolves a technical issue that could have caused the payroll system to become stuck in an endless loop. The change ensures that data is fetched correctly, improving the stability and reliability of the HR payroll processing.
Original PR description
The new implementation uses a prefetch object that makes the union of prefetch ids. This commit fixes an infinite loop by imposing the prefetching with `records.with_prefetch()` Forward-Port-Of: odoo/enterprise#107480
This pull request addresses a critical issue (274XX) within the Belgian payroll module (l10n_be_hr_payroll). The fix corrects a problem impacting payroll calculations, ensuring accurate and compliant processing of employee wages. This update improves the reliability of the HR payroll functionality.
Original PR description
Forward-Port-Of: odoo/enterprise#107679
This update ensures that all rates displayed on printed payslips are formatted to a maximum of 4 decimal places. This improves the clarity and professionalism of the payslip document, aligning with standard reporting practices. The change was implemented to address a formatting issue.
Original PR description
This commit improves the payslip display by limiting all rates to 4 decimals max on the printed pdf payslip. Task: 5709739 Forward-Port-Of: odoo/enterprise#104915
This update resolves a bug preventing users from saving the CDI - Experienced Developer (BE) contract template. The change removes a default checkmark for an inventory car, which was causing a required field error. This ensures the template can be successfully saved and used.
Original PR description
Before this commit, when the CDI - Experienced Developer (BE) contract template is loaded, the inventory car is checked, but no car is selected, so you can't save. This commits unchecks the inventory car on the template to avoid this issue. Task: 5892344 Forward-Port-Of: odoo/enterprise#107584 Forward-Port-Of: odoo/enterprise#105992
This update corrects a data issue in the demo payroll system for Anita Oliver. Specifically, the first month's payslip data has been added, enabling the 'Time Off to Defer' functionality to work correctly. This ensures the demo data accurately reflects payroll processing.
Original PR description
Add first month's payslip in demo data for Anita Oliver, so that Time Off to Defer works correctly. task-5912512 Forward-Port-Of: odoo/enterprise#106685
This update resolves an issue where the header in the sign application was overlapping with a red color bar. The fix removed a styling tag that caused this overlap, ensuring the header is now displayed correctly and consistently. This improves the user experience for signing documents.
Original PR description
Remove `top` tag to prevent header overlap due to neutralize red color bar Before fix: <img width="1953" height="790" alt="image" src="https://github.com/user-attachments/assets/dd9f7a00-eaea-4304-a22d-d8df96203823" /> After fix: <img width="1892" height="639" alt="image" src="https://github.com/user-attachments/assets/247e6067-570a-4fcb-a0e9-6f2640940f21" /> opw-5900244 Forward-Port-Of: odoo/enterprise#106844
This update corrects a technical issue where the contract template was being unnecessarily created during salary configuration. This prevented certain calculations from running correctly. The fix ensures the template data is now correctly handled, resolving the problem and improving system performance.
Original PR description
Writing the contract template on the new version created by the salary configurator is not necessary and caused some computes to not trigger. The contract template values are already included in the `_get_version` method. task-5324222 Forward-Port-Of: odoo/enterprise#107582 Forward-Port-Of: odoo/enterprise#99781
This update resolves an issue where incoming calls were automatically rejected when Do Not Disturb (DND) mode was activated. The change restores the expected behavior, allowing calls to be accepted while still respecting DND by preventing the softphone from automatically opening or playing a ringtone. This ensures a smoother call experience for users.
Original PR description
Since https://github.com/odoo/enterprise/pull/104426, incoming calls were automatically rejected when Do Not Disturb (DND) mode was enabled. This commit restores the expected behavior: when DND is enabled, the incoming call is accepted and a session is created, but the softphone is not automatically opened (and no ringtone is played).
A recent update to the project timesheet forecasting module caused errors when accessing all timesheets. This fix addresses a technical issue where an outdated field reference was preventing proper grouping of timesheets by employee. The update ensures the timesheet functionality is stable and reliable.
Original PR description
Steps to reproduce: - install project_timesheet_forecast - open timesheets app - open all timesheets menu => error Source of the bug: - planning_slot has no more employee_id field, it was replaced by employee_ids - when trying to group planning slots by employee_id, the key "employee_id" doesn't exist. Fix: The group_expand based on planning when the section field in the grid view is employee_id. task-5945958
This update resolves an issue where the 'Mark as Paid' button was hidden for users in Mexico when the l10n_mx_hr_payroll_account module was installed. This change ensures the standard payment flow is clear and functional for Mexican users, improving their payroll processing experience.
Original PR description
The "Mark as Paid" (action_payslip_paid) button on the hr.payslip form view [is hidden](https://github.com/odoo/enterprise/blob/19.0/hr_payroll_account/views/hr_payslip_views.xml#L39) when the l10n_mx_hr_payroll_account module is installed, making the standard payment flow confusing for users in Mexico. target: 19.0 task-5434674 Forward-Port-Of: odoo/enterprise#104390
This update ensures that the SOL (Service of Logistics) is correctly displayed in the invoicing notebook for sales orders when the project is set to 'is_fsm' and the partner type is a delivery partner. Previously, this information was missing for delivery partners, leading to potential invoicing inaccuracies. This change improves the accuracy and completeness of invoices for delivery-based sales.
Original PR description
Before this commit: When the project `is_fsm`, the timesheet product is displayed in the invoicing notebook regardless of partner type. After this commit: When the project `is_fsm` and the partner is of type delivery, the SOL displays correctly in the invoicing notebook. task-4764834
This update removes automatic completion of document activities when an account move is created. Previously, activities were marked as done regardless of their purpose, which was causing confusion and potential errors. This change ensures activities are only marked complete when directly related to an account move action.
Original PR description
Purpose: Avoid closing document activities that may not be related to performing a document action. Specification: When an account move is created from a document, the current logic automatically marks all document activities as done. This behavior is removed because document activities can exist for purposes unrelated to the performed action, and should not be completed implicitly as a side effect of it. Task-5075307
This update strengthens the security of invoices by preventing the use of untrusted accounts when processing inbound invoices. The change addresses a vulnerability that could have allowed unauthorized access. Testing and related code updates were implemented to ensure proper functionality.
Original PR description
fixed some tests see odoo#247954 Forward-Port-Of: odoo/enterprise#106980
This update corrects a minor visual issue with the Gantt chart's side panel icon. The icon was previously displaying as if it should rotate, which was an unintended leftover setting. This change ensures the icon appears correctly, improving the overall user experience.
Original PR description
This commit removes the fa-flip-horizontal class from the gantt side panel icon which was mistakenly left as is in https://github.com/odoo/enterprise/pull/107520