Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
import sys
|
|
sys.path.insert(0, ".")
|
|
import sqlite3
|
|
from app.services.firebird_service import get_firebird_from_config
|
|
|
|
conn = sqlite3.connect("rips_manager.db")
|
|
conn.row_factory = sqlite3.Row
|
|
cfg = {r["key"]: r["value"] for r in conn.execute("SELECT * FROM config").fetchall()}
|
|
conn.close()
|
|
|
|
fb, ok, msg = get_firebird_from_config(cfg)
|
|
if not ok:
|
|
print("Error Firebird:", msg)
|
|
sys.exit(1)
|
|
|
|
# Columnas de ITEM
|
|
ok1, _, rows1 = fb.execute_query("""
|
|
SELECT TRIM(f.RDB$FIELD_NAME) AS campo
|
|
FROM RDB$RELATION_FIELDS f
|
|
WHERE TRIM(f.RDB$RELATION_NAME) = 'ITEM'
|
|
ORDER BY f.RDB$FIELD_POSITION
|
|
""")
|
|
print("=== COLUMNAS DE ITEM ===")
|
|
print([r["campo"] for r in rows1] if ok1 else "sin tabla ITEM")
|
|
|
|
# Muestra de ITEM con CUPS
|
|
ok2, _, rows2 = fb.execute_query("""
|
|
SELECT FIRST 3 i.* FROM ITEM i
|
|
WHERE i.CUPS_DETALLE IS NOT NULL AND TRIM(i.CUPS_DETALLE) <> ''
|
|
""")
|
|
print("\n=== ITEM CON CUPS_DETALLE ===")
|
|
for r in (rows2 or []):
|
|
print(dict(r))
|
|
|
|
# ITEM para CH4
|
|
ok3, _, rows3 = fb.execute_query("SELECT FIRST 1 i.* FROM ITEM i WHERE TRIM(i.CODIGO) = 'CH4'")
|
|
print("\n=== ITEM DONDE CODIGO='CH4' ===")
|
|
print(dict(rows3[0]) if (ok3 and rows3) else "no encontrado por CODIGO")
|
|
|
|
# Intentar JOIN directo RELACION -> ITEM
|
|
ok4, _, rows4 = fb.execute_query("""
|
|
SELECT FIRST 5 rel.COD_EXAMEN, i.CUPS_DETALLE
|
|
FROM RELACION rel
|
|
JOIN ITEM i ON TRIM(i.CODIGO) = TRIM(rel.COD_EXAMEN)
|
|
WHERE i.CUPS_DETALLE IS NOT NULL AND TRIM(i.CUPS_DETALLE) <> ''
|
|
""")
|
|
print("\n=== JOIN RELACION->ITEM (por CODIGO) ===")
|
|
for r in (rows4 or []):
|
|
print(dict(r))
|
|
|
|
if not rows4:
|
|
# Intentar con otro campo
|
|
ok5, _, rows5 = fb.execute_query("""
|
|
SELECT FIRST 3 i.* FROM ITEM i WHERE TRIM(i.CODIGO) IN (
|
|
SELECT DISTINCT TRIM(rel.COD_EXAMEN) FROM RELACION rel WHERE rel.COD_EXAMEN IS NOT NULL
|
|
)
|
|
""")
|
|
print("\n=== ITEM que coincide con COD_EXAMEN de RELACION ===")
|
|
for r in (rows5 or []):
|
|
print(dict(r))
|
|
|
|
fb.disconnect()
|
|
print("\nListo.")
|