Wednesday, August 12, 2026
4 changes · saas-19.3
Resolved issues and error corrections
Australian payroll now matches unused leave balances to the correct employee when processing multiple payslips at once. This prevents eligible unused leave from being missed, helping final pay and related payroll calculations stay accurate.
Original PR description
`_l10n_au_get_unused_leave_by_type` compared leave allocations to `self.employee_id` while looping payslips. On a multi-recordset that is the whole employee set, so the match never holds and unused leave is skipped. Use `payslip.employee_id` so each payslip keeps its own allocations. task-6458480 Forward-Port-Of: odoo/enterprise#127330
Spreadsheet side panel items now use the same drag-and-drop behavior and visual feedback across list dimensions, sorting rules, pivot dimensions, and global filters. This makes reordering items more predictable and prevents accidental drag actions when using controls like delete buttons or selectors.
Original PR description
Current behavior before PR: - Dragging list dimensions and sorting rules felt visually different from pivot dimensions and global filters in the side panel. - The list side panel used a separate drag-and-drop utility that did not match the consistent UX of other spreadsheet components. Desired behavior after PR is merged: - List dimensions and sorting rules now share the same drag-and-drop behavior and visual feedback as pivot dimensions and global filters. - All reorderable items in the side panel now look and feel the same, providing a consistent user experience across the spreadsheet. Task: [6219600](https://www.odoo.com/odoo/project/2328/tasks/6219600)
Mexican payroll CFDIs now have their SAT validation status updated correctly in Odoo. This prevents validated payslips from incorrectly appearing with an undefined status, improving compliance visibility for payroll teams.
Original PR description
l10n_mx_hr_payroll_account_edi introduces new l10n_mx_edi.document states (payslip_sent, payslip_sent_failed, payslip_cancel, payslip_cancel_failed) but never extends the two hooks the base l10n_mx_edi module relies on to keep sat_state in sync: - _get_update_sat_status_domains(), which builds the domain used by the SAT-status cron (and manual refresh) to pick documents to poll. Payslip states were missing from it, so their SAT status was never fetched at all. - _update_document_sat_state(), which routes a fetched SAT status to a per-source-document handler. It has no branch for the payslip states, so even a manual poll would silently do nothing. As a result, payslip CFDIs validated in the SAT always appeared as "not_defined" in Odoo. opw-6192651 Forward-Port-Of: odoo/enterprise#126294 Forward-Port-Of: odoo/enterprise#124006
This fixes an issue where signatures or other fields could disappear from downloaded signed PDFs when the original document had unusual page positioning. Signed documents should now match the preview more reliably, reducing failed signing workflows and customer confusion.
Original PR description
Steps to reproduce (version 16+): 1) Obtain a pdf with a negative origin point: This can occur when a customer exports a pdf from another software, or it can be made manually using a python script 2) In the sign app, upload the pdf and create a new template, add a signature field to the document. 3) Sign the document. The preview will load correctly and the signature will be visible 4) Download and open the signed pdf. The signature is not on the document Notes: Issue occurs because the signature was added to the pdf outside of the visible area. The preview works because the signature is rendered on top of the unsigned document in the correct location. The issue can be fixed applying a translation to the canvas. Ticket: [6317223](https://www.odoo.com/odoo/project/49/tasks/6317223?debug=assets) Forward-Port-Of: odoo/enterprise#126921 Forward-Port-Of: odoo/enterprise#121960