diff --git a/app.py b/app.py index af5d915..6e3f17d 100644 --- a/app.py +++ b/app.py @@ -234,7 +234,21 @@ def migrate_customer(customer_id): # 2. Find loyalty.program based on level level = customer.get('level', '') - program_ids = models.execute_kw(ODOO_DB, uid, ODOO_PASS, 'loyalty.program', 'search', [[('name', 'ilike', level)]]) + level_map = { + 'Silver': 'Membership Silver', + 'Gold': 'Membership Gold', + 'Platinum': 'Membership Platinum' + } + target_program_name = level_map.get(level, f"Membership {level}") + + # 1. Search by exact mapped name + program_ids = models.execute_kw(ODOO_DB, uid, ODOO_PASS, 'loyalty.program', 'search', [[('name', '=', target_program_name)]]) + if not program_ids: + # 2. Search by exact level name + program_ids = models.execute_kw(ODOO_DB, uid, ODOO_PASS, 'loyalty.program', 'search', [[('name', '=', level)]]) + if not program_ids: + # 3. Fallback to ilike + program_ids = models.execute_kw(ODOO_DB, uid, ODOO_PASS, 'loyalty.program', 'search', [[('name', 'ilike', level)]]) if not program_ids: return jsonify({"success": False, "message": f"Loyalty program containing '{level}' not found in Odoo."}), 404