Files
Plataforma-de-desarrolladores/Tramites_CambioEstatus_Condiciones_20260907.sql
Jorge Luis caudillo esparza 275c6dfd10 Ajustes pequeños
2026-09-08 16:08:12 -07:00

273 lines
8.6 KiB
Transact-SQL

CREATE OR ALTER PROCEDURE dbo.PA_Tra_MostrarCondicionesporTramite
@CveTipoTramite int,
@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
DECLARE @CvePrefactibilidad int = 1;
DECLARE @CvePuntosConexion int = 5;
DECLARE @CveSupervisionObraRedesInternas int = 13;
DECLARE @CveConvenioActualizacionPagos int = 22;
DECLARE @AprobadoPrefactibilidad bit;
DECLARE @RequiereObrasExternas bit;
IF NOT EXISTS
(
SELECT 1
FROM dbo.FraccionamientosEtapas
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
)
BEGIN
SET @ErrorMostrar = 'La etapa seleccionada no existe.';
SET @ErrorTipo = 2;
RETURN;
END;
SELECT
@AprobadoPrefactibilidad = E.Aprobado_Prefactibilidad,
@RequiereObrasExternas = E.RequiereObrasExternas
FROM dbo.FraccionamientosEtapas AS E
WHERE E.CveFraccionamientoEtapa = @CveFraccionamientoEtapa;
DECLARE @Condiciones TABLE
(
CveCondicionMostrar int NOT NULL,
CondicionMostrar varchar(100) NOT NULL
);
IF @CveTipoTramite = @CvePrefactibilidad
BEGIN
INSERT INTO @Condiciones
(CveCondicionMostrar, CondicionMostrar)
VALUES
(1, 'Aprobado en prefactibilidad'),
(2, 'Requiere obras externas');
END;
IF @CveTipoTramite = @CvePuntosConexion
AND @AprobadoPrefactibilidad = 1
AND @RequiereObrasExternas = 1
BEGIN
INSERT INTO @Condiciones
(CveCondicionMostrar, CondicionMostrar)
VALUES
(3, 'Tipo de obra');
END;
IF @CveTipoTramite = @CveSupervisionObraRedesInternas
BEGIN
INSERT INTO @Condiciones
(CveCondicionMostrar, CondicionMostrar)
VALUES
(4, 'Liberación de macromedidor'),
(5, 'Relotificación'),
(6, 'Liberación de lotes');
END;
IF @CveTipoTramite = @CveConvenioActualizacionPagos
BEGIN
INSERT INTO @Condiciones
(CveCondicionMostrar, CondicionMostrar)
VALUES
(7, 'Liberación de pagos de derechos');
END;
SELECT
CveCondicionMostrar,
CondicionMostrar
FROM @Condiciones
ORDER BY CveCondicionMostrar;
SET @Return = 1;
END TRY
BEGIN CATCH
SET @ErrorMostrar = 'Ocurrió un error al consultar las condiciones del trámite; 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_Tra_MostrarCondicionesporTramite'),
'; Línea: ', ERROR_LINE(),
'; Detalle: ', ERROR_MESSAGE()
);
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO
CREATE OR ALTER PROCEDURE dbo.PA_Fraccionamientos_EtapaCondicionUpdate
@CveFraccionamientoEtapa int,
@CveCondicionMostrar int,
@Valor bit = 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 @CveCondicionMostrar NOT BETWEEN 1 AND 7
BEGIN
SET @ErrorMostrar = 'La condición seleccionada no es válida.';
SET @ErrorTipo = 2;
RETURN;
END;
IF NOT EXISTS
(
SELECT 1
FROM dbo.FraccionamientosEtapas
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
)
BEGIN
SET @ErrorMostrar = 'La etapa seleccionada no existe.';
SET @ErrorTipo = 2;
RETURN;
END;
IF @CveCondicionMostrar = 1
BEGIN
UPDATE dbo.FraccionamientosEtapas
SET
Aprobado_Prefactibilidad = @Valor,
FechaModificacion = GETDATE(),
CveUsuario = @CveUsuarioEjecuta
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND ISNULL(CONVERT(tinyint, Aprobado_Prefactibilidad), 2) <>
ISNULL(CONVERT(tinyint, @Valor), 2);
END;
IF @CveCondicionMostrar = 2
BEGIN
UPDATE dbo.FraccionamientosEtapas
SET
RequiereObrasExternas = @Valor,
FechaModificacion = GETDATE(),
CveUsuario = @CveUsuarioEjecuta
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND ISNULL(CONVERT(tinyint, RequiereObrasExternas), 2) <>
ISNULL(CONVERT(tinyint, @Valor), 2);
END;
IF @CveCondicionMostrar = 3
BEGIN
UPDATE dbo.FraccionamientosEtapas
SET
TipoDeObra = @Valor,
FechaModificacion = GETDATE(),
CveUsuario = @CveUsuarioEjecuta
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND ISNULL(CONVERT(tinyint, TipoDeObra), 2) <>
ISNULL(CONVERT(tinyint, @Valor), 2);
END;
IF @CveCondicionMostrar = 4
BEGIN
UPDATE dbo.FraccionamientosEtapas
SET
LiberacionMacromedidor = @Valor,
FechaModificacion = GETDATE(),
CveUsuario = @CveUsuarioEjecuta
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND ISNULL(CONVERT(tinyint, LiberacionMacromedidor), 2) <>
ISNULL(CONVERT(tinyint, @Valor), 2);
END;
IF @CveCondicionMostrar = 5
BEGIN
UPDATE dbo.FraccionamientosEtapas
SET
Relotificacion = @Valor,
FechaModificacion = GETDATE(),
CveUsuario = @CveUsuarioEjecuta
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND ISNULL(CONVERT(tinyint, Relotificacion), 2) <>
ISNULL(CONVERT(tinyint, @Valor), 2);
END;
IF @CveCondicionMostrar = 6
BEGIN
UPDATE dbo.FraccionamientosEtapas
SET
LiberacionDeLotes = @Valor,
FechaModificacion = GETDATE(),
CveUsuario = @CveUsuarioEjecuta
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND ISNULL(CONVERT(tinyint, LiberacionDeLotes), 2) <>
ISNULL(CONVERT(tinyint, @Valor), 2);
END;
IF @CveCondicionMostrar = 7
BEGIN
UPDATE dbo.FraccionamientosEtapas
SET
LiberacionDePagosDeDerechos = @Valor,
FechaModificacion = GETDATE(),
CveUsuario = @CveUsuarioEjecuta
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND ISNULL(
CONVERT(tinyint, LiberacionDePagosDeDerechos),
2) <>
ISNULL(CONVERT(tinyint, @Valor), 2);
END;
SELECT
E.CveFraccionamientoEtapa,
E.CveFraccionamiento,
F.CveCliente,
E.Etapa,
E.Aprobado_Prefactibilidad,
E.RequiereObrasExternas,
E.TipoDeObra,
E.LiberacionMacromedidor,
E.Relotificacion,
E.LiberacionDeLotes,
E.LiberacionDePagosDeDerechos
FROM dbo.FraccionamientosEtapas AS E
INNER JOIN dbo.Fraccionamientos AS F
ON F.CveFraccionamiento = E.CveFraccionamiento
WHERE E.CveFraccionamientoEtapa = @CveFraccionamientoEtapa;
SET @Return = 1;
END TRY
BEGIN CATCH
SET @ErrorMostrar = 'Ocurrió un error al actualizar la condición 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_EtapaCondicionUpdate'),
'; Línea: ', ERROR_LINE(),
'; Detalle: ', ERROR_MESSAGE()
);
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO