[FIX] stock: couldn't unreserve mixed tracking stock#65057
[FIX] stock: couldn't unreserve mixed tracking stock#65057
Conversation
ea3f848 to
baf9154
Compare
addons/stock/models/stock_quant.py
Outdated
- Install stock
- Go to Inventory > Configuration > Settings and enable "Lots" and "Storage Locations"
- Create a Product tracked By Lots (i.e. Product X)
- Go to Inventory > Operations > Inventory Adjustments
- Create an Inventory Adjustment for Product X:
Product | Location | Lot/SN | Real Quantity
-------------------------------------------------------------
Product X | WH/Stock | LOT 01 | 20
Product X | WH/Stock | | 10
- Validate Inventory
- Go to Inventory > Operations > Transfers and create one:
* Source Location: WH/Stock
* Destination Location: WH/Stock/Shelf1
* Operation Type: Internal Transfers
* Operations:
[Product: Product X, Initial Demand: 25]
- Save Transfer, Mark As Todo and Check availability
- Click on list icon of Operation line for Product X to display Detailed Operations
- 20 units of LOT 01 and 5 units without lot have been reserved
- Set LOT 01 for the 5 reserved units without lot and confirm
- Open Detailed Operations again
- There are now 20 units of LOT 01 and 5 units of LOT 01
- Remove the row with 5 units and confirm
- Check availability and open Detailed Operation
- There is now only a row with 25 reserved units of LOT 01
- Unreserve
The following errror is raised:
"It is not possible to unreserve more products of P than you have in stock."
It happens because the system is not able to manage quants with lots and
wihtout lots at the same time. When modifying the move line to 25
reserved units. It's composed of 20 quants with lot and 5 quants without
lot. And when unreserving it will check if there is a quants with 25
units with the lot and if it's not found 25 units without lot. But never
25 units of quants with lots and without lots.
opw-2419444
Close odoo#64497
baf9154 to
a05f134
Compare
|
robodoo r+ |
- Install stock
- Go to Inventory > Configuration > Settings and enable "Lots" and "Storage Locations"
- Create a Product tracked By Lots (i.e. Product X)
- Go to Inventory > Operations > Inventory Adjustments
- Create an Inventory Adjustment for Product X:
Product | Location | Lot/SN | Real Quantity
-------------------------------------------------------------
Product X | WH/Stock | LOT 01 | 20
Product X | WH/Stock | | 10
- Validate Inventory
- Go to Inventory > Operations > Transfers and create one:
* Source Location: WH/Stock
* Destination Location: WH/Stock/Shelf1
* Operation Type: Internal Transfers
* Operations:
[Product: Product X, Initial Demand: 25]
- Save Transfer, Mark As Todo and Check availability
- Click on list icon of Operation line for Product X to display Detailed Operations
- 20 units of LOT 01 and 5 units without lot have been reserved
- Set LOT 01 for the 5 reserved units without lot and confirm
- Open Detailed Operations again
- There are now 20 units of LOT 01 and 5 units of LOT 01
- Remove the row with 5 units and confirm
- Check availability and open Detailed Operation
- There is now only a row with 25 reserved units of LOT 01
- Unreserve
The following errror is raised:
"It is not possible to unreserve more products of P than you have in stock."
It happens because the system is not able to manage quants with lots and
wihtout lots at the same time. When modifying the move line to 25
reserved units. It's composed of 20 quants with lot and 5 quants without
lot. And when unreserving it will check if there is a quants with 25
units with the lot and if it's not found 25 units without lot. But never
25 units of quants with lots and without lots.
opw-2419444
Close #64497
closes #65057
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
|
This pull request has forward-port PRs awaiting action (not merged or closed): #65524 |
4 similar comments
|
This pull request has forward-port PRs awaiting action (not merged or closed): #65524 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #65524 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #65524 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #65524 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #66029 |
2 similar comments
|
This pull request has forward-port PRs awaiting action (not merged or closed): #66029 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #66029 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #66355 |
3 similar comments
|
This pull request has forward-port PRs awaiting action (not merged or closed): #66355 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #66355 |
|
This pull request has forward-port PRs awaiting action (not merged or closed): #66355 |
|
I believe this should be reverted. It creates more problems than it solves. I can see the case where a product was once untracked and at some point in time it changed to tracking (either by lots or serial). Exactly as the above case, when applying this fix and have such a product (that was once untracked and at some point enabled tracking) creating a move with a lot and negative quantity does NOT create a new quant but adds up to the quant that was created without lot, due to L:206-207 at addons/stock/models/stock_quant.py The result is only one quant is created for the lot (instead of two) and there is not quantity balance (aka sum = 0) for the quants of the lot. |

Install stock
Go to Inventory > Configuration > Settings and enable "Lots" and "Storage Locations"
Create a Product tracked By Lots (i.e. Product X)
Go to Inventory > Operations > Inventory Adjustments
Create an Inventory Adjustment for Product X:
Product | Location | Lot/SN | Real Quantity
[Product: Product X, Initial Demand: 25]
The following errror is raised:
"It is not possible to unreserve more products of P than you have in stock."
It happens because the system is not able to manage quants with lots and
wihtout lots at the same time. When modifying the move line to 25
reserved units. It's composed of 20 quants with lot and 5 quants without
lot. And when unreserving it will check if there is a quants with 25
units with the lot and if it's not found 25 units without lot. But never
25 units of quants with lots and without lots.
opw-2419444
Close #64497