Daily updates from Odoo
Thursday, August 13, 2026
5 changes · 18.0
Resolved issues and error corrections
The general ledger CSV export now keeps account and transaction lines in the same order, even when multiple companies use the same account codes. This prevents export failures and helps users reliably download reports.
Original PR description
Description of the issue this commit addresses: Account and move lines can be returned in different orders when account codes are shared across companies. The CSV generator can then exhaust its account iterator and raise StopIteration. --- Desired behavior after this commit is merged: This commit orders move lines using the account sequence returned by the report, keeping both CSV iterators aligned. --- runbot-[242131](https://runbot.odoo.com/odoo/error/242131)
Odoo now recognizes valid Brazilian electronic invoice XML files even when the main invoice tag has no attributes. This prevents legitimate vendor bills from being skipped during import, reducing manual rework for Brazilian accounting users.
Original PR description
### Issue before this commit: Certain valid Brazilian NF-e (electronic invoice) XML files fail to import because the system silently ignores them during the initial EDI recognition phase. ### Steps to reproduce the issue: 1. Download Accounting and l10n_br_edi 2. Go to Vendor > Bills 3. Try to import both xmls in the ticket 4. One of the two will not be imported correctly ### Cause of the issue: https://github.com/odoo/enterprise/blob/3ed1721b702555e96c9774969927f6517e855704/l10n_br_edi/models/account_move.py#L819-L827 This function relies on a strict byte string search for b"<NFe " while it's also correct if the tag is only `<NFe>`. ### Reason to introduce the fix: To make the initial NF-e file recognition more robust and compliant with standard XML namespace rules, ensuring Odoo successfully processes all valid Brazilian invoices regardless of attribute formatting. opw-6402843
Luxembourg payroll now calculates historical payslips using the wage index that applied at the payslip period, rather than the current index. This helps ensure past salary calculations remain accurate when wage index rates change over time.
Original PR description
Historical payslips incorrectly used today's wage index instead of the index active during the payslip period. Now, salary rules evaluate the indexed wage using `payslip.date_to` via the new `_get_l10n_lu_indexed_wage(date)` contract method. Task: 6395557
This fixes an incorrect classification used when reporting Swiss withholding tax employee changes. The correction helps ensure payroll mutation data is transmitted accurately to Swissdec, reducing the risk of rejected or misleading declarations.
Original PR description
task-6116327 Forward-Port-Of: odoo/enterprise#127745
Mexican invoices paid within the required short payment window are now correctly treated as PUE and blocked from being sent to CFDI/SAT payment reporting. This prevents incorrect XML submissions, especially when grouped payments involve multiple invoices.
Original PR description
Issue: Sending PUE invoices to CFDI/SAT is no more suitable Step to reproduce: - In a Mexican company - Create an invoice (Invoice A) - Add a line - Set Payment Terms to "Immediate payment" - Confirm…
Issue: Sending PUE invoices to CFDI/SAT is no more suitable Step to reproduce: - In a Mexican company - Create an invoice (Invoice A) - Add a line - Set Payment Terms to "Immediate payment" - Confirm - Duplicate (Invoice B) - Confirm - Duplicate again (Invoice C) - Set Payment Terms to "30 days" - Confirm - Go to Invoice A - Pay it. It should appear as "Paid" - Send it to CFDI - Go to Accounting > Customer > Invoices - Select Invoice B and C - Pay and select the "Group Payments". They should appear as paid. - In every invoice, click the "Update Payment" button Current behavior: - In Invoice A -> Sheet CFDI: A button "Force CFDI" allow sending the invoice to CFDI - In Invoice B/C -> sheet CFDI: Click on the "Download" part of the Payment line, the XML that was sent to CFDI include both invoice B and C Expected behavior: - It shouldn't be possible to send invoice A to CFDI. - Invoice B shouldn't be sent to CFDI Cause: Invoice paid in less than 30 days as referred as PUE and shouldn't be sent to CFDI. opw-5381600