from app.routers.lab import fetch_orders_light, normalize_id, normalize_customer_name, normalize_pn_for_matching from app.models import get_db db = next(get_db()) target_cust_name = "緯創資通" target_id = "177100" target_pn = "PEC3205M1QR100201" print(f"Targeting: Name={target_cust_name}, ID={target_id}, PN={target_pn}") print("Fetching orders...") orders = fetch_orders_light(db, start_date="2025-01-01") found_cust = 0 found_id = 0 found_pn = 0 matching_orders = [] for o in orders: n_name = o['norm_cust_name'] c_id = o['clean_cust_id'] c_pn = o['clean_pn'] if target_cust_name in n_name: found_cust += 1 if target_id == c_id: found_id += 1 if target_pn == c_pn: found_pn += 1 print("!!! PN MATCH FOUND !!!") print(f"Order Cust: '{o['customer']}'") print(f"Order Norm Cust: '{o['norm_cust_name']}'") print(f"Order ID: '{o['cust_id']}'") print("Full Order:", o) if target_id == c_id and target_pn == c_pn: matching_orders.append(o) elif target_cust_name == n_name and target_pn == c_pn: matching_orders.append(o) print(f"Orders with similar Name: {found_cust}") print(f"Orders with Exact ID: {found_id}") print(f"Orders with Exact PN: {found_pn}") print(f"Exact Matches Found in List: {len(matching_orders)}") if matching_orders: print("Example Match:", matching_orders[0])