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