Creación del SP: ConsultarPlanillaMensual
Fecha: Sábado 13 de junio de 2026
Hora de inicio: 9:00 a.m.
Hora de finalización: 10:40 a.m.
Total de horas trabajadas: 1 h 40 min
El objetivo de esta sesión fue desarrollar el procedimiento almacenado ConsultarPlanillaMensual, encargado de retornar las últimas planillas mensuales de un empleado activo.Este procedimiento alimenta la vista principal del requerimiento R05, donde el empleado puede consultar para cada periodo mensual su salario bruto, el total de deducciones y el salario neto.
La lógica era bastante similar a la consulta de planillas semanales que había realizado anteriormente, por lo que el desarrollo fue más directo y no requirió tanta investigación adicional.
Actividades
realizadas
9:00 a.m. – 9:25
a.m.
Análisis de la
consulta mensual
Primero revisé la información solicitada por el
requerimiento R05 y las tablas relacionadas con la planilla mensual.
Para cada periodo se necesitaba retornar:
- El identificador de la planilla mensual.
- La fecha de inicio del periodo.
- La fecha final del periodo.
- El salario bruto acumulado.
- El total de deducciones.
- El salario neto.
El procedimiento recibe el identificador del
empleado y la cantidad de meses que se desean consultar.
Para @inCantMeses definí un valor
predeterminado de 3. De esta manera, si la capa lógica no indica otra cantidad,
se muestran automáticamente los últimos tres periodos mensuales.
También se reciben el identificador del usuario y su
dirección IP para poder registrar la consulta en la bitácora.
9:25 a.m. - 10:10
a.m.
Creación del
procedimiento
Antes de realizar la consulta principal agregué una validación para comprobar que el empleado existe y se encuentra activo.
Para la consulta principal utilicé la tabla PlanillaMensual, donde se encuentran los montos acumulados de cada
empleado durante el periodo.
Esta tabla se relaciona mediante un INNER JOIN con la tabla Mes, lo que permite obtener las fechas de inicio y finalización del periodo
mensual.
La cantidad de resultados se limita utilizando: TOP (@inCantMeses)
Los periodos se ordenan mediante FechaInicio DESC, de manera que el mes más reciente aparezca
primero.
A diferencia de la consulta semanal, en este
procedimiento no fue necesario relacionar tablas de movimientos ni realizar
agrupamientos, ya que los valores mensuales se encuentran previamente
acumulados en PlanillaMensual.
Esto hizo que la consulta fuera más sencilla y fácil de revisar.
10:20 a.m. - 10:40 a.m.
Manejo de errores
y pruebas
Para finalizar agregué el manejo de errores mediante
bloques TRY-CATCH.
Si ocurre un error inesperado durante la ejecución,
se asigna el código general 50008 y se almacena la
información técnica en la tabla DBError.
Al final del procedimiento se retorna la variable @resultCode, permitiendo que la capa lógica conozca el resultado de la operación.
Resultado de
la sesión
Durante esta sesión se completó el SP ConsultarPlanillaMensual.
El procedimiento permite:
- Validar que el empleado exista y se encuentre activo.
- Consultar una cantidad determinada de planillas mensuales.
- Mostrar tres meses por defecto.
- Retornar las fechas y los montos acumulados de cada periodo.
- Ordenar los resultados desde el periodo más reciente.
- Registrar consultas exitosas y fallidas en la bitácora.
- Registrar errores inesperados en DBError.
- Retornar un código de resultado para la capa lógica.
En general, este procedimiento fue más sencillo que los desarrollados para la planilla semanal, debido a que los valores mensuales ya se encuentran acumulados y no fue necesario calcular horas ni agrupar movimientos.
Buenas prácticas y aprendizaje
- Reutilizar una estructura similar entre procedimientos facilita
mantener consistencia en las validaciones y en el manejo de errores.
- Los parámetros con valores predeterminados permiten utilizar el
procedimiento sin enviar siempre todos los valores opcionales.
- Ordenar los periodos por su fecha de inicio permite mostrar primero la
información más reciente.
- Cuando los valores ya se encuentran acumulados en una tabla, no es
necesario volver a calcularlos desde los movimientos individuales.
- Tanto las consultas exitosas como las fallidas deben registrarse para
mantener la trazabilidad del sistema.
Comentarios
Publicar un comentario