DROP PROCEDURE IF EXISTS uspTanuloKereses GO CREATE PROCEDURE [dbo].[uspTanuloKereses] @pTorolt char(1) ,@pDatum datetime = NULL ,@pTanuloBelepesNelkul bit = 0 ,@pNincsAllampolgarsag int = NULL ,@pNincsAnyanyelv int = NULL ,@pFelvetelEve int = NULL ,@pTanevId int ,@pFeladatKategoriaId int = NULL ,@pTanuloNeve nvarchar(255) = NULL ,@pNeme int = NULL ,@pSzuletesiIdoKezdet datetime = NULL ,@pSzuletesiIdoVeg datetime = NULL ,@pSzuletesiHely nvarchar(50) = NULL ,@pOktatasiAzonosito nvarchar(20) = NULL ,@pOsztalyCsoportId int = NULL ,@pVegzosEvfolyam char(1) = NULL ,@pSNI char(1) = NULL ,@pBTM char(1) = NULL ,@pFeladatellatasiHelyId int = NULL ,@pHatranyosHelyzetId int = NULL ,@pEvfolyamTipusaId int = NULL ,@pOsztalybaSoroltTantervNelkul bit = NULL ,@pAktiv bit = NULL ,@pMuveszetiAgId int = NULL AS BEGIN SET NOCOUNT ON DECLARE @sql nvarchar(max); IF (@pOsztalyCsoportId IS NOT NULL) BEGIN CREATE TABLE #OsztalyCsoportTanuloi(ID int) INSERT INTO #OsztalyCsoportTanuloi (ID) SELECT C_TANULOID FROM T_TANULOCSOPORT_OSSZES WHERE C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND C_BELEPESDATUM <= @pDatum AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM > @pDatum) AND TOROLT = 'F' END SET @sql = N' SELECT NEWID() AS ID ,T_FELHASZNALO_OSSZES.ID AS TanuloId ,tanugyiAdatok.OsztalyId AS OsztalyCsoportId ,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS TanuloNeve ,IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = ''T'', T_FELHASZNALO_OSSZES.C_UTONEV + '' '' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV, T_FELHASZNALO_OSSZES.C_VEZETEKNEV + '' '' + T_FELHASZNALO_OSSZES.C_UTONEV) AS TanuloNeveElotagNelkul ,T_FELHASZNALO_OSSZES.c_anyjaneve AS AnyjaNeve ,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO AS OktatasiAzonosito ,ISNULL(tanugyiAdatok.TantervNev, tanterv.C_NEV) AS Tanterv ,tanugyiAdatok.C_NEV AS Osztaly ,T_FELHASZNALO_OSSZES.C_SZULETESIHELY AS SzuletesiHely ,T_FELHASZNALO_OSSZES.C_SZULETESIDATUM AS SzuletesiIdo ,ISNULL(tanugyiAdatok.C_TANKOTELEZETT, T_TANULO_OSSZES.C_TANKOTELEZETT) AS Tankotelezett ,tanugyiAdatok.C_MUVESZETIAGID as MuveszetiAgId FROM T_FELHASZNALO_OSSZES' + IIF(@pOsztalyCsoportId IS NOT NULL, ' INNER JOIN #OsztalyCsoportTanuloi ocst ON ocst.ID = T_FELHASZNALO_OSSZES.ID ', '') + ' LEFT JOIN (SELECT tanulo.ID TanuloId ,tta.C_TANKOTELEZETT ,tcso.C_OSZTALYCSOPORTID OsztalyId ,ocs.C_NEV ,ocs.C_MUVESZETIAGID ,tanterv.C_NEV TantervNev ,ocs.C_VEGZOSEVFOLYAM ,ocs.C_FELADATELLATASIHELYID ,ocs.C_FELADATKATEGORIAID ,ocs.C_EVFOLYAMTIPUSA FROM T_TANULO_OSSZES tanulo INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tanulo.ID AND tcso.TOROLT=''F'' AND tcso.C_BELEPESDATUM <= @pDatum AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM > @pDatum ) INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcso.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F'' INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcso.ID AND tta.TOROLT=''F'' INNER JOIN T_TANTERV_OSSZES tanterv on tanterv.ID = tta.C_TANTERVID AND tanterv.TOROLT = ''F'' WHERE tanulo.C_ALTANEVID = @pTanevId ) as tanugyiAdatok ON tanugyiAdatok.TanuloId = T_FELHASZNALO_OSSZES.ID INNER JOIN T_TANULO_OSSZES ON T_FELHASZNALO_OSSZES.ID=T_TANULO_OSSZES.ID INNER JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_TANULO_OSSZES.C_FELVETELTANEVEID INNER JOIN T_TANTERV_OSSZES tanterv on tanterv.ID = T_TANULO_OSSZES.C_TANTERVID AND tanterv.TOROLT = ''F'' ' SET @sql += N' WHERE T_FELHASZNALO_OSSZES.TOROLT= @pTorolt AND T_TANULO_OSSZES.TOROLT= @pTorolt AND tanterv.TOROLT=''F'' AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId ' + IIF(@pTanuloNeve IS NOT NULL AND @pTanuloNeve <> '', ' AND T_FELHASZNALO_OSSZES.C_NYOMTATASINEV LIKE ''%'' + @pTanuloNeve + ''%'' ', '') + + IIF(@pNeme IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_NEME = @pNeme ', '') + + IIF(@pSzuletesiIdoKezdet IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_SZULETESIDATUM >= @pSzuletesiIdoKezdet ', '') + + IIF(@pSzuletesiIdoVeg IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_SZULETESIDATUM <= @pSzuletesiIdoVeg ', '') + + IIF(@pSzuletesiHely IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_SZULETESIHELY LIKE ''%'' + @pSzuletesiHely + ''%'' ', '') + + IIF(@pOktatasiAzonosito IS NOT NULL AND @pOktatasiAzonosito <> '',' AND T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO LIKE ''%'' + @pOktatasiAzonosito + ''%'' ', '') + + IIF(@pVegzosEvfolyam IS NOT NULL AND @pVegzosEvfolyam <> '', ' AND tanugyiAdatok.C_VEGZOSEVFOLYAM = @pVegzosEvfolyam ', '') + + IIF(@pSNI IS NOT NULL AND @pSNI <> '', ' AND T_TANULO_OSSZES.C_SAJATOSNEVELESU = @pSNI ', '') + + IIF(@pBTM IS NOT NULL AND @pBTM <> '', ' AND T_TANULO_OSSZES.C_BTMPROBLEMAS = @pBTM ', '') + + IIF(@pFeladatellatasiHelyId IS NOT NULL, ' AND tanugyiAdatok.C_FELADATELLATASIHELYID = @pFeladatellatasiHelyId ', '') + + IIF(@pHatranyosHelyzetId IS NOT NULL, ' AND T_TANULO_OSSZES.C_HATRANYOSHELYZETU = @pHatranyosHelyzetId ', '') + + IIF(@pEvfolyamTipusaId IS NOT NULL, ' AND tanugyiAdatok.C_EVFOLYAMTIPUSA = @pEvfolyamTipusaId ', '') + + IIF(@pOsztalybaSoroltTantervNelkul IS NOT NULL AND @pOsztalybaSoroltTantervNelkul = 1, ' AND T_TANULO_OSSZES.C_TANTERVID IS NULL AND tanugyiAdatok.OsztalyId IS NOT NULL ', '') + + IIF(@pAktiv = 1, ' AND tanugyiAdatok.OsztalyId IS NOT NULL ', '') + + IIF(@pFeladatKategoriaId IS NOT NULL, ' AND tanugyiAdatok.C_FELADATKATEGORIAID = @pFeladatKategoriaId ', '') + + IIF(@pMuveszetiAgId IS NOT NULL, ' AND tanugyiAdatok.C_MUVESZETIAGID = @pMuveszetiAgId ', '') + + IIF(@pNincsAllampolgarsag IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA = @pNincsAllampolgarsag ', '') + + IIF(@pNincsAnyanyelv IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_ANYANYELVE = @pNincsAnyanyelv ', '') + + IIF(@pTanuloBelepesNelkul = 1, ' AND NOT EXISTS(SELECT C_FELHASZNALOID FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fb.C_FELHASZNALOID = T_FELHASZNALO_OSSZES.ID AND fb.TOROLT = ''F'' AND fb.C_GONDVISELOID IS NULL) ', '') + + IIF(@pFelvetelEve IS NOT NULL, ' AND T_TANEV_OSSZES.ID = @pFelvetelEve ', '') + ' AND T_TANULO_OSSZES.C_ALTANEVID = @pTanevId ' EXEC sp_executesql @sql, N' @pTorolt char(1) ,@pDatum datetime = NULL ,@pTanuloBelepesNelkul bit = 0 ,@pNincsAllampolgarsag int = NULL ,@pNincsAnyanyelv int = NULL ,@pFelvetelEve int = NULL ,@pTanevId int ,@pFeladatKategoriaId int = NULL ,@pTanuloNeve nvarchar(255) = NULL ,@pNeme int = NULL ,@pSzuletesiIdoKezdet datetime = NULL ,@pSzuletesiIdoVeg datetime = NULL ,@pSzuletesiHely nvarchar(50) = NULL ,@pOktatasiAzonosito nvarchar(20) = NULL ,@pOsztalyCsoportId int = NULL ,@pVegzosEvfolyam char(1) = NULL ,@pSNI char(1) = NULL ,@pBTM char(1) = NULL ,@pFeladatellatasiHelyId int = NULL ,@pHatranyosHelyzetId int = NULL ,@pEvfolyamTipusaId int = NULL ,@pOsztalybaSoroltTantervNelkul bit = NULL ,@pAktiv bit = NULL ,@pMuveszetiAgId int = NULL ' ,@pTorolt = @pTorolt ,@pDatum = @pDatum ,@pTanuloBelepesNelkul = @pTanuloBelepesNelkul ,@pNincsAllampolgarsag = @pNincsAllampolgarsag ,@pNincsAnyanyelv = @pNincsAnyanyelv ,@pFelvetelEve = @pFelvetelEve ,@pTanevId = @pTanevId ,@pFeladatKategoriaId = @pFeladatKategoriaId ,@pTanuloNeve = @pTanuloNeve ,@pNeme = @pNeme ,@pSzuletesiIdoKezdet = @pSzuletesiIdoKezdet ,@pSzuletesiIdoVeg = @pSzuletesiIdoVeg ,@pSzuletesiHely = @pSzuletesiHely ,@pOktatasiAzonosito = @pOktatasiAzonosito ,@pOsztalyCsoportId = @pOsztalyCsoportId ,@pVegzosEvfolyam = @pVegzosEvfolyam ,@pSNI = @pSNI ,@pBTM = @pBTM ,@pFeladatellatasiHelyId = @pFeladatellatasiHelyId ,@pHatranyosHelyzetId = @pHatranyosHelyzetId ,@pEvfolyamTipusaId = @pEvfolyamTipusaId ,@pOsztalybaSoroltTantervNelkul = @pOsztalybaSoroltTantervNelkul ,@pAktiv = @pAktiv ,@pMuveszetiAgId = @pMuveszetiAgId END GO