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 @@