diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py index 9ea6f902f7f..8a7d758db37 100644 --- a/addons/account/models/partner.py +++ b/addons/account/models/partner.py @@ -880,12 +880,10 @@ class ResPartner(models.Model): return None return self.env['res.partner'].search(domain + extra_domain, limit=1) - company = company or self.env.company for search_method in (search_with_vat, search_with_domain, search_with_phone_mail, search_with_name): - for extra_domain in ([*self.env['res.partner']._check_company_domain(company), ('company_id', '!=', False)], []): - partner = search_method(extra_domain) - if partner and len(partner) == 1: - return partner + partner = search_method(self.env['res.partner']._check_company_domain(company or self.env.company)) + if partner and len(partner) == 1: + return partner return self.env['res.partner'] def _merge_method(self, destination, source): diff --git a/addons/account_edi_ubl_cii/models/account_edi_common.py b/addons/account_edi_ubl_cii/models/account_edi_common.py index b5352db4ee7..f4b2c3e35c0 100644 --- a/addons/account_edi_ubl_cii/models/account_edi_common.py +++ b/addons/account_edi_ubl_cii/models/account_edi_common.py @@ -352,7 +352,9 @@ class AccountEdiCommon(models.AbstractModel): def _import_retrieve_and_fill_partner(self, invoice, name, phone, mail, vat, country_code=False): """ Retrieve the partner, if no matching partner is found, create it (only if he has a vat and a name) """ - invoice.partner_id = self.env['res.partner']._retrieve_partner(name=name, phone=phone, mail=mail, vat=vat) + invoice.partner_id = self.env['res.partner'] \ + .with_company(invoice.company_id) \ + ._retrieve_partner(name=name, phone=phone, mail=mail, vat=vat) if not invoice.partner_id and name and vat: partner_vals = {'name': name, 'email': mail, 'phone': phone} country = self.env.ref(f'base.{country_code.lower()}', raise_if_not_found=False) if country_code else False