kreta/Kreta.DataAccess.Migrations/Scripts/20210913001208_KRETA2_9631_2/uspCheck4TFelhOktAzonValidation.sql
2024-03-13 00:33:46 +01:00

85 lines
3.7 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[uspCheck4TFelhOktAzonValidation]
GO
CREATE PROCEDURE [dbo].[uspCheck4TFelhOktAzonValidation]
@pCheckValidationType int
,@pElotag nvarchar(255) = null
,@pVezeteknev nvarchar(255) = null
,@pUtonev nvarchar(255) = null
,@pAnyjaNeve nvarchar(255) = null
,@pAnyjaVezeteknev nvarchar(255) = null
,@pAnyjaUtonev nvarchar(255) = null
,@pSzuletesiHely nvarchar(255) = null
,@pSzuletesiDatum datetime = null
,@pTanevIds nvarchar(MAX) = null
,@pFelvetelStatuszaFelveve int = null
,@pFelvetelStatuszaNemFelveve int = null
,@pOktatasiAzonosito nvarchar(255) = null
,@pBejelentkezesiNev nvarchar(255) = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max) = N'', @partialSql nvarchar(max) = N''
IF (@pCheckValidationType = 1 OR @pCheckValidationType = 2) /* 1 - Tanuló *//* 2 - Alkalmazott */
BEGIN
SET @sql = N'
SELECT
fb.C_BEJELENTKEZESINEV
,fb.C_GONDVISELOID
,' + CAST(@pCheckValidationType AS char(1)) + ' As ValidationType
,f.*
FROM T_FELHASZNALO_OSSZES f
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb on fb.C_FELHASZNALOID = f.ID AND f.TOROLT = ''F'''+
IIF(@pCheckValidationType = 1 , ' LEFT JOIN T_TANULO_OSSZES t ON t.ID = f.ID AND t.TOROLT = ''F''','') +
IIF(@pCheckValidationType = 2 , ' LEFT JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = f.ID AND a.TOROLT = ''F''','') +
'WHERE f.TOROLT = ''F'''
IF(@pTanevIds IS NOT NULL) BEGIN SET @sql += ' AND f.C_TANEVID IN ('+ @pTanevIds + ')' END
IF(@pBejelentkezesiNev IS NOT NULL) BEGIN SET @partialSql += IIF(LEN(@partialSql) > 0,' OR ','')+' fb.C_BEJELENTKEZESINEV = @pBejelentkezesiNev ' END
IF(@pOktatasiAzonosito IS NOT NULL) BEGIN SET @partialSql += IIF(LEN(@partialSql) > 0,' OR ','')+' f.C_OKTATASIAZONOSITO = @pOktatasiAzonosito ' END
IF(@pVezeteknev IS NOT NULL AND @pUtonev IS NOT NULL AND @pAnyjaNeve IS NOT NULL AND @pSzuletesiHely IS NOT NULL AND @pSzuletesiDatum IS NOT NULL)
BEGIN
SET @partialSql += IIF(LEN(@partialSql) > 0, ' OR ','')+'(f.C_VEZETEKNEV = @pVezeteknev AND f.C_UTONEV = @pUtonev AND f.C_ANYJANEVE = @pAnyjaNeve
AND f.C_SZULETESIHELY = @pSzuletesiHely AND f.C_SZULETESIDATUM = @pSzuletesiDatum
AND ISNULL(f.C_ELOTAG,'''') = ISNULL(@pElotag,'''')) '
END
SET @sql += 'AND ( '+ @partialSql +' )'
EXEC sp_executesql
@sql,N'
@pElotag nvarchar(255) = null
,@pVezeteknev nvarchar(255) = null
,@pUtonev nvarchar(255) = null
,@pAnyjaNeve nvarchar(255) = null
,@pAnyjaVezeteknev nvarchar(255) = null
,@pAnyjaUtonev nvarchar(255) = null
,@pSzuletesiHely nvarchar(255) = null
,@pSzuletesiDatum datetime = null
,@pOktatasiAzonosito nvarchar(255) = null
,@pBejelentkezesiNev nvarchar(255) = null'
,@pElotag = @pElotag
,@pVezeteknev = @pVezeteknev
,@pUtonev = @pUtonev
,@pAnyjaNeve = @pAnyjaNeve
,@pAnyjaVezeteknev = @pAnyjaVezeteknev
,@pAnyjaUtonev = @pAnyjaUtonev
,@pSzuletesiHely = @pSzuletesiHely
,@pSzuletesiDatum = @pSzuletesiDatum
,@pOktatasiAzonosito = @pOktatasiAzonosito
,@pBejelentkezesiNev = @pBejelentkezesiNev
END
ELSE IF (@pCheckValidationType = 3) /* Nebuló */
BEGIN
SELECT
ID
,3 As ValidationType
FROM T_NEBULO_OSSZES n
WHERE
n.C_TANULOCSALADINEVE = @pVezeteknev AND n.C_TANULOUTONEVE = @pUtonev
AND n.C_EDESANYJASZULETESICSALADINEV = @pAnyjaVezeteknev AND n.C_EDESANYJASZULETESIUTONEVE = @pAnyjaUtonev
AND n.C_SZULETESIHELY = @pSzuletesiHely AND n.C_SZULETESIIDO = @pSzuletesiDatum
AND (n.C_FELVETELSTATUSZA = @pFelvetelStatuszaFelveve OR n.C_FELVETELSTATUSZA = @pFelvetelStatuszaNemFelveve) AND n.TOROLT = 'F'
AND ISNULL(n.C_ELOTAG,'') = @pElotag
END
END
GO