Fix bug similiar phone number

This commit is contained in:
Abdul Aziz Amrullah 2026-06-12 14:17:42 +07:00
parent 9f6bede811
commit 464fb9a130

11
app.py
View File

@ -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)
for p in partner_ids:
if normalize_phone(p.get('phone')) == norm_phone:
existing_partner = p
partner_id = existing_partner['id'] 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', '')