Creación del SP: AbrirSemana

 

Fecha: Sábado 13 de junio de 2026

Hora de inicio: 3:00 p.m.

Hora de finalización: 4:15 p.m.

Total de horas trabajadas: 1 h 15 min

El objetivo de esta sesión fue desarrollar el SP AbrirSemana, encargado de crear el encabezado correspondiente a una nueva semana en la tabla Semana.

Este procedure será llamado desde CerrarSemana (que corresponde a VB), específicamente durante la transacción del primer empleado procesado, para dejar preparada la semana siguiente.

 

Actividades realizadas

3:00 p.m. - 3:25 p.m.

Análisis y definición de parámetros

Primero revisé cuáles datos eran necesarios para crear una nueva semana.

El procedimiento recibe:

  • La fecha de inicio de la semana.
  • La fecha final.
  • El identificador del mes al que pertenece.
  • Los datos de usuario e IP necesarios para mantener consistencia con los demás procedimientos.
  • Dos parámetros de salida para retornar el identificador de la semana creada y el código de resultado.

Al inicio asigné el código 50008 como resultado predeterminado y el identificador de semana en 0. De esta forma, el procedimiento solo retorna un código exitoso después de completar correctamente la inserción.

 

3:25 p.m. - 3:50 p.m.

Validaciones e inserción de la semana

Antes de insertar el registro agregué dos validaciones.

La primera verifica que no exista previamente una semana con la misma fecha de inicio. Esto evita crear semanas duplicadas durante la simulación o por una llamada repetida al procedimiento.

La segunda validación comprueba que el mes recibido exista en la tabla Mes, ya que toda semana debe estar relacionada con un periodo mensual válido.

Si alguna de las validaciones falla, el procedimiento mantiene el código de error y finaliza mediante RETURN.

Una vez superadas las validaciones, se inserta el encabezado en la tabla Semana, incluyendo el mes, la fecha inicial y la fecha final.

Posteriormente utilicé SCOPE_IDENTITY() para obtener el identificador generado por SQL Server y retornarlo mediante @outIdSemana.

Finalmente se cambia @outResultCode a 0, indicando que la semana fue creada correctamente.

2:50 p.m. – 3:15 p.m

Manejo de errores y pruebas

Para finalizar agregué el manejo de errores mediante bloques TRY-CATCH.

 

Resultado de la sesión

Durante esta sesión se completó el procedimiento almacenado AbrirSemana.

El procedimiento permite:

  • Verificar que la semana no exista previamente.
  • Comprobar que el mes recibido sea válido.
  • Crear el encabezado de una nueva semana.
  • Retornar el identificador generado.
  • Retornar un código indicando si la operación fue exitosa.
  • Registrar errores inesperados en la tabla DBError.

En general, este procedimiento fue sencillo, ya que solamente se encarga de crear el encabezado de la semana. La creación de las planillas de cada empleado se mantiene separada y será responsabilidad de CerrarSemana.

 


Comentarios

Entradas más populares de este blog

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