diff options
| author | Adrien Widart <awt@odoo.com> | 2021-04-23 09:40:58 +0000 |
|---|---|---|
| committer | Adrien Widart <awt@odoo.com> | 2021-04-30 12:06:28 +0000 |
| commit | 02a68278a9af2c477cc9a30716feabb0b533b7e7 (patch) | |
| tree | 045ee4aa09364734cc560beb7bd6c8e6233fbbcb /addons | |
| parent | 60b97ff46a790c2c6c490d78f6d1be103ff3182f (diff) | |
[FIX] point_of_sale: use lot's location for SML's location source
When selling a tracked product that comes from a specific place in the
warehouse, the module will ignore this information and set the parent
warehouse as source location.
To reproduce the error:
(Use demo data)
1. In Settings, enable "Multi-Warehouses"
2. Create a product P:
- Product Type: Storable Product
- Available in Pos: True
- Tracking: By Unique Serial Number
3. Update its quantity:
- Location: WH/Stock/Shelf 1
- Serial Number: USN01
- Qty: 1
4. Start a POS session
5. Sell P
- Enter the same serial number
6. Go back to quantity update page for product P
Error: The quantity for "WH/Stock/Shelf 1, USN01" is still 1, it should
be 0. Moreover, a new line appeared: "WH/Stock, USN01, -1" which is
incorrect. The POS module considered that the product sold came from
WH/Stock instead of WH/Stock/Shelf 1.
OPW-2473002
closes odoo/odoo#70169
X-original-commit: dd62f84e32b84adfab86f1e03a647ffea7b3d0e1
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/point_of_sale/models/stock_picking.py | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/addons/point_of_sale/models/stock_picking.py b/addons/point_of_sale/models/stock_picking.py index 60f7bd59f0a..b40f6cb08df 100644 --- a/addons/point_of_sale/models/stock_picking.py +++ b/addons/point_of_sale/models/stock_picking.py @@ -117,8 +117,10 @@ class StockPicking(models.Model): 'product_id': line.product_id.id, 'name': lot.lot_name, }) + quant = existing_lot.quant_ids.filtered(lambda q: q.quantity > 0.0 or q.location_id.parent_path.startswith(move.location_id.parent_path))[-1:] ml_vals.update({ 'lot_id': existing_lot.id, + 'location_id': quant.location_id.id or move.location_id.id }) else: ml_vals.update({ |
