diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 7f74511491f..7e518828615 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -497,7 +497,25 @@ class stock_picking(osv.osv):
self.pool.get('stock.move').force_assign(cr, uid, move_ids)
wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
return True
-
+
+ def draft_force_assign(self, cr, uid, ids, *args):
+ wf_service = netsvc.LocalService("workflow")
+ for pick in self.browse(cr, uid, ids):
+ wf_service.trg_validate(uid, 'stock.picking', pick.id,
+ 'button_confirm', cr)
+ move_ids = [x.id for x in pick.move_lines]
+ self.pool.get('stock.move').force_assign(cr, uid, move_ids)
+ wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
+ return True
+
+ def draft_validate(self, cr, uid, ids, *args):
+ wf_service = netsvc.LocalService("workflow")
+ self.draft_force_assign(cr, uid, ids)
+ for pick in self.browse(cr, uid, ids):
+ self.action_move(cr, uid, [pick.id])
+ wf_service.trg_validate(uid, 'stock.picking', pick.id , 'button_done', cr)
+ return True
+
def cancel_assign(self, cr, uid, ids, *args):
wf_service = netsvc.LocalService("workflow")
for pick in self.browse(cr, uid, ids):
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 6ddc37e2f63..22bed36de57 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -550,9 +550,10 @@
-
+
-
+
+
@@ -638,9 +639,10 @@
-
+
-
+
+
@@ -806,9 +808,10 @@
-
+
-
+
+
@@ -975,9 +978,10 @@
-
+
-
+
+