Controlador y modelo de planilla semanal
Fecha: Martes 16 de junio de 2026
Hora de inicio: 3:00 p.m.
Hora de finalización: 4:30 p.m.
Total de horas trabajadas: 1 h 30 min
Objetivo de la
sesión
El objetivo de esta sesión fue conectar los SPs correspondientes al requerimiento R04 con las vistas
de planilla semanal.
Para esto trabajé en modelo_planilla_semanal.py y controlador_planilla_semanal.py.
Actividades
realizadas
Primero desarrollé el modelo, agregando las
funciones necesarias para ejecutar los procedimientos:
- ConsultarPlanillaSemanal
- DetalleMovimientosSemana
- DetalleDeduccionesSemanales
Cada función abre la conexión con la base de datos,
ejecuta el procedimiento con sus respectivos parámetros y convierte los
resultados en diccionarios para facilitar su uso desde las vistas HTML.
También se realiza commit porque los procedimientos registran la consulta en la bitácora de eventos.
Después desarrollé el controlador mediante un Blueprint.
Se agregaron las rutas para:
- Mostrar las últimas planillas semanales.
- Consultar los movimientos al presionar el salario bruto.
- Consultar las deducciones al presionar el total de deducciones.
El controlador también determina cuál empleado debe
consultarse. Si un administrador está impersonando, utiliza el identificador
del empleado seleccionado; de lo contrario, obtiene el empleado relacionado con
el usuario que inició sesión.
Además, valida que exista una sesión activa antes de
permitir el acceso a las consultas.
Img. 1: Rutas del controlador para consultar el resumen, movimientos y deducciones semanales.
Finalmente realicé pruebas de navegación para
comprobar que cada ruta llamara a la función correcta del modelo y enviara los
resultados a su respectiva vista.
Resultado de la
sesión
Al finalizar quedó conectada la consulta de planilla semanal con la capa lógica. El usuario puede visualizar sus semanas de planilla y acceder al detalle de movimientos y deducciones. La funcionalidad también toma en cuenta cuando un administrador se encuentra impersonando a un empleado.
Buenas prácticas y aprendizajes
- Mantener las consultas a la base de datos dentro del modelo evita
mezclar responsabilidades con el controlador.
- Convertir los resultados en diccionarios facilita utilizarlos desde
Jinja2.
- Centralizar la obtención del empleado de la sesión evita repetir la
lógica de impersonación en cada ruta.
- Validar la sesión antes de mostrar información evita el acceso directo
a las rutas.
Referencias
- Stored Procedures ConsultarPlanillaSemanal, DetalleMovimientosSemana y DetalleDeduccionesSemanales.
- Requerimiento R04 del enunciado del proyecto.
- Documentación de Flask sobre Blueprint, sesiones, rutas y render_template.
- Documentación de pyodbc para la ejecución de procedimientos
almacenados.
- Documentación y código de la Tarea 2
Comentarios
Publicar un comentario