From cc1077892729d0c691aef4b73261771cb2535ebc Mon Sep 17 00:00:00 2001 From: Florent de Labarre Date: Sat, 24 Feb 2018 01:27:30 +0100 Subject: [PATCH] [IMP] stock: allow inherance to find a picking Closes #23300 --- addons/stock/models/stock_move.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index 043c4d3e80c..a75d7cbee24 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -645,6 +645,17 @@ class StockMove(models.Model): } } + def _search_picking_for_assignation(self): + self.ensure_one() + picking = self.env['stock.picking'].search([ + ('group_id', '=', self.group_id.id), + ('location_id', '=', self.location_id.id), + ('location_dest_id', '=', self.location_dest_id.id), + ('picking_type_id', '=', self.picking_type_id.id), + ('printed', '=', False), + ('state', 'in', ['draft', 'confirmed', 'waiting', 'partially_available', 'assigned'])], limit=1) + return picking + def _assign_picking(self): """ Try to assign the moves to an existing picking that has not been reserved yet and has the same procurement group, locations and picking @@ -653,13 +664,7 @@ class StockMove(models.Model): Picking = self.env['stock.picking'] for move in self: recompute = False - picking = Picking.search([ - ('group_id', '=', move.group_id.id), - ('location_id', '=', move.location_id.id), - ('location_dest_id', '=', move.location_dest_id.id), - ('picking_type_id', '=', move.picking_type_id.id), - ('printed', '=', False), - ('state', 'in', ['draft', 'confirmed', 'waiting', 'partially_available', 'assigned'])], limit=1) + picking = move._search_picking_for_assignation() if picking: if picking.partner_id.id != move.partner_id.id or picking.origin != move.origin: # If a picking is found, we'll append `move` to its move list and thus its