Monday, July 22, 2024
30 changes · saas-17.2
Resolved issues and error corrections
This fix adds the missing CRM lead model definition needed by related enterprise test cases. It helps ensure CRM-related automated tests run reliably and supports smoother validation of enterprise CRM functionality.
Original PR description
Purpose of this PR: Test cases of the `crm_enterprise` require definition of `crm.lead` model. Defining the model to match the dependency Part of task:[3818666](https://www.odoo.com/odoo/project/1519/tasks/3818666?cids=2) Related Enterprise PR: https://github.com/odoo/enterprise/pull/62256
Users can now leave Discuss channels without seeing an error. The system removes the leaving user from the channel before sending the departure notification, preventing the message from being sent back to them.
Original PR description
**Current behavior before PR:** when leaving discuss channel from discuss it results in error because leave notification is send to the leaving person itself. **Desired behavior after PR is merged:** The issue was resolved by replacing the logic. Now, before sending a notification to the channel, we remove the channel member and the channel itself from the thread of the person leaving. task-3893498 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The French accounting localization module name was changed from l10n_fr to l10n_fr_account without fixing the module references in the translation files. This commit fixes the module references in the i18n files. The French tax report was not showing the French translation. task-3986901 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
The French accounting localization module name was changed from l10n_fr to l10n_fr_account without fixing the module references in the translation files. This commit fixes the module references in the i18n files. The French tax report was not showing the French translation. task-3986901 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an unreliable automated test around messaging subscription updates. It helps keep quality checks stable by correctly handling cases where subscriptions are removed, reducing false test failures during development.
Original PR description
Before this PR, the "bus subscription updated when joining locally pinned thread" test was sometimes failing. Internally, it uses the waitForChannels helper, which was rewritten in [1] to handle subscription updates before the helper is called. However, the helper only works for channel addition, not deletion. The helper only works in this case due to a race condition. This PR fixes the helper to properly handle deletion. runbot-65320 [1]: https://github.com/odoo/odoo/pull/168438
Miscellaneous changes
Prior to this commit, validating a picking that triggers this error message would raise a "TypeError: not enough arguments for format string" because the extra '()' caused all three %s to be considered as one argument. After this commit, everything works as expected. Additionally, I have reformulated the error messages to be clearer and better structured. OPW-3945812 Forward-Port-Of: odoo/enterprise#64629 Forward-Port-Of: odoo/enterprise#64372
Original PR description
Prior to this commit, validating a picking that triggers this error message would raise a "TypeError: not enough arguments for format string" because the extra '()' caused all three %s to be considered as one argument. After this commit, everything works as expected. Additionally, I have reformulated the error messages to be clearer and better structured. OPW-3945812 Forward-Port-Of: odoo/enterprise#64629 Forward-Port-Of: odoo/enterprise#64372
When `industry_fsm` is installed, the form of `project.project` contains a section `Field Service` with only one setting (`is_fsm`). This option is only visible in only visible in debug mode, so the whole section should be displayed only under this conditon. => The group `base.group_no_one` has been added to the section. When `industry_fsm_report` is installed, another setting appears under that section (`worksheet_template_id`), so the section should be displayed. => The group that is adde
Original PR description
When `industry_fsm` is installed, the form of `project.project` contains a section `Field Service` with only one setting (`is_fsm`). This option is only visible in only visible in debug mode, so the whole section should be displayed only under this conditon. => The group `base.group_no_one` has been added to the section. When `industry_fsm_report` is installed, another setting appears under that section (`worksheet_template_id`), so the section should be displayed. => The group that is added in `industry_fsm` is removed then. task-3916982 Forward-Port-Of: odoo/enterprise#62270
How to reproduce (on 17.0 onwards): - Helpdesk -> new ticket form - set the name of the ticket (do not save the record) - then, set a partner to a existing partner - The display_name on the top displays 'name - #False' Expeceted behavior: - instead of displaying 'name - #False', it should display 'name' if the ticket_ref is not defined yet. After this commit, the display_name only displays the ticket_ref (#ID) if it exists. Test have been added for this purpose. Task: 3893076 Forw
Original PR description
How to reproduce (on 17.0 onwards): - Helpdesk -> new ticket form - set the name of the ticket (do not save the record) - then, set a partner to a existing partner - The display_name on the top displays 'name - #False' Expeceted behavior: - instead of displaying 'name - #False', it should display 'name' if the ticket_ref is not defined yet. After this commit, the display_name only displays the ticket_ref (#ID) if it exists. Test have been added for this purpose. Task: 3893076 Forward-Port-Of: odoo/enterprise#66471
…invoices Steps to Reproduce on Runbot: 1. Set up AvaTax in Accounting settings 2. Make sure that the “Use AvaTax API” field is checked for the fiscal position named “Automatic Tax Mapping (AvaTax)” 3. Go to “Tax Groups” and for the record called “Tax 15%”, add “Test” to the field called “Preceding Subtotal” 4. Go to the Product Category called “All” and choose any selection for the field called “AvaTax Category” 5. Make an invoice and add the fiscal position named “Automatic Tax Mappi
Original PR description
…invoices Steps to Reproduce on Runbot: 1. Set up AvaTax in Accounting settings 2. Make sure that the “Use AvaTax API” field is checked for the fiscal position named “Automatic Tax Mapping (AvaTax)”…
…invoices Steps to Reproduce on Runbot: 1. Set up AvaTax in Accounting settings 2. Make sure that the “Use AvaTax API” field is checked for the fiscal position named “Automatic Tax Mapping (AvaTax)” 3. Go to “Tax Groups” and for the record called “Tax 15%”, add “Test” to the field called “Preceding Subtotal” 4. Go to the Product Category called “All” and choose any selection for the field called “AvaTax Category” 5. Make an invoice and add the fiscal position named “Automatic Tax Mapping (AvaTax)” 6. Save then print the invoice. Notice on the printed invoice that above the box called “Total”, the box called “Untaxed Amount” shows up with no tax box. 7. Uncheck the “Use AvaTax API” field for the fiscal position named “Automatic Tax Mapping (AvaTax)” (This step is basically the inverse of step 2) 8. Print the invoice again and notice this time that the box will instead be called “Test” (which we set in step 3) and that a box showing the tax amount will show up. This commit fixes the issue so that the value in "Preceding subtotal" is shown for printed Avatax invoices too. opw-4027280 Forward-Port-Of: odoo/enterprise#66932
## Issue: - When adjusting inventory for a product with packages from the barcode app, quantities that are not whole numbers will be rounded to the nearest whole number. ## Steps To Reproduce: - Create a product and include two other products in its packaging, specifying a non-whole number for the contained quantity. - In the barcode app, adjust the inventory by adding the created product and then save the changes. - Click on the small pen icon to modify the product's details. - Observe
Original PR description
## Issue: - When adjusting inventory for a product with packages from the barcode app, quantities that are not whole numbers will be rounded to the nearest whole number. ## Steps To Reproduce: -…
## Issue: - When adjusting inventory for a product with packages from the barcode app, quantities that are not whole numbers will be rounded to the nearest whole number. ## Steps To Reproduce: - Create a product and include two other products in its packaging, specifying a non-whole number for the contained quantity. - In the barcode app, adjust the inventory by adding the created product and then save the changes. - Click on the small pen icon to modify the product's details. - Observe that when adding the quantities with decimal values, they get rounded up to the nearest whole number. ## Solution: - In the `_increment` function, when the initial `value` is not a decimal (it does not contain a '.'), the fraction variable is not set, and the rounding defaults to 0. It's important to note that this issue does not occur when the `value` is a decimal, as the split function operates correctly. - To resolve this issue, instead of relying on the number of digits after the '.' in the `value`, we set the precision based on what is defined in the 'decimal.precision' model. This approach not only addresses the current issue but also resolves the underlying problem initially discussed in this PR https://github.com/odoo/enterprise/pull/53378 opw-3896929 Forward-Port-Of: odoo/enterprise#66535 Forward-Port-Of: odoo/enterprise#62505
Steps to Reproduce: ----------- Install the helpdesk_account and helpdesk_sale_timesheet module. Go to the ticket form view. Perform a refund or reverse action. Click on the 'Credit Notes' stat button. Observe that the list view of credit notes is empty. Cause: ---------- When the helpdesk_sale_timesheet module is installed, the action_view_invoices method gets overridden. Fix: --------- We have renamed the actions in the helpdesk_account module to avoid conflicts
Original PR description
Steps to Reproduce: ----------- Install the helpdesk_account and helpdesk_sale_timesheet module. Go to the ticket form view. Perform a refund or reverse action. Click on the 'Credit Notes' stat button. Observe that the list view of credit notes is empty. Cause: ---------- When the helpdesk_sale_timesheet module is installed, the action_view_invoices method gets overridden. Fix: --------- We have renamed the actions in the helpdesk_account module to avoid conflicts. task-3972344 Forward-Port-Of: odoo/enterprise#65859
Before, when the subscription cron create recurring invoices, it might create a credit note in case some already invoiced non recurring product had his ordered quantity set back to zero. The payment transaction created for this credit note will take the absolute total without taking into account the type of the entry process. This leads to a transaction charging the amount to the client instead of refunding him. As we don't want to allow automatic refund because it could lead to catastrophe
Original PR description
Before, when the subscription cron create recurring invoices, it might create a credit note in case some already invoiced non recurring product had his ordered quantity set back to zero. The payment transaction created for this credit note will take the absolute total without taking into account the type of the entry process. This leads to a transaction charging the amount to the client instead of refunding him. As we don't want to allow automatic refund because it could lead to catastrophe if a bug occurs, we decide to prevent the payment request if the amount is negative. In that case, we keep the draft invoice and keep the "payment_exception" flag to avoid running the subscription invoice cron again on that contract. opw-3874964 Forward-Port-Of: odoo/enterprise#64098
This commit adds the missing neutralization necessary for the l10n_fr_reports module introduced in 06f32096749a8df29b248f29698226cf996e9106 The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of th
Original PR description
This commit adds the missing neutralization necessary for the l10n_fr_reports module introduced in 06f32096749a8df29b248f29698226cf996e9106 The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. opw-3928199 Forward-Port-Of: odoo/enterprise#66838
### Current behavior: Auto-trigger reordering rules can be snoozed from the list view. ### Expected behavior: Since the snooze mechanic is here onyl to hide manual reordering rules, a user error should be raised if one tries to snooze an auto-trigger reordering rule. #### + Revert of commit 515a53a opw-3901613 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172213 Forward-Port-Of: odoo/odoo#170911
Original PR description
### Current behavior: Auto-trigger reordering rules can be snoozed from the list view. ### Expected behavior: Since the snooze mechanic is here onyl to hide manual reordering rules, a user error should be raised if one tries to snooze an auto-trigger reordering rule. #### + Revert of commit 515a53a opw-3901613 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172213 Forward-Port-Of: odoo/odoo#170911
This commit will change the invisible condition on the group "group_edi_config" so that the group is not there if empty. task: 4028343 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171718
Original PR description
This commit will change the invisible condition on the group "group_edi_config" so that the group is not there if empty. task: 4028343 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171718
**Steps to reproduce:** - Install Accounting - In Accounting settings, configure a separate discount account for invoices - Create an invoice: * Customer: [any] * Currency: [a foreign currency] (e.g. EUR) * Invoice Lines: [Price: 100€ - Discount: 50%] - Check the "Journal Items" tab => Amount in currency for the receivable account and the discount account should be 50. Debit and credit should be the corresponding amount in the currency of the company. - Change the currency of the i
Original PR description
**Steps to reproduce:** - Install Accounting - In Accounting settings, configure a separate discount account for invoices - Create an invoice: * Customer: [any] * Currency: [a foreign currency] (e.g.…
**Steps to reproduce:** - Install Accounting - In Accounting settings, configure a separate discount account for invoices - Create an invoice: * Customer: [any] * Currency: [a foreign currency] (e.g. EUR) * Invoice Lines: [Price: 100€ - Discount: 50%] - Check the "Journal Items" tab => Amount in currency for the receivable account and the discount account should be 50. Debit and credit should be the corresponding amount in the currency of the company. - Change the currency of the invoice to the currency of the company - Save the invoice **Issue:** When the currency is changed, all the amounts in currency are simply converted to the currency of the company. Upon save, the "payment_term" line is recomputed to match with the values on the invoice lines, resulting on an amount of $50 for amount in currency, debit and credit. Which is correct. However, the recomputation doesn't occur for the discount lines, resulting to an incorrect discount amount. **Solution:** Recompute the discount lines if the currency rate is changed. opw-3881661 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173692
To recreate the bug: 1- Create a loyalty program with a reward of $ per point and a fixed required amount. 2- Test the loyalty program and observe the rewards and points consumed. 3- We see that whenever we have an amount of points exceeding the required amount, they get consumed entirely, and the reward is calculated as total points * ($ per point). The problem here is that when using a loyalty reward with points, it is possible to give partial rewards. This commit prevents partial rewar
Original PR description
To recreate the bug: 1- Create a loyalty program with a reward of $ per point and a fixed required amount. 2- Test the loyalty program and observe the rewards and points consumed. 3- We see that whenever we have an amount of points exceeding the required amount, they get consumed entirely, and the reward is calculated as total points * ($ per point). The problem here is that when using a loyalty reward with points, it is possible to give partial rewards. This commit prevents partial rewards. Example: - Rule: Grant 1 point per product bought; - Reward: 1.5$ per point in exchange of 2 points (3$) Before this commit, if you buy 3 products, you get 4.5$ by using 3 points. After, you only use 2 points and get 3$ (no partial reward). opw-3922835 Forward-Port-Of: odoo/odoo#173354 Forward-Port-Of: odoo/odoo#170129
Steps to reproduce: ------------------- 1. Create a new analytic plan and set it as the default analytic plan in Project settings (it must be different from the 'Projects' plan) 2. Create again a new analytic plan and set its parent to the one you have created in step 1. 3. Create a new analytic account linked to the plan you have just created in step 2. 4. Create a new project and a new task 5. Link the analytic account you have created in step 3. to the task 6. Create a new timesheet li
Original PR description
Steps to reproduce: ------------------- 1. Create a new analytic plan and set it as the default analytic plan in Project settings (it must be different from the 'Projects' plan) 2. Create again a new…
Steps to reproduce:
-------------------
1. Create a new analytic plan and set it as the default analytic plan in Project settings (it must be different from the 'Projects' plan)
2. Create again a new analytic plan and set its parent to the one you have created in step 1.
3. Create a new analytic account linked to the plan you have just created in step 2.
4. Create a new project and a new task
5. Link the analytic account you have created in step 3. to the task
6. Create a new timesheet linked to the task
7. In Accounting > Analytic Items, the analytic account of the timesheet will not be reported in the plan you created in step 2.
Fix:
-------------------
The 'Projects' plan (the default one) represents the 'account_id' field of analytic.account.line, other plans have names with the following format: 'x_plan{plan.id}_id' (they are fields created on the fly).
When creating a timesheet we were always setting its account.analytic.account to the 'account_id' field by default and ignoring the other plans.
The fix we propose is to look at the top-level plan of the account.analytic.account of the timesheet being created or modified, and link it to the plan it belongs to.
Note that we keep the 'account_id' ('Projects' plan) updated even if the account does not belong to this plan because this field is used in other parts of the code.
Linked PR: https://github.com/odoo/odoo/pull/139225
task-3820916
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#162213Description 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#173591 Forward-Port-Of: odoo/odoo#173543
Original PR description
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#173591 Forward-Port-Of: odoo/odoo#173543
Steps to reproduce: - Create an employee, leave job position / department empty - Add a contract (top-right of form) - Set job position / department - Set the contract to 'Running' What happens: The employee's job position / department fields stay empty Why is this an issue: The contract autofills with employee information so the same is expected of the opposite interaction. What was done: We should be fine to assume an employee's job is determined by their active contract but to
Original PR description
Steps to reproduce: - Create an employee, leave job position / department empty - Add a contract (top-right of form) - Set job position / department - Set the contract to 'Running' What happens: The employee's job position / department fields stay empty Why is this an issue: The contract autofills with employee information so the same is expected of the opposite interaction. What was done: We should be fine to assume an employee's job is determined by their active contract but to err of caution this autofill has been set NOT to overwrite the employee's current job if it is already filled in. opw-4037757 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173688 Forward-Port-Of: odoo/odoo#172886
Before this commit, rewards associated with archived products were still accessible, leading to errors when attempting to claim them due to the non-existence of the reward product. opw-4055792 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173713 Forward-Port-Of: odoo/odoo#173499
Original PR description
Before this commit, rewards associated with archived products were still accessible, leading to errors when attempting to claim them due to the non-existence of the reward product. opw-4055792 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173713 Forward-Port-Of: odoo/odoo#173499
We compute the discount amount by calculating the amount before the discount first, and then computing the discount amount from there. If the discount is 100%, we get division by 0 error. If the discount is 100%, we should compute the amount before the discount using price_unit and quantity. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173871
Original PR description
We compute the discount amount by calculating the amount before the discount first, and then computing the discount amount from there. If the discount is 100%, we get division by 0 error. If the discount is 100%, we should compute the amount before the discount using price_unit and quantity. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173871
As observed in https://github.com/odoo/odoo/pull/173442, the commit https://github.com/odoo/odoo/commit/6336366f772b18cd3731cc03f7ff3fc1eeca204a has introduced a bug for search panel filters that are based on many2many that are not groupable. Indeed, the computation of the domain image is done via _search_panel_domain_image that uses read_group and for many2many that are not groupable it is not allowed to use read_group. We fix that bug by computing the domain image via a search_read when the ma
Original PR description
As observed in https://github.com/odoo/odoo/pull/173442, the commit https://github.com/odoo/odoo/commit/6336366f772b18cd3731cc03f7ff3fc1eeca204a has introduced a bug for search panel filters that are based on many2many that are not groupable. Indeed, the computation of the domain image is done via _search_panel_domain_image that uses read_group and for many2many that are not groupable it is not allowed to use read_group. We fix that bug by computing the domain image via a search_read when the many2many is not groupable. opw-4055494 Forward-Port-Of: odoo/odoo#173898 Forward-Port-Of: odoo/odoo#173538
Fiscal position using 2 taxes including in price are not working in PoS. If you use the fiscal position only the tax should change, not the total price, as both tax are included in price. Steps to reproduce: ------------------- * Create two taxes that are included in price * Create a fiscal position matching those 2 taxes * Create a product using the first tax * Open PoS session, and add the product to the order * Price should be for example 100€ * Now change the fiscal position to the
Original PR description
Fiscal position using 2 taxes including in price are not working in PoS. If you use the fiscal position only the tax should change, not the total price, as both tax are included in price. Steps to…
Fiscal position using 2 taxes including in price are not working in PoS. If you use the fiscal position only the tax should change, not the total price, as both tax are included in price. Steps to reproduce: ------------------- * Create two taxes that are included in price * Create a fiscal position matching those 2 taxes * Create a product using the first tax * Open PoS session, and add the product to the order * Price should be for example 100€ * Now change the fiscal position to the one you created > Observation: Price of the product changed when it shouldn't have Why the fix: ------------ When computing the price of the product with a fiscal position, if the previous tax is included in price and the new one is also included in price, the price of the product shouldn't change. So instead of recomputing the price of the product with the new tax based on the previous tax excluded price. We just use the price of the product opw-3952604 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172487 Forward-Port-Of: odoo/odoo#169223
Current behavior: After settling the payment of an order, the order remains in the orders list Steps to reproduce: - Install "Point of Sale" and "Sales" apps - Start a shop session, select an order and proceed to the payment - Go back to the orders list and see the paid order still there Note: Forward the test of https://github.com/odoo/odoo/pull/171609 opw-4019204 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/
Original PR description
Current behavior: After settling the payment of an order, the order remains in the orders list Steps to reproduce: - Install "Point of Sale" and "Sales" apps - Start a shop session, select an order and proceed to the payment - Go back to the orders list and see the paid order still there Note: Forward the test of https://github.com/odoo/odoo/pull/171609 opw-4019204 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173501 Forward-Port-Of: odoo/odoo#173103
In some places, `unlink()` and `mapped()` are used on the result. To avoid error, let's return empty recordset. Examples:   --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173454
Original PR description
In some places, `unlink()` and `mapped()` are used on the result. To avoid error, let's return empty recordset. Examples:   --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173454
Steps: -Go to your /shop page. -Disable the search bar from the editor. -Configure several pricelists as selectable. Issue: When the search bar is disabled and multiple pricelists are selectable,'Sort by' dropdown does not align correctly, causing it to appear in the middle of the page instead of to the left, just after the pricelists. Fix: Applied the me-auto class to the 'Sort by' dropdown, ensuring it aligns correctly to the left within its container. opw-3994784 --- I co
Original PR description
Steps: -Go to your /shop page. -Disable the search bar from the editor. -Configure several pricelists as selectable. Issue: When the search bar is disabled and multiple pricelists are selectable,'Sort by' dropdown does not align correctly, causing it to appear in the middle of the page instead of to the left, just after the pricelists. Fix: Applied the me-auto class to the 'Sort by' dropdown, ensuring it aligns correctly to the left within its container. opw-3994784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170988
Currently, when using a company with french localization, if you try deleting lines on a draft order in the session, a new line is created to make the correction. Steps to reproduce: ------------------- * Switch to a company with french localisation * Open Pos shop session * Add products to the cart * Go to the backend * Go back to the session * Try deleting a line > Observations: A new line is added with negative quantity to cancel out the line we wanted to delete. Instead of just re
Original PR description
Currently, when using a company with french localization, if you try deleting lines on a draft order in the session, a new line is created to make the correction. Steps to reproduce:…
Currently, when using a company with french localization, if you try deleting lines on a draft order in the session, a new line is created to make the correction. Steps to reproduce: ------------------- * Switch to a company with french localisation * Open Pos shop session * Add products to the cart * Go to the backend * Go back to the session * Try deleting a line > Observations: A new line is added with negative quantity to cancel out the line we wanted to delete. Instead of just removing the first line. Why the fix: ------------ The line correction of the POS certification for the French localization is too restrictive. The law says that correction on validated orders should be made on new lines. For the order that are not validated, the lines can be changed normally. This is a backport of what will be merged in master as it is a compatible change in stable versions. This should not break the inalterability chain as you only pass through the functions `disallowLineQuantityChange()` and `can_be_merged_with()` with orders that are not locked (i.e. they have not been paid yet). Related ongoing task-id: 3874373 opw-3865724 Forward-Port-Of: odoo/odoo#173728 Forward-Port-Of: odoo/odoo#165468
Steps to reproduce the bug: - Create a storable product “P1” - Go to Operation Type > Return > Enable "Create repair from return" - Create a delivery order with one unit of "P1" and validate it - Return the delivered "P1" - Create a repair order from this return - Select "P1" as the product to repair - Save (important step) - Add any product as a part of the repair, e.g., "Part 1” - Save - Go back to the return picking Problem: The product “Part 1” is linked to the return-picking.
Original PR description
Steps to reproduce the bug: - Create a storable product “P1” - Go to Operation Type > Return > Enable "Create repair from return" - Create a delivery order with one unit of "P1" and validate it -…
Steps to reproduce the bug: - Create a storable product “P1” - Go to Operation Type > Return > Enable "Create repair from return" - Create a delivery order with one unit of "P1" and validate it - Return the delivered "P1" - Create a repair order from this return - Select "P1" as the product to repair - Save (important step) - Add any product as a part of the repair, e.g., "Part 1” - Save - Go back to the return picking Problem: The product “Part 1” is linked to the return-picking. When the "repair" button is clicked to create the repair order, the function `action_repair_return` is triggered, adding `default_picking_id` in the context to link the repair to the picking. https://github.com/odoo/odoo/blob/bee32f88d42d9b945ec7216e2496e0167d3904b4/addons/repair/models/stock_picking.py#L40 However, this context is not cleared after the creation of the repair, therefore, when creating the stock move, this picking is added to the values of the moves due to the `_add_missing_default_values` function. Despite attempting to set `default_picking_id = False` for these moves, this will be ignored because the field `picking_id` is not present in this list view. **Solution:** Using `default_picking_id` in the context to create the repair order does not seem to be a good idea. This is the third issue related to this problem; two other fixes have already been made to address the propagation of these default keys. Therefore, it seems more logical to use the `default_get` function instead to avoid bugs related to this. https://github.com/odoo/odoo/commit/e822ec35c37237a9c137771d1d7266188a1877e8 https://github.com/odoo/odoo/commit/a32fb7b3e12ddae1ef7ebd78fa4877b2dbdbe6b1 opw-[4029460](https://www.odoo.com/web#id=4029460&view_type=form&model=project.task) Forward-Port-Of: odoo/odoo#172786
Issue: ============================ There is a missing synchronization between the stock move line and stock move for manufacturing orders, by-products, and batch transfers. When clicking on the list icon and making changes in quantity in the detailed operation modal, the updates are not properly reflected. Resolution: ============================ For manufacturing and by-products, add a "quantity" field in the 'detailed operation' view so that whenever the save button is clicked, al
Original PR description
Issue: ============================ There is a missing synchronization between the stock move line and stock move for manufacturing orders, by-products, and batch transfers. When clicking on the list…
Issue: ============================ There is a missing synchronization between the stock move line and stock move for manufacturing orders, by-products, and batch transfers. When clicking on the list icon and making changes in quantity in the detailed operation modal, the updates are not properly reflected. Resolution: ============================ For manufacturing and by-products, add a "quantity" field in the 'detailed operation' view so that whenever the save button is clicked, all fields are updated properly. For batch transfers, save '_parentRecord' instead of 'model.root' when the save button is clicked. Steps to Reproduce: ============================ 1. Install the mrp and stock modules. 2. Navigate to the stock module. 3. For manufacturing, go to the manufacturing menu inside operations. For by-products, go to the by-products tab inside the manufacturing order form view. For batch transfers, go to the batch transfer menu inside operations. 4. In the form view of each, open the modal (Detailed Operations) and modify the quantity. 5. Notice the lack of synchronization between the stock move line and the stock move. Expected Result: ============================= After implementing the solution, changes in quantities should be synchronized between the stock move line and the stock move in manufacturing orders, by-products, and batch transfers. When clicking on the list icon, the quantities should be updated accurately, reflecting any changes made. Task: 3815521 Forward-Port-Of: odoo/odoo#160095
revert of https://github.com/odoo/odoo/commit/95abe082c27525c0a22a07c6457ea408163f339f it's not supposed to reach saas-17.1 and higher Forward-Port-Of: odoo/odoo#173994
Original PR description
revert of https://github.com/odoo/odoo/commit/95abe082c27525c0a22a07c6457ea408163f339f it's not supposed to reach saas-17.1 and higher Forward-Port-Of: odoo/odoo#173994