Daily updates from Odoo
Saturday, July 18, 2026
3 changes · saas-18.3
Resolved issues and error corrections
Uruguayan electronic export invoices that are fully offset by discounts can now be generated correctly with a zero total. This ensures exporters can declare the value of goods or services while applying full discounts, helping the documents pass local validation requirements.
Original PR description
## Problem When generating an export CFE (e-Factura Exportación) in the Uruguayan EDI module, invoices that include a discount line equal to the subtotal — resulting in a **total of 0.00** — were not…
## Problem When generating an export CFE (e-Factura Exportación) in the Uruguayan EDI module, invoices that include a discount line equal to the subtotal — resulting in a **total of 0.00** — were not handled correctly by the XML/CFE generation logic. This use case is valid and required by exporters who need to reflect the declared value of goods/services while invoicing at zero (e.g. to comply with customs or incoterm requirements such as FCA). In Uruware's validation portal, the "Descuentos y Recargos" (discounts & surcharges) section of the subtotal block must be correctly populated for the CFE to be accepted. **Example:** An invoice with a line of 648.00 UYU and a global discount of −648.00 UYU → Total: 0.00. The export value is still declared, taxes are zero, but the CFE must reflect the discount amount explicitly. <img width="592" height="679" alt="example_expo_invoice_discount" src="https://github.com/user-attachments/assets/aa83c158-e342-4da5-a251-fc209bbed5c4" /> ## Root Cause The CFE template (`cfe_template.xml`) and the move computation logic (`account_move.py`) did not account for the case where export invoices carry line-level or global discounts that zero out the total. The discount amount was either omitted from the XML nodes or computed incorrectly, causing Uruware validation to fail or the discount block to not render. ## Fix - **`l10n_uy_edi/models/account_move.py`** — Updated the export invoice computation to correctly include discount amounts in the CFE data dict, ensuring the `ValorDR` is filled with the value of the discount per line. - **`l10n_uy_edi/views/cfe_template.xml`** — Adjusted the template condition so `MntExpoyAsim` node accepts 0 as value. ## Steps to Reproduce (before fix) 1. Create an export invoice (e-Factura Exportación) for a foreign partner. 2. Add a product line with a unit price, e.g. 216.00 × 3 = 648.00 UYU. 3. Add a global discount of 648.00 (same amount) so the total is 0.00. 4. Confirm and send to Uruware — the CFE is rejected / discount block is missing. ## Verification After the fix, the same invoice generates a valid CFE accepted by Uruware with the discount correctly reflected in the `DscRcgGlobal` node and the discount line visible on the printed document. Forward-Port-Of: odoo/enterprise#120130
Refreshing an accounting report now clears any previous search from the session, so exported XLSX files match what is shown on screen. This prevents users from downloading reports filtered by an old search when the page visibly shows all results.
Original PR description
**Steps to reproduce:** - Install account_reports - Open "Partner Ledger" (make sure there are several partners) - Make a search to only display 1 partner - Download XLSX - Without changing the search text, refresh the page - Download XLSX again **Issue:** After refresh, the search text is empty and all the partners are displayed in the report. However, in the XLSX file, only the partner from the previous search is present. **Cause:** The current search is kept in the session and used when getting the XLSX. When refreshing or leaving the page, it's still kept in the session even if the search bar has been reset. opw-6333212 Forward-Port-Of: odoo/enterprise#124685
Saving the Settings will trigger the `_inverse_l10n_fr_pdp_pilot_phase` of the `res.config.settings`. Currently, the inverse will call `_l10n_fr_pdp_update_pilot_phase()` on the related company record even if there is no change to the field value. It leads to Odoo calling the Peppol proxy to register or unregister the company for the Pilot Phase of the French E-invoicing every time the Settings are saved. If the request returns an error, then the user is unable to save the Settings. Rel
Original PR description
Saving the Settings will trigger the `_inverse_l10n_fr_pdp_pilot_phase` of the `res.config.settings`. Currently, the inverse will call `_l10n_fr_pdp_update_pilot_phase()` on the related company record even if there is no change to the field value. It leads to Odoo calling the Peppol proxy to register or unregister the company for the Pilot Phase of the French E-invoicing every time the Settings are saved. If the request returns an error, then the user is unable to save the Settings. Related ticket: opw-6377006 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#276615