diff --git a/addons/stock/wizard/stock_picking_return.py b/addons/stock/wizard/stock_picking_return.py index f553cbe1489..fcf3f30382a 100644 --- a/addons/stock/wizard/stock_picking_return.py +++ b/addons/stock/wizard/stock_picking_return.py @@ -77,11 +77,12 @@ class ReturnPicking(models.TransientModel): @api.model def _prepare_stock_return_picking_line_vals_from_move(self, stock_move): - quantity = stock_move.product_qty - sum( - stock_move.move_dest_ids - .filtered(lambda m: m.state in ['partially_available', 'assigned', 'done']) - .mapped('move_line_ids.product_qty') - ) + quantity = stock_move.product_qty + for move in stock_move.move_dest_ids: + if move.state in ('partially_available', 'assigned'): + quantity -= sum(move.move_line_ids.mapped('product_qty')) + elif move.state in ('done'): + quantity -= move.product_qty quantity = float_round(quantity, precision_rounding=stock_move.product_uom.rounding) return { 'product_id': stock_move.product_id.id,