Está en la página 1de 20

CREATE TABLE Rol

(Id int identity(1,1) Primary key ,


Nombre varchar(255),
Activo int default 1
)

CREATE INDEX IndexNombreRol ON Rol (Nombre)

insert into Rol (Nombre) values ('Administrador')


insert into Rol (Nombre) values ('Usuario')
insert into Rol (Nombre) values ('Empleado')

go

CREATE TABLE Usuario


(Id int identity(1,1) Primary key ,
IdUser varchar(255),
Usuario varchar(255),
Password varchar(255),
Email varchar(255),
Nombre varchar(255),
IdRol int,
ImagenPerfil varchar(255),
FechaCreacion datetime,
FechaVigencia datetime,
Activo int default 1,
)

CREATE INDEX IndexIdUser ON Usuario (IdUser)


CREATE INDEX IndexUsuario ON Usuario (Usuario)

ALTER TABLE Usuario ADD CONSTRAINT FK_IdRol FOREIGN KEY (IdRol) references Rol(Id)

--SELECT CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , 'Admin' ), 2)


--SELECT CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , 'Invitado' ), 2)
--SELECT CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , 'Admin2021*' ), 2)
--SELECT CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , 'Invitado2021' ), 2)
--DBCC CHECKIDENT ('Usuario', RESEED, 0)
--delete from Usuario

insert into Usuario (IdUser,Usuario,Password,Email,Nombre,IdRol,FechaCreacion,


ImagenPerfil)values('E3AFED0047B08059D0FADA10F400C1E5','Admin','E3778380B0360F5E354
11C728FCFBD0B','gestionsystem@admin.com','Administrador GestionSystem',1,
GETDATE(),'\Sources\ImagesPerfilUsers\Usuario.png')
insert into Usuario (IdUser,Usuario,Password,Email,Nombre,IdRol,FechaCreacion,
ImagenPerfil)values('DFE37C20733AAD4254CF930E50CD0952','Invitado','96A30D83A4057C4D
27930BB2C445A7F2','gestionsystem@invitado.com','Invitado',2, GETDATE(), '\Sources\
ImagesPerfilUsers\Usuario.png')

go

CREATE PROCEDURE [dbo].[SP_BuscarRolUsuario] @IdUser varchar(255), @Resultado


varchar(255) OUTPUT
AS
BEGIN
DECLARE @Rol varchar(255)
SELECT @Rol = R.Nombre
FROM Rol R,
Usuario U
WHERE R.Id = U.IdRol
and U.IdUser = @IdUser

SET @Resultado = @Rol


SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_GridRol]


AS
BEGIN
SELECT Id,
Nombre,
Activo,
CASE Activo
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as Estado
FROM Rol
END

go

CREATE PROCEDURE [dbo].[SP_CrearRol] @IdUser varchar(255), @Modulo varchar(255),


