diff --git a/modules/sale_supply/sale.py b/modules/sale_supply/sale.py index f30847dffa..90c434d0a5 100644 --- a/modules/sale_supply/sale.py +++ b/modules/sale_supply/sale.py @@ -212,9 +212,14 @@ class Line(metaclass=PoolMeta): moves = set() for move in self.moves: - if isinstance(move.shipment, ShipmentOut): - for inv_move in move.shipment.inventory_moves: - if inv_move.product.id == self.product.id: + shipment = move.shipment + if isinstance(shipment, ShipmentOut): + if shipment.warehouse_storage == shipment.warehouse_output: + inventory_moves = shipment.outgoing_moves + else: + inventory_moves = shipment.inventory_moves + for inv_move in inventory_moves: + if inv_move.product == self.product: moves.add(inv_move) to_write = [] to_assign = [] diff --git a/modules/sale_supply/stock.py b/modules/sale_supply/stock.py index 4d2494489b..2dda3b319e 100644 --- a/modules/sale_supply/stock.py +++ b/modules/sale_supply/stock.py @@ -47,7 +47,11 @@ class ShipmentIn(metaclass=PoolMeta): ('purchase_request.origin', 'like', 'sale.sale,%'), ]) pbl = defaultdict(lambda: defaultdict(int)) - for move in filter(filter_func, self.inventory_moves): + if self.warehouse_storage == self.warehouse_input: + inventory_moves = self.incoming_moves + else: + inventory_moves = self.inventory_moves + for move in filter(filter_func, inventory_moves): pbl[move.product][get_key(move)] += move.internal_quantity for sale_line in sale_lines: sale_line.assign_supplied(