1530 lines
51 KiB
Transact-SQL
1530 lines
51 KiB
Transact-SQL
/*
|
|
Revisado contra las definiciones instaladas en SIG_PlataformaDesarolladores
|
|
el 14/09/2026. Incluye trece PAs existentes revisados contra SQL Server.
|
|
Derivado exclusivamente de PAs existentes en:
|
|
Catalogos_Tramites_Internos.sql
|
|
Tramites_CambioEstatus_Procedimientos_20260908.sql
|
|
|
|
Orden: compilar y verificar aplicación -> Preparar -> estos ALTER -> Finalizar.
|
|
Preparar, ALTER y Finalizar se ejecutan dentro de una misma transacción.
|
|
Aplicar durante mantenimiento, con las escrituras detenidas y respaldo de la BD.
|
|
Conservar previamente todas las definiciones originales para rollback.
|
|
Review y DownloadGet conservan sus campos y permisos existentes.
|
|
StageContextGet delega en UploadContextGet y recibe su resultado actualizado.
|
|
Los tres fueron revisados y no requieren modificación.
|
|
La relación usa únicamente las siete columnas solicitadas.
|
|
Incluye borrado y ordenamiento por clave compuesta.
|
|
Los ALTER no crean procedimientos inexistentes.
|
|
*/
|
|
ALTER PROCEDURE dbo.PA_Tra_TipoDocumentoList
|
|
@Texto varchar(250) = 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
|
|
CveTipoDocumento,
|
|
TipoDocumento,
|
|
Descripcion,
|
|
ExtensionesPermitidas,
|
|
TamanoMaximoMb,
|
|
EsActivo
|
|
FROM dbo.Tra_TiposDocumento
|
|
WHERE (@IncluirInactivos = 1 OR EsActivo = 1)
|
|
AND (NULLIF(LTRIM(RTRIM(@Texto)), '') IS NULL
|
|
OR TipoDocumento LIKE '%' + @Texto + '%'
|
|
OR Descripcion LIKE '%' + @Texto + '%'
|
|
OR ExtensionesPermitidas LIKE '%' + @Texto + '%')
|
|
ORDER BY TipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar los tipos de documento; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_TipoDocumentoList'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_TipoDocumentoGet
|
|
@CveTipoDocumento 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
|
|
CveTipoDocumento,
|
|
TipoDocumento,
|
|
Descripcion,
|
|
ExtensionesPermitidas,
|
|
TamanoMaximoMb,
|
|
EsActivo
|
|
FROM dbo.Tra_TiposDocumento
|
|
WHERE CveTipoDocumento = @CveTipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar el tipo de documento; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_TipoDocumentoGet'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_TipoDocumentoSave
|
|
@CveTipoDocumento int = NULL,
|
|
@TipoDocumento varchar(200),
|
|
@Descripcion varchar(500) = NULL,
|
|
@ExtensionesPermitidas varchar(200) = NULL,
|
|
@TamanoMaximoMb int = NULL,
|
|
@EsActivo 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
|
|
SELECT
|
|
@TipoDocumento = LTRIM(RTRIM(@TipoDocumento)),
|
|
@Descripcion = NULLIF(LTRIM(RTRIM(@Descripcion)), ''),
|
|
@ExtensionesPermitidas = NULLIF(LTRIM(RTRIM(@ExtensionesPermitidas)), '');
|
|
IF NULLIF(@TipoDocumento, '') IS NULL
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'Capture el nombre del tipo de documento.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
IF @TamanoMaximoMb IS NOT NULL AND @TamanoMaximoMb <= 0
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'El tamaño máximo debe ser mayor que cero.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_TiposDocumento
|
|
WHERE TipoDocumento = @TipoDocumento
|
|
AND CveTipoDocumento <> ISNULL(@CveTipoDocumento, 0)
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'El tipo de documento ya está registrado.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
IF @CveTipoDocumento IS NULL
|
|
BEGIN
|
|
INSERT INTO dbo.Tra_TiposDocumento
|
|
(
|
|
TipoDocumento,
|
|
Descripcion,
|
|
ExtensionesPermitidas,
|
|
TamanoMaximoMb,
|
|
EsActivo,
|
|
CveUsuario
|
|
)
|
|
VALUES
|
|
(
|
|
@TipoDocumento,
|
|
@Descripcion,
|
|
@ExtensionesPermitidas,
|
|
@TamanoMaximoMb,
|
|
@EsActivo,
|
|
@CveUsuarioEjecuta
|
|
);
|
|
SET @CveTipoDocumento = CONVERT(int, SCOPE_IDENTITY());
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.Tra_TiposDocumento
|
|
SET
|
|
TipoDocumento = @TipoDocumento,
|
|
Descripcion = @Descripcion,
|
|
ExtensionesPermitidas = @ExtensionesPermitidas,
|
|
TamanoMaximoMb = @TamanoMaximoMb,
|
|
EsActivo = @EsActivo,
|
|
FechaModificacion = GETDATE(),
|
|
CveUsuario = @CveUsuarioEjecuta
|
|
WHERE CveTipoDocumento = @CveTipoDocumento;
|
|
END;
|
|
SELECT @CveTipoDocumento AS CveTipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al guardar el tipo de documento; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_TipoDocumentoSave'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_DocumentoRequeridoList
|
|
@CveTipoTramite int = 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
|
|
D.CveTipoTramite,
|
|
T.TipoTramite,
|
|
D.CveTipoDocumento,
|
|
TD.TipoDocumento,
|
|
D.EsRequerido,
|
|
D.EsCliente,
|
|
D.TieneVigencia,
|
|
D.Orden,
|
|
D.EsActivo
|
|
FROM dbo.Tra_TiposTramiteDocumento AS D
|
|
INNER JOIN dbo.Tra_TiposTramite AS T ON T.CveTipoTramite = D.CveTipoTramite
|
|
INNER JOIN dbo.Tra_TiposDocumento AS TD ON TD.CveTipoDocumento = D.CveTipoDocumento
|
|
WHERE (@CveTipoTramite IS NULL OR D.CveTipoTramite = @CveTipoTramite)
|
|
AND (@IncluirInactivos = 1 OR D.EsActivo = 1)
|
|
ORDER BY T.Orden, T.TipoTramite, D.Orden, TD.TipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar los documentos requeridos; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_DocumentoRequeridoList'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_DocumentoRequeridoGet
|
|
@CveTipoTramite int,
|
|
@CveTipoDocumento 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
|
|
D.CveTipoTramite,
|
|
T.TipoTramite,
|
|
D.CveTipoDocumento,
|
|
TD.TipoDocumento,
|
|
D.EsRequerido,
|
|
D.EsCliente,
|
|
D.TieneVigencia,
|
|
D.Orden,
|
|
D.EsActivo
|
|
FROM dbo.Tra_TiposTramiteDocumento AS D
|
|
INNER JOIN dbo.Tra_TiposTramite AS T ON T.CveTipoTramite = D.CveTipoTramite
|
|
INNER JOIN dbo.Tra_TiposDocumento AS TD ON TD.CveTipoDocumento = D.CveTipoDocumento
|
|
WHERE D.CveTipoTramite = @CveTipoTramite
|
|
AND D.CveTipoDocumento = @CveTipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar el documento requerido; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_DocumentoRequeridoGet'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_DocumentoRequeridoSave
|
|
@CveTipoTramite int,
|
|
@CveTipoDocumento int,
|
|
@EsRequerido bit,
|
|
@EsCliente bit,
|
|
@TieneVigencia bit,
|
|
@EsActivo bit,
|
|
@CveTipoTramiteAnterior int = NULL,
|
|
@CveTipoDocumentoAnterior int = 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 NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_TiposTramite
|
|
WHERE CveTipoTramite = @CveTipoTramite
|
|
)
|
|
OR NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_TiposDocumento
|
|
WHERE CveTipoDocumento = @CveTipoDocumento
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Seleccione un tipo de trámite y un tipo de documento válidos.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF (@CveTipoTramiteAnterior IS NULL AND @CveTipoDocumentoAnterior IS NOT NULL)
|
|
OR (@CveTipoTramiteAnterior IS NOT NULL AND @CveTipoDocumentoAnterior IS NULL)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La clave original de la relación está incompleta.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_TiposTramiteDocumento
|
|
WHERE CveTipoTramite = @CveTipoTramite
|
|
AND CveTipoDocumento = @CveTipoDocumento
|
|
AND
|
|
(
|
|
@CveTipoTramiteAnterior IS NULL
|
|
OR CveTipoTramite <> @CveTipoTramiteAnterior
|
|
OR CveTipoDocumento <> @CveTipoDocumentoAnterior
|
|
)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El documento ya está asociado al tipo de trámite.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @Orden int;
|
|
IF @CveTipoTramiteAnterior IS NULL
|
|
BEGIN
|
|
SELECT @Orden = ISNULL(MAX(Orden), 0) + 1
|
|
FROM dbo.Tra_TiposTramiteDocumento
|
|
WHERE CveTipoTramite = @CveTipoTramite;
|
|
|
|
INSERT INTO dbo.Tra_TiposTramiteDocumento
|
|
(
|
|
CveTipoTramite,
|
|
CveTipoDocumento,
|
|
EsRequerido,
|
|
EsCliente,
|
|
TieneVigencia,
|
|
Orden,
|
|
EsActivo
|
|
)
|
|
VALUES
|
|
(
|
|
@CveTipoTramite,
|
|
@CveTipoDocumento,
|
|
@EsRequerido,
|
|
@EsCliente,
|
|
@TieneVigencia,
|
|
@Orden,
|
|
@EsActivo
|
|
);
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @Orden = Orden
|
|
FROM dbo.Tra_TiposTramiteDocumento
|
|
WHERE CveTipoTramite = @CveTipoTramiteAnterior
|
|
AND CveTipoDocumento = @CveTipoDocumentoAnterior;
|
|
|
|
IF @Orden IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La relación original ya no existe.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @CveTipoTramite <> @CveTipoTramiteAnterior
|
|
BEGIN
|
|
SELECT @Orden = ISNULL(MAX(Orden), 0) + 1
|
|
FROM dbo.Tra_TiposTramiteDocumento
|
|
WHERE CveTipoTramite = @CveTipoTramite;
|
|
END;
|
|
|
|
UPDATE dbo.Tra_TiposTramiteDocumento
|
|
SET
|
|
CveTipoTramite = @CveTipoTramite,
|
|
CveTipoDocumento = @CveTipoDocumento,
|
|
EsRequerido = @EsRequerido,
|
|
EsCliente = @EsCliente,
|
|
TieneVigencia = @TieneVigencia,
|
|
Orden = @Orden,
|
|
EsActivo = @EsActivo
|
|
WHERE CveTipoTramite = @CveTipoTramiteAnterior
|
|
AND CveTipoDocumento = @CveTipoDocumentoAnterior;
|
|
END;
|
|
|
|
SELECT @CveTipoDocumento AS CveTipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al guardar la relación de documentos; 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_DocumentoRequeridoSave'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
ALTER PROCEDURE dbo.PA_Tramites_DocumentoSolicitudFraccionamientoList
|
|
@CveFraccionamiento int,
|
|
@CveFraccionamientoEtapa int = NULL,
|
|
@CveTipoTramite int = NULL,
|
|
@IncluirRequisitos 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
|
|
DECLARE @CveRol int;
|
|
DECLARE @EsSuperUsuario bit = 0;
|
|
DECLARE @CveCliente int;
|
|
|
|
SELECT
|
|
@CveRol = U.CveRol,
|
|
@EsSuperUsuario = CASE WHEN U.CveRol <= 2 THEN 1 ELSE 0 END
|
|
FROM dbo.Sis_Usuarios AS U
|
|
WHERE U.CveUsuario = @CveUsuarioEjecuta
|
|
AND U.Activo = 1;
|
|
|
|
IF @CveRol IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario no existe o está inactivo.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT @CveCliente = F.CveCliente
|
|
FROM dbo.Fraccionamientos AS F
|
|
WHERE F.CveFraccionamiento = @CveFraccionamiento;
|
|
|
|
IF @CveCliente IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El fraccionamiento seleccionado no existe.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @EsSuperUsuario = 0
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_UsuariosClientes AS UC
|
|
WHERE UC.CveUsuario = @CveUsuarioEjecuta
|
|
AND UC.CveCliente = @CveCliente
|
|
AND UC.Activo = 1
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El fraccionamiento no está asignado al usuario.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @CveFraccionamientoEtapa IS NOT NULL
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.FraccionamientosEtapas AS E
|
|
WHERE E.CveFraccionamientoEtapa = @CveFraccionamientoEtapa
|
|
AND E.CveFraccionamiento = @CveFraccionamiento
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La etapa seleccionada no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
;WITH SolicitudesBase AS
|
|
(
|
|
SELECT
|
|
S.CveSolicitud,
|
|
S.Folio,
|
|
S.CveCliente,
|
|
S.CveFraccionamiento,
|
|
S.CveFraccionamientoEtapa,
|
|
E.Etapa,
|
|
E.Orden AS OrdenEtapa,
|
|
S.CveTipoTramite,
|
|
TT.TipoTramite,
|
|
TT.Orden AS OrdenTramite,
|
|
S.CveEstatusSolicitud,
|
|
ES.EsFinal
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E ON E.CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Tra_TiposTramite AS TT ON TT.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Tra_EstatusSolicitud AS ES ON ES.CveEstatusSolicitud = S.CveEstatusSolicitud
|
|
WHERE S.CveFraccionamiento = @CveFraccionamiento
|
|
AND (@CveFraccionamientoEtapa IS NULL
|
|
OR S.CveFraccionamientoEtapa = @CveFraccionamientoEtapa)
|
|
AND (@CveTipoTramite IS NULL
|
|
OR S.CveTipoTramite = @CveTipoTramite)
|
|
),
|
|
Filas AS
|
|
(
|
|
/* Documentos que sí están cargados. */
|
|
SELECT
|
|
DS.CveDocumentoSolicitud,
|
|
SB.CveSolicitud,
|
|
SB.Folio,
|
|
SB.CveCliente,
|
|
SB.CveFraccionamiento,
|
|
SB.CveFraccionamientoEtapa,
|
|
SB.Etapa,
|
|
SB.OrdenEtapa,
|
|
SB.CveTipoTramite,
|
|
SB.TipoTramite,
|
|
SB.OrdenTramite,
|
|
DS.CveTipoDocumento,
|
|
COALESCE(NULLIF(TD.Descripcion, ''), TD.TipoDocumento) AS TipoDocumento,
|
|
DR.EsCliente,
|
|
DR.TieneVigencia,
|
|
CONVERT(bit, CASE WHEN DR.EsActivo = 1 THEN DR.EsRequerido ELSE 0 END) AS EsRequerido,
|
|
DS.FechaDocumento,
|
|
DS.FechaVencimiento,
|
|
DS.NombreArchivo,
|
|
DS.ComentarioAdministrativo AS Nota,
|
|
DS.EsAprobado,
|
|
DS.FechaRevision,
|
|
SB.EsFinal AS EsFinalSolicitud,
|
|
CONVERT(bit,
|
|
CASE WHEN NULLIF(LTRIM(RTRIM(DS.RutaArchivo)), '') IS NOT NULL
|
|
AND NULLIF(LTRIM(RTRIM(DS.NombreArchivo)), '') IS NOT NULL
|
|
THEN 1 ELSE 0 END) AS TieneArchivo,
|
|
CONVERT(bit,
|
|
CASE
|
|
WHEN SB.EsFinal = 0 AND DS.CveTipoDocumento <> 2 THEN 1
|
|
ELSE 0
|
|
END) AS PuedeActualizarArchivo,
|
|
CONVERT(bit,
|
|
CASE
|
|
WHEN @EsSuperUsuario = 1 AND SB.EsFinal = 0 THEN 1
|
|
ELSE 0
|
|
END) AS PuedeRevisar,
|
|
CONVERT(bit,
|
|
CASE WHEN DS.CveTipoDocumento = 2 THEN 1 ELSE 0 END) AS EsGis,
|
|
CONVERT(bit,
|
|
CASE WHEN DS.CveTipoDocumento = 2 AND SB.EsFinal = 0 THEN 1 ELSE 0 END) AS PuedeAdministrarGis,
|
|
CASE
|
|
WHEN DS.EsAprobado = 1 THEN 'Aprobado'
|
|
WHEN DS.EsAprobado = 0 THEN 'Rechazado'
|
|
ELSE 'Pendiente de revisión'
|
|
END AS EstadoDocumento,
|
|
ISNULL(DR.Orden, 2147483647) AS OrdenDocumento
|
|
FROM SolicitudesBase AS SB
|
|
INNER JOIN dbo.Tra_DocumentosSolicitud AS DS ON DS.CveSolicitud = SB.CveSolicitud
|
|
AND DS.EsActivo = 1
|
|
INNER JOIN dbo.Tra_TiposDocumento AS TD ON TD.CveTipoDocumento = DS.CveTipoDocumento
|
|
LEFT JOIN dbo.Tra_TiposTramiteDocumento AS DR ON DR.CveTipoTramite = SB.CveTipoTramite
|
|
AND DR.CveTipoDocumento = DS.CveTipoDocumento
|
|
|
|
UNION ALL
|
|
|
|
/* Requeridos que todavía no se han cargado. */
|
|
SELECT
|
|
0 AS CveDocumentoSolicitud,
|
|
SB.CveSolicitud,
|
|
SB.Folio,
|
|
SB.CveCliente,
|
|
SB.CveFraccionamiento,
|
|
SB.CveFraccionamientoEtapa,
|
|
SB.Etapa,
|
|
SB.OrdenEtapa,
|
|
SB.CveTipoTramite,
|
|
SB.TipoTramite,
|
|
SB.OrdenTramite,
|
|
DR.CveTipoDocumento,
|
|
COALESCE(NULLIF(TD.Descripcion, ''), TD.TipoDocumento) AS TipoDocumento,
|
|
DR.EsCliente,
|
|
DR.TieneVigencia,
|
|
DR.EsRequerido,
|
|
CAST(NULL AS date) AS FechaDocumento,
|
|
CAST(NULL AS date) AS FechaVencimiento,
|
|
NULL AS NombreArchivo,
|
|
NULL AS Nota,
|
|
CAST(NULL AS bit) AS EsAprobado,
|
|
CAST(NULL AS datetime) AS FechaRevision,
|
|
SB.EsFinal AS EsFinalSolicitud,
|
|
CONVERT(bit, 0) AS TieneArchivo,
|
|
CONVERT(bit,
|
|
CASE
|
|
WHEN DR.CveTipoDocumento <> 2 THEN 1
|
|
ELSE 0
|
|
END) AS PuedeActualizarArchivo,
|
|
CONVERT(bit, 0) AS PuedeRevisar,
|
|
CONVERT(bit,
|
|
CASE WHEN DR.CveTipoDocumento = 2 THEN 1 ELSE 0 END) AS EsGis,
|
|
CONVERT(bit,
|
|
CASE WHEN DR.CveTipoDocumento = 2 THEN 1 ELSE 0 END) AS PuedeAdministrarGis,
|
|
'Sin cargar' AS EstadoDocumento,
|
|
DR.Orden AS OrdenDocumento
|
|
FROM SolicitudesBase AS SB
|
|
INNER JOIN dbo.Tra_TiposTramiteDocumento AS DR ON DR.CveTipoTramite = SB.CveTipoTramite
|
|
AND DR.EsActivo = 1
|
|
AND (@IncluirRequisitos = 1 OR DR.EsRequerido = 1)
|
|
INNER JOIN dbo.Tra_TiposDocumento AS TD ON TD.CveTipoDocumento = DR.CveTipoDocumento
|
|
AND TD.EsActivo = 1
|
|
WHERE (@IncluirRequisitos = 1 OR SB.EsFinal = 0)
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_DocumentosSolicitud AS DS
|
|
WHERE DS.CveSolicitud = SB.CveSolicitud
|
|
AND DS.CveTipoDocumento = DR.CveTipoDocumento
|
|
AND DS.EsActivo = 1
|
|
)
|
|
)
|
|
SELECT
|
|
CveDocumentoSolicitud,
|
|
CveSolicitud,
|
|
Folio,
|
|
CveCliente,
|
|
CveFraccionamiento,
|
|
CveFraccionamientoEtapa,
|
|
Etapa,
|
|
CveTipoTramite,
|
|
TipoTramite,
|
|
CveTipoDocumento,
|
|
TipoDocumento,
|
|
EsCliente,
|
|
TieneVigencia,
|
|
FechaDocumento,
|
|
FechaVencimiento,
|
|
EsRequerido,
|
|
NombreArchivo,
|
|
Nota,
|
|
EsAprobado,
|
|
FechaRevision,
|
|
EsFinalSolicitud,
|
|
TieneArchivo,
|
|
PuedeActualizarArchivo,
|
|
PuedeRevisar,
|
|
EsGis,
|
|
PuedeAdministrarGis,
|
|
EstadoDocumento
|
|
FROM Filas
|
|
ORDER BY
|
|
OrdenEtapa,
|
|
Etapa,
|
|
OrdenTramite,
|
|
TipoTramite,
|
|
OrdenDocumento,
|
|
TipoDocumento,
|
|
CveDocumentoSolicitud;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar los documentos del fraccionamiento; 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_Tramites_DocumentoSolicitudFraccionamientoList'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tramites_DocumentoSolicitudUploadContextGet
|
|
@CveFraccionamiento int,
|
|
@CveSolicitud int,
|
|
@CveTipoDocumento 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 @CveRol int;
|
|
DECLARE @EsSuperUsuario bit = 0;
|
|
DECLARE @CveCliente int;
|
|
DECLARE @EsFinal bit;
|
|
|
|
SELECT
|
|
@CveRol = U.CveRol,
|
|
@EsSuperUsuario =
|
|
CASE
|
|
WHEN U.CveRol <= 2 THEN 1
|
|
ELSE 0
|
|
END
|
|
FROM dbo.Sis_Usuarios AS U
|
|
WHERE U.CveUsuario = @CveUsuarioEjecuta
|
|
AND U.Activo = 1;
|
|
|
|
SELECT
|
|
@CveCliente = S.CveCliente,
|
|
@EsFinal = ES.EsFinal
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.Tra_EstatusSolicitud AS ES ON ES.CveEstatusSolicitud = S.CveEstatusSolicitud
|
|
WHERE S.CveSolicitud = @CveSolicitud
|
|
AND S.CveFraccionamiento = @CveFraccionamiento;
|
|
|
|
IF @CveRol IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario no existe o está inactivo.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @CveCliente IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La solicitud no pertenece al fraccionamiento seleccionado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
/*
|
|
Esto valida que el usuario tenga acceso a los datos del cliente.
|
|
No es una validación de catálogo.
|
|
*/
|
|
IF @EsSuperUsuario = 0
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_UsuariosClientes AS UC
|
|
WHERE UC.CveUsuario = @CveUsuarioEjecuta
|
|
AND UC.CveCliente = @CveCliente
|
|
AND UC.Activo = 1
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El fraccionamiento no está asignado al usuario.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
-- La disponibilidad por rol y estatus se comprueba en el servicio C#.
|
|
|
|
/*
|
|
Sólo se valida que el tipo de documento exista y esté activo.
|
|
NO se exige que aparezca como requerido.
|
|
*/
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_TiposDocumento AS TD
|
|
WHERE TD.CveTipoDocumento = @CveTipoDocumento
|
|
AND TD.EsActivo = 1
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El tipo de documento no existe o está inactivo.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
ISNULL(DS.CveDocumentoSolicitud, 0) AS CveDocumentoSolicitud,
|
|
S.CveSolicitud,
|
|
S.Folio,
|
|
S.CveCliente,
|
|
S.CveFraccionamiento,
|
|
S.CveFraccionamientoEtapa,
|
|
E.Etapa,
|
|
S.CveTipoTramite,
|
|
TT.TipoTramite,
|
|
TD.CveTipoDocumento,
|
|
COALESCE(NULLIF(TD.Descripcion, ''), TD.TipoDocumento) AS TipoDocumento,
|
|
DR.EsCliente,
|
|
DR.TieneVigencia,
|
|
DS.FechaDocumento AS FechaDocumentoAnterior,
|
|
DS.FechaVencimiento AS FechaVencimientoAnterior,
|
|
TD.ExtensionesPermitidas,
|
|
TD.TamanoMaximoMb,
|
|
ES.EsFinal AS EsFinalSolicitud,
|
|
DS.NombreArchivo AS NombreArchivoAnterior,
|
|
DS.NombreArchivoFisico AS NombreArchivoFisicoAnterior,
|
|
DS.RutaArchivo AS RutaArchivoAnterior,
|
|
DS.ContentType AS ContentTypeAnterior,
|
|
DS.TamanoBytes AS TamanoBytesAnterior,
|
|
DS.ComentarioCliente AS ComentarioClienteAnterior,
|
|
DS.ComentarioAdministrativo AS ComentarioAdministrativoAnterior,
|
|
DS.EsAprobado AS EsAprobadoAnterior,
|
|
DS.CveUsuarioRevisa AS CveUsuarioRevisaAnterior,
|
|
DS.FechaRevision AS FechaRevisionAnterior
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E ON E.CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Tra_TiposTramite AS TT ON TT.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Tra_EstatusSolicitud AS ES ON ES.CveEstatusSolicitud = S.CveEstatusSolicitud
|
|
INNER JOIN dbo.Tra_TiposDocumento AS TD ON TD.CveTipoDocumento = @CveTipoDocumento
|
|
INNER JOIN dbo.Tra_TiposTramiteDocumento AS DR ON DR.CveTipoTramite = S.CveTipoTramite
|
|
AND DR.CveTipoDocumento = TD.CveTipoDocumento
|
|
LEFT JOIN dbo.Tra_DocumentosSolicitud AS DS ON DS.CveSolicitud = S.CveSolicitud
|
|
AND DS.CveTipoDocumento = @CveTipoDocumento
|
|
WHERE S.CveSolicitud = @CveSolicitud
|
|
AND S.CveFraccionamiento = @CveFraccionamiento;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar =
|
|
'Ocurrió un error al consultar el documento; 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_Tramites_DocumentoSolicitudUploadContextGet'
|
|
),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tramites_DocumentoSolicitudSave
|
|
@CveFraccionamiento int,
|
|
@CveSolicitud int,
|
|
@CveTipoDocumento int,
|
|
@NombreArchivo varchar(255),
|
|
@NombreArchivoFisico varchar(255),
|
|
@RutaArchivo varchar(1000),
|
|
@ContentType varchar(100) = NULL,
|
|
@TamanoBytes bigint = NULL,
|
|
@ComentarioCliente varchar(1000) = NULL,
|
|
@FechaDocumento date = NULL,
|
|
@FechaVencimiento date = NULL,
|
|
@ActualizarFechas 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
|
|
SET @NombreArchivo =
|
|
NULLIF(LTRIM(RTRIM(@NombreArchivo)), '');
|
|
|
|
SET @NombreArchivoFisico =
|
|
NULLIF(LTRIM(RTRIM(@NombreArchivoFisico)), '');
|
|
|
|
SET @RutaArchivo =
|
|
NULLIF(LTRIM(RTRIM(@RutaArchivo)), '');
|
|
|
|
SET @ContentType =
|
|
NULLIF(LTRIM(RTRIM(@ContentType)), '');
|
|
|
|
SET @ComentarioCliente =
|
|
NULLIF(LTRIM(RTRIM(@ComentarioCliente)), '');
|
|
|
|
IF @NombreArchivo IS NULL
|
|
OR @NombreArchivoFisico IS NULL
|
|
OR @RutaArchivo IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Los datos del archivo están incompletos.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @CveRol int;
|
|
DECLARE @EsSuperUsuario bit = 0;
|
|
DECLARE @CveCliente int;
|
|
DECLARE @EsFinal bit;
|
|
DECLARE @CveFraccionamientoEtapa int;
|
|
|
|
SELECT
|
|
@CveRol = U.CveRol,
|
|
@EsSuperUsuario =
|
|
CASE
|
|
WHEN U.CveRol <= 2 THEN 1
|
|
ELSE 0
|
|
END
|
|
FROM dbo.Sis_Usuarios AS U
|
|
WHERE U.CveUsuario = @CveUsuarioEjecuta
|
|
AND U.Activo = 1;
|
|
|
|
SELECT
|
|
@CveCliente = S.CveCliente,
|
|
@EsFinal = ES.EsFinal,
|
|
@CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.Tra_EstatusSolicitud AS ES ON ES.CveEstatusSolicitud = S.CveEstatusSolicitud
|
|
WHERE S.CveSolicitud = @CveSolicitud
|
|
AND S.CveFraccionamiento = @CveFraccionamiento;
|
|
|
|
IF @CveRol IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario no existe o está inactivo.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @CveCliente IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La solicitud no pertenece al fraccionamiento seleccionado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
/*
|
|
Se conserva la autorización sobre los datos del fraccionamiento.
|
|
No se agrega ninguna validación de catálogo.
|
|
*/
|
|
IF @EsSuperUsuario = 0
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Sis_UsuariosClientes AS UC
|
|
WHERE UC.CveUsuario = @CveUsuarioEjecuta
|
|
AND UC.CveCliente = @CveCliente
|
|
AND UC.Activo = 1
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El fraccionamiento no está asignado al usuario.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
-- La disponibilidad por rol y estatus se comprueba en el servicio C#.
|
|
|
|
/*
|
|
Sólo se valida que el tipo exista y esté activo.
|
|
NO se exige EsRequerido.
|
|
*/
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_TiposDocumento AS TD
|
|
WHERE TD.CveTipoDocumento = @CveTipoDocumento
|
|
AND TD.EsActivo = 1
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El tipo de documento no existe o está inactivo.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.Tra_TiposTramiteDocumento AS R ON R.CveTipoTramite = S.CveTipoTramite
|
|
AND R.CveTipoDocumento = @CveTipoDocumento
|
|
WHERE S.CveSolicitud = @CveSolicitud
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El documento no está configurado para este tipo de trámite.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @CveDocumentoSolicitud int;
|
|
DECLARE @NombreArchivoAnterior varchar(255);
|
|
DECLARE @NombreArchivoFisicoAnterior varchar(255);
|
|
DECLARE @RutaArchivoAnterior varchar(1000);
|
|
DECLARE @ContentTypeAnterior varchar(100);
|
|
DECLARE @TamanoBytesAnterior bigint;
|
|
DECLARE @ComentarioClienteAnterior varchar(1000);
|
|
DECLARE @ComentarioAdministrativoAnterior varchar(1000);
|
|
DECLARE @EsAprobadoAnterior bit;
|
|
DECLARE @CveUsuarioRevisaAnterior int;
|
|
DECLARE @FechaRevisionAnterior datetime;
|
|
DECLARE @EsNuevo bit = 0;
|
|
DECLARE @FechaDocumentoAnterior date;
|
|
DECLARE @FechaVencimientoAnterior date;
|
|
|
|
SELECT
|
|
@CveDocumentoSolicitud = DS.CveDocumentoSolicitud,
|
|
@NombreArchivoAnterior = DS.NombreArchivo,
|
|
@NombreArchivoFisicoAnterior = DS.NombreArchivoFisico,
|
|
@RutaArchivoAnterior = DS.RutaArchivo,
|
|
@ContentTypeAnterior = DS.ContentType,
|
|
@TamanoBytesAnterior = DS.TamanoBytes,
|
|
@ComentarioClienteAnterior = DS.ComentarioCliente,
|
|
@ComentarioAdministrativoAnterior = DS.ComentarioAdministrativo,
|
|
@EsAprobadoAnterior = DS.EsAprobado,
|
|
@CveUsuarioRevisaAnterior = DS.CveUsuarioRevisa,
|
|
@FechaRevisionAnterior = DS.FechaRevision,
|
|
@FechaDocumentoAnterior = DS.FechaDocumento,
|
|
@FechaVencimientoAnterior = DS.FechaVencimiento
|
|
FROM dbo.Tra_DocumentosSolicitud AS DS WITH (UPDLOCK, HOLDLOCK)
|
|
WHERE DS.CveSolicitud = @CveSolicitud
|
|
AND DS.CveTipoDocumento = @CveTipoDocumento;
|
|
|
|
IF @CveDocumentoSolicitud IS NULL
|
|
BEGIN
|
|
INSERT INTO dbo.Tra_DocumentosSolicitud
|
|
(
|
|
CveSolicitud,
|
|
CveFraccionamientoEtapa,
|
|
FechaDocumento,
|
|
FechaVencimiento,
|
|
CveTipoDocumento,
|
|
NombreArchivo,
|
|
NombreArchivoFisico,
|
|
RutaArchivo,
|
|
ContentType,
|
|
TamanoBytes,
|
|
ComentarioCliente,
|
|
ComentarioAdministrativo,
|
|
EsAprobado,
|
|
CveUsuarioCarga,
|
|
CveUsuarioRevisa,
|
|
FechaRevision
|
|
)
|
|
VALUES
|
|
(
|
|
@CveSolicitud,
|
|
@CveFraccionamientoEtapa,
|
|
@FechaDocumento,
|
|
@FechaVencimiento,
|
|
@CveTipoDocumento,
|
|
@NombreArchivo,
|
|
@NombreArchivoFisico,
|
|
@RutaArchivo,
|
|
@ContentType,
|
|
@TamanoBytes,
|
|
@ComentarioCliente,
|
|
NULL,
|
|
NULL,
|
|
@CveUsuarioEjecuta,
|
|
NULL,
|
|
NULL
|
|
);
|
|
|
|
SET @CveDocumentoSolicitud =
|
|
CONVERT(int, SCOPE_IDENTITY());
|
|
|
|
SET @EsNuevo = 1;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
/*
|
|
Al reemplazar/corregir el archivo se elimina la revisión.
|
|
*/
|
|
UPDATE dbo.Tra_DocumentosSolicitud
|
|
SET
|
|
CveFraccionamientoEtapa = @CveFraccionamientoEtapa,
|
|
FechaDocumento =
|
|
CASE WHEN @ActualizarFechas = 1 THEN @FechaDocumento ELSE FechaDocumento END,
|
|
FechaVencimiento =
|
|
CASE WHEN @ActualizarFechas = 1 THEN @FechaVencimiento ELSE FechaVencimiento END,
|
|
EsActivo = 1,
|
|
NombreArchivo = @NombreArchivo,
|
|
NombreArchivoFisico = @NombreArchivoFisico,
|
|
RutaArchivo = @RutaArchivo,
|
|
ContentType = @ContentType,
|
|
TamanoBytes = @TamanoBytes,
|
|
ComentarioCliente = @ComentarioCliente,
|
|
ComentarioAdministrativo = NULL,
|
|
EsAprobado = NULL,
|
|
CveUsuarioCarga = @CveUsuarioEjecuta,
|
|
CveUsuarioRevisa = NULL,
|
|
FechaRevision = NULL
|
|
WHERE CveDocumentoSolicitud = @CveDocumentoSolicitud;
|
|
END;
|
|
|
|
SELECT
|
|
DS.CveDocumentoSolicitud,
|
|
S.CveSolicitud,
|
|
S.Folio,
|
|
S.CveCliente,
|
|
S.CveFraccionamiento,
|
|
S.CveFraccionamientoEtapa,
|
|
E.Etapa,
|
|
S.CveTipoTramite,
|
|
TT.TipoTramite,
|
|
DS.CveTipoDocumento,
|
|
COALESCE(NULLIF(TD.Descripcion, ''), TD.TipoDocumento) AS TipoDocumento,
|
|
DS.FechaDocumento,
|
|
DS.FechaVencimiento,
|
|
@FechaDocumentoAnterior AS FechaDocumentoAnterior,
|
|
@FechaVencimientoAnterior AS FechaVencimientoAnterior,
|
|
DS.NombreArchivo,
|
|
DS.NombreArchivoFisico,
|
|
DS.RutaArchivo,
|
|
DS.ContentType,
|
|
DS.TamanoBytes,
|
|
DS.ComentarioCliente,
|
|
DS.ComentarioAdministrativo,
|
|
DS.EsAprobado,
|
|
DS.CveUsuarioRevisa,
|
|
DS.FechaRevision,
|
|
@EsNuevo AS EsNuevo,
|
|
@NombreArchivoAnterior AS NombreArchivoAnterior,
|
|
@NombreArchivoFisicoAnterior AS NombreArchivoFisicoAnterior,
|
|
@RutaArchivoAnterior AS RutaArchivoAnterior,
|
|
@ContentTypeAnterior AS ContentTypeAnterior,
|
|
@TamanoBytesAnterior AS TamanoBytesAnterior,
|
|
@ComentarioClienteAnterior AS ComentarioClienteAnterior,
|
|
@ComentarioAdministrativoAnterior AS ComentarioAdministrativoAnterior,
|
|
@EsAprobadoAnterior AS EsAprobadoAnterior,
|
|
@CveUsuarioRevisaAnterior AS CveUsuarioRevisaAnterior,
|
|
@FechaRevisionAnterior AS FechaRevisionAnterior
|
|
FROM dbo.Tra_DocumentosSolicitud AS DS
|
|
INNER JOIN dbo.Tra_Solicitudes AS S ON S.CveSolicitud = DS.CveSolicitud
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E ON E.CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Tra_TiposTramite AS TT ON TT.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Tra_TiposDocumento AS TD ON TD.CveTipoDocumento = DS.CveTipoDocumento
|
|
WHERE DS.CveDocumentoSolicitud = @CveDocumentoSolicitud;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar =
|
|
'Ocurrió un error al guardar el documento; 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_Tramites_DocumentoSolicitudSave'
|
|
),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_DocumentoRequeridoDelete
|
|
@CveTipoTramite int,
|
|
@CveTipoDocumento 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
|
|
DELETE dbo.Tra_TiposTramiteDocumento
|
|
WHERE CveTipoTramite = @CveTipoTramite
|
|
AND CveTipoDocumento = @CveTipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT @ErrorMostrar = 'Ocurrió un error al eliminar el documento requerido; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_DocumentoRequeridoDelete'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_TipoDocumentoDelete
|
|
@CveTipoDocumento 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
|
|
IF EXISTS (SELECT 1 FROM dbo.Tra_TiposTramiteDocumento WHERE CveTipoDocumento = @CveTipoDocumento)
|
|
OR EXISTS (SELECT 1 FROM dbo.Tra_DocumentosSolicitud WHERE CveTipoDocumento = @CveTipoDocumento)
|
|
BEGIN
|
|
SELECT @ErrorMostrar = 'El tipo de documento tiene información relacionada y no puede eliminarse. Puede desactivarlo.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
DELETE dbo.Tra_TiposDocumento WHERE CveTipoDocumento = @CveTipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT @ErrorMostrar = 'Ocurrió un error al eliminar el tipo de documento; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_TipoDocumentoDelete'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_TipoTramiteDelete
|
|
@CveTipoTramite 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
|
|
IF EXISTS (SELECT 1 FROM dbo.Tra_Solicitudes WHERE CveTipoTramite = @CveTipoTramite)
|
|
OR EXISTS (SELECT 1 FROM dbo.Tra_TiposTramiteDocumento WHERE CveTipoTramite = @CveTipoTramite)
|
|
OR EXISTS (SELECT 1 FROM dbo.Tra_Preguntas WHERE CveTipoTramite = @CveTipoTramite)
|
|
BEGIN
|
|
SELECT @ErrorMostrar = 'El tipo de trámite tiene información relacionada y no puede eliminarse. Puede desactivarlo.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
DELETE dbo.Tra_TiposTramite WHERE CveTipoTramite = @CveTipoTramite;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT @ErrorMostrar = 'Ocurrió un error al eliminar el tipo de trámite; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_TipoTramiteDelete'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
ALTER PROCEDURE dbo.PA_Tra_CatalogoOrdenMove
|
|
@Entidad varchar(40),
|
|
@CveRegistro int,
|
|
@CveReferencia int,
|
|
@ColocarDespues bit,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT,
|
|
@CveTipoTramite int = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT
|
|
@ErrorMostrar = NULL,
|
|
@ErrorTipo = 0,
|
|
@Return = 0;
|
|
|
|
BEGIN TRY
|
|
IF @CveRegistro <= 0
|
|
OR @CveReferencia <= 0
|
|
OR @CveRegistro = @CveReferencia
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'Seleccione una posición válida para mover el registro.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @Entidad = 'DocumentoRequerido' AND ISNULL(@CveTipoTramite, 0) <= 0
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'Seleccione el tipo de trámite del documento.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @Registros TABLE
|
|
(
|
|
CveRegistro int NOT NULL PRIMARY KEY,
|
|
CvePadre int NULL,
|
|
Orden int NOT NULL
|
|
);
|
|
|
|
IF @Entidad = 'EstatusSolicitud'
|
|
BEGIN
|
|
INSERT @Registros (CveRegistro, CvePadre, Orden)
|
|
SELECT CveEstatusSolicitud, NULL, Orden
|
|
FROM dbo.Tra_EstatusSolicitud;
|
|
END
|
|
ELSE IF @Entidad = 'TipoTramite'
|
|
BEGIN
|
|
INSERT @Registros (CveRegistro, CvePadre, Orden)
|
|
SELECT CveTipoTramite, NULL, Orden
|
|
FROM dbo.Tra_TiposTramite;
|
|
END
|
|
ELSE IF @Entidad = 'DocumentoRequerido'
|
|
BEGIN
|
|
INSERT @Registros (CveRegistro, CvePadre, Orden)
|
|
SELECT CveTipoDocumento, CveTipoTramite, Orden
|
|
FROM dbo.Tra_TiposTramiteDocumento
|
|
WHERE CveTipoTramite = @CveTipoTramite;
|
|
END
|
|
ELSE IF @Entidad = 'Pregunta'
|
|
BEGIN
|
|
INSERT @Registros (CveRegistro, CvePadre, Orden)
|
|
SELECT CvePregunta, CveTipoTramite, Orden
|
|
FROM dbo.Tra_Preguntas;
|
|
END
|
|
ELSE IF @Entidad = 'OpcionPregunta'
|
|
BEGIN
|
|
INSERT @Registros (CveRegistro, CvePadre, Orden)
|
|
SELECT CveOpcionPregunta, CvePregunta, Orden
|
|
FROM dbo.Tra_OpcionesPregunta;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'El catálogo solicitado no admite reordenamiento.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @OrdenAnterior int;
|
|
DECLARE @OrdenReferencia int;
|
|
DECLARE @CvePadre int;
|
|
DECLARE @CvePadreReferencia int;
|
|
DECLARE @OrdenNuevo int;
|
|
|
|
SELECT
|
|
@OrdenAnterior = Orden,
|
|
@CvePadre = CvePadre
|
|
FROM @Registros
|
|
WHERE CveRegistro = @CveRegistro;
|
|
|
|
SELECT
|
|
@OrdenReferencia = Orden,
|
|
@CvePadreReferencia = CvePadre
|
|
FROM @Registros
|
|
WHERE CveRegistro = @CveReferencia;
|
|
|
|
IF @OrdenAnterior IS NULL
|
|
OR @OrdenReferencia IS NULL
|
|
OR ISNULL(@CvePadre, -1) <> ISNULL(@CvePadreReferencia, -1)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'Los registros seleccionados no pertenecen al mismo catálogo.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SET @OrdenNuevo =
|
|
CASE
|
|
WHEN @ColocarDespues = 1 AND @OrdenAnterior < @OrdenReferencia
|
|
THEN @OrdenReferencia
|
|
WHEN @ColocarDespues = 1
|
|
THEN @OrdenReferencia + 1
|
|
WHEN @OrdenAnterior < @OrdenReferencia
|
|
THEN @OrdenReferencia - 1
|
|
ELSE @OrdenReferencia
|
|
END;
|
|
|
|
IF @OrdenNuevo = @OrdenAnterior
|
|
BEGIN
|
|
SET @Return = 1;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @OrdenAnterior < @OrdenNuevo
|
|
BEGIN
|
|
UPDATE @Registros
|
|
SET Orden = Orden - 1
|
|
WHERE ISNULL(CvePadre, -1) = ISNULL(@CvePadre, -1)
|
|
AND CveRegistro <> @CveRegistro
|
|
AND Orden > @OrdenAnterior
|
|
AND Orden <= @OrdenNuevo;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE @Registros
|
|
SET Orden = Orden + 1
|
|
WHERE ISNULL(CvePadre, -1) = ISNULL(@CvePadre, -1)
|
|
AND CveRegistro <> @CveRegistro
|
|
AND Orden >= @OrdenNuevo
|
|
AND Orden < @OrdenAnterior;
|
|
END;
|
|
|
|
UPDATE @Registros
|
|
SET Orden = @OrdenNuevo
|
|
WHERE CveRegistro = @CveRegistro;
|
|
|
|
IF @Entidad = 'EstatusSolicitud'
|
|
BEGIN
|
|
UPDATE E
|
|
SET Orden = R.Orden
|
|
FROM dbo.Tra_EstatusSolicitud AS E
|
|
INNER JOIN @Registros AS R
|
|
ON R.CveRegistro = E.CveEstatusSolicitud
|
|
WHERE E.Orden <> R.Orden;
|
|
END
|
|
ELSE IF @Entidad = 'TipoTramite'
|
|
BEGIN
|
|
UPDATE T
|
|
SET Orden = R.Orden
|
|
FROM dbo.Tra_TiposTramite AS T
|
|
INNER JOIN @Registros AS R
|
|
ON R.CveRegistro = T.CveTipoTramite
|
|
WHERE T.Orden <> R.Orden;
|
|
END
|
|
ELSE IF @Entidad = 'DocumentoRequerido'
|
|
BEGIN
|
|
UPDATE D
|
|
SET Orden = R.Orden
|
|
FROM dbo.Tra_TiposTramiteDocumento AS D
|
|
INNER JOIN @Registros AS R
|
|
ON R.CveRegistro = D.CveTipoDocumento
|
|
AND R.CvePadre = D.CveTipoTramite
|
|
WHERE D.Orden <> R.Orden;
|
|
END
|
|
ELSE IF @Entidad = 'Pregunta'
|
|
BEGIN
|
|
UPDATE P
|
|
SET Orden = R.Orden
|
|
FROM dbo.Tra_Preguntas AS P
|
|
INNER JOIN @Registros AS R
|
|
ON R.CveRegistro = P.CvePregunta
|
|
WHERE P.Orden <> R.Orden;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE O
|
|
SET Orden = R.Orden
|
|
FROM dbo.Tra_OpcionesPregunta AS O
|
|
INNER JOIN @Registros AS R
|
|
ON R.CveRegistro = O.CveOpcionPregunta
|
|
WHERE O.Orden <> R.Orden;
|
|
END;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al actualizar el orden del catálogo; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tra_CatalogoOrdenMove'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|