From 8b2e2d2a3a0e8e2bea76dfe32454d3a746220cd1 Mon Sep 17 00:00:00 2001 From: Ronald Portier Date: Wed, 30 Mar 2022 10:47:12 +0200 Subject: [PATCH] [IMP] *_guess_partner: Also try to check on transaction['name'] --- .../models/account_bank_statement_import.py | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/account_bank_statement_import_guess_partner/models/account_bank_statement_import.py b/account_bank_statement_import_guess_partner/models/account_bank_statement_import.py index 4b2eff8a..be485fea 100644 --- a/account_bank_statement_import_guess_partner/models/account_bank_statement_import.py +++ b/account_bank_statement_import_guess_partner/models/account_bank_statement_import.py @@ -23,16 +23,16 @@ class AccountBankStatementImport(models.TransientModel): """Try to find partner by searching invoice with reference.""" if transaction.get("partner_id", False): return - if not transaction.get("ref", False): - return - ref = transaction["ref"] invoice_model = self.env["account.move"] - # We search each possibility in a separate statement, to prioritize - # invoice_origin over ref, and ref over name. - invoice = invoice_model.search([("invoice_origin", "=", ref)], limit=1) - if not invoice: - invoice = invoice_model.search([("ref", "=", ref)], limit=1) - if not invoice: - invoice = invoice_model.search([("name", "=", ref)], limit=1) - if invoice: - transaction["partner_id"] = invoice.partner_id.id + invoice = None + transaction_keys = ["ref", "name"] + invoice_fields = ["invoice_origin", "ref", "name"] + for key in transaction_keys: + value = transaction.get(key, False) + if not value: + continue + for fieldname in invoice_fields: + invoice = invoice_model.search([(fieldname, "=", value)], limit=1) + if invoice: + transaction["partner_id"] = invoice.partner_id.id + return