Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FW][FIX] sale_management: dispense temp cache records #159628

Conversation

fw-bot
Copy link
Contributor

@fw-bot fw-bot commented Mar 28, 2024

Current behavior:
If a recurring sale order has an associated sale order option and the recurring plan of the order is changed, a trace back occurs.

Expected behavior:
The recurring plan can be changed as it ordinarily would.

Steps to reproduce:

  1. Add a recurring product to a sale order

  2. Add an optional recurring product to the order

  3. Try to change the recurring plan of the order to encounter the trace back

Cause of the issue:
This flow causes some 'phantom' sale order lines to have their price recalculated (phantom because they have no price, qty, currency, nor order_id field values). During this recalculation a currency_id is expected either in the line itself or in the sale order it is a part of. Because there is no value for either of these, it fails the ensure_one() method in the sequence (0 vals, expects 1).

The phantom lines are created in the sale.order.option model in the sale_management module, in _compute_price_unit() and _compute_discount().

Fix:
Call invalidate_recorset(flush=False) on these cached records at the end of the methods in which they are created.

Test added in https://github.com/odoo/enterprise/pull/58264

opw-3754297

Forward-Port-Of: #158950
Forward-Port-Of: #157515

@robodoo
Copy link
Contributor

robodoo commented Mar 28, 2024

@fw-bot
Copy link
Contributor Author

fw-bot commented Mar 28, 2024

This PR targets saas-17.1 and is part of the forward-port chain. Further PRs will be created up to master.

More info at https://github.com/odoo/odoo/wiki/Mergebot#forward-port

@robodoo robodoo added the forwardport This PR was created by @fw-bot label Mar 28, 2024
@C3POdoo C3POdoo added the OE the report is linked to a support ticket (opw-...) label Mar 28, 2024
@robodoo
Copy link
Contributor

robodoo commented Apr 2, 2024

@ethanrobv linked pull request(s) odoo/enterprise#59614 not ready. Linked PRs are not staged until all of them are ready.

@fw-bot
Copy link
Contributor Author

fw-bot commented Apr 11, 2024

@ethanrobv child PR #159661 was modified / updated and has become a normal PR. This PR (and any of its parents) will need to be merged independently as approvals won't cross.

**Current behavior:**
If a recurring sale order has an associated sale order option
and the recurring plan of the order is changed, a trace back
occurs.

**Expected behavior:**
The recurring plan can be changed as it ordinarily would.

**Steps to reproduce:**
1. Add a recurring product to a sale order

2. Add an optional recurring product to the order

3. Try to change the recurring plan of the order to encounter
     the trace back

**Cause of the issue:**
This flow causes some 'phantom' sale order lines to have their
price recalculated (phantom because they have no price, qty,
currency, nor order_id field values). During this recalculation
a currency_id is expected either in the line itself or in the
sale order it is a part of. Because there is no value for either
of these, it fails the ensure_one() method in the sequence
(0 vals, expects 1).

The phantom lines are created in the `sale.order.option` model
in the `sale_management` module, in `_compute_price_unit()` and
`_compute_discount()`.

**Fix:**
Call `invalidate_recorset(flush=False)` on these cached records
at the end of the methods in which they are created.

opw-3754297

X-original-commit: c6842f1
@ethanrobv ethanrobv force-pushed the saas-17.1-16.0-opw-3754297-recurring-order-with-option-change-plan-etvi-5aHw-fw branch from d12676a to 898a919 Compare April 12, 2024 07:58
@fw-bot
Copy link
Contributor Author

fw-bot commented Apr 12, 2024

@ethanrobv this PR was modified / updated and has become a normal PR. It should be merged the normal way (via @robodoo)

@ethanrobv ethanrobv closed this Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
forwardport This PR was created by @fw-bot OE the report is linked to a support ticket (opw-...)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants