debug: add /debug-fb/cmxc endpoint for direct Firebird CMXC query
Shows IDRECEPCION, PREFIJO, NUM_FACTURA, CODCONTRATO, N_EXAMENES for all CMXC receptions on a given date. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
b8bee68d6a
commit
27b15b184c
@@ -176,6 +176,56 @@ async def debug_tarifas(user: dict = Depends(get_current_user)):
|
|||||||
return JSONResponse({"ok": False, "traceback": traceback.format_exc()})
|
return JSONResponse({"ok": False, "traceback": traceback.format_exc()})
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/cmxc")
|
||||||
|
async def debug_cmxc(
|
||||||
|
fecha: str = Query(default="", description="YYYY-MM-DD, vacío = hoy"),
|
||||||
|
user: dict = Depends(get_current_user),
|
||||||
|
):
|
||||||
|
"""Consulta directa a Firebird: recepciones CMXC para la fecha dada."""
|
||||||
|
from datetime import date as date_cls
|
||||||
|
if not fecha:
|
||||||
|
fecha = date_cls.today().isoformat()
|
||||||
|
fecha_ini = f"{fecha} 00:00:00"
|
||||||
|
fecha_fin = f"{fecha} 23:59:59"
|
||||||
|
try:
|
||||||
|
conn = get_connection()
|
||||||
|
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:
|
||||||
|
return JSONResponse({"ok": False, "error": msg})
|
||||||
|
|
||||||
|
ok1, _, rows = fb.execute_query("""
|
||||||
|
SELECT
|
||||||
|
r.IDRECEPCION, r.PREFIJO, r.NUM_FACTURA,
|
||||||
|
CAST(r.FECHA_RECEPCION AS VARCHAR(30)) AS FECHA_RECEPCION,
|
||||||
|
r.COD_PACIENTE, TRIM(r.NIT_EMPRESA) AS NIT_EMPRESA,
|
||||||
|
TRIM(e.CODCONTRATO) AS CODCONTRATO, TRIM(e.NOMBRE) AS NOM_EMPRESA,
|
||||||
|
(SELECT COUNT(*) FROM RELACION rel WHERE rel.IDRECEPCION = r.IDRECEPCION) AS N_EXAMENES
|
||||||
|
FROM RECEPCION r
|
||||||
|
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
|
||||||
|
WHERE r.FECHA_RECEPCION BETWEEN :fi AND :ff
|
||||||
|
AND r.PREFIJO = 'CMXC'
|
||||||
|
ORDER BY r.IDRECEPCION
|
||||||
|
""", {"fi": fecha_ini, "ff": fecha_fin})
|
||||||
|
|
||||||
|
ok2, _, total = fb.execute_query("""
|
||||||
|
SELECT COUNT(*) AS N FROM RECEPCION r
|
||||||
|
WHERE r.FECHA_RECEPCION BETWEEN :fi AND :ff
|
||||||
|
""", {"fi": fecha_ini, "ff": fecha_fin})
|
||||||
|
|
||||||
|
fb.disconnect()
|
||||||
|
return JSONResponse({
|
||||||
|
"ok": True,
|
||||||
|
"fecha": fecha,
|
||||||
|
"total_recepcion_del_dia": total[0]["N"] if ok2 and total else "?",
|
||||||
|
"cmxc_count": len(rows or []),
|
||||||
|
"cmxc_rows": list(rows or []),
|
||||||
|
})
|
||||||
|
except Exception:
|
||||||
|
return JSONResponse({"ok": False, "traceback": traceback.format_exc()})
|
||||||
|
|
||||||
|
|
||||||
@router.get("/cups")
|
@router.get("/cups")
|
||||||
async def find_cups(request: Request, user: dict = Depends(get_current_user)):
|
async def find_cups(request: Request, user: dict = Depends(get_current_user)):
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user