@NombreRol varchar(255), @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Crear INT, @IdUsuario INT, @NombreUsuario VARCHAR(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Crear = dbo.Fun_PermisoUsuario('Crear',@IdUsuario, @Modulo)
IF @Crear > 0
BEGIN
INSERT INTO Rol (Nombre) VALUES (@NombreRol)
SET @Resultado = 'OK__Se a creado el Rol (' + @NombreRol+
') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para crear el Rol'
END
SELECT @Resultado
END
go

CREATE PROCEDURE [dbo].[SP_EliminarRol] @IdUser varchar(255), @Modulo varchar(255),


@IdRol int, @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Eliminar INT, @IdUsuario INT, @NombreUsuario VARCHAR(255), @validar INT,
@NombreRol varchar(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreRol = Nombre FROM Rol WHERE Id = @IdRol
SELECT @Eliminar = dbo.Fun_PermisoUsuario('Eliminar',@IdUsuario, @Modulo)
IF @Eliminar > 0
BEGIN
SELECT @validar = COUNT(1) FROM Usuario WHERE IdRol =
@IdRol
IF @validar > 0
BEGIN
SET @Resultado = 'Error__El Rol (' + @NombreRol
+') no se puede Eliminar, actualmente se encuentra siendo usado por otros Usuarios'

END
ELSE
BEGIN
DELETE Rol WHERE Id = @IdRol
SET @Resultado = 'OK__Se Elimino el Rol
correctamente'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para Eliminar el Rol'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_GuardarCambiosRol] @IdUser varchar(255), @Modulo


varchar(255), @IdRol int, @NombreRol varchar(255), @Activo int, @Resultado
varchar(255) OUTPUT
AS
BEGIN
DECLARE @Modificar INT, @IdUsuario INT, @NombreUsuario VARCHAR(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Modificar = dbo.Fun_PermisoUsuario('Modificar',@IdUsuario,
@Modulo)
IF @Modificar > 0
BEGIN
UPDATE Rol SET Nombre = @NombreRol, Activo =
@Activo WHERE Id = @IdRol
SET @Resultado = 'OK__Se guardaron los cambios
del Rol (' + @NombreRol+ ') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+
@NombreUsuario + ') no tiene permiso para realizar cambios al Rol'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_ListaRol]


AS
BEGIN
SELECT Id, Nombre FROM Rol WHERE Activo = 1
END
go

CREATE TABLE Log_InicioSesion


(Id int identity(1,1) Primary key ,
IdUser int,
FechaIngreso datetime
)

ALTER TABLE Log_InicioSesion ADD CONSTRAINT FK_IdUsuarioLog_InicioSesion FOREIGN


KEY (IdUser) references Usuario(Id)

go

CREATE PROCEDURE SP_GridHistorialIngresoUsuario @IdUser varchar(255)


AS
BEGIN
DECLARE @IdUsuario INT
SELECT @IdUsuario = Id FROM Usuario Where IdUser = @IdUser
SELECT CONVERT(varchar,L.FechaIngreso,20) As FechaIngreso,
U.Nombre As Usuario
FROM Log_InicioSesion L,
Usuario U
WHERE L.IdUser = @IdUsuario
and U.Id = L.IdUser
END

go

CREATE PROCEDURE [dbo].[SP_IniciarSesion] @Usuario varchar(255), @Password


varchar(255),
@Resultado varchar(max) OUTPUT
AS
BEGIN
DECLARE @ExisteUser INT, @ValidaPassword varchar(255), @IdUser varchar(255),
@PasswordMd5 varchar(255), @UsuarioMd5 varchar(255), @IdUsuario int,
@Vigencia datetime,
@NombreUser varchar(255), @FechaActual datetime, @Activo Int
SELECT @UsuarioMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , @Usuario ),
2)
SELECT @PasswordMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' ,
@Password ), 2)
SELECT @ExisteUser = COUNT(1) FROM Usuario Where IdUser = @UsuarioMd5
SELECT @ValidaPassword = Password FROM Usuario WHERE IdUser = @UsuarioMd5
SELECT @IdUsuario = Id FROM Usuario Where IdUser = @UsuarioMd5
SELECT @NombreUser = Usuario FROM Usuario WHERE IdUser = @UsuarioMd5
SELECT @Vigencia = FechaVigencia FROM Usuario WHERE IdUser = @UsuarioMd5
SELECT @FechaActual = GETDATE()
Select @Activo = Activo FROM Usuario WHERE Id = @IdUsuario

IF @ExisteUser = 0
BEGIN
SET @Resultado = 'Error__El Usuario ingresado no Existe'
END
ELSE
BEGIN
SELECT @IdUser = IdUser FROM Usuario where IdUser = @UsuarioMd5
IF @ValidaPassword = @PasswordMd5
BEGIN
IF @FechaActual < @Vigencia
BEGIN
IF @Activo = 1
BEGIN
INSERT INTO Log_InicioSesion
(IdUser,FechaIngreso)VALUES(@IdUsuario, GETDATE())
SET @Resultado =
'OK__'+@IdUser
END
ELSE
BEGIN
SET @Resultado = 'Error__El
Usuario se encuentra Inactivo, por favor comuniquese con el Administrador de la
Aplicaci�n'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario
'+@NombreUser+' no tiene permisos para ingresar a la Aplicaci�n, la fecha limite de
ingreso se encuentra vencida. Si desea Activar un nuevo periodo de tiempo
comuniquese con el Administrador de la Aplicaci�n.'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__Contrase�a incorrecta'
END
END
SELECT @Resultado
END

go

CREATE TABLE Modulo


(Id int identity(1,1) Primary key ,
Nombre varchar(255),
RutaPagina varchar(255),
Activo int default 1,
IdUsuarioCrea int,
FechaCreacion datetime
)

CREATE INDEX IndexNombreModulo ON Modulo (Nombre)


CREATE INDEX IndexRutaPagina ON Modulo (RutaPagina)

ALTER TABLE Modulo ADD CONSTRAINT FK_IdUsuarioCreaModulo FOREIGN KEY (IdUsuarioCrea


) references Usuario(Id)

