diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 7848dc2551e..e9d302ed287 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1340,7 +1340,9 @@ class stock_move(osv.osv): def action_done(self, cr, uid, ids, context=None): track_flag = False + pickings = {} for move in self.browse(cr, uid, ids): + pickings[move.picking_id.id] = True if move.move_dest_id.id and (move.state != 'done'): cr.execute('insert into stock_move_history_ids (parent_id,child_id) values (%s,%s)', (move.id, move.move_dest_id.id)) if move.move_dest_id.state in ('waiting', 'confirmed'): @@ -1439,6 +1441,10 @@ class stock_move(osv.osv): 'ref': ref, }) self.write(cr, uid, ids, {'state': 'done', 'date_planned': time.strftime('%Y-%m-%d %H:%M:%S')}) + for pick in self.pool.get('stock.picking').browse(cr, uid, pickings.keys()): + if all(move.state == 'done' for move in pick.move_lines): + self.pool.get('stock.picking').write(cr, uid, [pick.id], {'state': 'done'}) + wf_service = netsvc.LocalService("workflow") for id in ids: wf_service.trg_trigger(uid, 'stock.move', id, cr) diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index b99ad857f38..ee0110f7aba 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -1266,11 +1266,11 @@ - ==================================== + ==================================== Reception Picking (By Stock Move) ==================================== - + stock.move.tree2 stock.move tree @@ -1294,25 +1294,57 @@ - + stock.move.form2 stock.move form
- - - - - - - + + + + + + + + + + + + + + + + + + + + + +