From: Jay (OpenERP) Date: Wed, 24 Nov 2010 18:09:24 +0000 (+0530) Subject: [FIX] MRP/STOCK : Completed movies should not be re-considered while completing produ... X-Git-Url: http://git.inspyration.org/?a=commitdiff_plain;h=caff9161e4b0c904348804b5e272438886d642e4;p=odoo%2Fodoo.git [FIX] MRP/STOCK : Completed movies should not be re-considered while completing production order [Maintenance case 421] lp bug: https://launchpad.net/bugs/677437 fixed bzr revid: jvo@tinyerp.com-20101124180924-2c9157wv4tn1fd97 --- diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index f500d4f..21b6d28 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -513,7 +513,7 @@ class mrp_production(osv.osv): (res.id, move.id)) # move_ids.append(res.id) vals= {'state':'confirmed'} - new_moves = [x.id for x in production.move_created_ids] + new_moves = [x.id for x in production.move_created_ids if x.state not in ['done','cancel']] self.pool.get('stock.move').write(cr, uid, new_moves, vals) if not production.date_finnished: self.write(cr, uid, [production.id], diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 64d9467..db83331 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1342,6 +1342,7 @@ class stock_move(osv.osv): def action_done(self, cr, uid, ids, context=None): track_flag = False + move_ids = [] for move in self.browse(cr, uid, ids): 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)) @@ -1359,6 +1360,9 @@ class stock_move(osv.osv): # # Accounting Entries # + if move.state in ['done','cancel']: + continue + move_ids.append(move.id) acc_src = None acc_dest = None if move.location_id.account_id: @@ -1440,10 +1444,11 @@ class stock_move(osv.osv): 'line_id': lines, 'ref': ref, }) - self.write(cr, uid, ids, {'state': 'done', 'date_planned': time.strftime('%Y-%m-%d %H:%M:%S')}) - wf_service = netsvc.LocalService("workflow") - for id in ids: - wf_service.trg_trigger(uid, 'stock.move', id, cr) + if move_ids: + self.write(cr, uid, move_ids, {'state': 'done', 'date_planned': time.strftime('%Y-%m-%d %H:%M:%S')}) + wf_service = netsvc.LocalService("workflow") + for id in move_ids: + wf_service.trg_trigger(uid, 'stock.move', id, cr) return True def unlink(self, cr, uid, ids, context=None):