Monday, February 9, 2026
9 changes · 19.0
Enhancements to existing features
This update enhances the bank reconciliation list view by prioritizing key information like date, label, and balance at the top. Additionally, scrolling is now limited to the table rows, creating a cleaner and more focused user experience. This improves usability and clarity when reviewing bank transactions.
Original PR description
1. The bank statement line info (date, label and balance) are moved to the top now. 2. Scrolling only applies to the table rows (other elements are fixed). task-5212851
Resolved issues and error corrections
This update fixes a visual inconsistency in the Field Service Report generated from the Bubble document layout. Previously, table borders appeared with mixed rounded and sharp edges. The fix adds a consistent border style to the tables, ensuring a cleaner and more professional appearance for this report.
Original PR description
Steps to reproduce: -------------------------------- 1. Install `industry_fsm_sale` module 2. Go to Settings > Configure Document Layout 3. Select the Bubble document layout and save 4. Open any…
Steps to reproduce: -------------------------------- 1. Install `industry_fsm_sale` module 2. Go to Settings > Configure Document Layout 3. Select the Bubble document layout and save 4. Open any Field Service task 5. Use the Products smart button to add one or more products 6. Click the Settings icon > Print > Field Service Report Observation: -------------------------------- In Time & Material tables using the Bubble layout, table borders show a mix of rounded corners and sharp edges, resulting in inconsistent visuals Issue: -------------------------------- The table tags in the report were missing the `table-borderless` class. As a result, the layout-applied rounded borders conflicted with the default table borders Solution: -------------------------------- Add the `table-borderless` class to the affected table tags so the tables inherit consistent rounded borders from the document layout Before: <img width="787" height="317" alt="before_css" src="https://github.com/user-attachments/assets/dac136a8-022a-4c36-8cdb-1c0fbb048f3e" /> After: <img width="816" height="372" alt="after_css" src="https://github.com/user-attachments/assets/b5f96e75-2cd3-44cf-89e3-9a3b564c8369" /> opw-5401612 Forward-Port-Of: odoo/enterprise#105616
This update resolves an error that occurred when creating attendance records for employees without defined 'Working Hours'. The fix prevents a system crash caused by attempting to access data within an empty dictionary, ensuring smoother attendance creation processes. This improves the reliability of the attendance module.
Original PR description
This error occurs when attempting to create an attendance for an employee who has no `Working Hours` defined.
Steps to reproduce:
- Install `hr_work_entry_attendance` module
- Employees > `Administrator` > Settings > Set `Default Ruleset` in Overtime Ruleset > Payroll > Set Contract and `Work Entry Source` is in `Attendance`
- Attendance > Create New Attendance(with Extra Hours) and Save
- Remove `Working Hours` of employee
Traceback:
`KeyError: 52`
We encounter this error at [1] because `lunch_by_resource` is empty "**{}**", and we attempt to access a key in this empty dictionary.
[1]- https://github.com/odoo/enterprise/blob/b94ae7a4f8ae91ad98977a439db41a6939a6b617/hr_work_entry_attendance/models/hr_version.py#L80
sentry-7168309352This update resolves an issue where journal items displayed in reports were incorrectly linked to account groups, causing errors starting with Odoo 18.3. The fix ensures accurate linking by adjusting how Odoo queries for related accounts, preventing a previous error related to a changed data field.
Original PR description
Currently journal items shown don't belong to the account group that they should belong to, and from saas-18.3 an error will be generated after following the below steps or step mentioned in ref PR…
Currently journal items shown don't belong to the account group that they should belong to, and from saas-18.3 an error will be generated after following the below steps or step mentioned in ref PR [1]. - Install `Accounting (accountant)` with demo data - Create account groups e.g., name as `Test 1` and code prefix `1 to 1` - Go to the general ledger report - Click on `Journal Items` of the account group line `1 Test 1` Error from saas-18.3: `ValueError: Cannot convert account.account.group_id to SQL because it is ...` This error occurs because PR with ref [1] in 17.0 added the` group_id` field of the `account.account` model to the search domain. However, in 18.0, commit [2] modified this field so that it is no longer stored. As a result, when a search domain includes this `non-stored` field, Odoo skips the domain evaluation and logs a error at code line [3]. Consequently, the changes introduced by commit [1] have no functional effect from 18.0. Also, starting from saas-18.3, passing such a non-stored field in a domain raises an explicit error at code line [4], instead of being silently ignored. This commit resolves the issue by introducing an SQL query that returns the account ids related to `record_id(account group id)` include `record_id` as `None`. [1]: https://github.com/odoo/enterprise/pull/100191 [2]: https://github.com/odoo/odoo/commit/854c3b27aa5476c208572f19e64f8f3364bfc381#diff-19ef5a530c506fdee93fe0d113e61946b87fae7dd2d360558da69c0014f766b2R114-R767 [3]: https://github.com/odoo/odoo/blob/71e86f38c7699aaea980c929c67835a3495edf55/odoo/osv/expression.py#L1166-L1174 [4]: https://github.com/odoo/odoo/blob/00517e9e085c6fa9e00bedb8aee122a60e407fea/odoo/orm/fields.py#L1201 sentry-7100657414 Forward-Port-Of: odoo/enterprise#103137
This update resolves an issue preventing users from efficiently changing the status of multiple audit accounts. Previously, a technical error would occur when attempting bulk updates. The fix ensures a smoother workflow for managing audit statuses, improving operational efficiency.
Original PR description
### Steps to reproduce: - In Accounting, make sure you have the accountant model. Then, from Review > Audit > Working Files, click Balances. - Select more than 1 account lines and try to change their statuses. - If you don't have an Audit, create a new one and go back to Working files, then click balances. ### Cause: The client gets a traceback when they try to change the statuses of the audits for the accounts in bulks. opw-5474248
This update corrects a minor issue in the Australian Payroll module related to the calculation of union and professional association fees. The change ensures these fees are accurately reflected in employee deductions, improving payroll accuracy and compliance. This fix addresses a technical detail impacting payroll reporting.
Original PR description
. Update `Union and professional association fees` code in computations of `Fees and Deductions` rule task-5402666
This update simplifies the sales order interface for subscription customers. We’ve hidden a confusing field that inaccurately reflected remaining service hours due to the recurring nature of subscriptions. This change ensures a cleaner, more intuitive experience for our customers and avoids potential misinterpretations.
Original PR description
This change hides the `remaining_hours_so` field when the sales order line is linked to a subscription. Unlike standard service or time-based sales orders, where this field reflects the difference between the quantity ordered and the quantity delivered, the concept does not translate well to subscription logic. In the context of a subscription, the service is delivered on a recurring period (monthly, yearly, etc.). Delivery quantities continuously accumulate over time, and because the subscription renews indefinitely until cancellation, the “remaining hours” calculation quickly becomes misleading. In many cases it can drift into negative values, giving the impression of an error or over-consumption when, in reality, the subscription is simply following its recurring delivery cycle. To avoid confusing end-users and to maintain a clean, intuitive interface, we hide this field whenever the line is part of a subscription. opw-5246238 Forward-Port-Of: odoo/enterprise#99813
This update resolves a technical issue where the user ID was sometimes missing for payments processed through the POS IoT Six module. The fix restores a previous version that correctly identified the user, ensuring accurate payment tracking and reporting. This improves the reliability of the POS IoT Six payment process.
Original PR description
This PR reinstates https://github.com/odoo/enterprise/pull/98021 broken by https://github.com/odoo/enterprise/pull/98203 This fixes user id being undefined for pos_iot_six payments Forward-Port-Of: odoo/enterprise#106737
This update resolves an error that prevented non-employee users from creating expenses linked to uploaded documents. The issue stemmed from a required field ('employee_id') being unintentionally set to null. The fix now displays a user-friendly error message instead of crashing, ensuring a smoother experience for all users.
Original PR description
Currently an exception is generated when the non-employee user tries
to generate expenses from the documents.
Steps to produce an error:
- Install the `documents_hr_expense` module without demo data
- Delete employee `Administrator`
- Upload any PDF/image file inside the company's `Internal` folder
- Click on the uploaded document and click on the `Create an Expense` button
Error: `ValueError: NotNullViolation('null value in column "employee_id" of ...`
This error occurs because `employee_id` is required when creating an
expense. Since the current user is not linked to an employee record,
`employee_id is` set to false, which causes the issue.
This commit resolves the issue by raising a `UserError` when the current
user is not linked to an employee.
sentry-7192984733
Forward-Port-Of: odoo/enterprise#106649
Forward-Port-Of: odoo/enterprise#104762