Daily updates from Odoo
Wednesday, January 7, 2026
7 changes · 17.0
Enhancements to existing features
This update adds crucial data attributes needed for accurate tax calculations and NFS-e submission when the Brazilian fiscal reform is active. Specifically, the system now transmits 'name', 'businessName', 'federalTaxId', and 'type' information. This ensures compliance with updated regulations and improves the reliability of tax reporting for Brazilian businesses.
Original PR description
Purpose: Additional attributes are required to be sent in the rendered node for tax calculation and NFS-e submission when the fiscal reform is enabled. The additional required attributes are: - name - businessName - federalTaxId - type task-5450129
Resolved issues and error corrections
This change fixes an issue where the company tolerance time wasn't being calculated accurately when an employee had multiple attendance entries for the same day. The update ensures that overtime is only added when it exceeds the defined tolerance, preventing incorrect overtime calculations. This improves the accuracy of employee time tracking.
Original PR description
_ ## Short functional explanation of the error When an employee enters multiple attendances for a single day, the company tolerance time isn't computed correctly. ## Reproduction Steps 1. Go to…
_ ## Short functional explanation of the error When an employee enters multiple attendances for a single day, the company tolerance time isn't computed correctly. ## Reproduction Steps 1. Go to attendances. 2. Click on configuration and scroll down to the Extra Hours section. Set a Tolerance Time in Favor of Company of 15 minutes. 3. Create 2 attendances for the same employee: one attendance from 8 to 15 for example, and a second one from 16 to 18:12. ### Expected behavior As the overtime entered is 12 minutes, which is inferior to the company tolerance time of 15 minutes, no extra time should be computed. ### Unexpected behavior 12 minutes of overtime are computed. ## Origin of the issue Let's say we enter 2 different shifts for the same day. Our work day should be 8 hours, and the sum of both shifts reaches 8 hours or more. We shouldn't have any overtime. However, in the code, the overtime is negative. This is compensated by, in our case, the post-work time: in our case, our overtime duration will be equal to -1, but our post-work time will be equal to 1.2. Both cancel each other, and in the end we obtain 0.2 of overtime, which corresponds to our 10 minutes overtime. However, in this code: https://github.com/odoo/odoo/blob/afcbd98594c9f7007f03a343ea40ea122b955459/addons/hr_attendance/models/hr_attendance.py#L374-L380 it isn't computed that way: because post-work time is 1.2, which is above our company tolerance time of 15 minutes (0.25 in the code), we will always be in the case where we exceed the tolerance time. Hence, we have to "flatten" the overtime duration and the post-work time before reaching that piece of code. __ opw-5136861 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where the wrong manager was sometimes assigned to approval requests. The change ensures the correct manager, based on the request, is always selected, preventing errors and ensuring approvals are processed accurately. This improves the reliability of the approval workflow.
Original PR description
The previous code added the manager by searching for the first employee that matches the request_owner_id. If there are multiple such employees, it's possible that an employee from a different company than the approval can be selected. Ticket: [5185449](https://www.odoo.com/odoo/project.task/5185449)
This update fixes a potential error in the Odoo system related to how third-party check payments are configured within journals. Previously, assigning the same payment method multiple times could cause errors during check transfers. Now, the system will prevent this duplication, ensuring data consistency and preventing unexpected transfer failures.
Original PR description
**Description of the issue/feature this PR addresses:** The same third-party check payment method (e.g., in_third_party_checks) can currently be assigned multiple times to the same journal, either as…
**Description of the issue/feature this PR addresses:** The same third-party check payment method (e.g., in_third_party_checks) can currently be assigned multiple times to the same journal, either as inbound or outbound. This misconfiguration leads to unexpected behavior and runtime errors when using the payment transfer wizard. **Current behavior before PR:** It is possible to assign a third-party check payment method more than once to a journal. When transferring a third-party check via the wizard (l10n_latam_payment_mass_transfer), the system may raise: pgsql Copy Edit ValueError: Expected singleton because more than one payment method line is returned. Functionally, allowing duplicate third-party check payment methods in the same journal does not make sense, as each method should be clearly associated with a unique payment context. **Desired behavior after PR is merged:** The system raises a ValidationError if a restricted third-party check payment method is added more than once to a journal. This ensures data consistency and prevents runtime errors when using the check transfer wizard. If a different handling is needed for a third-party check method, a new journal should be created and configured accordingly. **Video:** https://drive.google.com/file/d/1arbsjfA3NPG4aO2_BKxVStSTw5y4cgnM/view **Steps to reproduce the issue:** 1.Go to Accounting > Configuration > Journals. 2.Open a cash journal that will be used as the destination journal for third-party check transfers. 3.Add the same third-party check payment method multiple times in inbound_payment_method_line_ids. 4. Create the Third-Party Check. 5.Go to Accounting > Customer > Third-Party Checks and select a check to transfer. 6.Open the mass transfer wizard and select the journal from step 2 as the destination. 7.Click to confirm the transfer → the system will raise a ValueError: Expected singleton. Note: This issue has been observed from Odoo v15 onwards --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects an issue where bank statements were incorrectly flagged as invalid, even when they were accurate. The fix adjusts how statement validity is calculated, ensuring that all valid statements are properly recognized. This improves the reliability of bank reconciliation within the accounting module.
Original PR description
Some bank account statements are computed as not valid, although they are valid. Statement 1 and 3 appear, and statement 3 is shown as invalid, while both statements should be shown as valid. Statement validity is computed depending on previous statement end balance and current statement start balance. The SQL query uses a window function to retrieve the previous statement. However, the function is applied after the WHERE clause. Therefore, it uses the end_balance of the previously selected statement instead of the previous statement. #### Step to reproduce: - In the bank dashboard of the accounting app - Create journal entry 1 - Create statement 1 - Create journal entry 2 - Create statement 2 - Validate the journal entry 2 - Create journal entry 3 - Create statement 3 - filter statement per "Not Matched" Ticket [link](https://www.odoo.com/odoo/project.task/5341433) opw-5341433
This update automatically calculates and transmits the 2050 pension contribution amount for employees in Switzerland. This ensures accurate and timely reporting to the Swiss tax authorities, addressing a previous manual process and improving compliance. The change impacts the HR payroll module.
Original PR description
task-5166226
This update corrects a bug in the l10n_lu reports that prevented the `TaxBase` element from being included in FAIA XML reports when invoices had multiple taxes. This ensures accurate reporting to Luxembourg authorities, resolving a potential compliance issue and improving data integrity.
Original PR description
### Issue: The `TaxBase` element was missing in the generated FAIA XML, although it is required when a product line has multiple taxes ### Steps to reproduce: - Use a l10n_lu company - Create an invoice with a product line that has two taxes - Download the General Ledger → FAIA XML report - Observe that `TaxBase` is not included before the TaxBaseDescription element ### Specs & reference: FAIA v2.01 (full) XSD files: https://pfi.public.lu/dam-assets/backup/FAIA/FAIA/XSD_Files.zip opw-5360519