From cb85ff64ca8e62576d8118a82ab3fbc6fe272e75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= <> Date: Thu, 24 Mar 2011 15:26:31 +0530 Subject: [PATCH] [FIX] Account: dog slow invoice cancel because validate for every line; patch included lp bug: https://launchpad.net/bugs/740353 fixed bzr revid: ara@tinyerp.com-20110324095631-pgup0qjn8s9jar0f --- addons/account/account_move_line.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index faf6b1cd897..880d92fe8b3 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -1087,12 +1087,15 @@ class account_move_line(osv.osv): move_obj = self.pool.get('account.move') self._update_check(cr, uid, ids, context) result = False + move_ids = [] for line in self.browse(cr, uid, ids, context=context): + if line.move_id not in move_ids: + move_ids.append(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) - if check: - move_obj.validate(cr, uid, [line.move_id.id], context=context) + if check: + move_obj.validate(cr, uid, move_ids, context=context) return result def _check_date(self, cr, uid, vals, context=None, check=True):