Daily updates from Odoo
Wednesday, February 4, 2026
5 changes · master
Resolved issues and error corrections
A client reported issues processing payments via Bankgiro (Swedish bank giro). This update corrects a typo and adjusts the order of data fields in payment processing, ensuring Bankgiro payments now function correctly. This resolves a reported payment failure.
Original PR description
After PR: https://github.com/odoo/enterprise/pull/104777 The client reported that payment with bankgiro account doesn't works. Here are the problems found: - Typo : Should be `RfrdDocAmt` instead of `RfdDocAmt` - RfrdDocAmt should be inserted before CdtrRefInf - CdtNoteAmt should be before RmtdAmt opw-5427505 Forward-Port-Of: odoo/enterprise#106272
This update resolves a bug preventing users from validating barcode operations on stock pickings. The previous fix incorrectly blocked validation, and this change reverts to a reliable method using the JS framework's mutex mechanism to ensure sequential processing and prevent duplicate validation attempts. This ensures accurate stock tracking and avoids potential errors.
Original PR description
### Steps to reproduce: - In the settings enable: Multi-Steps route - Create a product tracked by SN - In the barcode app > Operations > Internal transfers > New - Scan you tracked product - Click on…
### Steps to reproduce: - In the settings enable: Multi-Steps route - Create a product tracked by SN - In the barcode app > Operations > Internal transfers > New - Scan you tracked product - Click on Validate > Invalid operation - Scan a Serial number #### > You can not click on validate anymore ### Cause of the issue: The issue has been introduced in 41c6e7a90fd4f0cf84e74cf0ed036f4da0ec6112 in a try to avoid concurrency issue when calling the barcode validation too quickly. To be more precise, this commit added a `isValidating` property to the barcode model that is set prior to the rpc call and suppose to remove after in order tobypass subsequence calls of the `validate` method when a call is already in progress: https://github.com/odoo/enterprise/blob/099c7b94ad08f83873c05ec528e16fbf806f47f2/stock_barcode/static/src/models/barcode_model.js#L477-L494 However, in the present case and since orm call returns an error the the call the validate method is interupted at this orm call and the line https://github.com/odoo/enterprise/blob/099c7b94ad08f83873c05ec528e16fbf806f47f2/stock_barcode/static/src/models/barcode_model.js#L494 is not executed so that the this.Validating stays true and the button can not be clicked nor executed anymore: https://github.com/odoo/enterprise/blob/099c7b94ad08f83873c05ec528e16fbf806f47f2/stock_barcode/static/src/models/barcode_model.js#L131-L133 ### Fix: We revert the incorrect fix: 42d77e751cb5e049ea1e81b44fca0d07e8f45b32 and we rather rely on the Mutex class of the JS framework just as done in the `_processBarcode`: https://github.com/odoo/enterprise/blob/099c7b94ad08f83873c05ec528e16fbf806f47f2/stock_barcode/static/src/models/barcode_model.js#L505-L507 This will ensure that the validation calls will be processed sequentially and since the `button_validate` of stock pickings is ignored on done pickings because of the first soft fix https://github.com/odoo/odoo/pull/204790 : https://github.com/odoo/odoo/blob/1664daf894ec878b64af8ab75c0d10f05e00df80/addons/stock/models/stock_picking.py#L1134-L1135 we have the guarantee that the records will not be validated twice. opw-5388297 Forward-Port-Of: odoo/enterprise#105542 Forward-Port-Of: odoo/enterprise#103835
This update resolves an issue where overtime approvals weren't consistently linked to attendance records. Previously, only one attendance was associated with overtime, leading to data inconsistencies. This fix ensures accurate tracking of overtime hours against all relevant attendance records, improving reporting and payroll accuracy.
Original PR description
…dance and overtime
STEP TO REPRODUCE:
------------------
1- Create an overtime rule with this configuration :
quantity rule differs from hours defined in the contract
2- Create two attendances on the same day (should be a worked day and should not be today)
one from 1AM-2PM
second from 2PM-undefined
3- Approve the overtime of the first attendance
REASON:
------
The link between overtime to attendance is not correctly done Attendance -> overtime (only the first attendance have a link with overtime) overtime, attendance -> the two will be returned
Forward-Port-Of: odoo/enterprise#106083
Forward-Port-Of: odoo/enterprise#105988This update fixes an issue where canceled refunds were incorrectly included in global invoices generated from Point of Sale orders. The fix filters out canceled refund lines during invoice generation, ensuring accurate reporting. This improves the reliability of financial data for Mexican VAT reporting (l10n_mx_edi_pos).
Original PR description
When generating global invoices for orders in the PoS, refund of those orders are also included in the global invoice. However, if the refund has been canceled, it should not be included in the global invoice. Steps to reproduce: ------------------- * Create a PoS order and validate it. * Go to the backend and create a refund for that order. * Cancel the refund. * Go to the PoS order list and select the original order * Click on "Generate Global Invoice" > Observation: The canceled refund is included in the global invoice. Why the fix: ------------ We simply filter out the canceled orders when searching for refunded order lines. opw-5492576 Forward-Port-Of: odoo/enterprise#106243 Forward-Port-Of: odoo/enterprise#105868
This update fixes an issue where the headers in the Gantt view were not staying in place while scrolling. The change restores the sticky header functionality, ensuring users can easily see and interact with the view's title, group headers, and column headers. This improves usability and data visibility within the Gantt chart.
Original PR description
Following DOM structure changes introduced in https://github.com/odoo/enterprise/pull/103230, the Gantt view title, group headers, and column headers lost their sticky behavior and would scroll out of view. This commit restores the sticky positioning by applying the `sticky-top` class to the relevant header elements. task-5896158