[FIX] stock: put in pack and unreserve

- Create a product P, tracked by lot
- Add some stock with a lot
- Create an outgoing picking
- Set 10 units of P
- Set 2 done, Put in Pack
- Unreserve

An error occurs: 'It is not possible to unreserve more products of P
than you have in stock.'

It happens because the `lot_id` is removed from the copied
`stock.move.line`.

Commit eac8c06e2233d93e0b1a520e makes sense for incoming pickings, but
not for internal or outgoing transfers.

opw-2288208

closes odoo/odoo#54355

X-original-commit: ed738fb56ffe84f3af08b84e429db916a5e560b6
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
Nicolas Martinelli
2020-07-10 17:13:01 +00:00
parent 569e70c80e
commit 6fcbcde823
+5 -4
View File
@@ -1248,10 +1248,11 @@ class Picking(models.Model):
new_move_line = ml.copy(
default={'product_uom_qty': 0, 'qty_done': ml.qty_done})
vals = {'product_uom_qty': quantity_left_todo, 'qty_done': 0.0}
if ml.lot_id:
vals['lot_id'] = False
if ml.lot_name:
vals['lot_name'] = False
if pick.picking_type_id.code == 'incoming':
if ml.lot_id:
vals['lot_id'] = False
if ml.lot_name:
vals['lot_name'] = False
ml.write(vals)
new_move_line.write({'product_uom_qty': done_to_keep})
move_lines_to_pack |= new_move_line