Friday, February 20, 2026
13 changes · 19.0
New functionality added to Odoo
This update incorporates the National Bank of Kazakhstan as a currency rate provider. This change is necessary to comply with local regulations in Kazakhstan, ensuring Odoo Enterprise meets all legal requirements for financial transactions within that country.
Original PR description
This PR adds the National Bank of Kazakhstan as a provider in order to meet the requirements of the Kazakhstan code. Task-4144725
Enhancements to existing features
This update expands the range of Automatic Value-Added Tax (AVS) deductions within the Odoo Enterprise payroll module. Specifically, five new generic AVS codes have been added to ensure greater flexibility and accuracy in tax calculations for Swiss businesses. A new test has been implemented to verify the correct application of these deductions.
Original PR description
5 more generic AVS is added to l10n_ch_hr_payroll/hr_salary_rule_data and /hr_payroll_input_types. task - 5902593 Forward-Port-Of: odoo/enterprise#106218
Resolved issues and error corrections
This update corrects a problem where the timesheet approval reminder email was sending to an outdated action. The action was updated as part of a recent Odoo release (17.3+) to align with a new system for managing timesheets. This ensures the reminder email functions correctly.
Original PR description
### Issue: The action used in the ` timesheet approval reminder` email template refair to a non existing action. ### Cause of the issue: The issue has been introduced in…
### Issue: The action used in the ` timesheet approval reminder` email template refair to a non existing action. ### Cause of the issue: The issue has been introduced in [1](b56e355c400c874f7cd9c3174e2253ad5769a461) b56e355c400c874f7cd9c3174e2253ad5769a461 Starting from 17.3 the actions `action_timesheet_previous_week` and `action_timesheet_previous_month` have been removed and merged in a single action `timesheet_grid_to_validate_action`. See [2](7040535ffe2c08d0d286cfccbaf4cc7f81f18443) 7040535ffe2c08d0d286cfccbaf4cc7f81f18443 However, while [2](7040535ffe2c08d0d286cfccbaf4cc7f81f18443) correctly replaced the usage of both actions used in the template as `action_xml_id`: https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/models/res_company.py#L209-L221 https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/data/mail_template_data.xml#L43-L45 The forward port of [1](b56e355c400c874f7cd9c3174e2253ad5769a461) replaced it with the deleted action: https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/models/res_company.py#L161-L171 https://github.com/odoo/enterprise/blob/913418bb3d7558b6b44916455e28de855eb123f5/timesheet_grid/models/res_company.py#L193-L198 opw-5890269 Forward-Port-Of: odoo/enterprise#107440 Forward-Port-Of: odoo/enterprise#107385
This update adjusts the automated tests for the spreadsheet edition of Odoo. These changes ensure the tests accurately reflect the recent updates to the o-spreadsheet functionality. This improves the reliability of our testing process and helps maintain the quality of the spreadsheet features.
This update corrects a bug in the planning Gantt view that was causing inaccurate total hour calculations due to timezone discrepancies. The fix ensures that shift hours are correctly displayed regardless of the employee's timezone, providing more reliable planning data. This improves the accuracy of time tracking and scheduling.
Original PR description
Description: ----------- When viewing planning shifts in the gantt view, the total hours column displayed wrong totals due to timezone misalignment in work interval calculations. Steps to reproduce:…
Description: ----------- When viewing planning shifts in the gantt view, the total hours column displayed wrong totals due to timezone misalignment in work interval calculations. Steps to reproduce: ------------------- 1. Create an employee with a fixed working schedule (e.g., 8am-12pm, 1pm-5pm with 1-hour lunch break) 2. Ensure the employee's timezone differs from UTC (e.g., Europe/Brussels UTC+1) 3. Create a shift for this employee covering their full working day (8am-5pm) 4. Open the planning gantt view and check the total hours column for that day 5. Expected: 8 hours total | Actual: 7 hours total (with hours misaligned by timezone offset) Root Cause: ----------- In version 19.0, `_gantt_progress_bar_resource_id` used `.replace(tzinfo=pytz.UTC)` when building work intervals, which only changes the timezone label without converting the actual time values. This caused a timezone offset mismatch in the frontend's hour-by-hour comparison. Solution: --------- Replace `.replace(tzinfo=pytz.UTC)` with `.astimezone(pytz.UTC)` to properly convert datetime values to UTC before sending to the frontend. opw-5190244
This update resolves an issue where color dots weren't appearing on shift previews for employees with flexible schedules. The fix ensures that color dots are consistently displayed when a shift spans multiple days, improving the planning calendar's usability for all employee types.
Original PR description
## Short functional explanation of the error When setting a shift spread on multiple days for an employee who has a flexible schedule and previewing the planning of this employee, on the shown…
## Short functional explanation of the error When setting a shift spread on multiple days for an employee who has a flexible schedule and previewing the planning of this employee, on the shown calendar, the color dot doesn't show. Instead, 'null' appears. ## Reproduction Steps 1. Go to planning and create a shift extended on multiple days for an employee who has a flexible schedule. 2. Click Publish and Send. 3. Click on Actions on the left top side and click Preview. 4. Select the employee you just created the shift for. 5. Click on Preview. 6. It opens a window with the employee's planning. On the left top side, click Month. ### Expected behavior A shift spread on multiple days should show, with a color dot on the left of the schedule. ### Unexpected behavior Null appears instead of the color dot. Moreover, the background of the shift has the color of the color dot that should be there. ## Origin of the issue For employees with specified working schedules, multiple-days shifts are limited to their schedule. Thus, these shifts are split on the working hours of the employee. But flexible employees have no specified working hours, so the shifts aren't split. This creates multiple day slots. FullCalendar generates different html codes for such slots, which don't contain class ```fc-daygrid-event-dot```, responsible for the creation of the color dot next to the shift schedule. However, even if this color dot isn't created, we still mention it here: https://github.com/odoo/enterprise/blob/59cec3e8c6a0880178aa93651dca66c367d36841/planning/static/src/js/planning_calendar_front.js#L116 to display shifts. Therefore, we have to create it if it doesn't exist. __ opw-5437257
This update resolves a bug where a notification was incorrectly triggered every time multiple statement lines were selected for action. The fix ensures that a warning notification is only sent when a reconciled line is selected, improving the user experience and preventing unnecessary alerts.
Original PR description
This commit:https://github.com/odoo/enterprise/commit/fa8fedc4e2501a273e7f8f3f7f4462b2b58907b9 introduced a way to select multiple statement lines and apply an action on it. When selecting a reconciled line, a notification should be sent to warn the user. But for the moment the notification is sent everytime. no task id
This update resolves an issue related to the Belgian payroll reporting of cycle transportation benefits. The changes ensure accurate calculation and declaration of these expenses, aligning with Belgian tax regulations. This fix improves compliance and reduces the risk of errors in payroll processing for employees receiving this benefit.
This update resolves an issue where Invoicing and Banks users were unable to access certain standard financial reports. The change reverts a previous update that inadvertently granted access, ensuring these groups can now properly view the necessary reports. This improves usability and reporting capabilities for these key user groups.
Original PR description
* Revert commit https://github.com/odoo/enterprise/commit/86c3c212bb79fbc2becac46f4d83b6f2fc381854 that introduced having Accounting features, menu items, and Account on invoice lines available for Invoicing users. * Allow Invoicing & Banks group to access basic reports * Backport missing access rights to properly open the reports without an access error. task-5925567 Forward-Port-Of: odoo/enterprise#107957 Forward-Port-Of: odoo/enterprise#107654
This update fixes a bug preventing users from searching the Colombian Daily Journal (Libro Diario) effectively. The issue was caused by missing data in the search field, which blocked filtering. Now, the search bar correctly displays all journal entries based on move, partner, account, and label information.
Original PR description
Steps to reproduce: 1. Open the Colombian Daily Journal (Libro Diario). 2. Type a move name or partner in the search bar. 3. Observe that no results are returned. Cause: Report lines were generated with an empty 'name' attribute. The accounting report framework uses this field for client-side filtering. Empty names make the search bar non-functional. Solution: Populate the 'name' field with move, partner, account, and label data. This enables the frontend search bar to match against these strings. opw-5495558 Forward-Port-Of: odoo/enterprise#106179
This update resolves an issue where the contract type field was incorrectly displayed in the employee offer view when the Belgium payroll localization was not installed. The fix removes the unnecessary addition of this field, ensuring correct behavior across all Odoo versions. This prevents future conflicts and maintains consistent functionality.
Original PR description
Bug reproduction: Ensure that belgium payroll localization is not installed, go to offer of employee, contract type field is not there. Bug cause: Contract type field does not exist in the model, it was adding to the view by l10n_be_hr_payroll. Bug solution: I added new field contract_type_id to the hr_contract_salary_offer model (to show it on UI). Solved from 17.0 Note: I need to fix after version 19.0, because by starting from 19.0, the Belgium one will try to add the same field to the view again task - 5500488 Forward-Port-Of: odoo/enterprise#107855 Forward-Port-Of: odoo/enterprise#104578
This update corrects a bug in the Enterprise pipeline dashboard that was preventing accurate field matching for one of the key lists. This ensures that data displayed in the dashboard is consistent and reliable, improving sales team visibility and decision-making. The fix addresses a minor issue impacting dashboard accuracy.
Original PR description
…oard Field matching was missing for the list #1 in the pipeline dashboard. Task: 5092979
This update resolves an issue where the FAIA report incorrectly classified partners as suppliers. The change allows a partner to be recognized as both a customer and supplier, particularly when balances are zero, ensuring accurate reporting of financial transactions. This fix addresses a discrepancy related to credit notes and balances.
Original PR description
1. Create a contact (with minimal details). 2. Create a customer invoice for that contact **last month** with `quantity = 300`. 3. Create a credit note for that invoice **this month**. 4. Create…
1. Create a contact (with minimal details). 2. Create a customer invoice for that contact **last month** with `quantity = 300`. 3. Create a credit note for that invoice **this month**. 4. Create another customer invoice for the same contact **this month** with `quantity = 100`. In the FAIA report (XML), within the General Ledger section, the partner is incorrectly classified as a supplier instead of a customer. In the method _saft_fill_report_partner_ledger_values from account_saft, he partner type is determined based on whether the balance is negative. However, a negative balance can result from a credit note, where the partner is still a customer and not a supplier. Furthermore, a partner can be both a supplier and a customer. This commit allows a partner to be both a customer and a supplier. If both receivable and payable are 0 we set the partner type to customer to keep the behavior from e9640caf29e967fe7d8c6fe303b5a8d7a866437e opw-5360924 Forward-Port-Of: odoo/enterprise#106315 Forward-Port-Of: odoo/enterprise#100749