--GUARDA EL ID y fecha
SET @insertedAt = GETDATE()
SET @idModified = (SELECT [id] FROM [dbo].[Usuario] WHERE [nombre] = @inNombreOriginal)
----GUARDA EL JSON DEL ROW DE USUARIO ANTES
SET @jsonAntes = (SELECT [id], [nombre], [password], [tipoDeUsuario], [fechaDeIngreso]
FROM [dbo].[Usuario] WHERE [id] = @idModified
FOR JSON PATH)
--ACTUALIZA AL USUARIO
UPDATE [dbo].[Usuario]
SET [nombre] = CASE @inNombre
WHEN '-1' THEN [nombre]
ELSE @inNombre
END,
[password]= CASE @inPassword
WHEN '-1' THEN [password]
ELSE @inPassword
END,
[tipoDeUsuario] = CASE @inTipoDeUsuario
WHEN '-1' THEN [tipoDeUsuario]
ELSE @inTipoDeUsuario
END
WHERE [nombre] = @inNombreOriginal AND [activo] = 1
--GUARDA EL JSON DEL ROW DE USUARIO DESPUES
SET @jsonDespues = (SELECT [id], [nombre], [password], [tipoDeUsuario], [fechaDeIngreso]
FROM [dbo].[Usuario] WHERE [id] = @idModified
FOR JSON PATH)
--INSERTA EL CAMBIO
EXEC [dbo].[SP_BitacoraCambioInsert] @inIdEntityType = 3,@inEntityID = @idModified, @inJsonAntes = @jsonAntes,
@inJsonDespues = @jsonDespues, @inInsertedBy = @inUsuarioACargo,
@inInsertedIn = @inIPusuario, @inInsertedAt = @insertedAt
Este es un ejemplo para la actualizacion de usuarios pero para los demas es muy parecido, se generan los json antes y depsues de la modificacion. se genera el cambio y se ejecuta el SP que me inserta los cambios en la bitacora
Se trabajo 1 hora
No hay comentarios:
Publicar un comentario