Thursday, April 9, 2026
6 changes · 17.0
Resolved issues and error corrections
This update fixes an issue where credit notes were incorrectly displayed with positive amounts in Thai tax reports. The fix automatically reverses the sign of the amount if the transaction is a refund, ensuring accurate reporting of credit note values. This ensures compliance with Thai tax regulations.
Original PR description
# How to reproduce - Install the l10n_th module - Use the demo TH company - Ensure you have the demo invoices and credit notes associated to that company - Go to the Tax Report - Select Tax Report…
# How to reproduce - Install the l10n_th module - Use the demo TH company - Ensure you have the demo invoices and credit notes associated to that company - Go to the Tax Report - Select Tax Report (TH) - Click on "Sales Tax Report (xlsx)" # The problem The Credit Notes' Total Amount, Total Excl and Vat Amount are positives. They should be negative instead. The same issue appear for "Purchase Tax Report (xlsx)". This issue also concerns Credit Notes created manually in the Journal Entries # Why The logic for the sign of the value fields in the reports is the following : ```py sign = move.reversed_entry_id.payment_state == 'partial' and -1 or 1 ``` This is unreliable because a Credit Note will not always have a reversed_entry_id associated or if it has one, it's payment_state may change A refactor of theses reports has been made for versions 19.0+ but it seems too big to backport (https://github.com/odoo/enterprise/pull/75645/changes) Instead, we just check if the current move's type is a refund. If yes, we reverse the sign. opw-6006720
This update corrects a bug that prevented Peppol invoices from importing correctly. Specifically, it stops users from changing the type of Peppol journal to something other than 'purchase,' which was causing import failures. This ensures smooth and reliable processing of Peppol invoices.
Original PR description
Prevent changing a Peppol journal to a non-purchase type, to avoid import errors when receiving Peppol invoices. Step to reproduce: - Setup a company with Peppol - Change the Peppol reception journal type to non-purchase - Try to run Peppol cron to import invoice, it fails with "Cannot create a purchase document in a non purchase journal" opw-6071992 opw-6064502 Forward-Port-Of: odoo/odoo#256823
This update corrects a tax-related issue in invoices where multiple GmbH names appeared in the delivery address field. The fix ensures invoices clearly identify the correct recipient, preventing potential input tax deduction rejections by tax authorities. It updates the display name to show only the primary delivery address.
Original PR description
If two GmbH (Ltd.) names appear in the invoice address field (e.g., "Proveco GmbH, Test GmbH"), the invoice is problematic from a tax perspective, as two GmbH are considered separate legal entities, and it is not clearly identifiable who the actual recipient of the service is. Consequently, the tax office can refuse the input tax deduction if the invoice recipient is not clearly identifiable. Steps: - Create a company contact (X) and a delivery address (Y) - Create an invoice for X, delivery address will be Y - Open preview -> The delivery partner's display name is 'X, Y', it should be only 'Y' Fix: Adding a context key to the invoice document to conditionally display the parent contact name in the display_name Ticket [link](https://www.odoo.com/odoo/project.task/5900567) opw-5900567
This update resolves an issue where Chrome subprocesses weren't fully terminated, leading to potential problems like lingering network connections and directory issues. The fix ensures all Chrome processes are closed, preventing these disruptions and improving system stability. This is a critical fix to avoid unexpected behavior.
Original PR description
It's not clear when it started to happen (possibly forever), but apparently waiting for the main chrome process to terminate does not ensure all subprocesses are also terminated. Depending how long these subprocesses stick around, this can lead to: - remaining http or websocket requests - the inability to delete or re-creation of the user directory - possibly other confusing situations Update the chrome termination flow to make sure every subprocess is gone before proceeding to the next step. Kinda-sorta backport of #258062
This update fixes an issue where product names on reprinted invoices didn't automatically translate based on the customer's language. The change updates the invoice report template to dynamically use the product's displayed name, ensuring accurate translations after language changes. This improves the customer experience by presenting invoices in the correct language.
Original PR description
**Problem:** When a customer's language is changed and an invoice is reprinted, all invoice fields translate correctly except for product names and descriptions, which remain in the original…
**Problem:** When a customer's language is changed and an invoice is reprinted, all invoice fields translate correctly except for product names and descriptions, which remain in the original language. **Steps to reproduce:** 1. Create an invoice for a customer with English language 2. Post the invoice (product names appear in English) 3. Change the customer's language to French 4. Reprint/download the invoice PDF 5. Observe that product names still appear in English instead of French **Current behavior:** Product names remain in the original language when reprinting invoices after changing the customer's language. **Expected behavior:** Product names and descriptions should dynamically translate based on the customer's current language setting when the invoice is reprinted. **Cause of the issue:** The invoice report template uses `line.name`, which is a stored text field frozen at invoice creation time. This field contains the product name in whatever language was active when the line was created and does not update when the partner's language changes. When rendering the PDF, this frozen text is displayed regardless of the current language context. **Fix:** Use `product_id.display_name` instead of `line.name` for product-linked invoice lines. The `display_name` field is computed dynamically and respects the current language context during PDF generation. For lines without a product (manual entries, notes, sections), fall back to `line.name` to preserve existing behavior. This allows product names to translate on reprint while maintaining compatibility with non-product lines. opw-5887170
This update fixes an issue where product names on invoices weren't always displayed in the correct language when using child contacts. The change ensures that invoice line labels are translated based on the language of the selected invoice contact, providing accurate and consistent translations across multilingual setups. This improves the user experience for international customers.
Original PR description
### Issue before this commit: When creating an invoice using the child contact of a parent contact that has a different language with respect to the father, the label of the invoice line was not…
### Issue before this commit: When creating an invoice using the child contact of a parent contact that has a different language with respect to the father, the label of the invoice line was not always displayed in the child contact language but in the father's contact language. ### Steps to reproduce the issue: 1. Activate at least 2 languages (X and Y) 2. Create a product and set the translation for that product in the activated languages 3. Create a Contact with the language X 4. Create a child contact (invoice adress type) for that contact with language Y 5. Create a new invoice setting the customer as the child contact 6. Add the product you created 7. See the label is displayed in the language of the parent contact ### Cause of the issue: The computation of the invoice line name relied on line.partner_id.lang. However, the partner_id of the move line is automatically set to the commercial partner that can be different (can be the father's contact) to the contact used on the invoice. As a result, the product description was translated using the wrong language. ### Reason to introduce the fix: To ensure that invoice line labels are correctly translated according to the language of the selected invoice contact, the computation now uses the language of move_id.partner_id instead of line.partner_id. This guarantees consistent and expected behavior in multilingual environments, especially when using different contacts under the same commercial partner. opw-5955875 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr