Fecha: 27 de abril de 2026
Inicio: [22:52] | Fin: [23:55] || Total: [1 y 3 minutos]
Presente: Sebastián Ramírez Abarca
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
¿QUÉ HICIMOS HOY?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Se implementó el store procedure, el endpoint y las rutas para implementar la drop down list de tiposMovimiento para la página de insertar movimiento.
+ Store procedure: sp_GetTiposMovimiento.
+ Función getTiposMovimiento en empleadoController.ts
+ Se creó la ruta con el archivo tiposMovimiento.ts
+ Se registró la ruta en index.ts
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PROBLEMAS DETECTADOS Y CÓMO RESOLVERLOS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- No puedo probar los cambios para detectar errores en ejecución pues el equipo de mi compañero está desconectado por lo que no puedo subir sp_GetTiposMovimientos al motor.
Solución: Hacer la prueba mañana cuando mi compañero encienda su equipo.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DUDAS Y DIVERGENCIAS DE CRITERIOS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- No hubo dudas ni divergencias en esta sesión.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AVANCE DEL CÓDIGO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
sp_GetTiposMovimientos.sql:
USE VacacionesDB;
GO
-- =====================================================
-- SP: Obtener todos los tipos de movimiento
-- =====================================================
DROP PROCEDURE IF EXISTS sp_GetTiposMovimiento;
GO
CREATE PROCEDURE sp_GetTipoMovimiento;
GO
CREATE PROCEDURE sp_GetTipoMovimiento
@outResultCode INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SELECT t.id, t.Nombre, t.TipoAccion
FROM dbo.TipoMovimiento
ORDER BY Nombre ASC;
SET @outResultCode = 0;
END TRY
BEGIN CATCH
INSERT INTO dbo.DBError (UserName, Number, State, Severity, Line, [Procedure], Message, DateTime)
Values(
SYSTEM_USER,
ERROR_NUMBER(),
CAST(ERROR_STATE() AS VARCHAR(32)),
CAST(ERROR_SEVERITY() AS VARCHAR(32)),
ERROR_LINE(),
ISNULL(ERROR_PROCEDURE(), 'sp_GetTiposMovimiento'),
ERROR_MESSAGE(),
GETDATE()
);
SET @outResultCode = 50008;
END CATCH
END;
GO
función getTiposMovimiento en empleadoController.ts:
// GET /api/tiposMovimiento
export async function getTiposMovimiento(req: Request, res: Response): Promise<void> {
try {
const pool = await getPool();
const result = await pool
.request()
.output('outResultCode', sql.Int)
.execute('sp_GetTiposMovimiento');
const outResultCode: number = result.output.outResultCode;
if (outResultCode !== 0){
res.status(400).json({
success: false,
outResultCode,
message: await getErrorMessage(outResultCode)
});
return;
}
res.status(200).json({
success: true,
outResultCode,
data: result.recordset
});
} catch (error){
console.error('Error en getTiposMovimiento:', error);
res.status(500).json({
success: false,
outResultCode: 50008,
message: 'Error interno del servidor'
});
}
}
tiposMovimientos.ts:
import { Router } from 'express';
import { getTiposMovimiento } from '../controllers/empleadoController';
const router = Router();
// GET /api/tiposMovimiento para lista de los tipos de movimientos para el SELECT
router.get('/', getTiposMovimiento);
export default router;
Nueva ruta en index.ts:
import tiposMovimientoRouter from './routes/tiposMovimiento'
app.use('/api/tiposMovimiento', tiposMovimientoRouter);
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MORALEJAS / BUENAS PRÁCTICAS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Esta vez pensé en cómo obtener los tiposMovimientos para la drop down list antes de hacer el sp, espero no tener que devolverme a corregir.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRÓXIMA SESIÓN: ¿QUÉ SIGUE?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Crear página de insertar movimientos.
Comentarios
Publicar un comentario