Sesion #8
De 1pm hasta 4pm
Este dia primeramente se trabajo en el SP de insertar empleado.
ALTER PROCEDURE InsertarEmpleado
@idPuesto INT,
@valorDocumento VARCHAR(64),
@nombre VARCHAR(64),
@fechaContratacion DATE,
@saldoVacaciones INT,
@esActivo BIT,
@idPostByUser INT,
@inIp VARCHAR(64)
AS
BEGIN
DECLARE @rollback BIT = 0;
BEGIN TRANSACTION;
BEGIN TRY
INSERT INTO [dbo].[empleado] ([idPuesto], [valorDocumento], [nombre], [fechaContratacion], [saldoVacaciones], [esActivo])
VALUES (@idPuesto, @valorDocumento, @nombre, @fechaContratacion, @saldoVacaciones, @esActivo);
INSERT INTO [dbo].[bitacoraEvento]
([idTipoEvento],
[descripcion],
[idPostByUser],
[postInIp],
[postTime])
VALUES (6,
'Doc: ' + @valorDocumento +
' Nombre: ' + @nombre +
' Puesto: ' + (SELECT nombre FROM puesto WHERE id = @idPuesto),
@idPostByUser,
@inIp,
GETDATE()
);
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
SET @rollback = 1;
DECLARE @error_message NVARCHAR(2048) = ERROR_MESSAGE();
DECLARE @error_number INT = ERROR_NUMBER();
DECLARE @error_state INT = ERROR_STATE();
DECLARE @error_severity INT = ERROR_SEVERITY();
DECLARE @error_line INT = ERROR_LINE();
DECLARE @error_procedure NVARCHAR(128) = ERROR_PROCEDURE();
DECLARE @current_datetime DATETIME = GETDATE();
INSERT INTO [dbo].[DBErrors] ([UserName], [ErrorNumber], [ErrorState], [ErrorSeverity], [ErrorLine], [ErrorProcedure], [ErrorMessage], [ErrorDateTime])
VALUES (NULL, @error_number, @error_state, @error_severity, @error_line, @error_procedure, @error_message, @current_datetime);
IF @rollback = 1
ROLLBACK TRANSACTION;
END CATCH
IF @rollback = 0
COMMIT TRANSACTION;
END
GO
Se crea el filtro para mostrar los datos de los empleados segun los datos ingresados.
ALTER PROCEDURE GetEmpleados
AS
BEGIN
SET NOCOUNT ON;
SELECT idPuesto, valorDocumento, nombre, fechaContratacion, esActivo, saldoVacaciones, id
FROM empleado
ORDER BY nombre ASC;
END
GO
CREATE PROCEDURE GetPuestoId
@id INT
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM puesto WHERE id = @id;
END
GO
CREATE PROCEDURE GetPuestos
AS
BEGIN
SET NOCOUNT ON;
SELECT id, nombre, salarioHora FROM puesto;
END
GO
ALTER PROCEDURE GetFiltroEmpleadosDoc
@valorDocumento int
AS
BEGIN
SET NOCOUNT ON;
SELECT idPuesto, valorDocumento, nombre, fechaContratacion, esActivo, saldoVacaciones, id
FROM empleado
WHERE CAST(valorDocumento AS VARCHAR(20)) LIKE '%' + CAST(@valorDocumento AS VARCHAR(20)) + '%'
ORDER BY nombre ASC;
END
GO
ALTER PROCEDURE GetFiltroEmpleadosNombre
@nombre VARCHAR(64)
AS
BEGIN
SET NOCOUNT ON;
SELECT idPuesto, valorDocumento, nombre, fechaContratacion, esActivo, saldoVacaciones, id
FROM empleado
WHERE nombre LIKE '%' + @nombre + '%'
ORDER BY nombre ASC;
END
GO
Comentarios
Publicar un comentario