From 3c084ff4aa99b95601419912a94cbc772e9985ee Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Fri, 21 Sep 2012 11:58:21 +0530 Subject: [PATCH] [IMP] stock: solve the issue of getting state as delivered bzr revid: cha@tinyerp.com-20120921062821-jhzcvnz3k44hjs54 --- addons/stock/stock.py | 13 +++++++++++-- addons/stock/stock_view.xml | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 30bd70b9728..2d3acaae0e7 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -761,6 +761,15 @@ 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 button_cancel(self, cr, uid, ids, *args): + """ Changes state of picking to cancel. + @return: True + """ + wf_service = netsvc.LocalService("workflow") + for pick in self.browse(cr, uid, ids): + wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_cancel', cr) + return True def draft_force_assign(self, cr, uid, ids, *args): """ Confirms picking directly from draft state. @@ -1141,7 +1150,7 @@ class stock_picking(osv.osv): for move in pick.move_lines: if move.state not in ('cancel','done'): return False - if move.state=='done': + if move.state=='done' and not move.scrapped: ok = True return ok @@ -1160,7 +1169,7 @@ class stock_picking(osv.osv): if not pick.move_lines: return True for move in pick.move_lines: - if move.state == 'done': + if move.state == 'done' and not move.scrapped: raise osv.except_osv(_('Error!'), _('You cannot cancel picking because stock move is in done state!')) return True def unlink(self, cr, uid, ids, context=None): diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 83fed186f42..411c57aeede 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -754,7 +754,7 @@