Friday, July 10, 2026
11 changes · 19.0
Resolved issues and error corrections
Point of Sale receipts will no longer include the extra terminal receipt text from Worldline payments. This keeps customer receipts shorter, clearer, and avoids duplicate or unnecessary payment information.
Original PR description
This PR removes the terminal receipt from Worldline we are currently inserting in the Point Of Sale receipt We don't adapt the driver code to get the receipt as we cannot change C method prototypes task-6373975
Czech VAT control statements now place invoices from partners with non-domestic VAT numbers in section A5 instead of A4. This helps keep tax reports compliant by ensuring A4 is reserved for domestic VAT transactions only.
Original PR description
With l10n_cz company: - Create an invoice for a partner with a foreign vat (EU) with an amount greater than 10000 CZ and a 21% tax. In the vat control statement of the tax report, the move is classified under A4. But the section A4 should only contain move with domestic vat opw-6268506
Canadian check printing now hides check numbers on the attached stubs when pre-numbered checks are used. This keeps the printed check and its stubs consistent and avoids duplicate or confusing numbering on payment documents.
Original PR description
The check itself respected the check_manual_sequencing field, but the stubs did not. Hide the numbers on stubs as well, exactly like on US checks. task-6343701 Forward-Port-Of: odoo/enterprise#122565
The Colombian DIAN invoicing module now correctly hides the Reset to Draft option for credit notes that have already been accepted by DIAN. This helps prevent users from accidentally changing official documents after they have been validated by the tax authority.
Original PR description
Issue: The reset button would still appear for credit notes that were already accepted by the DIAN. Steps to reproduce: Create a credit note, confirm it and send it to DIAN. You will be able to select Reset to Draft even though it shouldn't be possible to convert to draft after accepted by DIAN. Cause: The function to compute if the reset button would appear or not was only taking into account Invoices. Solution: Added credit notes, to the function that verifies if the reset button should appear. opw-6219265
The AI website builder now shows the correct preview image for the AI live chat snippet when the related live chat app is not installed. This helps users understand what the snippet will look like before adding or enabling it.
Original PR description
Commit [1] removed the snippet preview since it mismatched the actual result, but it was overlooked that there's another use of this preview. This commit adds an updated image back. [1]: df05441e469157890253b5550b5f8735723b28fb task-6379796
This change ensures subscription commission tests correctly clear currency rate data across companies when demo data is present. It prevents false test failures and helps keep commission calculations reliably validated.
Original PR description
Steps to reproduce: 1- Initialize a new database with demo data 2- Run the test `test_sub_commission_no_currency_rate` Issue: `AssertionError: 0 != 10 : Regular invoice, 10 percent of 100` Why this happens: The test used to delete all rows in the res_currency_rate table for the current company only. When we load the database with demo data, the query in `_get_subscription_currency_rates` would find entries for the other companies and wouldn't resort to the default. Later when joining, it would find no rates for the current company and the test fails. runbot-243440
This fix ensures status messages in French reporting are displayed properly when documents are accepted or rejected. It prevents error details from appearing incorrectly, helping users understand report outcomes without confusion.
Original PR description
A mismatch between error titles and status logs was introduced in 18.0. Markup wasn't added to the status logs, leading to a type mismatch (Markup + str) when displaying errors for 'accepted' or 'rejected' statuses. As a result, the logs were not interpreted as HTML. This commit ensures Markup is applied to each element to guarantee coherence and proper rendering. backport of 5113752 task-6053842 Forward-Port-Of: odoo/enterprise#123250
This fix ensures database API keys are accessed correctly during database management and synchronization workflows. It helps prevent access issues in user management and sync operations, improving reliability for teams managing databases.
The Argentine VAT Book export now handles foreign partners marked as overseas providers without blocking the ZIP download. This avoids manual workarounds and lets businesses correctly generate VAT reports for transactions involving foreign suppliers or partners.
Original PR description
Steps to reproduce: - Create a partner with: - State: Ireland - Identification Number: Foreign ID 55000004153 - ARCA Responsibility Type: Proveedor del Exterior - Create an invoice for the partner - Accounting > Reporting > Tax report - Select Report: VAT Book (AR), Tax Type: Sales - Click on gear icon > VAT Book (ZIP) Issue: Action will be blocked with error "No VAT configured for partner [58] <partner>" Analysis: Partners with ARCA responsibility type 'Proveedor del Exterior' (code 8) and a ForeignID identification type, causes a UserError when exporting the VAT Book (ZIP). Code 8 (foreign provider) is the purchase-side counterpart of code 9 (foreign customer), which already fell back to the country-level VAT. Extend the existing fallback branch to cover both codes. opw-6316008 Forward-Port-Of: odoo/enterprise#123506
This fixes an issue where the Sign app could fail when loading signing fields in debug mode. The change makes the page ignore hidden template comments so users and testers can continue working with documents without interruption.
Original PR description
Use lastElementChild when retrieving the sign item from the target element. In debug mode, inherited templates may introduce HTML comments into the DOM. Since lastChild return a comment node, accessing classList on the returned node raises an error. Using lastElementChild ensures that the last HTML element is always retrieved, regardless of comment nodes in the DOM.
The POS now loads only the Kenyan e-invoicing classification records that are actually used by available products. This avoids pulling unnecessary data into POS sessions, helping improve loading efficiency without changing cashier workflows.
Original PR description
Before `product.unspsc.code` and `l10n_ke_edi_oscu.code` records were loaded without domain, which could lead to loading all records of these models in POS, which is not necessary. This commit adds a domain to the loading of these records, so that only the records that are actually used in the products are loaded in POS.