From 0e25692b549a3190706d76f2f1d54f7e8f7c82db Mon Sep 17 00:00:00 2001 From: pilarvargas-tecnativa Date: Fri, 28 Nov 2025 12:02:53 +0100 Subject: [PATCH] [FIX] partner_event: prioritize attendee partner by commercial partner When searching for attendee_partner_id by email, if the registration already has a partner_id assigned, first search within its commercial_partner_id group (parent + children). This avoids selecting an unrelated partner sharing the same email in other companies or contact groups. TT59509 --- partner_event/models/event_registration.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/partner_event/models/event_registration.py b/partner_event/models/event_registration.py index fd5d47451..29693b614 100644 --- a/partner_event/models/event_registration.py +++ b/partner_event/models/event_registration.py @@ -40,9 +40,17 @@ def _update_attendee_partner_id(self, vals): Event = self.env["event.event"] # Look for a partner with that email email = vals.get("email").replace("%", "").replace("_", "\\_") - attendee_partner = Partner.search( - [("email", "=ilike", email)], limit=1, order="id" - ) + email_domain = [("email", "=ilike", email)] + partner_id = vals.get("partner_id") + attendee_partner = False + if partner_id: + commercial_partner = Partner.browse(partner_id).commercial_partner_id + domain = [ + ("commercial_partner_id", "=", commercial_partner.id) + ] + email_domain + attendee_partner = Partner.search(domain, limit=1, order="id") + if not attendee_partner: + attendee_partner = Partner.search(email_domain, limit=1, order="id") event = Event.browse() if vals.get("event_id"): event = Event.browse(vals["event_id"])