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.

                   Img. 1: Consulta principal de las últimas planillas mensuales del empleado.

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

Entradas más populares de este blog

Creación del repositorio y estructura básica del proyecto