diff --git a/__pycache__/conexion.cpython-311.pyc b/__pycache__/conexion.cpython-311.pyc new file mode 100644 index 0000000..f16428d Binary files /dev/null and b/__pycache__/conexion.cpython-311.pyc differ diff --git a/app.py b/app.py index 20f52bd..1424436 100644 --- a/app.py +++ b/app.py @@ -1,31 +1,35 @@ from flask import Flask, render_template, jsonify -import os +from conexion import get_connection from dotenv import load_dotenv -import cx_Oracle load_dotenv() app = Flask(__name__) -user = os.getenv("DB_USER") -password = os.getenv("DB_PASSWORD") -host = os.getenv("DB_HOST") -port = os.getenv("DB_PORT", "1521") -sid = os.getenv("DB_SID") +def obtener_turnos(): -dsn = cx_Oracle.makedsn(host, port, sid=sid) - -def conectar_oracle(user, password, dsn): + conn = get_connection() + if not conn: + return [] try: - connection = cx_Oracle.connect(user=user, password=password, dsn=dsn) - return connection - except cx_Oracle.DatabaseError as e: - print(f"Error de conexión: {e}") - raise - + cursor = conn.cursor() + cursor.execute("SELECT CONS_ESTAD.CODIGO_IMPRESION CONSULTA, CONS_ESTAD.ESTADO_ID ESTADO_CONSULTA, TM.CODIGO_TURNO TURNO, TM.ESTADO_ID ESTADO_TURNO FROM CSMK_TURNO_MON TM, (SELECT ROW_NUMBER() OVER (PARTITION BY ESTADO.ESTANCIA_ID ORDER BY CONSULTA_ESTADO_ID DESC) AS RN, ESTADO.ESTADO_ID, ESTANCIA.* FROM CSMK_CONSULTA_ESTADO ESTADO, CSMK_ESTANCIA ESTANCIA WHERE ESTADO.FECHA = TRUNC (SYSDATE) AND ESTADO.ESTANCIA_ID = ESTANCIA.ESTANCIA_ID AND ESTANCIA.MONITOR_ID = 3 ORDER BY ESTADO.CONSULTA_ESTADO_ID DESC) CONS_ESTAD WHERE CONS_ESTAD.RN = 1 AND TM.ESTANCIA_ID = CONS_ESTAD.ESTANCIA_ID AND TM.MONITOR_ID = CONS_ESTAD.MONITOR_ID AND TM.ESTADO_ID IN (1,2) AND TM.FECHA = TRUNC(SYSDATE) ORDER BY CONSULTA ASC") + datos = cursor.fetchall() + cursor.close() + conn.close() + return datos + except Exception as e: + print(f"Error al conectar: {e}") + return None + @app.route('/') def index(): return render_template("index.html") +@app.route('/api/datos') +def api_datos(): + filas = obtener_turnos() + return jsonify(filas) + if __name__ == '__main__': app.run(debug=True) \ No newline at end of file diff --git a/conexion.py b/conexion.py new file mode 100644 index 0000000..9210632 --- /dev/null +++ b/conexion.py @@ -0,0 +1,22 @@ +import os +from dotenv import load_dotenv +import cx_Oracle + +load_dotenv() + +def get_connection(): + try: + user = os.getenv("DB_USER") + password = os.getenv("DB_PASSWORD") + host = os.getenv("DB_HOST") + port = os.getenv("DB_PORT", "1521") + sid = os.getenv("DB_SID") + + dsn = cx_Oracle.makedsn(host, port, sid=sid) + + connection = cx_Oracle.connect(user=user, password=password, dsn=dsn) + + return connection + except cx_Oracle.DatabaseError as e: + print(f"Error al conectar a la base de datos: {e}") + raise \ No newline at end of file