=== modified file 'mrp/mrp.py' --- mrp/mrp.py 2010-09-14 11:52:06 +0000 +++ mrp/mrp.py 2010-11-19 11:26:11 +0000 @@ -513,7 +513,7 @@ (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], === modified file 'stock/stock.py' --- stock/stock.py 2010-10-12 20:26:33 +0000 +++ stock/stock.py 2010-11-19 14:03:14 +0000 @@ -1324,6 +1324,7 @@ 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)) @@ -1341,6 +1342,9 @@ # # 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: @@ -1422,10 +1426,11 @@ '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):