96 lines
2.6 KiB
Transact-SQL
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
|