Thursday, April 17, 2025
13 changes · 18.0
Resolved issues and error corrections
Point of Sale receipts now show the tax label that applies after a fiscal position changes the tax. This prevents mismatches between receipt line labels and tax details, reducing confusion for cashiers and customers.
Original PR description
When using a fiscal position the tax group labels on the receipt order lines where not adapted correctly Steps to reproduce: ------------------- * Create 2 taxes A and B * For each tax go to their corresponding tax group and set the label to "A" and "B" * Create a fiscal position that will match A on B * Add the fiscal position to the PoS * Create a new order and add a product that uses the A tax * Activate the fiscal position * Validate the order and go to the receipt > Observation: The orderline will show the label A but the order tax detail will correctly show the label B Why the fix: ------------ When generating the display data for the orderline we need to first map the taxes according to the fiscal position. opw-4579223
Portal users can now search mail messages by related recipients more reliably. This prevents searches from bypassing the intended mail-specific logic, improving consistency when users look up conversations or followed records.
Original PR description
When searching `message_partner_ids`, we have a search method that will replace the domain, so `_condition_to_sql` will not be called for that field. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a small issue in event email processing when multiple records are handled at once. It helps ensure event-related email updates are applied to the correct record, reducing the risk of inconsistent behavior in less common batch scenarios.
Original PR description
Looping on self, but updating self. As this method is generally called on a singleton recordset no error has been reported but better safe than sorry.
Clearing the Point of Sale cache could leave some reward lines without their related coupon data, causing the POS to get stuck while loading. The fix cleans up those inconsistent order lines during this debug cache-clear scenario, helping the POS recover without affecting normal sales workflows.
Original PR description
After clearing the cache you can have inconsistent reward lines that have no coupon associated with them. Steps to reproduce: ------------------- * Create an order and add any reward (Buy X Get Y for example) * Go to the backend to make sure the order is saved in the database * Go back to the POS and clear the cache > Observation: You are stuck on the loading screen Why the fix: ------------ To avoid having inconsistent reward lines that have no coupon associated with them, we delete all the lines of an order that contains wrong data. As this is not supposed to happen (clearing the cache is a debug functionality), we can safely delete the lines because it's wont impact the real workflow of the users. opw-4655422
Accounting entries now include the country of the related commercial partner. This prepares the accounting module for improved filtering and reporting by partner location.
Original PR description
The commercial partner country field is required for later improvements namely filtering or reports related ones. --- task-4725240 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Creating a new contact from autocomplete could fail when a lowercase GST or VAT number was entered and selected from the suggestions. The fix normalizes those tax identifiers during lookup, preventing the error and making contact creation more reliable.
Original PR description
The system throws an error due to missing `name` in values during RPC `onchange` call Steps to Reproduce: 1. Open the `Contacts app` and click `New`. 2. Enter `32aadcs3224n1zf` as the name. 3. From the autocomplete dropdown, select a company. Error: `KeyError: 'name'` Solution: Added upper() transformation for GST and VAT numbers during autocomplete search to normalize input and avoid missing key errors. Sentry - 6327760196 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The sale details report now calculates totals based on the specific POS configuration, preventing blackbox-related rules from affecting regular POS setups. This helps businesses see accurate sales totals when the blackbox module is installed but not used for every POS configuration.
Original PR description
Before this commit, if the POS blackbox module was installed, the sale details report would display total price in price included because of an override. In this commit, we add the config id to the method computing this price so that the blackbox module can override this computation only if the config is a blackbox one. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix makes the PDF quote builder target the correct sales order line views when customizing quote layouts. It prevents custom or Studio-added sections from being mistaken for the main order line area, reducing the risk of incorrect behavior in sales quote forms.
Original PR description
Description of the issue/feature this PR addresses: sale_pdf_quote_builder uses `//` for selection of the kanban and list views of the order lines rather than `/`. Current behavior before PR: However, in the upstream view the form view is declared first. If any extension, or studio change embeds a list or kanban view inside the form, the current selectors will pick that up instead of the list and kanban views associated with the order line. Desired behavior after PR is merged: More accurately select the correct insertion point of the inherited view OPW-4716782 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Adds example placeholder text for the Peppol EAS field so users know what information to enter when setting up electronic invoicing. This reduces confusion during partner setup and Peppol registration without changing the underlying process.
Original PR description
Add a placeholder for Peppol EAS field. task-4544834 (Part-of)
The Belgian POS blackbox module now skips IP logging when no web request is available, preventing point-of-sale tests and automated session starts from failing. Sale details processing also checks that a configuration uses blackbox before applying blackbox-specific logic.
Original PR description
Before this commit, when pos_blackbox_be was installed, the pos tests were failing because most pos test called `_run_test` which is calling `_satrt_pos_session` which is calling `open_new_session` which is calling `set_opening_control`. This makes that when calling `set_opening_control`, the request is not bound and we cannot do `request.geoip.ip`. We now check that the request is bound in `_log_ip`: if it is not, we return, if it is, we resolve the ip on the fly.
This update fixes the Argentina electronic invoicing connection so it works reliably on both older Python versions and Python 3.12. It helps avoid connection failures when companies or hosting environments upgrade Python.
Original PR description
We adapted it to make it work depending on the version of Python used. It works for version 3.10.6 and below, but for Python 3.12, it fails. We adapted it so it can work in both Python versions Adhoc task 47274
This fix changes Brazilian Avalara account creation so missing fields are sent as empty text instead of false values. This prevents Avalara from storing "false" in account details, reducing EDI processing problems for affected Brazilian tax integrations.
Original PR description
Avalara populates those fields as "false" in the account, which causes issues during EDI. We keep sending the fields, but send empty string instead. opw-4716571
The salesperson subscription dashboard now uses the correct source values and ranking lists in churn, contraction, and expansion tables. This improves the accuracy of reported subscription performance so sales teams can rely on the dashboard for decision-making.
Original PR description
fix wrong formulas in different tables: - in "worst churn" under Value, starting the 7th line, the value used was "recurring_monthly" instead of "amount_signed" - in "worst contraction", the 10th line didn't use the list 4 like the rest of the table - in "top expansion", the 10th line didn't use the list 2 like the rest of the table Task: 4711532