Insert into Modulo (Nombre, RutaPagina) values ('Usuario','/UsersManagement/Users')


Insert into Modulo (Nombre, RutaPagina) values ('Permiso
Usuario','/UsersManagement/PermisoUsers')
Insert into Modulo (Nombre, RutaPagina) values ('Rol
Usuario','/UsersManagement/RolUsers')
Insert into Modulo (Nombre, RutaPagina) values ('Informaci�n
Usuario','/Usuario/InformacionUsuario')
Insert into Modulo (Nombre, RutaPagina) values ('Pais','/Pais/Pais')
Insert into Modulo (Nombre, RutaPagina) values ('Modulo','/Modulo/Modulo')

go
CREATE PROCEDURE [dbo].[SP_GridModulo]
AS
BEGIN
SELECT Id,
Nombre,
RutaPagina,
Activo,
CASE Activo
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as Estado,
dbo.Fun_BuscarNombreUsuario(IdUsuarioCrea) As NombreUsuario,
CONVERT(varchar,FechaCreacion,20) AS FechaCreacion
FROM Modulo
END

go

CREATE PROCEDURE [dbo].[SP_ListaModulo]


AS
BEGIN
SELECT Id, Nombre FROM Modulo WHERE Activo = 1
END

go

ALTER PROCEDURE [dbo].[SP_CrearModulo] @IdUser varchar(255), @Modulo varchar(255),


@NombreModulo varchar(255), @UrlPagina varchar(255),@Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Crear INT, @IdUsuario INT, @NombreUsuario VARCHAR(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Crear = dbo.Fun_PermisoUsuario('Crear',@IdUsuario, @Modulo)
IF @Crear > 0
BEGIN
INSERT INTO Modulo(Nombre,RutaPagina,IdUsuarioCrea,
FechaCreacion) VALUES (@NombreModulo,@UrlPagina,@IdUsuario, GETDATE())
SET @Resultado = 'OK__Se a creado el Modulo (' +
@NombreModulo + ') y la Url (' + @UrlPagina + ') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para crear Permisos'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_GuardarCambiosModulo] @IdUser varchar(255), @Modulo


varchar(255), @IdModulo int, @NombreModulo varchar(255), @UrlPagina varchar(255),
@Activo int, @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Modificar INT, @IdUsuario INT, @NombreUsuario VARCHAR(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Modificar = dbo.Fun_PermisoUsuario('Modificar',@IdUsuario, @Modulo)
IF @Modificar > 0
BEGIN
UPDATE Modulo
SET Nombre = @NombreModulo,
RutaPagina = @UrlPagina,

Activo = @Activo
WHERE Id = @IdModulo

SET @Resultado = 'OK__Se guardaron los cambios


del Modulo (' + @NombreModulo+ ') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+
@NombreUsuario + ') no tiene permiso para realizar cambios al Modulo'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_EliminarModulo] @IdUser varchar(255), @Modulo


varchar(255), @IdModulo int, @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Eliminar INT, @IdUsuario INT, @NombreUsuario VARCHAR(255), @validar INT,
@NombreModulo varchar(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreModulo = Nombre FROM Modulo WHERE Id = @IdModulo
SELECT @Eliminar = dbo.Fun_PermisoUsuario('Eliminar',@IdUsuario,
@Modulo)
IF @Eliminar > 0
BEGIN
SELECT @validar = COUNT(1) FROM PermisoUsuario WHERE
IdModulo = @IdModulo
IF @validar > 0
BEGIN
SET @Resultado = 'Error__El modulo (' +
@NombreModulo +') no se puede Eliminar, actualmente se encuentra siendo usado por
otros Usuarios'
END
ELSE
BEGIN
DELETE Modulo WHERE ID = @IdModulo
SET @Resultado = 'OK__Se Elimino el Modulo
correctamente'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para Eliminar el Modulo'
END
SELECT @Resultado
END
go

CREATE TABLE PermisoUsuario


(Id int identity(1,1) Primary key ,
IdUsuario int,
IdModulo int,
Leer int,
Crear int,
Modificar int,
Eliminar int,
IdUsuarioCrea int,
FechaCreacion datetime
)

ALTER TABLE PermisoUsuario ADD CONSTRAINT FK_IdUsuarioPermisoModulo FOREIGN KEY


(IdUsuario) references Usuario(Id)
ALTER TABLE PermisoUsuario ADD CONSTRAINT FK_IdUsuarioCreaPermiso FOREIGN KEY
(IdUsuarioCrea ) references Usuario(Id)
ALTER TABLE PermisoUsuario ADD CONSTRAINT FK_IdModuloPermiso FOREIGN KEY
(IdModulo ) references Modulo(Id)

insert into PermisoUsuario


(IdUsuario,IdModulo,Leer,Crear,Modificar,Eliminar,IdUsuarioCrea,FechaCreacion)
Values (1,1,1,1,1,1,1,GETDATE())
insert into PermisoUsuario
(IdUsuario,IdModulo,Leer,Crear,Modificar,Eliminar,IdUsuarioCrea,FechaCreacion)
Values (1,2,1,1,1,1,1,GETDATE())
insert into PermisoUsuario
(IdUsuario,IdModulo,Leer,Crear,Modificar,Eliminar,IdUsuarioCrea,FechaCreacion)
Values (1,3,1,1,1,1,1,GETDATE())
insert into PermisoUsuario
(IdUsuario,IdModulo,Leer,Crear,Modificar,Eliminar,IdUsuarioCrea,FechaCreacion)
Values (1,4,1,1,1,1,1,GETDATE())
insert into PermisoUsuario
(IdUsuario,IdModulo,Leer,Crear,Modificar,Eliminar,IdUsuarioCrea,FechaCreacion)
Values (1,5,1,1,1,1,1,GETDATE())
insert into PermisoUsuario
(IdUsuario,IdModulo,Leer,Crear,Modificar,Eliminar,IdUsuarioCrea,FechaCreacion)
Values (1,6,1,1,1,1,1,GETDATE())

go

CREATE FUNCTION Fun_PermisoUsuario(@Accion varchar(255), @IdUsuario Int, @Modulo


varchar(255))
RETURNS int
AS
BEGIN
DECLARE @Resultado Int

IF @Accion ='Leer'
BEGIN
SELECT @Resultado = P.Leer
FROM Usuario U,
PermisoUsuario P,
Modulo M
WHERE P.IdUsuario = U.Id and
U.Id = @IdUsuario and
M.Id = P.IdModulo and
M.RutaPagina = @Modulo
END
ELSE IF @Accion ='Crear'
BEGIN
SELECT @Resultado = P.Crear
FROM Usuario U,
PermisoUsuario P,
Modulo M
WHERE P.IdUsuario = U.Id and
U.Id = @IdUsuario and
M.Id = P.IdModulo and
M.RutaPagina = @Modulo
END
ELSE IF @Accion ='Modificar'
BEGIN
SELECT @Resultado = P.Modificar
FROM Usuario U,
PermisoUsuario P,
Modulo M
WHERE P.IdUsuario = U.Id and
U.Id = @IdUsuario and
M.Id = P.IdModulo and
M.RutaPagina = @Modulo
END
ELSE IF @Accion ='Eliminar'
BEGIN
SELECT @Resultado = P.Eliminar
FROM Usuario U,
PermisoUsuario P,
Modulo M
WHERE P.IdUsuario = U.Id and
U.Id = @IdUsuario and
M.Id = P.IdModulo and
M.RutaPagina = @Modulo
END
RETURN @Resultado
END
GO

go

CREATE PROCEDURE [dbo].[SP_CrearPermisoUsuario] @IdUser varchar(255), @Modulo


varchar(255), @IdUsuarioPermiso int,@IdModuloPermiso int,@Leer int,@CrearNuevo
int,@Modificar int,@Eliminar int,@Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Crear INT, @IdUsuario INT, @NombreUsuario VARCHAR(255), @ValidarPermiso
INT, @NombreUsuarioPermiso varchar(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuarioPermiso = Nombre FROM Usuario WHERE Id = @IdUsuarioPermiso
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Crear = dbo.Fun_PermisoUsuario('Crear',@IdUsuario, @Modulo)
IF @Crear > 0
BEGIN
SELECT @ValidarPermiso = COUNT(1) FROM PermisoUsuario WHERE
IdUsuario = @IdUsuarioPermiso and IdModulo = @IdModuloPermiso

IF @ValidarPermiso > 0
BEGIN
SET @Resultado = 'Error__El Permiso que esta
creando ya Existe para el Usuario (' + @NombreUsuarioPermiso + '), por favor
valide'
END
ELSE
BEGIN
INSERT INTO
PermisoUsuario(IdUsuario,IdModulo,Leer,Crear,Modificar,Eliminar,IdUsuarioCrea,
FechaCreacion)
VALUES

(@IdUsuarioPermiso,@IdModuloPermiso,@Leer,@CrearNuevo,@Modificar,@Eliminar,@IdUsuar
io, GETDATE())
SET @Resultado = 'OK__Se a creado el permiso
para el Usuario (' + @NombreUsuarioPermiso + ') correctamente'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para crear Permisos'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_GuardarCambiosPermisoUsuario] @IdUser varchar(255),


@Modulo varchar(255), @IdPermisoUsuario int,@Leer int,@CrearNuevo int,@Modificar
int,@Eliminar int,@Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Modifica INT, @IdUsuario INT, @NombreUsuario VARCHAR(255),
@NombreUsuarioPermiso varchar(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuarioPermiso = U.Nombre FROM Usuario U, PermisoUsuario P WHERE U.Id
= P.IdUsuario and P.Id = @IdPermisoUsuario
SELECT @Modifica = dbo.Fun_PermisoUsuario('Modificar',@IdUsuario, @Modulo)
IF @Modifica > 0
BEGIN
UPDATE PermisoUsuario SET Leer = @Leer,
Crear =
@CrearNuevo,
Modificar =
@Modificar,
Eliminar =
@Eliminar
WHERE Id = @IdPermisoUsuario
SET @Resultado = 'OK__Se modificaron los Permisos para el
Usuario (' + @NombreUsuarioPermiso + ') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para Modificar los Permisos'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_EliminarPermisoUsuario] @IdUser varchar(255), @Modulo


varchar(255), @IdPermisoUsuario int,@Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Eliminar INT, @IdUsuario INT, @NombreUsuario VARCHAR(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Eliminar = dbo.Fun_PermisoUsuario('Eliminar',@IdUsuario,
@Modulo)
IF @Eliminar > 0
BEGIN
DELETE PermisoUsuario WHERE ID = @IdPermisoUsuario
SET @Resultado = 'OK__Se Elimino el permiso correctamente'

END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario '+ @NombreUsuario + '
no tiene permiso para Eliminar el Permiso'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_ValidarIngresoPagina] @IdUser varchar(255), @Modulo


varchar(255), @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @IdUsuario INT, @Leer INT, @ValidarUsuario INT, @NombreUsuario varchar(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @ValidarUsuario = COUNT(1) FROM PermisoUsuario WHERE IdUsuario = @IdUsuario
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
IF @ValidarUsuario = 0
BEGIN
SET @Resultado = 'El Usuario ('+ @NombreUsuario + ') no tiene permiso
para ingresar a este Modulo'
END
ELSE
BEGIN
SELECT @Leer = dbo.Fun_PermisoUsuario('Leer',@IdUsuario, @Modulo)
IF @LEER > 0
BEGIN
SET @Resultado = 'OK'
END
ELSE
BEGIN
SET @Resultado = 'El Usuario ('+ @NombreUsuario + ') no
tiene permiso para ingresar a este Modulo'
END
END
SELECT @Resultado
END
go

CREATE FUNCTION [dbo].[Fun_BuscarNombreUsuario] (@idUsuario INT)


RETURNS VARCHAR(255)
AS BEGIN
DECLARE @NombreUsuario VARCHAR(255)
SELECT @NombreUsuario = Nombre
FROM Usuario
WHERE Id = @idUsuario
RETURN @NombreUsuario
END

go

CREATE PROCEDURE [dbo].[SP_ListaUsuario]


AS
BEGIN
SELECT Id, Nombre FROM Usuario WHERE Activo = 1
END

go

CREATE PROCEDURE [dbo].[SP_GridUsuario]


AS
BEGIN
SELECT U.Id,
U.Usuario,
U.Email,
U.Nombre As NombreUsuario,
U.IdRol,
R.Nombre As NombreRol,
U.ImagenPerfil,
CONVERT(varchar,U.FechaCreacion,20) AS FechaCreacion,
CAST(DATEPART(YEAR ,U.FechaVigencia) As Varchar)
+'-'+CAST(DATEPART(MONTH ,U.FechaVigencia) As Varchar)
+'-'+CAST(DATEPART(DAY ,U.FechaVigencia) As Varchar) AS FechaVigencia,
U.Activo,
CASE U.Activo
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as Estado
FROM Usuario U,
Rol R
WHERE U.IdRol = R.Id
END

go

CREATE PROCEDURE [dbo].[SP_CrearUsuario] @IdUser varchar(255), @Modulo


varchar(255), @Usuario varchar(255), @PasswordUser varchar(255), @EmailUser
varchar(255), @NombreUsuario varchar(255), @IdRol int, @FechaVigenciaUser datetime,
@Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Crear INT, @IdUsuario INT, @NombreUsuarioCrea VARCHAR(255), @PasswordMd5
varchar(255), @UsuarioMd5 varchar(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuarioCrea = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @UsuarioMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , @Usuario ), 2)
SELECT @PasswordMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , @PasswordUser ),
2)
SELECT @Crear = dbo.Fun_PermisoUsuario('Crear',@IdUsuario, @Modulo)
IF @Crear > 0
BEGIN
INSERT INTO Usuario (IdUser, Usuario, Password, Email,
Nombre, IdRol, ImagenPerfil, FechaCreacion, FechaVigencia) VALUES
(@UsuarioMd5, @Usuario, @PasswordMd5, @EmailUser,
@NombreUsuario, @IdRol, '\Sources\ImagesPerfilUsers\Usuario.png', GETDATE(),
@FechaVigenciaUser)
SET @Resultado = 'OK__Se a creado el Usuario (' + @Usuario+
') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuarioCrea
+ ') no tiene permiso para crear Usuario'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_GuardarCambiosUsuario] @IdUser varchar(255), @Modulo


varchar(255), @IdUsuario int, @Usuario varchar(255), @PasswordUser varchar(255),
@EmailUser varchar(255), @NombreUsuario varchar(255), @IdRol int,
@FechaVigenciaUser datetime, @Activo int, @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Modificar INT, @IdUsuarioCrea INT, @NombreUsuarioCrea VARCHAR(255),
@ValidarIdUsuario INT, @ExisteUsuario INT, @PasswordMd5 varchar(255), @UsuarioMd5
varchar(255)
SELECT @IdUsuarioCrea = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuarioCrea = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @UsuarioMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' , @Usuario ), 2)
IF @PasswordUser = ''
BEGIN
SELECT @PasswordMd5 = Password FROM Usuario WHERE Id = @IdUsuario
END
ELSE
BEGIN
SELECT @PasswordMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' ,
@PasswordUser ), 2)
END

SELECT @Modificar = dbo.Fun_PermisoUsuario('Modificar',@IdUsuarioCrea,


@Modulo)
IF @Modificar > 0
BEGIN
UPDATE Usuario SET IdUser = @UsuarioMd5,
Usuario =
@Usuario,
Password =
@PasswordMd5,
Email =
@EmailUser,
Nombre =
@NombreUsuario,
IdRol = @IdRol,
FechaVigencia =
@FechaVigenciaUser,
Activo = @Activo
WHERE Id = @IdUsuario
SET @Resultado = 'OK__Se guardaron los cambios
del Usuario (' + @NombreUsuario+ ') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+
@NombreUsuarioCrea + ') no tiene permiso para realizar cambios al Pa�s'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_EliminarUsuario] @IdUser varchar(255), @Modulo


