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