martes, 16 de junio de 2020

16/6/2020

Ya se guardan todos los cambios en las tablas usuariosDePropiedad, propietariosDePropiedades, propietarios, usuarios y propiedades(Con trigger), el codigo que guarda todo esto es el siguiente:


--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