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
-
+
stock.move.search2
stock.move
search
@@ -1332,7 +1364,7 @@
-
+
Reception Picking Stock Moves
stock.move
ir.actions.act_window
@@ -1342,6 +1374,18 @@
+
+
+ tree
+
+
+
+
+
+ form
+
+
+