This question has been flagged

I am trying to understand when pack_operations_ids are used and when move_lines are used.

I do not understand what pack_operations_ids represents from a functional point of view.

Avatar
Discard
Best Answer

Hello,

IMHO:

The move_lines describes what should happen, and the pack_operation_ids describes how that happened.

e.g:

If there is a PO requesting 5 units of X product.

this will generate a picking with stock move [not yet a pack_operation_ids created] with 5 units of the X product.

assume that we received just 3 units of it. After confirming the transfer.  a line of pack_operation_ids will be created with the transferred qty '3' and the stock move will be updated from 5 to 3 and a new picking will be created with the remaining qty '2'.

For the new picking that with move with 2 qty. Assume we do a transfer with splitting 'we tracking by lot/serial for example'. So we split the 2 qty into to serials; so after confirmation the move will remain the same 'with 2 qty' and we have two lines of pack_operation_ids for our splitting.

Actually there is a link between the stock.moves and stock.pack.operations that implemented by the class stock_move_operation_link . So there may be several pack operations linked to one stock move. I think the stock operation used to enhance quantities computations. Also you can notice that in the picking printing the report will check if there is a pack_operation_ids if yes then it'll print them instead of move_lines ...

I know this may not be  the perfect answer, and someone else can illustrate it with more information.

But I hope it can helps you to grasp a little bit .

 

 

Avatar
Discard
Author

Thanks Ahmed, it is a clear and concise explanation. It definitively helps to understand why there is always move_lines and pack_operations_ids when dealing with stock_picking.