Files

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.")