trytond-patches/issue10467.diff

35 lines
1.2 KiB
Diff

Index: stock.py
===================================================================
--- ./modules/stock_lot/stock.py
+++ ./modules/stock_lot/stock.py
@@ -80,6 +80,19 @@
for move in moves:
move.check_lot()
+ @classmethod
+ def assign_try(cls, moves, grouping=('product',)):
+ lot_moves = []
+ product_moves = []
+ for move in moves:
+ if move.lot:
+ lot_moves.append(move)
+ else:
+ product_moves.append(move)
+ return (super(Move, cls).assign_try(lot_moves,
+ grouping=('product', 'lot')) and super(Move, cls).assign_try(
+ product_moves, grouping=grouping))
+
class ShipmentIn:
__name__ = 'stock.shipment.in'
@@ -121,6 +134,8 @@
outgoing_moves = outgoing_by_product[move.product.id]
while outgoing_moves and quantity > 0:
out_move = outgoing_moves.pop()
+ if out_move.state == 'cancel':
+ continue
out_quantity = Uom.compute_qty(out_move.uom,
out_move.quantity, out_move.product.default_uom,
round=False)