169 lines
5.2 KiB
Transact-SQL
169 lines
5.2 KiB
Transact-SQL
ALTER PROCEDURE [dbo].[PA_Fraccionamientos_EtapaGISSave]
|
|
@CveFraccionamientoEtapa int,
|
|
@Nombre varchar(200) = NULL,
|
|
@UrlVisualizacion varchar(2000) = 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
|
|
DECLARE @NombreRol varchar(100);
|
|
DECLARE @CveFraccionamiento int;
|
|
DECLARE @CveCliente int;
|
|
DECLARE @Etapa varchar(150);
|
|
|
|
SELECT @NombreRol = R.NombreRol
|
|
FROM dbo.Sis_Usuarios AS U
|
|
INNER JOIN dbo.Sis_Roles AS R
|
|
ON R.CveRol = U.CveRol
|
|
WHERE U.CveUsuario = @CveUsuarioEjecuta
|
|
AND U.Activo = 1;
|
|
|
|
IF @NombreRol IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario no está disponible para guardar el GIS.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
@CveFraccionamiento = E.CveFraccionamiento,
|
|
@CveCliente = F.CveCliente,
|
|
@Etapa = E.Etapa
|
|
FROM dbo.FraccionamientosEtapas AS E
|
|
INNER JOIN dbo.Fraccionamientos AS F
|
|
ON F.CveFraccionamiento = E.CveFraccionamiento
|
|
WHERE E.CveFraccionamientoEtapa = @CveFraccionamientoEtapa
|
|
AND
|
|
(
|
|
@NombreRol <> 'Empresa'
|
|
OR EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_UsuariosClientes AS UC
|
|
WHERE UC.CveUsuario = @CveUsuarioEjecuta
|
|
AND UC.CveCliente = F.CveCliente
|
|
AND UC.Activo = 1
|
|
)
|
|
);
|
|
|
|
IF @CveFraccionamiento IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La etapa no existe o no está asignada al usuario.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SET @Nombre = CONCAT(
|
|
'gis-',
|
|
@CveFraccionamiento,
|
|
'-',
|
|
@CveFraccionamientoEtapa,
|
|
'.gis');
|
|
|
|
SET @UrlVisualizacion = CONCAT(
|
|
'~/Pages/Fraccionamientos/FraccionamientoGis.ashx?etapa=',
|
|
@CveFraccionamientoEtapa);
|
|
|
|
DECLARE @CveFraccionamientoEtapaGIS int;
|
|
DECLARE @NombreAnterior varchar(200);
|
|
DECLARE @UrlVisualizacionAnterior varchar(2000);
|
|
DECLARE @EsNuevo bit = 0;
|
|
DECLARE @HuboCambio bit = 0;
|
|
|
|
SELECT
|
|
@CveFraccionamientoEtapaGIS = G.CveFraccionamientoEtapaGIS,
|
|
@NombreAnterior = G.Nombre,
|
|
@UrlVisualizacionAnterior = G.UrlVisualizacion
|
|
FROM dbo.FraccionamientosEtapasGIS AS G WITH (UPDLOCK, HOLDLOCK)
|
|
WHERE G.CveFraccionamientoEtapa = @CveFraccionamientoEtapa;
|
|
|
|
IF @CveFraccionamientoEtapaGIS IS NULL
|
|
BEGIN
|
|
INSERT INTO dbo.FraccionamientosEtapasGIS
|
|
(
|
|
CveFraccionamientoEtapa,
|
|
Nombre,
|
|
UrlVisualizacion,
|
|
CveUsuario
|
|
)
|
|
VALUES
|
|
(
|
|
@CveFraccionamientoEtapa,
|
|
@Nombre,
|
|
@UrlVisualizacion,
|
|
@CveUsuarioEjecuta
|
|
);
|
|
|
|
SET @CveFraccionamientoEtapaGIS = CONVERT(
|
|
int,
|
|
SCOPE_IDENTITY());
|
|
SET @EsNuevo = 1;
|
|
SET @HuboCambio = 1;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.FraccionamientosEtapasGIS
|
|
SET
|
|
Nombre = @Nombre,
|
|
UrlVisualizacion = @UrlVisualizacion,
|
|
FechaModificacion = GETDATE(),
|
|
CveUsuario = @CveUsuarioEjecuta
|
|
WHERE CveFraccionamientoEtapaGIS =
|
|
@CveFraccionamientoEtapaGIS;
|
|
|
|
SET @HuboCambio = 1;
|
|
END;
|
|
|
|
SELECT
|
|
G.CveFraccionamientoEtapaGIS,
|
|
G.CveFraccionamientoEtapa,
|
|
E.CveFraccionamiento,
|
|
F.CveCliente,
|
|
E.Etapa,
|
|
G.Nombre,
|
|
G.UrlVisualizacion,
|
|
@NombreAnterior AS NombreAnterior,
|
|
@UrlVisualizacionAnterior AS UrlVisualizacionAnterior,
|
|
@EsNuevo AS EsNuevo,
|
|
@HuboCambio AS HuboCambio,
|
|
G.FechaAlta,
|
|
G.FechaModificacion
|
|
FROM dbo.FraccionamientosEtapasGIS AS G
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E
|
|
ON E.CveFraccionamientoEtapa = G.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Fraccionamientos AS F
|
|
ON F.CveFraccionamiento = E.CveFraccionamiento
|
|
WHERE G.CveFraccionamientoEtapaGIS =
|
|
@CveFraccionamientoEtapaGIS;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al guardar el GIS de la etapa; 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_Fraccionamientos_EtapaGISSave'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|