658 lines
19 KiB
Transact-SQL
658 lines
19 KiB
Transact-SQL
-- Catálogo y detalle de desarrolladores.
|
|
-- Preparar este archivo no autoriza su ejecución. Requiere instalación explícita.
|
|
-- Reutiliza Clientes, Sis_Usuarios, Sis_UsuariosClientes y la bitácora vigente.
|
|
-- La transacción de altas y cambios pertenece a ServicioDesarrolladores.
|
|
SET NOCOUNT ON;
|
|
GO
|
|
|
|
IF COL_LENGTH('dbo.Clientes', 'Duplicador') IS NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.Clientes ADD Duplicador varchar(50) COLLATE Modern_Spanish_CS_AS NULL;
|
|
END;
|
|
GO
|
|
|
|
IF COL_LENGTH('dbo.Clientes', 'Referencia') IS NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.Clientes ADD Referencia varchar(200) COLLATE Modern_Spanish_CS_AS NULL;
|
|
END;
|
|
GO
|
|
|
|
IF COL_LENGTH('dbo.Clientes', 'AsociadoCanadevi') IS NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.Clientes ADD AsociadoCanadevi bit NOT NULL CONSTRAINT DF_Clientes_AsociadoCanadevi DEFAULT (0);
|
|
END;
|
|
GO
|
|
|
|
IF COL_LENGTH('dbo.Clientes', 'Adherente') IS NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.Clientes ADD Adherente varchar(200) COLLATE Modern_Spanish_CS_AS NULL;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Clientes_DesarrolladorList
|
|
@Texto varchar(200) = NULL,
|
|
@IncluirInactivos bit = 0,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT
|
|
@ErrorMostrar = NULL,
|
|
@ErrorTipo = 0,
|
|
@Return = 0;
|
|
|
|
BEGIN TRY
|
|
SELECT
|
|
C.CveCliente,
|
|
C.RFC,
|
|
C.Nombre,
|
|
C.Direccion,
|
|
C.NoExt,
|
|
C.Duplicador,
|
|
C.Referencia,
|
|
C.Telefono,
|
|
C.Mail,
|
|
C.Adherente,
|
|
C.Colonia,
|
|
C.CP,
|
|
C.Ciudad,
|
|
C.Estado,
|
|
C.Pais,
|
|
C.CvePais,
|
|
C.CveSATEstado,
|
|
C.CveMunicipio,
|
|
C.CveLocalidad,
|
|
C.CveColonia,
|
|
C.AsociadoCanadevi,
|
|
C.Estatus
|
|
FROM dbo.Clientes AS C
|
|
WHERE (@IncluirInactivos = 1 OR C.Estatus = 1)
|
|
AND
|
|
(
|
|
NULLIF(@Texto, '') IS NULL
|
|
OR C.Nombre LIKE '%' + @Texto + '%'
|
|
OR C.RFC LIKE '%' + @Texto + '%'
|
|
OR C.Mail LIKE '%' + @Texto + '%'
|
|
)
|
|
ORDER BY C.Nombre, C.CveCliente;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al procesar el desarrollador; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Clientes_DesarrolladorList'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Clientes_DesarrolladorGet
|
|
@CveCliente int,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT
|
|
@ErrorMostrar = NULL,
|
|
@ErrorTipo = 0,
|
|
@Return = 0;
|
|
|
|
BEGIN TRY
|
|
SELECT
|
|
C.CveCliente,
|
|
C.RFC,
|
|
C.Nombre,
|
|
C.Direccion,
|
|
C.NoExt,
|
|
C.Duplicador,
|
|
C.Referencia,
|
|
C.Telefono,
|
|
C.Mail,
|
|
C.Adherente,
|
|
C.Colonia,
|
|
C.CP,
|
|
C.Ciudad,
|
|
C.Estado,
|
|
C.Pais,
|
|
C.CvePais,
|
|
C.CveSATEstado,
|
|
C.CveMunicipio,
|
|
C.CveLocalidad,
|
|
C.CveColonia,
|
|
C.AsociadoCanadevi,
|
|
C.Estatus
|
|
FROM dbo.Clientes AS C
|
|
WHERE C.CveCliente = @CveCliente;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al procesar el desarrollador; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Clientes_DesarrolladorGet'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Clientes_DesarrolladorAdd
|
|
@RFC varchar(15),
|
|
@Nombre varchar(200),
|
|
@Direccion varchar(90),
|
|
@NoExt varchar(20),
|
|
@Duplicador varchar(50),
|
|
@Referencia varchar(200),
|
|
@Telefono varchar(25),
|
|
@Mail varchar(255),
|
|
@Adherente varchar(200),
|
|
@Colonia varchar(50),
|
|
@CP varchar(10),
|
|
@Ciudad varchar(50),
|
|
@Estado varchar(35),
|
|
@Pais varchar(50),
|
|
@CvePais int,
|
|
@CveSATEstado int,
|
|
@CveMunicipio int,
|
|
@CveLocalidad int,
|
|
@CveColonia int,
|
|
@AsociadoCanadevi bit,
|
|
@GenerarUsuario bit = 0,
|
|
@NombreUsuario varchar(100) = NULL,
|
|
@CorreoUsuario varchar(255) = NULL,
|
|
@HashContrasena varchar(500) = NULL,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT
|
|
@ErrorMostrar = NULL,
|
|
@ErrorTipo = 0,
|
|
@Return = 0;
|
|
|
|
BEGIN TRY
|
|
IF NULLIF(LTRIM(RTRIM(@Nombre)), '') IS NULL
|
|
OR NULLIF(LTRIM(RTRIM(@RFC)), '') IS NULL
|
|
OR NULLIF(LTRIM(RTRIM(@Direccion)), '') IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Capture RFC, nombre y calle.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @AsociadoAnterior bit = 0;
|
|
-- Regla solicitada: únicamente los usuarios no clientes pueden cambiar CANADEVI.
|
|
IF @AsociadoCanadevi <> ISNULL(@AsociadoAnterior, 0)
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_Usuarios
|
|
WHERE CveUsuario = @CveUsuarioEjecuta
|
|
AND CveRol <> 3
|
|
AND Activo = 1
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Sólo los usuarios de Agua de Hermosillo pueden cambiar Asociado CANADEVI.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS (SELECT 1 FROM dbo.Clientes WHERE RFC = @RFC)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Ya existe un desarrollador con ese RFC.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @CveUsuarioNuevo int = 0;
|
|
DECLARE @CveCliente int;
|
|
IF @GenerarUsuario = 1
|
|
BEGIN
|
|
IF NULLIF(LTRIM(RTRIM(@NombreUsuario)), '') IS NULL
|
|
OR NULLIF(LTRIM(RTRIM(@CorreoUsuario)), '') IS NULL
|
|
OR NULLIF(@HashContrasena, '') IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Capture usuario y correo para generar el acceso.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_Usuarios
|
|
WHERE NombreUsuario = @NombreUsuario
|
|
OR CorreoElectronico = @CorreoUsuario
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario o correo de acceso ya está registrado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
INSERT INTO dbo.Sis_Usuarios
|
|
(
|
|
NombreUsuario, CorreoElectronico, HashContrasena, CveRol,
|
|
Activo, DebeCambiarContrasena, CorreoVerificado, FechaCreacion
|
|
)
|
|
VALUES
|
|
(
|
|
@NombreUsuario, @CorreoUsuario, @HashContrasena, 3,
|
|
1, 1, 1, SYSDATETIME()
|
|
);
|
|
SET @CveUsuarioNuevo = CONVERT(int, SCOPE_IDENTITY());
|
|
END;
|
|
|
|
INSERT INTO dbo.Clientes
|
|
(
|
|
RFC,
|
|
Nombre,
|
|
Direccion,
|
|
NoExt,
|
|
Duplicador,
|
|
Referencia,
|
|
Telefono,
|
|
Mail,
|
|
Adherente,
|
|
Colonia,
|
|
CP,
|
|
Ciudad,
|
|
Estado,
|
|
Pais,
|
|
CvePais,
|
|
CveSATEstado,
|
|
CveMunicipio,
|
|
CveLocalidad,
|
|
CveColonia,
|
|
AsociadoCanadevi,
|
|
CveEstado,
|
|
Estatus,
|
|
Fecha,
|
|
CveUsuario,
|
|
FechaIng
|
|
)
|
|
VALUES
|
|
(
|
|
@RFC,
|
|
@Nombre,
|
|
@Direccion,
|
|
@NoExt,
|
|
@Duplicador,
|
|
@Referencia,
|
|
@Telefono,
|
|
@Mail,
|
|
@Adherente,
|
|
@Colonia,
|
|
@CP,
|
|
@Ciudad,
|
|
@Estado,
|
|
@Pais,
|
|
@CvePais,
|
|
@CveSATEstado,
|
|
@CveMunicipio,
|
|
@CveLocalidad,
|
|
@CveColonia,
|
|
@AsociadoCanadevi,
|
|
@CveSATEstado,
|
|
1,
|
|
CONVERT(date, GETDATE()),
|
|
@CveUsuarioEjecuta,
|
|
GETDATE()
|
|
);
|
|
SET @CveCliente = CONVERT(int, SCOPE_IDENTITY());
|
|
|
|
IF @GenerarUsuario = 1
|
|
BEGIN
|
|
INSERT INTO dbo.Sis_UsuariosClientes
|
|
(
|
|
CveUsuario, CveCliente, Orden, EsPrincipal, Activo, CveUsuarioRegistro
|
|
)
|
|
VALUES
|
|
(
|
|
@CveUsuarioNuevo, @CveCliente, 1, 1, 1, @CveUsuarioEjecuta
|
|
);
|
|
END;
|
|
|
|
SELECT @CveCliente AS CveCliente, @CveUsuarioNuevo AS CveUsuario;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al procesar el desarrollador; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Clientes_DesarrolladorAdd'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Clientes_DesarrolladorUpdate
|
|
@CveCliente int,
|
|
@RFC varchar(15),
|
|
@Nombre varchar(200),
|
|
@Direccion varchar(90),
|
|
@NoExt varchar(20),
|
|
@Duplicador varchar(50),
|
|
@Referencia varchar(200),
|
|
@Telefono varchar(25),
|
|
@Mail varchar(255),
|
|
@Adherente varchar(200),
|
|
@Colonia varchar(50),
|
|
@CP varchar(10),
|
|
@Ciudad varchar(50),
|
|
@Estado varchar(35),
|
|
@Pais varchar(50),
|
|
@CvePais int,
|
|
@CveSATEstado int,
|
|
@CveMunicipio int,
|
|
@CveLocalidad int,
|
|
@CveColonia int,
|
|
@AsociadoCanadevi bit,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT
|
|
@ErrorMostrar = NULL,
|
|
@ErrorTipo = 0,
|
|
@Return = 0;
|
|
|
|
BEGIN TRY
|
|
IF NULLIF(LTRIM(RTRIM(@Nombre)), '') IS NULL
|
|
OR NULLIF(LTRIM(RTRIM(@RFC)), '') IS NULL
|
|
OR NULLIF(LTRIM(RTRIM(@Direccion)), '') IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Capture RFC, nombre y calle.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.Clientes WHERE CveCliente = @CveCliente)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El desarrollador ya no existe.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @AsociadoAnterior bit;
|
|
SELECT @AsociadoAnterior = AsociadoCanadevi
|
|
FROM dbo.Clientes WITH (UPDLOCK)
|
|
WHERE CveCliente = @CveCliente;
|
|
-- Regla solicitada: únicamente los usuarios no clientes pueden cambiar CANADEVI.
|
|
IF @AsociadoCanadevi <> ISNULL(@AsociadoAnterior, 0)
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_Usuarios
|
|
WHERE CveUsuario = @CveUsuarioEjecuta
|
|
AND CveRol <> 3
|
|
AND Activo = 1
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Sólo los usuarios de Agua de Hermosillo pueden cambiar Asociado CANADEVI.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Clientes
|
|
WHERE RFC = @RFC AND CveCliente <> @CveCliente
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Ya existe otro desarrollador con ese RFC.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
UPDATE dbo.Clientes
|
|
SET
|
|
RFC = @RFC,
|
|
Nombre = @Nombre,
|
|
Direccion = @Direccion,
|
|
NoExt = @NoExt,
|
|
Duplicador = @Duplicador,
|
|
Referencia = @Referencia,
|
|
Telefono = @Telefono,
|
|
Mail = @Mail,
|
|
Adherente = @Adherente,
|
|
Colonia = @Colonia,
|
|
CP = @CP,
|
|
Ciudad = @Ciudad,
|
|
Estado = @Estado,
|
|
Pais = @Pais,
|
|
CvePais = @CvePais,
|
|
CveSATEstado = @CveSATEstado,
|
|
CveMunicipio = @CveMunicipio,
|
|
CveLocalidad = @CveLocalidad,
|
|
CveColonia = @CveColonia,
|
|
AsociadoCanadevi = @AsociadoCanadevi,
|
|
CveEstado = @CveSATEstado,
|
|
CveUsuarioModifico = @CveUsuarioEjecuta
|
|
WHERE CveCliente = @CveCliente;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al procesar el desarrollador; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Clientes_DesarrolladorUpdate'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
-- Configuración de campos auditables; no incluye contraseñas ni hashes.
|
|
DECLARE @Acciones TABLE
|
|
(
|
|
CodigoAccion varchar(150) COLLATE Modern_Spanish_CI_AS,
|
|
NombreAccion varchar(150)
|
|
);
|
|
INSERT INTO @Acciones (CodigoAccion, NombreAccion)
|
|
VALUES
|
|
('AgregarDesarrollador', 'Agregar desarrollador'),
|
|
('ActualizarDesarrollador', 'Actualizar desarrollador');
|
|
|
|
INSERT INTO dbo.Bit_DefinicionesAccion
|
|
(CodigoAccion, NombreAccion, DescripcionAccion, CveTabla, CveTipoMovimiento, Activo)
|
|
SELECT A.CodigoAccion, A.NombreAccion, A.NombreAccion, NULL, NULL, 1
|
|
FROM @Acciones AS A
|
|
WHERE NOT EXISTS
|
|
(
|
|
SELECT 1 FROM dbo.Bit_DefinicionesAccion AS D
|
|
WHERE D.CodigoAccion = A.CodigoAccion
|
|
);
|
|
|
|
UPDATE D
|
|
SET Activo = 1
|
|
FROM dbo.Bit_DefinicionesAccion AS D
|
|
INNER JOIN @Acciones AS A ON A.CodigoAccion = D.CodigoAccion;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.Bit_Tablas WHERE NombreTablaSQL = 'Clientes')
|
|
BEGIN
|
|
INSERT INTO dbo.Bit_Tablas
|
|
(NombreTablaSQL, NombreMostrar, NombreCampoLlaveSQL, Activo, FechaAlta)
|
|
VALUES
|
|
('Clientes', 'Desarrolladores', 'CveCliente', 1, GETDATE());
|
|
END;
|
|
|
|
UPDATE dbo.Bit_Tablas
|
|
SET Activo = 1, NombreCampoLlaveSQL = 'CveCliente'
|
|
WHERE NombreTablaSQL = 'Clientes';
|
|
|
|
DECLARE @Campos TABLE
|
|
(
|
|
Campo varchar(128),
|
|
Nombre varchar(150),
|
|
Tipo varchar(128)
|
|
);
|
|
INSERT INTO @Campos (Campo, Nombre, Tipo)
|
|
VALUES
|
|
('CveCliente', 'CveCliente', 'int'),
|
|
('RFC', 'RFC', 'varchar'),
|
|
('Nombre', 'Nombre', 'varchar'),
|
|
('Direccion', 'Direccion', 'varchar'),
|
|
('NoExt', 'NoExt', 'varchar'),
|
|
('Duplicador', 'Duplicador', 'varchar'),
|
|
('Referencia', 'Referencia', 'varchar'),
|
|
('Telefono', 'Telefono', 'varchar'),
|
|
('Mail', 'Mail', 'varchar'),
|
|
('Adherente', 'Adherente', 'varchar'),
|
|
('Colonia', 'Colonia', 'varchar'),
|
|
('CP', 'CP', 'varchar'),
|
|
('Ciudad', 'Ciudad', 'varchar'),
|
|
('Estado', 'Estado', 'varchar'),
|
|
('Pais', 'Pais', 'varchar'),
|
|
('CvePais', 'CvePais', 'int'),
|
|
('CveSATEstado', 'CveSATEstado', 'int'),
|
|
('CveMunicipio', 'CveMunicipio', 'int'),
|
|
('CveLocalidad', 'CveLocalidad', 'int'),
|
|
('CveColonia', 'CveColonia', 'int'),
|
|
('AsociadoCanadevi', 'AsociadoCanadevi', 'bit'),
|
|
('Estatus', 'Estatus', 'bit');
|
|
|
|
INSERT INTO dbo.Bit_Campos
|
|
(CveTabla, NombreCampoSQL, NombreMostrar, TipoDatoSQL, MostrarEnBitacora, Activo, FechaAlta)
|
|
SELECT T.CveTabla, C.Campo, C.Nombre, C.Tipo, 1, 1, GETDATE()
|
|
FROM @Campos AS C
|
|
INNER JOIN dbo.Bit_Tablas AS T ON T.NombreTablaSQL = 'Clientes'
|
|
WHERE NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Bit_Campos AS B
|
|
WHERE B.CveTabla = T.CveTabla AND B.NombreCampoSQL = C.Campo
|
|
);
|
|
|
|
UPDATE B
|
|
SET Activo = 1, MostrarEnBitacora = 1
|
|
FROM dbo.Bit_Campos AS B
|
|
INNER JOIN dbo.Bit_Tablas AS T ON T.CveTabla = B.CveTabla AND T.NombreTablaSQL = 'Clientes'
|
|
INNER JOIN @Campos AS C ON C.Campo = B.NombreCampoSQL;
|
|
GO
|
|
|
|
-- Rutas del catálogo y detalle; el detalle hereda los permisos del catálogo.
|
|
DECLARE @CvePlataforma int;
|
|
DECLARE @CvePadre int;
|
|
SELECT TOP (1)
|
|
@CvePadre = CveModulo,
|
|
@CvePlataforma = CvePlataforma
|
|
FROM dbo.Sis_Modulos
|
|
WHERE NombreModulo = 'Desarrolladores' AND CveModuloPadre IS NULL
|
|
ORDER BY CveModulo;
|
|
|
|
IF @CvePlataforma IS NULL
|
|
BEGIN
|
|
THROW 51001, 'No se encontró el módulo padre Desarrolladores.', 1;
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1 FROM dbo.Sis_Modulos
|
|
WHERE Url = '~/Pages/Desarrolladores/Desarrolladores.aspx'
|
|
)
|
|
BEGIN
|
|
INSERT INTO dbo.Sis_Modulos
|
|
(
|
|
CveModuloPadre, CvePlataforma, NombreModulo, Url,
|
|
ClaseCssIcono, OrdenVisualizacion, Visible, Activo, FechaCreacion
|
|
)
|
|
VALUES
|
|
(
|
|
@CvePadre, @CvePlataforma, 'Registro de desarrolladores',
|
|
'~/Pages/Desarrolladores/Desarrolladores.aspx',
|
|
'fa fa-users', 5, 1, 1, GETDATE()
|
|
);
|
|
END;
|
|
|
|
DECLARE @CveCatalogo int;
|
|
SELECT @CveCatalogo = CveModulo
|
|
FROM dbo.Sis_Modulos
|
|
WHERE Url = '~/Pages/Desarrolladores/Desarrolladores.aspx';
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1 FROM dbo.Sis_Modulos
|
|
WHERE Url = '~/Pages/Desarrolladores/DesarrolladorDetalle.aspx'
|
|
)
|
|
BEGIN
|
|
INSERT INTO dbo.Sis_Modulos
|
|
(
|
|
CveModuloPadre, CvePlataforma, NombreModulo, Url,
|
|
ClaseCssIcono, OrdenVisualizacion, Visible, Activo, FechaCreacion
|
|
)
|
|
VALUES
|
|
(
|
|
@CveCatalogo, @CvePlataforma, 'Detalle de desarrollador',
|
|
'~/Pages/Desarrolladores/DesarrolladorDetalle.aspx',
|
|
'fa fa-building', 1, 0, 1, GETDATE()
|
|
);
|
|
END;
|
|
|
|
-- Se conservan permisos ya existentes. Para el catálogo nuevo se reutilizan los del padre.
|
|
INSERT INTO dbo.Sis_RolesModulos
|
|
(
|
|
CveRol, CveModulo, PuedeVer, PuedeCrear, PuedeModificar,
|
|
PuedeEliminar, PuedeImprimir, PuedeExportar, FechaCreacion
|
|
)
|
|
SELECT
|
|
R.CveRol, @CveCatalogo, R.PuedeVer, R.PuedeCrear, R.PuedeModificar,
|
|
0, 0, 0, GETDATE()
|
|
FROM dbo.Sis_RolesModulos AS R
|
|
WHERE R.CveModulo = @CvePadre
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1 FROM dbo.Sis_RolesModulos AS E
|
|
WHERE E.CveRol = R.CveRol AND E.CveModulo = @CveCatalogo
|
|
);
|
|
|
|
INSERT INTO dbo.Sis_RolesModulos
|
|
(
|
|
CveRol, CveModulo, PuedeVer, PuedeCrear, PuedeModificar,
|
|
PuedeEliminar, PuedeImprimir, PuedeExportar, FechaCreacion
|
|
)
|
|
SELECT
|
|
R.CveRol, D.CveModulo, R.PuedeVer, R.PuedeCrear, R.PuedeModificar,
|
|
0, 0, 0, GETDATE()
|
|
FROM dbo.Sis_RolesModulos AS R
|
|
INNER JOIN dbo.Sis_Modulos AS D ON D.Url = '~/Pages/Desarrolladores/DesarrolladorDetalle.aspx'
|
|
WHERE R.CveModulo = @CveCatalogo
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1 FROM dbo.Sis_RolesModulos AS E
|
|
WHERE E.CveRol = R.CveRol AND E.CveModulo = D.CveModulo
|
|
);
|
|
GO
|