[FIX] account: Cancel of invoice throws error, validate of move_id is invalid

lp bug: https://launchpad.net/bugs/746544 fixed

bzr revid: ara@tinyerp.com-20110401124804-rvbqlbaosphsqv8c
This commit is contained in:
ARA (OpenERP)
2011-04-01 18:18:04 +05:30
parent 838512af0b
commit 2f4a82f7f6
+12 -1
View File
@@ -1085,15 +1085,26 @@ class account_move_line(osv.osv):
if context is None:
context = {}
move_obj = self.pool.get('account.move')
analytic_obj = self.pool.get('account.analytic.line')
self._update_check(cr, uid, ids, context)
result = False
move_ids = set()
analytic_ids = set()
move_line_ids = set()
for line in self.browse(cr, uid, ids, context=context):
move_ids.add(line.move_id.id)
context['journal_id'] = line.journal_id.id
context['period_id'] = line.period_id.id
result = super(account_move_line, self).unlink(cr, uid, [line.id], context=context)
move_line_ids.add(line.id)
for obj in line.analytic_lines:
analytic_ids.add(obj.id)
analytic_ids = list(analytic_ids)
move_ids = list(move_ids)
if analytic_ids:
analytic_obj.unlink(cr,uid, analytic_ids, context=context)
result = super(account_move_line, self).unlink(cr, uid, list(move_line_ids), context=context)
if check and move_ids:
move_obj.validate(cr, uid, move_ids, context=context)
return result