120 lines
5.5 KiB
Transact-SQL
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
|