From 09041f1ab7975992dd6fbb9adaca1f0e69f45306 Mon Sep 17 00:00:00 2001 From: Carlos Dauden Date: Wed, 2 Aug 2017 18:46:26 +0200 Subject: [PATCH] [IMP] account_banking_mandate: Changes suggested (cherry picked from commit 45c1cc2) --- account_banking_mandate/models/res_partner.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/account_banking_mandate/models/res_partner.py b/account_banking_mandate/models/res_partner.py index af4d6927f..f59a7ea73 100644 --- a/account_banking_mandate/models/res_partner.py +++ b/account_banking_mandate/models/res_partner.py @@ -15,7 +15,7 @@ class ResPartner(models.Model): valid_mandate_id = fields.Many2one( comodel_name='account.banking.mandate', compute='compute_valid_mandate_id', - string='Valid Mandate') + string='First Valid Mandate') @api.multi def _compute_mandate_count(self): @@ -29,14 +29,15 @@ class ResPartner(models.Model): @api.multi def compute_valid_mandate_id(self): - # Dict to reduce impact with "bug" that process all partners related + # Dict for reducing the duplicated searches on parent/child partners mandates_dic = {} for partner in self: - commercial_partner_id = partner.commercial_partner_id + commercial_partner_id = partner.commercial_partner_id.id if commercial_partner_id in mandates_dic: partner.valid_mandate_id = mandates_dic[commercial_partner_id] else: - mandate_id = partner.commercial_partner_id.bank_ids.mapped( - 'mandate_ids').filtered(lambda x: x.state == 'valid').id - partner.valid_mandate_id = mandate_id - mandates_dic[commercial_partner_id] = mandate_id + mandates = partner.commercial_partner_id.bank_ids.mapped( + 'mandate_ids').filtered(lambda x: x.state == 'valid') + first_valid_mandate_id = mandates[:1].id + partner.valid_mandate_id = first_valid_mandate_id + mandates_dic[commercial_partner_id] = first_valid_mandate_id