Creación SPs: ProcesarAsistencia, GenerarMovimientoHoras, AsignarJornada y CerrarSemana
Fecha: Sábado 13 de junio de 2026Hora de inicio: 13:00Hora de finalización: 22:00Horas trabajadas: 6 horas (efectivas)
Actividades Realizadas:
- Se escribió el SP ProcesarAsistencia, que toma las marcas de entrada y salida de un empleado, determina cuántas horas trabajó y clasifica las horas extra como normales o dobles según si el día cae en domingo o feriado.
- Se escribió el SP GenerarMovimientoHoras, que toma el resultado del procesamiento de asistencia y lo convierte en un movimiento formal dentro de la planilla semanal del empleado.
- Se escribió el SP AsignarJornada, que registra el tipo de jornada laboral (diurna, nocturna, etc.) de un empleado para una semana específica.
- Se modificó el SP AbrirSemana: se eliminaron la transacción y el registro de evento que tenía originalmente, y se agregó la captura del ID de la semana recién creada junto con el código de resultado mediante parámetros OUTPUT.
- Se escribió el SP CerrarSemana, el procedimiento más complejo del sistema: itera sobre todos los empleados activos de la semana, procesa sus marcas de asistencia, genera los movimientos de horas, aplica deducciones y cierra la planilla semanal de cada empleado. Se realizaron pruebas y se encontraron tres errores. Para construir este SP fue necesario investigar herramientas nuevas de T-SQL: USER-DEFINED TABLE TYPE, ROW_NUMBER() OVER y parámetros con valores tabla (TVP).
Errores encontrados:
- Error interno en CerrarSemana durante las pruebas.
- Faltó insertar un dato necesario para que la prueba se ejecutara correctamente.
- El trigger de deducciones obligatorias recibía una fecha de inicio incorrecta, por lo que las deducciones no se generaban al cerrar la semana.
Solución encontrada:
Los tres errores se identificaron durante esta sesión pero se corrigieron en la del 14 de junio.
Forma de Trabajo en Equipo:
Coordinación con Johana mediante WhatsApp.
Referencias consultadas:
- CREATE TYPE (Transact-SQL) — https://learn.microsoft.com/en-us/sql/t-sql/statements/create-type-transact-sql?view=sql-server-ver17
- ROW_NUMBER (Transact-SQL) — https://learn.microsoft.com/es-es/sql/t-sql/functions/row-number-transact-sql?view=sql-server-ver17
- Use table-valued parameters (Database Engine) — https://learn.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine?view=sql-server-ver17
- Table Valued Parameters in Stored Procedures | SQL | SQL Training Sessions — https://youtu.be/7Z8U-6UrnYY?si=hCbxfK1Y7Li9oT5A
Comentarios
Publicar un comentario