189 lines
6.6 KiB
Transact-SQL
189 lines
6.6 KiB
Transact-SQL
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
BEGIN TRY
|
|
BEGIN TRANSACTION;
|
|
|
|
DECLARE @CvePlataforma int;
|
|
|
|
SELECT TOP (1)
|
|
@CvePlataforma = CvePlataforma
|
|
FROM dbo.Sis_Plataformas
|
|
WHERE NombrePlataforma = 'Plataforma de Desarrolladores'
|
|
AND Borrado = 0
|
|
ORDER BY CvePlataforma;
|
|
|
|
IF @CvePlataforma IS NULL
|
|
BEGIN
|
|
INSERT INTO dbo.Sis_Plataformas
|
|
(NombrePlataforma, Descripcion, Activo, FechaCreacion)
|
|
VALUES
|
|
('Plataforma de Desarrolladores', 'Portal WebForms para desarrolladores', 1, GETDATE());
|
|
|
|
SET @CvePlataforma = CONVERT(int, SCOPE_IDENTITY());
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.Sis_Plataformas
|
|
SET Activo = 1,
|
|
FechaActualizacion = GETDATE()
|
|
WHERE CvePlataforma = @CvePlataforma;
|
|
END;
|
|
|
|
DECLARE @Menu TABLE
|
|
(
|
|
Clave varchar(50) NOT NULL PRIMARY KEY,
|
|
ClavePadre varchar(50) NULL,
|
|
NombreModulo varchar(150) NOT NULL,
|
|
Url varchar(500) NULL,
|
|
ClaseCssIcono varchar(150) NULL,
|
|
OrdenVisualizacion int NOT NULL
|
|
);
|
|
|
|
INSERT INTO @Menu
|
|
(Clave, ClavePadre, NombreModulo, Url, ClaseCssIcono, OrdenVisualizacion)
|
|
VALUES
|
|
('Inicio', NULL, 'Inicio', '~/Inicio.aspx', 'icon-home', 0),
|
|
('Desarrolladores', NULL, 'Desarrolladores', NULL, 'fa fa-address-card', 10),
|
|
('Tramites', 'Desarrolladores', 'Trámites', '~/Pages/Desarrolladores/Tramites.aspx', 'fa fa-dollar-sign', 10),
|
|
('ConsultaTramites', 'Desarrolladores', 'Consulta Trámites', '~/Pages/Desarrolladores/ConsultaTramites.aspx', 'fa fa-search', 20),
|
|
('Predios', 'Desarrolladores', 'Predios', '~/Pages/Desarrolladores/Predios.aspx', 'fa fa-house', 30),
|
|
('Fraccionamientos', 'Desarrolladores', 'Fraccionamientos', '~/Pages/Fraccionamientos/Fraccionamientos.aspx', 'fa fa-building', 35),
|
|
('FraccionamientoDetalle', 'Fraccionamientos', 'Detalle de fraccionamiento', '~/Pages/Fraccionamientos/FraccionamientoDetalle.aspx', 'fa fa-building-o', 10),
|
|
('Facturas', 'Desarrolladores', 'Facturas', '~/Pages/Desarrolladores/Facturas.aspx', 'fa fa-print', 40),
|
|
('HistorialFacturas', 'Desarrolladores', 'Historial Facturas', '~/Pages/Desarrolladores/HistorialFacturas.aspx', 'fa fa-print', 50),
|
|
('FacturasComerciales', 'Desarrolladores', 'Fact. Comerciales', '~/Pages/Desarrolladores/FacturasComerciales.aspx', 'fa fa-dollar-sign', 60),
|
|
('FacturasComercialesListado', 'Desarrolladores', 'Fact. Com. Listado', '~/Pages/Desarrolladores/FacturasComercialesListado.aspx', 'fa fa-print', 70),
|
|
('FacturasCfdi', NULL, 'Facturas (CFDI)', '~/Pages/Desarrolladores/FacturasCfdi.aspx', 'fa fa-address-card', 20);
|
|
|
|
DECLARE @Ids TABLE
|
|
(
|
|
Clave varchar(50) NOT NULL PRIMARY KEY,
|
|
CveModulo int NOT NULL
|
|
);
|
|
|
|
DECLARE
|
|
@Clave varchar(50),
|
|
@ClavePadre varchar(50),
|
|
@NombreModulo varchar(150),
|
|
@Url varchar(500),
|
|
@ClaseCssIcono varchar(150),
|
|
@OrdenVisualizacion int,
|
|
@CveModuloPadre int,
|
|
@CveModulo int;
|
|
|
|
DECLARE MenuCursor CURSOR LOCAL FAST_FORWARD FOR
|
|
SELECT Clave, ClavePadre, NombreModulo, Url, ClaseCssIcono, OrdenVisualizacion
|
|
FROM @Menu
|
|
ORDER BY CASE WHEN ClavePadre IS NULL THEN 0 ELSE 1 END, OrdenVisualizacion, Clave;
|
|
|
|
OPEN MenuCursor;
|
|
FETCH NEXT FROM MenuCursor
|
|
INTO @Clave, @ClavePadre, @NombreModulo, @Url, @ClaseCssIcono, @OrdenVisualizacion;
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SET @CveModuloPadre = NULL;
|
|
SET @CveModulo = NULL;
|
|
|
|
IF @ClavePadre IS NOT NULL
|
|
BEGIN
|
|
SELECT @CveModuloPadre = CveModulo
|
|
FROM @Ids
|
|
WHERE Clave = @ClavePadre;
|
|
END;
|
|
|
|
SELECT TOP (1)
|
|
@CveModulo = CveModulo
|
|
FROM dbo.Sis_Modulos
|
|
WHERE CvePlataforma = @CvePlataforma
|
|
AND
|
|
(
|
|
(@Url IS NOT NULL AND LOWER(ISNULL(Url, '')) = LOWER(@Url))
|
|
OR (@Url IS NULL AND Url IS NULL AND NombreModulo = @NombreModulo)
|
|
)
|
|
ORDER BY CveModulo;
|
|
|
|
IF @CveModulo IS NULL
|
|
BEGIN
|
|
INSERT INTO dbo.Sis_Modulos
|
|
(CveModuloPadre, CvePlataforma, NombreModulo, Descripcion, Url,
|
|
ClaseCssIcono, ClaseCssEstilo, OrdenVisualizacion, Visible, Activo, FechaCreacion)
|
|
VALUES
|
|
(@CveModuloPadre, @CvePlataforma, @NombreModulo, @NombreModulo, @Url,
|
|
@ClaseCssIcono, NULL, @OrdenVisualizacion, 1, 1, GETDATE());
|
|
|
|
SET @CveModulo = CONVERT(int, SCOPE_IDENTITY());
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.Sis_Modulos
|
|
SET CveModuloPadre = @CveModuloPadre,
|
|
NombreModulo = @NombreModulo,
|
|
Url = @Url,
|
|
ClaseCssIcono = @ClaseCssIcono,
|
|
OrdenVisualizacion = @OrdenVisualizacion,
|
|
Visible = 1,
|
|
Activo = 1,
|
|
Borrado = 0,
|
|
FechaBorrado = NULL,
|
|
FechaActualizacion = GETDATE()
|
|
WHERE CveModulo = @CveModulo;
|
|
END;
|
|
|
|
INSERT INTO @Ids (Clave, CveModulo)
|
|
VALUES (@Clave, @CveModulo);
|
|
|
|
FETCH NEXT FROM MenuCursor
|
|
INTO @Clave, @ClavePadre, @NombreModulo, @Url, @ClaseCssIcono, @OrdenVisualizacion;
|
|
END;
|
|
|
|
CLOSE MenuCursor;
|
|
DEALLOCATE MenuCursor;
|
|
|
|
UPDATE M SET M.Visible = 0
|
|
FROM dbo.Sis_Modulos AS M
|
|
INNER JOIN @Ids AS I ON I.CveModulo = M.CveModulo
|
|
WHERE I.Clave = 'FraccionamientoDetalle';
|
|
|
|
UPDATE RM
|
|
SET RM.PuedeVer = 1,
|
|
RM.Borrado = 0,
|
|
RM.FechaBorrado = NULL
|
|
FROM dbo.Sis_RolesModulos AS RM
|
|
INNER JOIN @Ids AS M ON M.CveModulo = RM.CveModulo
|
|
INNER JOIN dbo.Sis_Roles AS R ON R.CveRol = RM.CveRol
|
|
WHERE R.Activo = 1
|
|
AND R.Borrado = 0;
|
|
|
|
INSERT INTO dbo.Sis_RolesModulos
|
|
(CveRol, CveModulo, PuedeVer, PuedeCrear, PuedeModificar,
|
|
PuedeEliminar, PuedeImprimir, PuedeExportar, FechaCreacion)
|
|
SELECT
|
|
R.CveRol, M.CveModulo, 1, 0, 0, 0, 0, 0, GETDATE()
|
|
FROM dbo.Sis_Roles AS R
|
|
CROSS JOIN @Ids AS M
|
|
WHERE R.Activo = 1
|
|
AND R.Borrado = 0
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_RolesModulos AS RM
|
|
WHERE RM.CveRol = R.CveRol
|
|
AND RM.CveModulo = M.CveModulo
|
|
);
|
|
|
|
COMMIT TRANSACTION;
|
|
|
|
SELECT M.CveModulo, M.CveModuloPadre, M.NombreModulo, M.Url, M.OrdenVisualizacion
|
|
FROM dbo.Sis_Modulos AS M
|
|
INNER JOIN @Ids AS I ON I.CveModulo = M.CveModulo
|
|
ORDER BY M.CveModuloPadre, M.OrdenVisualizacion, M.NombreModulo;
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF XACT_STATE() <> 0
|
|
ROLLBACK TRANSACTION;
|
|
|
|
THROW;
|
|
END CATCH;
|