varchar(255), @IdUsuario int, @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Eliminar INT, @IdUsuarioCrea INT, @NombreUsuario VARCHAR(255),
@ValidarUsuario int, @NombreUser varchar(255)
SELECT @IdUsuarioCrea = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @ValidarUsuario = COUNT(1) FROM PermisoUsuario WHERE IdUsuario = @IdUsuario
SELECT @NombreUser = Nombre FROM Usuario WHERE Id = @IdUsuario
SELECT @Eliminar = dbo.Fun_PermisoUsuario('Eliminar',@IdUsuario,
@Modulo)
IF @Eliminar > 0
BEGIN
IF @ValidarUsuario > 0
BEGIN
SET @Resultado = 'Error__El Usuario ('+
@NombreUser + ') no se puede Eliminar'
END
ELSE
BEGIN
DELETE Usuario WHERE ID = @IdUsuario
SET @Resultado = 'OK__Se Elimino el Usuario
correctamente'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para Eliminar el Usuario'
END
SELECT @Resultado
END

go

CREATE PROCEDURE SP_DatosUsuario @IdUser varchar(255)


AS
BEGIN
SELECT U.ImagenPerfil As RutaImagenUsuario,
U.Usuario As Usuario,
R.Nombre As RolUsuario,
U.Nombre As NombreUsuario,
U.Email As EmailUsuario,
CONVERT(varchar,U.FechaCreacion,20) As FechaCreacion,
CONVERT(varchar,U.FechaVigencia,20) As Vigencia
FROM Usuario U,
Rol R
WHERE U.IdUser = @IdUser
AND U.IdRol = R.ID
END

