From c5bbee161e97b1586383c70f48b47e34f7db6b01 Mon Sep 17 00:00:00 2001 From: lreficent Date: Wed, 27 Dec 2017 15:36:43 +0100 Subject: [PATCH] fix consider operations --- stock_inventory_lockdown/models/stock_move.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/stock_inventory_lockdown/models/stock_move.py b/stock_inventory_lockdown/models/stock_move.py index e84875239..08834c29f 100644 --- a/stock_inventory_lockdown/models/stock_move.py +++ b/stock_inventory_lockdown/models/stock_move.py @@ -17,6 +17,12 @@ class StockMove(models.Model): return self.reserved_quant_ids.mapped('location_id') + \ self.split_from.reserved_quant_ids.mapped('location_id') + @api.multi + def _get_dest_locations(self): + self.ensure_one() + return self.linked_move_operation_ids.mapped( + 'operation_id.location_dest_id') + @api.constrains('location_dest_id', 'location_id', 'state') def _check_locked_location(self): for move in self.filtered(lambda m: m.state != 'draft'): @@ -24,10 +30,12 @@ class StockMove(models.Model): 'stock.inventory']._get_locations_open_inventories( [move.location_dest_id.id, move.location_id.id]) reserved_locs = move._get_reserved_locations() + dest_locs = move._get_dest_locations() if (locked_location_ids and move.product_id.property_stock_inventory not in [ move.location_dest_id, move.location_id] and (move.location_dest_id in locked_location_ids or + any([l in locked_location_ids for l in dest_locs]) or any([l in locked_location_ids for l in reserved_locs]))): location_names = locked_location_ids.mapped('complete_name') raise ValidationError(