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