kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspCheck4TFelhOktAzonValidation.sql
2024-03-13 00:33:46 +01:00

120 lines
5.5 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS dbo.uspCheck4TFelhOktAzonValidation
GO
CREATE PROCEDURE dbo.uspCheck4TFelhOktAzonValidation
@pCheckValidationType int
,@pSzuletesiNevSorrend char(1) = null
,@pSzuletesiElotag nvarchar(255) = null
,@pSzuletesiVezeteknev nvarchar(255) = null
,@pSzuletesiUtonev nvarchar(255) = null
,@pAnyjaNevSorrend char(1) = null
,@pAnyjaNevElotag 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
'
+ IIF (@pCheckValidationType = 1, N'
,IIF(t.ID IS NULL, 2, 1) ', N'
,IIF(a.ID IS NULL, 1, 2) ')
+ ' As ValidationType
,f.*
FROM T_FELHASZNALO_OSSZES f
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb on fb.C_FELHASZNALOID = f.ID AND fb.TOROLT = ''F'''+
IIF(@pCheckValidationType = 1 , N'
LEFT JOIN T_TANULO_OSSZES t ON t.ID = f.ID AND t.TOROLT = ''F''','') +
IIF(@pCheckValidationType = 2 , N'
LEFT JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = f.ID AND a.TOROLT = ''F''','') +
N'
WHERE f.TOROLT = ''F'' AND (fb.C_GONDVISELOID IS NULL OR EXISTS(SELECT ID FROM T_GONDVISELO_OSSZES WHERE ID = fb.C_GONDVISELOID AND 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(@pSzuletesiVezeteknev IS NOT NULL
AND @pSzuletesiUtonev IS NOT NULL
AND @pAnyjaVezeteknev IS NOT NULL
AND @pAnyjaUtonev IS NOT NULL
AND @pSzuletesiHely IS NOT NULL
AND @pSzuletesiDatum IS NOT NULL)
BEGIN
SET @partialSql += IIF(LEN(@partialSql) > 0, ' OR ','')+'(
((ISNULL(@pSzuletesiNevSorrend,''F'') = ISNULL(f.C_SZULETESINEVSORREND,''F'') AND @pSzuletesiVezeteknev = f.C_SZULETESIVEZETEKNEV AND @pSzuletesiUtonev = f.C_SZULETESIUTONEV)
OR (@pSzuletesiVezeteknev = f.C_SZULETESIUTONEV AND @pSzuletesiUtonev = f.C_SZULETESIVEZETEKNEV))
AND ISNULL(@pSzuletesiElotag,''F'') = ISNULL(f.C_SZULETESINEVELOTAG,''F'')
AND ((ISNULL(@pAnyjaNevSorrend,''F'') = ISNULL(f.C_ANYJANEVESORREND,''F'') AND @pAnyjaVezeteknev = f.C_ANYJAVEZETEKNEVE AND @pAnyjaUtonev = f.C_ANYJAUTONEVE)
OR (@pAnyjaVezeteknev = f.C_ANYJAUTONEVE AND @pAnyjaUtonev = f.C_ANYJAVEZETEKNEVE))
AND ISNULL(@pAnyjaNevElotag,''F'') = ISNULL(f.C_ANYJANEVEELOTAG,''F'')
AND @pSzuletesiDatum = f.C_SZULETESIDATUM AND @pSzuletesiHely = f.C_SZULETESIHELY) '
END
SET @sql += IIF(@partialSql IS NOT NULL AND @partialSql NOT LIKE '', ' AND ( '+ @partialSql +' )','')
EXEC sp_executesql
@sql,N'
@pSzuletesiNevSorrend char(1) = null
,@pSzuletesiElotag nvarchar(255) = null
,@pSzuletesiVezeteknev nvarchar(255) = null
,@pSzuletesiUtonev nvarchar(255) = null
,@pAnyjaNevSorrend char(1) = null
,@pAnyjaNevElotag 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'
,@pSzuletesiNevSorrend = @pSzuletesiNevSorrend
,@pSzuletesiElotag = @pSzuletesiElotag
,@pSzuletesiVezeteknev = @pSzuletesiVezeteknev
,@pSzuletesiUtonev = @pSzuletesiUtonev
,@pAnyjaNevSorrend = @pAnyjaNevSorrend
,@pAnyjaNevElotag = @pAnyjaNevElotag
,@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 n
WHERE ((ISNULL(@pSzuletesiNevSorrend,'F') = 'F' AND @pSzuletesiVezeteknev = n.C_SZULETESICSALADINEVE AND @pSzuletesiUtonev = n.C_SZULETESIUTONEVE)
OR (@pSzuletesiVezeteknev = n.C_SZULETESIUTONEVE AND @pSzuletesiUtonev = n.C_SZULETESICSALADINEVE))
AND ISNULL(@pSzuletesiElotag,'F') = ISNULL(n.C_ELOTAG,'F')
AND ((ISNULL(@pAnyjaNevSorrend,'F') = 'F' AND @pAnyjaVezeteknev = n.C_EDESANYJASZULETESICSALADINEV AND @pAnyjaUtonev = n.C_EDESANYJASZULETESIUTONEVE)
OR (@pAnyjaVezeteknev = n.C_EDESANYJASZULETESIUTONEVE AND @pAnyjaUtonev = n.C_EDESANYJASZULETESICSALADINEV))
AND @pSzuletesiDatum = n.C_SZULETESIIDO AND @pSzuletesiHely = n.C_SZULETESIHELY
AND (n.C_FELVETELSTATUSZA = @pFelvetelStatuszaFelveve
OR n.C_FELVETELSTATUSZA = @pFelvetelStatuszaNemFelveve)
AND n.TOROLT = 'F'
END
END
GO