1065 lines
37 KiB
Transact-SQL
1065 lines
37 KiB
Transact-SQL
/* Configuración general más excepciones por solicitud.
|
|
Los cuatro ALTER se basan en las definiciones instaladas y respaldadas el 18/09/2026.
|
|
Los tres PAs de configuración se ejecutan desde el servicio con transacción y bitácora. */
|
|
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)
|
|
),
|
|
Configuracion AS
|
|
(
|
|
SELECT
|
|
S.CveSolicitud,
|
|
G.CveTipoDocumento,
|
|
G.EsRequerido,
|
|
G.EsCliente,
|
|
G.TieneVigencia,
|
|
G.Orden,
|
|
G.EsActivo
|
|
FROM SolicitudesBase AS S
|
|
INNER JOIN dbo.Tra_TiposTramiteDocumento AS G ON G.CveTipoTramite = S.CveTipoTramite
|
|
WHERE NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_SolicitudDocumentoConfiguracion AS P
|
|
WHERE P.CveSolicitud = S.CveSolicitud
|
|
AND P.CveTipoDocumento = G.CveTipoDocumento
|
|
)
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
P.CveSolicitud,
|
|
P.CveTipoDocumento,
|
|
P.EsRequerido,
|
|
P.EsCliente,
|
|
P.TieneVigencia,
|
|
P.Orden,
|
|
P.EsActivo
|
|
FROM dbo.Tra_SolicitudDocumentoConfiguracion AS P
|
|
INNER JOIN SolicitudesBase AS S ON S.CveSolicitud = P.CveSolicitud
|
|
),
|
|
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 Configuracion AS DR ON DR.CveSolicitud = SB.CveSolicitud
|
|
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 Configuracion AS DR ON DR.CveSolicitud = SB.CveSolicitud
|
|
AND DR.EsActivo = 1
|
|
AND (@IncluirRequisitos = 1 OR DR.EsRequerido = 1 OR EXISTS
|
|
(SELECT 1 FROM dbo.Tra_SolicitudDocumentoConfiguracion AS P
|
|
WHERE P.CveSolicitud = SB.CveSolicitud
|
|
AND P.CveTipoDocumento = DR.CveTipoDocumento))
|
|
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,
|
|
COALESCE(P.EsCliente, DR.EsCliente) AS EsCliente,
|
|
COALESCE(P.TieneVigencia, DR.TieneVigencia) AS 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
|
|
LEFT JOIN dbo.Tra_TiposTramiteDocumento AS DR ON DR.CveTipoTramite = S.CveTipoTramite
|
|
AND DR.CveTipoDocumento = TD.CveTipoDocumento
|
|
LEFT JOIN dbo.Tra_SolicitudDocumentoConfiguracion AS P ON P.CveSolicitud = S.CveSolicitud
|
|
AND P.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
|
|
AND
|
|
(
|
|
(P.CveSolicitud IS NOT NULL AND P.EsActivo = 1)
|
|
OR (P.CveSolicitud IS NULL AND DR.CveTipoDocumento IS NOT NULL)
|
|
);
|
|
|
|
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_SolicitudDocumentoConfiguracion
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveTipoDocumento = @CveTipoDocumento
|
|
AND EsActivo = 1
|
|
)
|
|
AND 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
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_SolicitudDocumentoConfiguracion AS P
|
|
WHERE P.CveSolicitud = S.CveSolicitud
|
|
AND P.CveTipoDocumento = @CveTipoDocumento
|
|
)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El documento no está habilitado para esta solicitud.';
|
|
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_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_SolicitudDocumentoConfiguracion 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
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Tramites_SolicitudDocumentoConfiguracionList
|
|
@CveFraccionamiento int,
|
|
@CveSolicitud 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 NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_Solicitudes
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveFraccionamiento = @CveFraccionamiento
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La solicitud no pertenece al fraccionamiento seleccionado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
S.CveSolicitud,
|
|
S.CveCliente,
|
|
S.CveFraccionamiento,
|
|
S.CveFraccionamientoEtapa,
|
|
S.Folio,
|
|
E.Etapa,
|
|
T.TipoTramite,
|
|
ES.EsFinal AS EsFinalSolicitud,
|
|
D.CveTipoDocumento,
|
|
D.TipoDocumento,
|
|
COALESCE(P.EsRequerido, G.EsRequerido, CONVERT(bit, 0)) AS EsRequerido,
|
|
COALESCE(P.EsCliente, G.EsCliente, CONVERT(bit, 1)) AS EsCliente,
|
|
COALESCE(P.TieneVigencia, G.TieneVigencia, CONVERT(bit, 0)) AS TieneVigencia,
|
|
COALESCE(P.Orden, G.Orden, 0) AS Orden,
|
|
COALESCE(P.EsActivo, G.EsActivo, CONVERT(bit, 1)) AS EsActivo,
|
|
CONVERT(bit, CASE WHEN P.CveSolicitud IS NOT NULL THEN 1 ELSE 0 END) AS EsParticular,
|
|
CONVERT(bit, CASE WHEN P.CveSolicitud IS NOT NULL OR G.CveTipoDocumento IS NOT NULL THEN 1 ELSE 0 END) AS EsConfigurado
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E ON E.CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Tra_TiposTramite AS T ON T.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Tra_EstatusSolicitud AS ES ON ES.CveEstatusSolicitud = S.CveEstatusSolicitud
|
|
CROSS JOIN dbo.Tra_TiposDocumento AS D
|
|
LEFT JOIN dbo.Tra_TiposTramiteDocumento AS G ON G.CveTipoTramite = S.CveTipoTramite
|
|
AND G.CveTipoDocumento = D.CveTipoDocumento
|
|
LEFT JOIN dbo.Tra_SolicitudDocumentoConfiguracion AS P ON P.CveSolicitud = S.CveSolicitud
|
|
AND P.CveTipoDocumento = D.CveTipoDocumento
|
|
WHERE S.CveSolicitud = @CveSolicitud
|
|
AND (D.EsActivo = 1 OR P.CveSolicitud IS NOT NULL OR G.CveTipoDocumento IS NOT NULL)
|
|
ORDER BY COALESCE(P.Orden, G.Orden, 0), D.TipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al procesar la configuración de documentos; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tramites_SolicitudDocumentoConfiguracionList'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Tramites_SolicitudDocumentoConfiguracionSave
|
|
@CveFraccionamiento int,
|
|
@CveSolicitud int,
|
|
@CveTipoDocumento int,
|
|
@EsRequerido bit,
|
|
@EsCliente bit,
|
|
@TieneVigencia bit,
|
|
@Orden int,
|
|
@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
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_Solicitudes
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveFraccionamiento = @CveFraccionamiento
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La solicitud no pertenece al fraccionamiento seleccionado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_TiposDocumento
|
|
WHERE CveTipoDocumento = @CveTipoDocumento
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Seleccione un tipo de documento válido.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_SolicitudDocumentoConfiguracion WITH (UPDLOCK, HOLDLOCK)
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveTipoDocumento = @CveTipoDocumento
|
|
)
|
|
BEGIN
|
|
UPDATE dbo.Tra_SolicitudDocumentoConfiguracion
|
|
SET
|
|
EsRequerido = @EsRequerido,
|
|
EsCliente = @EsCliente,
|
|
TieneVigencia = @TieneVigencia,
|
|
Orden = @Orden,
|
|
EsActivo = @EsActivo
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveTipoDocumento = @CveTipoDocumento;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO dbo.Tra_SolicitudDocumentoConfiguracion
|
|
(CveSolicitud, CveTipoDocumento, EsRequerido, EsCliente, TieneVigencia, Orden, EsActivo)
|
|
VALUES
|
|
(@CveSolicitud, @CveTipoDocumento, @EsRequerido, @EsCliente, @TieneVigencia, @Orden, @EsActivo);
|
|
END;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al procesar la configuración de documentos; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tramites_SolicitudDocumentoConfiguracionSave'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Tramites_SolicitudDocumentoConfiguracionDelete
|
|
@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
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_Solicitudes
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveFraccionamiento = @CveFraccionamiento
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La solicitud no pertenece al fraccionamiento seleccionado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
DELETE FROM dbo.Tra_SolicitudDocumentoConfiguracion
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveTipoDocumento = @CveTipoDocumento;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al procesar la configuración de documentos; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Tramites_SolicitudDocumentoConfiguracionDelete'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|