Daily updates from Odoo
Thursday, May 28, 2026
8 changes · 19.0
New functionality added to Odoo
This pull request updates the `.weblate.json` files used for translating Odoo's Belgium Point of Sale (POS) modules. It ensures that all necessary modules are included for accurate translation, improving the user experience for customers using the system in Belgium. This is a routine maintenance update to support localization efforts.
Original PR description
Add missing modules in `.weblate.json` for translations of (l10n_be_pos_blackbox, l10n_be_pos_blackbox_hr, l10n_be_pos_blackbox_loyalty, l10n_be_pos_blackbox_self_order, l10n_be_pos_blackbox_settle_due) These modules were added in this PR: https://github.com/odoo/enterprise/pull/96130
Resolved issues and error corrections
This update fixes a bug in the attendance tracking system for employees on flexible schedules. The previous test incorrectly assumed contract-based hours should apply, leading to inaccurate overtime/undertime calculations. The changes ensure that overtime/undertime rules are correctly disabled when flexible schedules are in use, aligning with the system's specifications.
Original PR description
Version-19.0 **Issue:** Tests assumed contract-based expected hours would still apply under flexible schedules, but specs state that overtime/undertime defined on the contract should not apply for employees with flexible schedule. ### Summary of Changes The previous test `test_lunch_time_case` still relied on contract-based expected hours under a flexible schedule, causing incorrect assertions. The test is updated to: - enable flexible_hours on the resource calendar, - disable expected_hours_from_contract on the rule, and - define expected_hours explicitly. This aligns the test with the correct behavior and prevents false failures. related-https://github.com/odoo/odoo/pull/236271 task-[5265617](https://www.odoo.com/odoo/action-4043/5265617)
This update corrects a dependency issue within the Italian reporting module (l10n_it_reports). Specifically, a new filter was added to address a conflict related to pension fund types, originally defined in a separate module. This ensures the Italian reporting functionality operates correctly and reliably.
Original PR description
Commit: 0a5657297f312cb3e5f6c3ab6a281acf71fbee3b added a filter for the field l10n_it_pension_fund_type which is defined in l10n_it_edi_withholding and not l10n_it_reports runbot-242217 Forward-Port-Of: odoo/enterprise#113185
This update improves the performance of account report sheets by streamlining CSS styling and reducing unnecessary DOM calculations. By utilizing CSS variables and simplified selectors, the changes minimize visual rendering impacts, particularly on large tables, resulting in smoother user experiences.
This update resolves an issue preventing Belgian employees on flexible work schedules from taking multi-day leave. The fix ensures that the system correctly handles flexible schedules, eliminating an error that previously prevented leave validation. This improves the functionality for employees utilizing flexible working arrangements.
Original PR description
## Steps to reproduce: - Install l10n_be_hr_payroll module - Create a flexible working schedule and set the company to the Belgian company - Create an employee and assign the created schedule to him - Try to take a multi-day leave for this employee - Notice number of days is 0 - Try to validate the leave - An exception is raised 'The following employees are not supposed to work during that period' ## Cause: When fetching the work intervals for a belgian flexible employee we first fetch the normal work intervals then we call the same method but to filter the time credit attendance and since for the flexible employee there are not specific attendances we return the same normal work intervals and it will subtract those from the main work intervals which will result in an empty intervals to be returned ## Fix: Check if the working schedule is flexible and if so we don't check the time credit attendances at all. opw-6237642
This update fixes an issue where expected working hours displayed in the Attendances Gantt view were inaccurate for employees with flexible schedules, particularly when browsers were set to non-UTC timezones. The change ensures accurate hour calculations based on the user's local timezone, leading to more reliable attendance reporting.
Original PR description
Steps to reproduce: 1. Ensure your browser is in a non-UTC timezone (e.g. Europe/Zurich) 2. Set an employee to have a flexible working schedule 3. Enter the Attendances app 4. When hovering over the employee in the gantt view, the expected hours do not match their working schedule When we calculate the expected hours for the Gantt view in attendances, we calculate this based on an incorrect number of attendance intervals given from _attendance_intervals_batch(). To ensure that we recieve accurate intervals, we need to ensure that we calculate intervals based on the correct date range with respect to the browsers timezone, instead of the UTC date range. [opw-6175441](https://www.odoo.com/odoo/my-tasks/6175441?debug=assets) Forward-Port-Of: odoo/enterprise#116807
This update fixes a problem where bank statement KPIs weren't being updated correctly when no statements were processed. Now, if no KPIs are reported, the corresponding columns are emptied, ensuring accurate KPI tracking within the account module. This prevents potential reporting inaccuracies related to bank statement processing.
Original PR description
The aim of this commit is to update the integer kpis when those aren't received. ### Context: The account module report the bank statement in draft to process. When all bank statement have been processed, there isn't any and thus, the module send back an empty list. ### Before this commit: The bank statement kpi wasn't updated as we didn't received anything about that specific kpi. ### After this commit: Any kpi that wouldn't be reported would get it's column emptied. opw-6170973
This update ensures that payment notifications and receipts are sent to the correct contact – the invoice contact – when a partner has an invoice associated with them. This change aligns with existing practices and improves the accuracy of communication related to payments, while maintaining accounting integrity.
Original PR description
**Context:** Before this commit `account.payment.partner_id` was restricted (by domain) to commercial partners. When a partner has an invoice contact child (`type='invoice'`), checks, receipts and outgoing emails end up addressed to the parent partner instead of the intended invoicing contact. Accounting entries must still be linked to the commercial partner to preserve reporting & reconciliation integrity. **Solution:** The invoice model (`account.move`) already solves the same problem: `partner_id` stores the communication contact, `commercial_partner_id` is the stored compute used for accounting. This commit mirrors that architecture on `account.payment`. Since we are doing this change in stable, we cannot store the commercial partner yet, loosing some out-of-the-box features. We therefore add manual _search. task-6123823