Fix bug similiar phone number
This commit is contained in:
parent
9f6bede811
commit
464fb9a130
13
app.py
13
app.py
@ -224,13 +224,18 @@ def migrate_customer(customer_id):
|
|||||||
existing_partner = None
|
existing_partner = None
|
||||||
|
|
||||||
if norm_phone:
|
if norm_phone:
|
||||||
|
# Fetch potential matches using ilike to account for Odoo's formatting (spaces, dashes, country codes)
|
||||||
partner_ids = models.execute_kw(ODOO_DB, uid, ODOO_PASS, 'res.partner', 'search_read',
|
partner_ids = models.execute_kw(ODOO_DB, uid, ODOO_PASS, 'res.partner', 'search_read',
|
||||||
[[('phone', 'ilike', norm_phone)]],
|
[[('phone', 'ilike', norm_phone)]],
|
||||||
{'fields': ['name', 'phone', 'email', 'gender', 'birth_date', 'city', 'total_spend', 'membership_level_id'], 'limit': 1}
|
{'fields': ['name', 'phone', 'email', 'x_studio_gender', 'x_studio_birth_date', 'city', 'total_spend', 'membership_level_id']}
|
||||||
)
|
)
|
||||||
if partner_ids:
|
|
||||||
existing_partner = partner_ids[0]
|
# Filter strictly by matching the normalized phone to prevent substring matches (e.g. 8123 vs 81234)
|
||||||
partner_id = existing_partner['id']
|
for p in partner_ids:
|
||||||
|
if normalize_phone(p.get('phone')) == norm_phone:
|
||||||
|
existing_partner = p
|
||||||
|
partner_id = existing_partner['id']
|
||||||
|
break
|
||||||
|
|
||||||
# 2. Find loyalty.program based on level
|
# 2. Find loyalty.program based on level
|
||||||
level = customer.get('level', '')
|
level = customer.get('level', '')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user