go

CREATE PROCEDURE SP_CambiarPaswwordUsuario @IdUser varchar(255), @Modulo


varchar(255), @Password varchar(255), @NuevoPassword varchar(255), @Resultado
varchar(255) OUTPUT
AS
BEGIN
DECLARE @PasswordActual varchar(255), @PasswordMd5 varchar(255),
@NuevoPasswordMd5 varchar(255),
@Modificar Int, @NombreUsuario varchar(255), @IdUsuario Int

SELECT @PasswordActual = Password FROM Usuario WHERE IdUser = @IdUser


SELECT @PasswordMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' ,
@Password ), 2)
SELECT @NuevoPasswordMd5 = CONVERT ( VARCHAR (32), HashBytes ( 'MD5' ,
@NuevoPassword ), 2)

SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser


SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Modificar = dbo.Fun_PermisoUsuario('Modificar',@IdUsuario,
@Modulo)
IF @Modificar > 0
BEGIN
IF @PasswordActual = @PasswordMd5
BEGIN
UPDATE Usuario SET Password = @NuevoPasswordMd5
WHERE IdUser = @IdUser
SET @Resultado = 'OK__La contrase�a se
actualizo correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__La contrase�a anterior
ingresada es incorrecta'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para realizar cambios a la Contrase�a'
END
SELECT @Resultado
END

