Files
Plataforma-de-desarrolladores/GIS_Capas_Configuracion_20261002.sql
Jorge Luis caudillo esparza 0776ed8c59 Cambios en Gis lotes
2026-10-03 14:43:42 -07:00

111 lines
4.1 KiB
Transact-SQL

-- Preparado para revisión. La instalación requiere autorización independiente.
-- La configuración se conserva por etapa y nombre de capa del archivo original.
IF OBJECT_ID(N'dbo.FraccionamientosEtapasGISCapas', N'U') IS NULL
BEGIN
CREATE TABLE dbo.FraccionamientosEtapasGISCapas
(
CveFraccionamientoEtapa int NOT NULL,
NombreCapa nvarchar(250) COLLATE Modern_Spanish_CS_AS NOT NULL,
TipoCapa nvarchar(20) COLLATE Modern_Spanish_CS_AS NOT NULL,
Color nvarchar(7) COLLATE Modern_Spanish_CS_AS NOT NULL,
EsVisible bit NOT NULL,
CveUsuarioModifica int NOT NULL,
FechaModificacion datetime2 NOT NULL,
CONSTRAINT PK_FraccionamientosEtapasGISCapas
PRIMARY KEY (CveFraccionamientoEtapa, NombreCapa),
CONSTRAINT FK_FraccionamientosEtapasGISCapas_Etapa
FOREIGN KEY (CveFraccionamientoEtapa)
REFERENCES dbo.FraccionamientosEtapas (CveFraccionamientoEtapa),
CONSTRAINT CK_FraccionamientosEtapasGISCapas_Tipo
CHECK (TipoCapa IN (N'Agua', N'Drenaje', N'Lotificacion', N'Pozos', N'Otros')),
CONSTRAINT CK_FraccionamientosEtapasGISCapas_Color
CHECK (LEN(Color) = 7 AND Color COLLATE Latin1_General_BIN2
LIKE N'#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]')
);
END;
GO
CREATE OR ALTER PROCEDURE dbo.PA_Fraccionamientos_EtapaGISCapasList
@CveFraccionamientoEtapa 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 NombreCapa, TipoCapa, Color, EsVisible
FROM dbo.FraccionamientosEtapasGISCapas
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa;
SET @Return = 1;
END TRY
BEGIN CATCH
SELECT
@ErrorMostrar = 'No fue posible consultar la configuración de capas GIS.',
@ErrorTipo = 1,
@Return = 0;
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
'Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(),
'; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO
CREATE OR ALTER PROCEDURE dbo.PA_Fraccionamientos_EtapaGISCapasSave
@CveFraccionamientoEtapa int,
@NombreCapa nvarchar(250),
@TipoCapa nvarchar(20),
@Color nvarchar(7),
@EsVisible 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
-- El servicio mantiene la transacción ambiental para proteger este upsert.
UPDATE dbo.FraccionamientosEtapasGISCapas WITH (UPDLOCK, HOLDLOCK)
SET TipoCapa = @TipoCapa,
Color = @Color,
EsVisible = @EsVisible,
CveUsuarioModifica = @CveUsuarioEjecuta,
FechaModificacion = SYSDATETIME()
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND NombreCapa = @NombreCapa;
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO dbo.FraccionamientosEtapasGISCapas
(
CveFraccionamientoEtapa, NombreCapa, TipoCapa, Color,
EsVisible, CveUsuarioModifica, FechaModificacion
)
VALUES
(
@CveFraccionamientoEtapa, @NombreCapa, @TipoCapa, @Color,
@EsVisible, @CveUsuarioEjecuta, SYSDATETIME()
);
END;
SET @Return = 1;
END TRY
BEGIN CATCH
SELECT
@ErrorMostrar = 'No fue posible guardar la configuración de la capa GIS.',
@ErrorTipo = 1,
@Return = 0;
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
'Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(),
'; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO