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

96 lines
2.6 KiB
Transact-SQL

CREATE OR ALTER PROCEDURE dbo.PA_Tra_GenerarSolicitudesPorFlujo
(
@CveFraccionamientoEtapa int,
@CveUsuario int
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CveEstatusSolicitud int;
SELECT TOP (1)
@CveEstatusSolicitud = ES.CveEstatusSolicitud
FROM dbo.Tra_EstatusSolicitud AS ES
WHERE ES.EsActivo = 1
AND ES.Orden = 1
ORDER BY ES.CveEstatusSolicitud;
;WITH DatosFlujo AS
(
SELECT
FE.CveFraccionamientoEtapa,
T.CveTipoTramite,
TF.CveTipoTramitePadre,
IIF(
ES.EsFinal = 1
AND ES.EsOK = 1,
1,
0
) AS EsOK
FROM dbo.Tra_TiposTramite AS T
INNER JOIN dbo.FraccionamientosEtapas AS FE
ON FE.CveFraccionamientoEtapa = @CveFraccionamientoEtapa
INNER JOIN dbo.Tra_TiposTramiteFlujo AS TF
ON TF.CveTipoTramite = T.CveTipoTramite
LEFT JOIN dbo.Tra_Solicitudes AS TS
ON TS.CveTipoTramite = TF.CveTipoTramitePadre
AND TS.CveFraccionamientoEtapa =
FE.CveFraccionamientoEtapa
LEFT JOIN dbo.Tra_EstatusSolicitud AS ES
ON ES.CveEstatusSolicitud = TS.CveEstatusSolicitud
),
TramitesDisponibles AS
(
SELECT
D.CveFraccionamientoEtapa,
D.CveTipoTramite
FROM DatosFlujo AS D
GROUP BY
D.CveFraccionamientoEtapa,
D.CveTipoTramite
HAVING COUNT(D.CveTipoTramitePadre) = SUM(D.EsOK)
)
INSERT INTO dbo.Tra_Solicitudes
(
Folio,
CveCliente,
CveFraccionamiento,
CveFraccionamientoEtapa,
CveTipoTramite,
CveEstatusSolicitud,
CveUsuarioSolicita,
FechaInicio,
FechaAlta
)
SELECT
CONCAT(
'ET',
FE.CveFraccionamientoEtapa,
'-TR',
TD.CveTipoTramite
),
F.CveCliente,
FE.CveFraccionamiento,
FE.CveFraccionamientoEtapa,
TD.CveTipoTramite,
@CveEstatusSolicitud,
@CveUsuario,
GETDATE(),
GETDATE()
FROM TramitesDisponibles AS TD
INNER JOIN dbo.FraccionamientosEtapas AS FE
ON FE.CveFraccionamientoEtapa = TD.CveFraccionamientoEtapa
INNER JOIN dbo.Fraccionamientos AS F
ON F.CveFraccionamiento = FE.CveFraccionamiento
WHERE NOT EXISTS
(
SELECT 1
FROM dbo.Tra_Solicitudes AS S
WHERE S.CveFraccionamientoEtapa =
TD.CveFraccionamientoEtapa
AND S.CveTipoTramite = TD.CveTipoTramite
);
END;
GO