From 2f4a82f7f6318a9f2bfbfae0c056731209f00e5c Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Fri, 1 Apr 2011 18:18:04 +0530 Subject: [PATCH] [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 --- addons/account/account_move_line.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 83a67df9178..e5c06213061 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -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