56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
"""Comprehensive DB and code check for cascade delete"""
|
|
import sys, json, os
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
# Check services/db.py for query function
|
|
with open('services/db.py') as f:
|
|
db_code = f.read()
|
|
print("=== query function ===")
|
|
idx = db_code.find('def query')
|
|
if idx > 0:
|
|
print(db_code[idx:idx+500])
|
|
|
|
# Check the product delete route in routes/products.py
|
|
with open('routes/products.py') as f:
|
|
prods_code = f.read()
|
|
|
|
idx = prods_code.find('def product_delete')
|
|
if idx > 0:
|
|
end = prods_code.find('\n@', idx)
|
|
if end == -1:
|
|
end = len(prods_code)
|
|
print("\n=== product_delete route ===")
|
|
print(prods_code[idx:end])
|
|
else:
|
|
idx = prods_code.find('def product_delete')
|
|
print(f"product_delete function at {idx}")
|
|
|
|
# Check for SQL in routes/planning.py
|
|
with open('routes/planning.py') as f:
|
|
plan_code = f.read()
|
|
|
|
# Find table references
|
|
for line in plan_code.split('\n'):
|
|
if 'product_code' in line.lower() and ('SELECT' in line or 'FROM' in line or 'WHERE' in line or 'INSERT' in line or 'DELETE' in line or 'UPDATE' in line or 'query(' in line):
|
|
print(f"\nplanning SQL: {line.strip()[:200]}")
|
|
|
|
# Check for bom file
|
|
try:
|
|
with open('routes/bom.py') as f:
|
|
bom_code = f.read()
|
|
for line in bom_code.split('\n'):
|
|
if 'product_code' in line.lower() and ('SELECT' in line or 'FROM' in line or 'WHERE' in line or 'INSERT' in line or 'DELETE' in line or 'UPDATE' in line or 'query(' in line):
|
|
print(f"\nbom SQL: {line.strip()[:200]}")
|
|
except:
|
|
print("\nbom.py: not found")
|
|
|
|
# Also check for BOM routes in app.js
|
|
with open('static/js/app.js') as f:
|
|
app_js = f.read()
|
|
|
|
# Find BOM API calls
|
|
for line in app_js.split('\n'):
|
|
if '/api/bom' in line.lower() or '/api/product/bom' in line.lower():
|
|
print(f"\nJS BOM API: {line.strip()[:200]}")
|