Inserto función para obtener los turnos

This commit is contained in:
2025-07-02 11:06:00 +02:00
parent 2dabd33130
commit 938dbde0c3
3 changed files with 42 additions and 16 deletions
Binary file not shown.
+20 -16
View File
@@ -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)
+22
View File
@@ -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