go
CREATE PROCEDURE [dbo].[SP_GridPermisoUsuario]
AS
BEGIN
SELECT PU.Id,
M.Nombre As Modulo,
U.Nombre As Usuario,
Leer As IdLeer,
CASE Leer
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as EstadoLeer,
Crear As IdCrear,
CASE Crear
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as EstadoCrear,
Modificar As IdEditar,
CASE Modificar
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as EstadoEditar,
Eliminar As IdEliminar,
CASE Eliminar
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as EstadoEliminar,
dbo.Fun_BuscarNombreUsuario(PU.IdUsuarioCrea) As NombreUsuario,
CONVERT(varchar,PU.FechaCreacion,20) AS FechaCreacion
FROM PermisoUsuario PU,
Usuario U,
Modulo M
WHERE PU.IdUsuario = U.Id
and M.Id = PU.IdModulo
END

go

CREATE TABLE Pais


(Id int identity(1,1) Primary key ,
Nombre varchar(255),
Activo int default 1,
IdUsuarioCrea int,
FechaCreacion datetime
)

CREATE INDEX IndexNombrePais ON Pais (Nombre)


ALTER TABLE Pais ADD CONSTRAINT FK_IdUsuarioCreaPais FOREIGN KEY (IdUsuarioCrea )
references Usuario(Id)

