diff --git a/app/routes/debug_fb.py b/app/routes/debug_fb.py index 0c0b733..eaf76f4 100644 --- a/app/routes/debug_fb.py +++ b/app/routes/debug_fb.py @@ -176,6 +176,56 @@ async def debug_tarifas(user: dict = Depends(get_current_user)): 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") async def find_cups(request: Request, user: dict = Depends(get_current_user)): try: