diff --git a/app/routes/debug_fb.py b/app/routes/debug_fb.py index 43288bb..27bff97 100644 --- a/app/routes/debug_fb.py +++ b/app/routes/debug_fb.py @@ -23,56 +23,38 @@ async def find_cups(request: Request, user: dict = Depends(get_current_user)): results = {} - # 1. Tablas/campos que contengan "CUP" en el nombre - ok1, _, rows1 = fb.execute_query(""" - SELECT DISTINCT TRIM(f.RDB$RELATION_NAME) AS tabla, TRIM(f.RDB$FIELD_NAME) AS campo - FROM RDB$RELATION_FIELDS f - WHERE f.RDB$FIELD_NAME CONTAINING 'CUP' - ORDER BY 1, 2 - """) - results["campos_cup"] = rows1 if ok1 else [] - - # 2. Columnas de la tabla ARTICULO - ok2, _, rows2 = fb.execute_query(""" + # 1. Columnas de ARTICULO + ok1, err1, rows1 = fb.execute_query(""" SELECT TRIM(f.RDB$FIELD_NAME) AS campo FROM RDB$RELATION_FIELDS f - WHERE f.RDB$RELATION_NAME = 'ARTICULO' + WHERE TRIM(f.RDB$RELATION_NAME) = 'ARTICULO' ORDER BY f.RDB$FIELD_POSITION """) - results["columnas_articulo"] = [r["campo"] for r in rows2] if ok2 else "no existe" + results["columnas_articulo"] = [r["campo"] for r in rows1] if ok1 else f"error: {err1}" - # 3. Columnas de la tabla EXAMEN (si existe) - ok3, _, rows3 = fb.execute_query(""" - SELECT TRIM(f.RDB$FIELD_NAME) AS campo - FROM RDB$RELATION_FIELDS f - WHERE f.RDB$RELATION_NAME = 'EXAMEN' - ORDER BY f.RDB$FIELD_POSITION - """) - results["columnas_examen"] = [r["campo"] for r in rows3] if ok3 else "no existe" - - # 4. Muestra de ARTICULO con el primer examen de RELACION - ok4, _, rows4 = fb.execute_query(""" - SELECT FIRST 1 rel.COD_EXAMEN FROM RELACION rel WHERE rel.COD_EXAMEN IS NOT NULL - """) - if ok4 and rows4: - cod = rows4[0]["COD_EXAMEN"] - ok5, _, rows5 = fb.execute_query( - "SELECT FIRST 1 a.* FROM ARTICULO a WHERE a.CODIGO = :cod", - {"cod": cod} + # 2. Primer examen de RELACION y sus datos en ARTICULO + ok2, _, rows2 = fb.execute_query( + "SELECT FIRST 1 rel.COD_EXAMEN FROM RELACION rel WHERE rel.COD_EXAMEN IS NOT NULL" + ) + if ok2 and rows2: + cod = rows2[0]["COD_EXAMEN"] + results["cod_examen_ejemplo"] = cod + ok3, err3, rows3 = fb.execute_query( + "SELECT FIRST 1 a.* FROM ARTICULO a WHERE TRIM(a.CODIGO) = :cod", + {"cod": str(cod).strip()} ) - results["muestra_articulo"] = rows5[0] if (ok5 and rows5) else "sin datos" - results["cod_examen_muestra"] = cod + results["articulo_ejemplo"] = rows3[0] if (ok3 and rows3) else f"error: {err3}" - # 5. Verificar si hay descuentos en RELACION - ok6, _, rows6 = fb.execute_query(""" - SELECT FIRST 10 + # 3. Descuentos en RELACION + ok4, _, rows4 = fb.execute_query(""" + SELECT FIRST 5 r.NUM_FACTURA, r.PREFIJO, rel.COD_EXAMEN, rel.DESCUENTO, rel.PRECIO FROM RELACION rel JOIN RECEPCION r ON r.IDRECEPCION = rel.IDRECEPCION - WHERE rel.DESCUENTO IS NOT NULL AND rel.DESCUENTO > 0 + WHERE rel.DESCUENTO > 0 ORDER BY r.FECHA_RECEPCION DESC """) - results["servicios_con_descuento"] = rows6 if ok6 else [] + results["servicios_con_descuento"] = rows4 if ok4 else [] fb.disconnect() return JSONResponse(results)