Friday, January 9, 2026
61 changes · saas-19.1
Resolved issues and error corrections
This update fixes an issue where the recurring price table wasn't displaying correctly when users chose a one-time purchase option. The fix ensures the pricing table is shown accurately for both service and goods products, improving the user experience and ensuring accurate pricing information is presented.
Original PR description
Currently, the recurring price table displays incorrectly when the user enables the one-time purchase option for a product. **Steps to produce:** * Install `website_sale_subscription` with demo data…
Currently, the recurring price table displays incorrectly when the user enables the one-time purchase option for a product. **Steps to produce:** * Install `website_sale_subscription` with demo data * Products > Car Leasing > Recurring prices > Enable Accept One-time * Go to that product's website page **Observed behavior:** The pricing table template [1] is appended inside the input radio button instead of replacing the entire pricing table. **Root cause:** * Initially, when the `sale_subscription_product_price` template is used, function [2] replaces the table inside `div` [3], which has the `plan_select` class. * But When one-time purchase is enabled, the template `subscription_one_time_sale` is used instead of `sale_subscription_product_price`. * In that template, `div` [4] does not have the `plan_select` class. * Because of this, the query selector [5] finds the first `plan_select` element inside `input` [6]. * As a result, function [2] renders the table inside that `input` element instead of the intended `div`. **Solution:** This commit ensures that: * One time purchase price is changed dynamically based on variants. * The pricing table is displayed correctly for both service and goods type products. * The radio button selection works correctly by adding classes to the template and modifying its interaction accordingly. | Before 'Service' type product page | After 'Service' type product page| |--------|--------| | <img width="1855" height="928" alt="image" src="https://github.com/user-attachments/assets/d662fbf5-cfce-45c5-b14c-043e982c63a6" /> | <img width="1851" height="933" alt="image" src="https://github.com/user-attachments/assets/8e510b27-6917-43bc-ac5d-b01ff1b187ad" />| | Before 'Goods' type product page | After 'Goods' type product page | |--------|--------| | <img width="1852" height="931" alt="image" src="https://github.com/user-attachments/assets/b9aa68e7-beef-413c-b99e-a71937e35e10" />| <img width="1851" height="932" alt="image" src="https://github.com/user-attachments/assets/d768edd9-2169-4d43-ac59-9893b55d5bcd" /> | [1]: https://github.com/odoo/enterprise/blob/ae2f3a8062a0509db565e7bab2376a001fa047ae/website_sale_subscription/static/src/xml/pricing_view.xml#L21-L63 [2]: https://github.com/odoo/enterprise/blob/ae2f3a8062a0509db565e7bab2376a001fa047ae/website_sale_subscription/static/src/js/variant_mixin.js#L32-L36 [3]: https://github.com/odoo/enterprise/blob/77423e62d5b74d73cad86bf81fdfee2bea3ef2d1/website_sale_subscription/views/templates.xml#L61 [4]: https://github.com/odoo/enterprise/blob/ae2f3a8062a0509db565e7bab2376a001fa047ae/website_sale_subscription/views/templates.xml#L130 [5]: https://github.com/odoo/enterprise/blob/7837a4497759dc9dd75aeac30083266798c5ce59/website_sale_subscription/static/src/js/variant_mixin.js#L18-L20 [6]: https://github.com/odoo/enterprise/blob/ae2f3a8062a0509db565e7bab2376a001fa047ae/website_sale_subscription/views/templates.xml#L138 opw-5380240 Forward-Port-Of: odoo/enterprise#102427
This update fixes a labeling issue on the contact form for Brazilian companies, ensuring that VAT-related fields (like IE, IM, and SUFRAMA) are clearly identified. The change resolves a technical problem related to how Odoo prioritizes module views, preventing labels from disappearing. This improves usability for users working with Brazilian company data.
Original PR description
Currently, fields added using XPath expressions before or after the `VAT` field (such as `IE`, `IM`, and `SUFRAMA` from `l10n_br`) lose their labels and helpers in the Contacts form, making them hard…
Currently, fields added using XPath expressions before or after the `VAT` field (such as `IE`, `IM`, and `SUFRAMA` from `l10n_br`) lose their labels and helpers in the Contacts form, making them hard to identify. **Steps to reproduce:** - Install the `l10n_br` module and switch to a `BR company`. - Go to Contacts and open a contact form. - Observe the Brazilian identification number fields (`IE`, `IM`, `SUFRAMA`). **Obeservation:** Missing labels and helpers for fields added around the `VAT` field in the `res.partner` form. **Root Cause:** After commit [1], `account.view_partner_property_form` inherits from `product.view_partner_property_form` at [2], whose default priority (16) causes it to be applied after `base_vat.view_partner_base_vat_form`, which has priority (15) at [3]. As a result, the `base_vat` module moves the `VAT` field into the `vat_vies_container` div. Consequently, any subsequent XPath expressions targeting the `vat` field with position `before` or `after`, when the view is inherited from `account.view_partner_property_form`, are applied inside this container instead of the original form layout. The issue is not limited to the Brazilian localization, it impacts any module that inherits from the `account.view_partner_property_form` views and relies on XPath expressions positioned around the `VAT` field. **Fix:** This commit ensures that fields added before or after the VAT field remain properly labeled and identifiable across all modules by assigning a higher priority to `product.view_partner_property_form` than to `base_vat.view_partner_base_vat_form`. **Before:** <img width="1908" height="616" alt="5443833_before" src="https://github.com/user-attachments/assets/f7d0819d-38bd-4fe8-8a22-5e22b342cd32" /> **After:** <img width="1909" height="703" alt="5443833_after" src="https://github.com/user-attachments/assets/b205cb87-64ba-49fd-91c4-c20908d21429" /> [1]: https://github.com/odoo/odoo/commit/4bff48d8233a9c1338252725f92ffcf580bd2b9d [2]: https://github.com/odoo/odoo/blob/229c2737edee601552ccceeed8602ec0e4686596/addons/account/views/partner_view.xml#L191 [3]: https://github.com/odoo/odoo/blob/229c2737edee601552ccceeed8602ec0e4686596/addons/base_vat/views/res_partner_views.xml#L4-L26 opw-5443833
This update resolves an issue where setting an invalid video link in course slides would cause a system error. The fix ensures that the system gracefully handles incorrect links, preventing disruptions to the user experience when adding or editing slide content. This improves the reliability of the course presentation feature.
Original PR description
When a user sets an invalid video link for a slide, a traceback occurs. Steps to reproduce the error: - Install ``website_slides`` module with demo data - Go to Website > Courses > Open Taking care…
When a user sets an invalid video link for a slide, a traceback occurs. Steps to reproduce the error: - Install ``website_slides`` module with demo data - Go to Website > Courses > Open Taking care of Trees course - Add Content > Video > Add valid video link (ex. https://www.youtube.com/shorts/SXHMnicI6Pg) > Save and Publish > Delete - Repeat above step - Add content > Video > Add any text in video link > Save and Publish Traceback: ```py AssertionError: Could not find all values of slide.slide(12,) to flush them ``` https://github.com/odoo/odoo/blob/7bbfb207f8699973f8580ea18821f82b1a83e149/addons/website_slides/controllers/main.py#L1363-L1372 New record is created using ``new()`` to fetch external metadata for the slide. This record only exists in memory and is not stored in the database. When the video link is invalid, ``video_source_type`` is False, and the code attempts to ``unlink()`` the slide. Unlinking the record triggers field recomputations, and it will lead to the above error when flushing the new record. ref: https://github.com/odoo/odoo/commit/71233fa2cb8984b65f8e7ac55405fdbc054756a0 sentry-6964031088 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235099
This update fixes an issue where typing 'B)' automatically converted to a 😎 emoji, potentially altering user input. The change disables this automatic conversion, ensuring users can type characters without unintended emoji replacements. This improves the user experience and data integrity.
Original PR description
Before this PR, typing `B)` was automatically converted into a 😎 emoji, which could unintentionally alter user input. This PR disables that conversion. task-[5221032](https://www.odoo.com/odoo/project/1519/tasks/5221032) Forward-Port-Of: odoo/odoo#242831
A recent issue causing slow loading of the Team website page was resolved. The update replaced outdated image files with optimized `.webp` versions, ensuring images load correctly and improving website performance. This change maintains compatibility with older versions.
Original PR description
Commit [1] replaced demo image records with `.webp` versions, but the actual files remained in `.jpg` format. This mismatch caused broken image links which failed to load and it resulted in page load issues for the website page templates dialog. This commit updates those images to `.webp` format and restores consistency by pointing to correct files so the images load correctly. [1] https://github.com/odoo/odoo/commit/b25ae74 Forward-Port-Of: odoo/odoo#227464
This update fixes an issue with Brazil tax names that were causing errors when setting up a new company in Odoo. The changes rename and translate tax names to ensure accurate accounting and prevent setup failures, improving the overall user experience for Brazilian businesses.
Original PR description
In 17.0, some taxes have had their incorrect name for the cashback taxes. This renames the invoice_label and name fields of such taxes to better represent what they are as well as add portuguese translations where necessary. task-5470453 Forward-Port-Of: odoo/odoo#242974 Forward-Port-Of: odoo/odoo#242446
This update fixes a persistent visual issue where the 'pulse' effect repeatedly appeared during calls, even after the user switched to fullscreen mode. Now, the effect only displays until the user actively engages with fullscreen or picture-in-picture, creating a smoother and less intrusive call experience. This change improves user satisfaction and reduces distractions.
Original PR description
**Current behavior before PR:** The pulse effect could reappear during a call, even after the user had already interacted with fullscreen or picture-in-picture. This resulted in a repetitive and overly insistent visual cue. **Desired behavior after PR is merged:** This PR refines the promotion logic so the pulse effect is shown only until the user explicitly interacts with fullscreen or pip mode. Once the user does so, the promotion is permanently discarded for the duration of the current call session and cannot be reactivated by subsequent camera or UI state changes. task-[5468368](https://www.odoo.com/odoo/project/1519/tasks/5468368) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240690
This update resolves a bug where quickly typing in the Helpdesk Forum tour input field would erase the entered text. The fix ensures the popover is displayed before allowing input, preventing this issue and improving the user experience.
Original PR description
if you write too fast, the opening of the popover erases the text in the input. In this commit, we add a step to ensure the popover is shown before writing in the input Forward-Port-Of: odoo/enterprise#103495
This update fixes an issue where purchase order discounts weren't being accurately reflected in product standard prices when using the AVCO costing method. The change ensures that discounts applied on purchase orders are correctly calculated and applied to the standard price, aligning with expected values. This improves the accuracy of inventory valuation.
Original PR description
**Steps to reproduce:** * Install the *purchase_stock* module * Create new Product category. * In the category, set the **Costing Method** to *Average (AVCO)*. * Create a new product and assign a…
**Steps to reproduce:** * Install the *purchase_stock* module * Create new Product category. * In the category, set the **Costing Method** to *Average (AVCO)*. * Create a new product and assign a created product category. * Create a new Purchase Order. * Add a Purchase Order Line with the created product. * Set **Quantity** to 10. * Set **Unit Price** to 100. * Set **Discount** to 10%. * Confirm the Purchase Order. * Validate the generated receipt. * Open the product form and check the *standard_price*(Cost) field. **Observed behavior:** The product standard price is updated to **100**, calculated from the undiscounted unit price (1000 / 10), ignoring the discount applied on the purchase order line. The expected value is *90* (900/10). **Cause:** With the new inventory valuation logic in v19.0, the standard price is updated via *_update_standard_price*, which calls *_run_avco* which uses the stock move *value* field set by *_get_value_from_quotation*: https://github.com/odoo/odoo/blob/71195624008f8c1ba8b10e1b04433e34e08fb540/addons/stock_account/models/product.py#L340 However, the *_get_value_from_quotation* relies on *_get_stock_move_price_unit*, which returns the unit price **without considering the discount**, leading to an incorrect move value for AVCO computation. **Note:** Prior to 19.0, the `price_unit` of the move was calculated in the `_get_price` unit using the `_get_gross_price_unit` using the discounted value of the line: https://github.com/odoo/odoo/blob/24db73743d8bb4d678af7efb4d78a019e0953395/addons/purchase_stock/models/stock_move.py#L152-L154 https://github.com/odoo/odoo/blob/24db73743d8bb4d678af7efb4d78a019e0953395/addons/purchase/models/purchase_order_line.py#L383-L387 It should still be the case here as there is no discounted_unit_price on the move and, since we do not rely on the `_get_gross_price_unit` anymore, we should adapt the relative call: https://github.com/odoo/odoo/blob/090c5a4d55e3fcd1b2840bc8afaed49efc8745d4/addons/purchase_stock/models/stock_move.py#L214-L218 https://github.com/odoo/odoo/blob/090c5a4d55e3fcd1b2840bc8afaed49efc8745d4/addons/purchase_stock/models/purchase_order_line.py#L238-L243 --- opw-5409226 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241273
This update resolves a technical problem where the equity dashboard incorrectly loaded sample data after all equity transactions were deleted. The issue stemmed from an error in how the dashboard identified company data, leading to a JavaScript error. This fix ensures the dashboard functions correctly regardless of transaction data.
Original PR description
**PROBLEM** If you delete all the equity transactions, the equity dashboard will try to load the sample data. Depending on the id of the current company, there is a js traceback. **STEP TO REPRODUCE** - On runbot, go to the equity app and delete all transactions. - Select a company. - Goes to the dashboard, there should be a js traceback (if not, try with another company). **ISSUE** The sample data create a partner data for the current company, but it assumes its id is 1. If the current company id is not present in the partner_data ids we will try to get the display_name of an undefined object, leading to a traceback. opw-5364100 Forward-Port-Of: odoo/enterprise#102207
This update resolves an error that occurred when signing documents with non-mandatory selection fields. Previously, the system would fail to validate documents if a selection field was left blank. This fix ensures the system correctly handles these fields, preventing validation errors and allowing users to complete the signing process smoothly.
Original PR description
Currently, an error occurs when signing a document containing a non-mandatory selection field that is left unchanged. **Steps to Reproduce:** 1. Install the Sign module. 2. Add a _Selection_ field to…
Currently, an error occurs when signing a document containing a non-mandatory selection field that is left unchanged. **Steps to Reproduce:** 1. Install the Sign module. 2. Add a _Selection_ field to a document template and define at least one option. Make sure the field is not mandatory. 3. Click **"Sign Now"**, then **"Validate & Send Completed Document"** without modifying the selection field. **Error:** `ValueError - invalid literal for int() with base 10: 'Selection125340'` Cause: After this commit [1], `textareaApplyLineBreak()` is executed for all item types. For selection type, this updates the item value from `undefined` to a generated string (e.g. **Selection132**), which later causes an invalid integer conversion during validation. **Fix:** This commit ensures `textareaApplyLineBreak` is only applied to textarea items and not to other field types. [1]: https://github.com/odoo/enterprise/commit/c1bfc84505ca8053a073c23b6a7b569021e9ca0c sentry-7089120038 opw-5402249 Forward-Port-Of: odoo/enterprise#102124
This update fixes an issue where adding the same product multiple times to a Point of Sale order would create duplicate orderlines. The change ensures prices with decimal precision are correctly merged, leading to more accurate order totals and a better customer experience. This resolves a rounding error that could have impacted order calculations.
Original PR description
Before this commit, when a product had a price with more decimals than the currency, adding it multiple times to the order would create multiple orderlines instead of merging them. This was due to rounding issue when comparing the prices of the orderlines. opw-5341735 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241489 Forward-Port-Of: odoo/odoo#238639
This update fixes a minor issue where users couldn't easily switch between tabs displaying information about Odoo modules. Now, the navigation tabs work correctly, providing a smoother and more intuitive experience when viewing module details. This enhancement ensures consistent functionality across the Odoo platform.
Original PR description
* Before: if we have a block contain multiple tab in index.html file we can not click on it to switch between tab, unlike the behiviour in odoo apps store description https://github.com/user-attachments/assets/ab7f8213-2112-46e2-bb72-5e01cc1f7883 * After: Make the nav tabs work as it should be https://github.com/user-attachments/assets/12c05abc-84f6-495e-ae5b-b6eca4d81a92 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236064 Forward-Port-Of: odoo/odoo#186568
This update corrects outdated paths used in Odoo's IoT driver upgrade scripts, ensuring compatibility with the latest SaaS version (19.1). It also removes a legacy upgrade process from version 16, streamlining the installation and maintenance of the IoT drivers.
Original PR description
The PR https://github.com/odoo/odoo/pull/242110 used paths with "hw_drivers" which don't exist anymore in saas-18.4. This PR adapts the paths and moves the upgrade scripts to the correct modules accordingly It also removes the deprecated v16 upgrade Forward-Port-Of: odoo/odoo#242595 Forward-Port-Of: odoo/odoo#242507
A recent update introduced an error in the return label generation process, causing it to behave differently than previous versions. This fix restores the original, correct logic, ensuring consistent and accurate return label functionality as seen in prior releases. This resolves a discrepancy identified during the software update process.
Original PR description
## Current behaviour: The logic in 19.1 is applied wrongly due to a previous merge error, causing the feature to behave differently than in previous versions. ## Expected behaviour: The logic should match the behavior present in 18.0 through 19.0, as defined in the original feature implementation. ## Cause of the issue: During the forward-port process of the original feature (PR #103480) from 19.0 to 19.1, a merge conflict occurred. The manual resolution of this conflict was incorrect. ## Fix: Restore the correct logic as intended in the original PR. Original PR: https://github.com/odoo/enterprise/pull/103480
This update fixes a technical issue that was causing tracebacks when generating reports. The underlying code was incorrectly referencing an outdated parameter, leading to errors. Removing this parameter resolves the problem and ensures reports generate correctly.
Original PR description
The method still declared a progress parameter even after it was removed from the underlying call, resulting in a traceback when unfolding the report line. The parameter is now removed. ref commit: https://github.com/odoo/enterprise/commit/ff2895144ecfc66d2b23bb872b39f5b446ae0da6 task-5476442
This update refactors internal code to improve how Odoo's pivot tables handle relationships between data. Specifically, it extracts a key function to fetch field definitions, resolving an issue that previously caused errors when adding dimensions to pivot tables. This ensures pivot tables function correctly and reliably.
Original PR description
This commit extracts the logic to fetch relational field definitions into a separate utility function `getRelationalFieldDefinition`. This function will be used in the enterprise commit to fix an issue with invalid dimension addition in pivot tables. Task: 5411336 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240210
This update resolves an issue where newly added dimensions in Odoo's pivot reports were incorrectly marked as invalid and displayed with their technical names instead of user-friendly labels. This ensures pivot reports show dimensions with the correct, easily understandable names for users.
Original PR description
Steps to reproduce:
- Insert an Odoo pivot
- Click on "defer update"
- Add a dimension with a relation ("country_id.name") => The dimension is added but marked as invalid and the display name is incorrect ("country_id.name" instead of "Country > Name")
Task: 5411336
Forward-Port-Of: odoo/enterprise#102237This update ensures that product titles displayed on alternate product listings accurately reflect the product template name, regardless of whether 'Show Variants' is enabled. Previously, variant names were shown, which created a confusing user experience. This fix corrects a technical issue within the website sale module.
Original PR description
Currently when the user adds an alternate product with a variant, the product title shows the variant name instead of the template name, even when `Show Variants` is disabled. **Steps to produce:** *…
Currently when the user adds an alternate product with a variant, the product title shows the variant name instead of the template name, even when `Show Variants` is disabled. **Steps to produce:** * Install `website_sale` * products > Select any product > sales * Add any product with variant to alternate products * Go to that product's website page and scroll to alternate products section. **Observed Behavior:** * Product variant names are shown instead of product template names, even though `Show Variants` is disabled. **Root cause:** * This happens because loading the alternative product snippet calls `_get_products` [1], which then calls`_filter_records_to_values`. That function calls `_get_combination_info` [2],causing the display names to be updated to the combination display name. **Solution:** Show the product template name instead of the combination name when `Show Variants` is disabled, by using only product templates and updating the product template display name computation to account for `display_default_code`, to ensure the internal reference remains hidden when it is set to `False`. **Before:** <img width="1847" height="932" alt="image" src="https://github.com/user-attachments/assets/81ffaf94-d63d-4e2c-9b46-dd369d34bc7b" /> **After:** <img width="1847" height="932" alt="image" src="https://github.com/user-attachments/assets/4a6d3fa6-541d-4091-9691-e8b10f542833" /> [1]: https://github.com/odoo/odoo/blob/c4448d2e16e6f4b0b5ea99f6e883cb69d226cfba/addons/website_sale/models/website_snippet_filter.py#L173-L190 [2]: https://github.com/odoo/odoo/blob/c4448d2e16e6f4b0b5ea99f6e883cb69d226cfba/addons/website_sale/models/website_snippet_filter.py#L132 opw-5365320 Forward-Port-Of: odoo/odoo#240325
This update resolves a technical issue that caused a traceback when invoices timed out during sending. The fix corrects an error related to accessing the 'message' attribute of a UserError object, ensuring invoices are sent reliably. This improves the stability of the Danish retail (l10n_dk_nemhandel) module.
Original PR description
In case of timeout when sending an invoice there is a traceback due to the following error. ``` AttributeError: 'UserError' object has no attribute 'message' ``` It is fixed in this commit. task-None Forward-Port-Of: odoo/odoo#242811
This update fixes a discrepancy in account balance calculations for companies within Odoo's branch hierarchy. Previously, balances only included the parent company, excluding transactions from child branches. Now, the system correctly aggregates balances across the entire company hierarchy, providing a more accurate 'Global' view of account balances.
Original PR description
Description of the issue/feature this PR addresses: This PR updates the company filtering logic in account balance computations to support Odoo's branch hierarchy. In multi-branch environments, a…
Description of the issue/feature this PR addresses:
This PR updates the company filtering logic in account balance computations to support Odoo's branch hierarchy. In multi-branch environments, a parent company should be able to see the aggregated balances of its child branches. Currently, the strict equality operator prevents this consolidation, creating a discrepancy between the expected "Global" view and the displayed balance.
Current behavior before PR:
The _compute_current_balance method in account_account.py uses the = operator for the company_id domain: domain=[('account_id', 'in', self.ids), ..., ('company_id', '=', self.env.company.id)]
This restricts the balance calculation exclusively to the current active company, excluding any transactions made in its branches (child companies), even when the user is positioned at the parent level.
Desired behavior after PR is merged:
The operator is changed to child_of. When a user is in a parent company/branch, the current_balance of the account will include the sum of all journal entries from that company and all its descendants in the hierarchy. This ensures consistency with how other parts of Odoo (like https://github.com/odoo/enterprise/blob/e29aadef1a81c662d9a4d33879b440dbe4390c0b/account_followup/models/res_partner.py#L230) handle company-related domains.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#242576This update fixes an issue where the invoice value wasn't correctly being applied to purchase orders. Previously, the system was incorrectly using the PO value instead of the actual invoice amount. This change ensures that the correct invoice value is captured, improving the accuracy of purchase order accounting.
Original PR description
It's due to commit 47345b1fc8b805e232a4287cc6d5c54b2f5886cb It will consider it's onw as another candidate and will count himself as quantity already invoiced. It will then take the PO value instead of the bill. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242062
This update removes outdated configuration settings from tests related to account and HR EDI reports. These settings were no longer needed and were causing unnecessary complexity in the testing process. This cleanup improves test efficiency and maintainability.
Original PR description
The configuration parameter `account_edi_ubl_cii.use_new_dict_to_xml_helpers` was removed in saas-18.4. However, this parameter was still being set in various tests across `account_edi_ubl_cii`, `l10n_account_edi_ubl_cii_tests`, `l10n_hr_edi`, and `l10n_co_dian`. This commit removes these unnecessary configuration lines to clean up the tests. Related PR : https://github.com/odoo/enterprise/pull/103766 Forward-Port-Of: odoo/odoo#242749
This update removes outdated configuration settings from test environments related to tax reporting (l10n_co_dian). These settings were no longer needed and were causing unnecessary complexity in the testing process. This cleanup improves test efficiency and stability.
Original PR description
The configuration parameter `account_edi_ubl_cii.use_new_dict_to_xml_helpers` was removed in saas-18.4. However, this parameter was still being set in various tests across `account_edi_ubl_cii`, `l10n_account_edi_ubl_cii_tests`, `l10n_hr_edi`, and `l10n_co_dian`. This commit removes these unnecessary configuration lines to clean up the tests. Related PR : https://github.com/odoo/odoo/pull/242749 Forward-Port-Of: odoo/enterprise#103766
This update fixes an issue where combo prices were incorrectly recalculated after changing the order's delivery preset (e.g., from 'eat-in' to 'delivery'). The fix ensures that extra products included in the combo are accurately priced, preventing the price from reverting to the base combo price. This improves the accuracy of order totals and enhances the user experience.
Original PR description
**Problem:** When ordering a combo product, you can order more products than the combo requires, which will the add *base_price* to the combo price. The problem is that when changing the preset, like…
**Problem:** When ordering a combo product, you can order more products than the combo requires, which will the add *base_price* to the combo price. The problem is that when changing the preset, like going from eat in to delivery, the pricelist is reconfigured, and it does not take the extra products from the combo into account. This means that the price will go back to the combo's price without the extra products. **Steps to reproduce:** - Have a combo that can take on multiple free products and has a limit above this free product number - Order more than the free quantity - Change the preset (from eat in to delivery) - The price is recomputed without taking the extra products into account **Why the fix:** The extra articles were not accounted for when changing the pricelist, meaning they would end up free and the price would change. We now make a separation between the free products (that are from the combo) and the extra products. The extra products cost the *base_price* of said combo. To do that, we need to get the extra lines from the combo, which are the products that are not free in the case where there are more products selected in the combo than free products defined in the definition of the combo. To make that happen, we add the non free lines to the extra lines list once we have at least as many free products as defined in the combo definition. In the case where the quantity of a product is greater than the number of free items, the lines are automatically split. Meaning if we have a combo with 2 free items but we order 3, we will have a line with a quantity of 2 and another line with a quantity of 1. In that case, the first line will be free, but the second line will be an extra. This logic is implemented here https://github.com/odoo/odoo/blob/0087cc96b2d2190ab107c3d50d3bdd48f7a687e9/addons/point_of_sale/static/src/app/components/popups/combo_configurator_popup/combo_configurator_popup.js#L88-L106 Which is then retrieved here to make the separation in the combo's price https://github.com/odoo/odoo/blob/0087cc96b2d2190ab107c3d50d3bdd48f7a687e9/addons/point_of_sale/static/src/app/services/pos_store.js#L879 opw-4885574 Forward-Port-Of: odoo/odoo#241689 Forward-Port-Of: odoo/odoo#217082