43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import sys
|
|
import os
|
|
|
|
# Set up logging to file
|
|
f = open("debug_log_v2.txt", "w", encoding="utf-8")
|
|
def log(msg):
|
|
print(msg)
|
|
f.write(str(msg) + "\n")
|
|
|
|
sys.path.append(os.getcwd())
|
|
try:
|
|
from app.models import SessionLocal, OrderRecord
|
|
from app.services.fuzzy_matcher import normalize_pn_for_matching, normalize_customer_name
|
|
except ImportError as e:
|
|
log(f"Import Error: {e}")
|
|
sys.exit(1)
|
|
|
|
pn1 = "PSMQC098N10LS2-AU_R2_002A1"
|
|
target_norm = normalize_pn_for_matching(pn1)
|
|
|
|
db = SessionLocal()
|
|
log("--- Searching Orders for SEMISALES (or PN match) ---")
|
|
|
|
orders = db.query(OrderRecord).all()
|
|
found = []
|
|
for o in orders:
|
|
# Check customer name (fuzzy) or PN
|
|
norm_cust = normalize_customer_name(o.customer or "")
|
|
norm_pn = normalize_pn_for_matching(o.pn or "")
|
|
|
|
if "SEMISALES" in norm_cust or norm_pn == target_norm:
|
|
found.append(o)
|
|
|
|
log(f"Found {len(found)} orders:")
|
|
for o in found:
|
|
norm_o_pn = normalize_pn_for_matching(o.pn)
|
|
match_mark = "[MATCH PN]" if norm_o_pn == target_norm else "[NO MATCH]"
|
|
log(f"ID: {o.id}, OrderID: {o.order_id}, OrderNo: {o.order_no}, Date: {o.date}, Qty: {o.qty}, PN: {o.pn}, Cust: {o.customer} {match_mark}")
|
|
|
|
log("--- Done ---")
|
|
f.close()
|
|
db.close()
|