go

CREATE PROCEDURE [dbo].[SP_CrearPais] @IdUser varchar(255), @Modulo varchar(255),


@NombrePais varchar(255), @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Crear INT, @IdUsuario INT, @NombreUsuario VARCHAR(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Crear = dbo.Fun_PermisoUsuario('Crear',@IdUsuario, @Modulo)
IF @Crear > 0
BEGIN
INSERT INTO Pais (Nombre,IdUsuarioCrea, FechaCreacion)
VALUES (@NombrePais, @IdUsuario, GETDATE())
SET @Resultado = 'OK__Se a creado el Pa�s (' + @NombrePais+
') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para crear Pa�s'
END
SELECT @Resultado
END

go

CREATE PROCEDURE [dbo].[SP_GridPais]


AS
BEGIN
SELECT Id,
Nombre,
Activo,
CASE Activo
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as Estado,
dbo.Fun_BuscarNombreUsuario(IdUsuarioCrea) As NombreUsuario,
CONVERT(varchar,FechaCreacion,20) AS FechaCreacion
FROM Pais
END

go

CREATE PROCEDURE [dbo].[SP_GuardarCambiosPais] @IdPais int, @IdUser varchar(255),


@Modulo varchar(255), @NombrePais varchar(255), @Activo int, @Resultado
varchar(255) OUTPUT
AS
BEGIN
DECLARE @Modificar INT, @IdUsuario INT, @NombreUsuario VARCHAR(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Modificar = dbo.Fun_PermisoUsuario('Modificar',@IdUsuario, @Modulo)
IF @Modificar > 0
BEGIN
UPDATE Pais SET Nombre = @NombrePais, Activo =
@Activo WHERE Id = @IdPais
SET @Resultado = 'OK__Se guardaron los cambios
del Pa�s (' + @NombrePais+ ') correctamente'
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+
@NombreUsuario + ') no tiene permiso para realizar cambios al Pa�s'
END
SELECT @Resultado
END
go
CREATE PROCEDURE [dbo].[SP_ListaPais]
AS
BEGIN
SELECT Id, Nombre FROM Pais WHERE Activo = 1
END

go

CREATE FUNCTION Fun_BuscarNombrePais (@idPais INT)


RETURNS VARCHAR(255)
AS BEGIN
DECLARE @NombrePais VARCHAR(255)
SELECT @NombrePais = Nombre
FROM Pais
WHERE Id = @idPais
RETURN @NombrePais
END

go

CREATE PROCEDURE [dbo].[SP_EliminarPais] @IdUser varchar(255), @Modulo


varchar(255), @IdPais int, @Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Eliminar INT, @IdUsuario INT, @NombreUsuario VARCHAR(255), @validar INT,
@NombrePais varchar(255)
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @NombrePais = Nombre FROM Pais WHERE Id = @IdPais
SELECT @Eliminar = dbo.Fun_PermisoUsuario('Eliminar',@IdUsuario,
@Modulo)
IF @Eliminar > 0
BEGIN
SELECT @validar = COUNT(1) FROM Departamento WHERE IdPais =
@IdPais
IF @validar > 0
BEGIN
SET @Resultado = 'Error__El Pa�s (' +
@NombrePais +') no se puede Eliminar, actualmente se encuentra en Uso'
END
ELSE
BEGIN
DELETE Pais WHERE Id = @IdPais
SET @Resultado = 'OK__Se Elimino el Pa�s
correctamente'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para Eliminar el Pa�s'
END
SELECT @Resultado
END

go

CREATE TABLE Departamento


(Id int identity(1,1) Primary key ,
IdPais int,
Nombre varchar(255),
Activo int default 1,
IdUsuarioCrea int,
FechaCreacion datetime
)
ALTER TABLE Departamento ADD CONSTRAINT FK_IdPais FOREIGN KEY (IdPais) references
Pais(Id)
ALTER TABLE Departamento ADD CONSTRAINT FK_IdUsuarioCreaDepartamento FOREIGN KEY
(IdUsuarioCrea ) references Usuario(Id)

go

CREATE PROCEDURE [dbo].[SP_GridDepartamento]


AS
BEGIN
SELECT D.Id,
P.Id As IdPais,
P.Nombre As NombrePais,
D.Nombre,
D.Activo,
CASE D.Activo
WHEN 1 THEN 'Activo'
ELSE 'Inactivo'
END as Estado,
dbo.Fun_BuscarNombreUsuario(D.IdUsuarioCrea) As NombreUsuario,
CONVERT(varchar,D.FechaCreacion,20) AS FechaCreacion
FROM Pais P,
Departamento D
WHERE D.Idpais = P.Id
END

go

CREATE PROCEDURE [dbo].[SP_ListaDepartamento]


AS
BEGIN
SELECT Id, Nombre FROM Departamento WHERE Activo = 1
END

go

CREATE PROCEDURE [dbo].[SP_CrearDepartamento]


@IdUser varchar(255),
@Modulo varchar(255),
@IdPais int,
@NombreDepartamento varchar(255),
@Resultado varchar(255) OUTPUT
AS
BEGIN
DECLARE @Crear INT, @IdUsuario INT, @NombreUsuario VARCHAR(255),
@ValidarDepartamento INT
SELECT @IdUsuario = Id FROM Usuario WHERE IdUser = @IdUser
SELECT @NombreUsuario = Nombre FROM Usuario WHERE IdUser = @IdUser
SELECT @Crear = dbo.Fun_PermisoUsuario('Crear',@IdUsuario, @Modulo)
IF @Crear > 0
BEGIN
SELECT @ValidarDepartamento = COUNT(1) FROM Departamento
WHERE IdPais = @IdPais and Nombre = @NombreDepartamento

IF @ValidarDepartamento > 0
BEGIN
SET @Resultado = 'Error__El Departamento ( '+
@NombreDepartamento +' ) que esta creando ya Existe, por favor valide'
END
ELSE
BEGIN
INSERT INTO Departamento(IdPais, Nombre,
IdUsuarioCrea, FechaCreacion)
VALUES
(@IdPais, @NombreDepartamento, @IdUsuario,
GETDATE())
SET @Resultado = 'OK__Se a creado el
Departamento ( '+ @NombreDepartamento +' ) correctamente'
END
END
ELSE
BEGIN
SET @Resultado = 'Error__El Usuario ('+ @NombreUsuario + ')
no tiene permiso para crear el Departamento'
END
SELECT @Resultado
END

go

También podría gustarte