﻿DROP PROCEDURE IF EXISTS uspGetTanuloKirStatExport
GO

CREATE PROCEDURE uspGetTanuloKirStatExport
   @pTanevId int
  ,@pForOktober char(1)
  ,@pAktiv char(1)
  ,@pNev nvarchar(255) = null
  ,@pNem int = null
  ,@pSzuletesiIdoKezdet datetime = null
  ,@pSzuletesiIdoveg datetime = null
  ,@pSzuletesiHely nvarchar(50) = null
  ,@pOktatasiAzonosito nvarchar(20) = null
  ,@pOsztalyId int = null
  ,@pVegzos char(1) = null
  ,@pSNI char(1) = null
  ,@pBTM char(1) = null
  ,@pFeladatellatasiHelyId int = null
  ,@pHatranyosHelyzetId int = null
  ,@pEvfolyamId int = null
  ,@pOsztalybaSoroltTantervNelkul char(1) = null
  ,@pFeladatKategoriaId int = null
  ,@pSearchMuveszetiAgId int = null

AS
BEGIN

DECLARE @sql nvarchar(max) = N'';
SET @sql += N'
SELECT DISTINCT
   felhasznalo.C_ELOTAG AS ''Előtag''
  ,felhasznalo.C_VEZETEKNEV	AS ''Vezetéknév''
  ,felhasznalo.C_UTONEV	AS ''Utónév''
  ,felhasznalo.C_OKTATASIAZONOSITO AS ''Oktatási azonosító''
  ,felhasznalo.C_SZULETESINEV	AS ''Születési neve''
  ,CAST(felhasznalo.C_SZULETESIDATUM as date)	AS ''Születési dátuma''
  ,felhasznalo.C_ANYJANEVE AS ''Anyja születési neve''
  ,szuletesiorszag.C_NAME	AS ''Születési ország''
  ,felhasznalo.C_SZULETESIHELY AS ''Születési hely''
  ,neme.C_NAME AS ''Neme''
  ,allampolgarsaga.C_NAME AS ''Állampolgárság''
  ,allampolgarsaga2.C_NAME AS ''Állampolgárság 2''
  ,anyanyelve.C_NAME AS ''Anyanyelv''
  ,ocs.C_NEV AS ''Osztály neve''
  ' + IIF(@pForOktober = 'T', '', '
  ,CONVERT(NVARCHAR(10),tanulocsoport.C_BELEPESDATUM, 102) AS ''Belépés ideje''
  ,CONVERT(NVARCHAR(10),tanulocsoport.C_KILEPESDATUM, 102) AS ''Kilépés ideje''')
SET @sql += N'
  ,ISNULL(evfolyamTanulo.C_NAME, evfolyam.C_NAME) AS ''Évfolyam neve''
  ,mukodesihely.C_NEV + '' - '' + oktatasinevelesifeladat.C_NAME AS ''Feladatellátási hely''
  ,felhasznalo.C_ADOSZAM AS ''Adó szám''
  ,felhasznalo.C_TAJSZAM AS ''TAJ szám''
  ,igazolvanytipus.C_NAME	AS ''Igazolvány típus''
  ,felhasznalo.C_IGAZOLVANYSZAM AS ''Igazolvány szám''
  ,tta.C_TORZSLAPSZAM	AS ''Törzslapszám''
  ,tta.C_NAPLOSORSZAM	AS ''Napló sorszám''
  ,CAST(tta.C_NYILVANTARTASKEZDETE as date)	AS ''Nyilvántartás kezdete''
  ,tanulo.C_BANKSZAMLASZAM AS ''Bankszámlaszám''
  ,tta.C_BEIRASINAPLOSORSZAM AS ''Beírási napló sorszáma''
  ,IIF(tta.C_EVISMETLO = ''T'', ''Igen'', ''Nem'') AS ''Évismétlő''
  ,tanulo.C_EVISMETLOTANTARGYAK AS ''Évismétlés tantárgyai''
  ,IIF(tta.C_JOGVISZONYATSZUNETELTETO = ''T'', ''Igen'', ''Nem'') AS ''Jogviszonyát szüneteltető''
  ,CAST(tta.C_JOGVISZONYVARHATOBEFEJEZESE as date) AS ''Jogviszony várható befejezése''
  ,IIF(tta.C_POLGARISZERZODESES = ''T'', ''Igen'', ''Nem'') AS ''Polgári szerződéses''
  ,IIF(tta.C_EGYUTTMUKODESES = ''T'', ''Igen'', ''Nem'') AS ''Együttműködési megállapodásos'''
SET @sql += N'
  ,IIF(tta.C_ISKOLAIKERETEKKOZOTT = ''T'', ''Igen'', ''Nem'') AS ''Kizárólag iskolai keretek között, tanműhelyben tanuló''
  ,IIF(tta.C_SZAKMAIGYAKORLATON = ''T'', ''Igen'', ''Nem'') AS ''Szakmai gyakorlaton tartózkodik''
  ,IIF(tta.C_VENDEG = ''T'', ''Igen'', ''Nem'') AS ''Vendégtanuló''
  ,IIF(tta.C_MAGANTANULO = ''T'', ''Igen'', ''Nem'') AS ''Magántanuló / Egyéni munkarend''
  ,magantanulosagoka.C_NAME AS ''Magántanulóság / Egyéni munkarend oka''
  ,CAST(tta.C_MAGANTANULOSAGKEZDETE as date) AS ''Magántanulóság / Egyéni munkarend kezdete''
  ,CAST(tanulo.C_DIAKIGAZOLVANYKELTE as date) AS ''Diákigazolvány kelte''
  ,tanulo.C_DIAKIGAZOLVANYSZAM AS ''Diákigazolvány szám''
  ,IIF(tta.C_BEJARO = ''T'', ''Igen'', ''Nem'') AS ''Bejáró''
  ,IIF(tta.C_TANKOTELEZETT = ''T'', ''Igen'', ''Nem'') AS ''Tankötelezett''
  ,CAST(tta.C_TANKOTELEZETTSEGVEGE as date) AS ''Tankötelezettség vége''
  ,IIF(tta.C_TANULOSZERZODESES = ''T'', ''Igen'', ''Nem'') AS ''Tanulószerződéses''
  ,IIF(tta.C_TANDIJATFIZETO = ''T'', ''Igen'', ''Nem'') AS ''Tandíjat fizető''
  ,IIF(tta.C_TERITESIDIJATFIZETO = ''T'', ''Igen'', ''Nem'') AS ''Térítési díjat fizető''
  ,vallasa.C_NAME AS ''Vallása''
  ,tanulo.C_EGYHAZKOZOSSEGE AS ''Egyházközössége''
  ,IIF(tta.C_DIAKSPORTKOROS = ''T'', ''Igen'', ''Nem'') AS ''Diáksportkör tagja'''
SET @sql += N'
  ,tanulo.C_SPORTAG AS ''Sportág''
  ,tanulo.C_SPORTEDZONEVE AS ''Sportedző neve''
  ,tanulo.C_SPORTKLUB AS ''Sportklub''
  ,testnevelestipusa.C_NAME AS ''Testnevelés típusa''
  ,IIF(tanulo.C_KOLLEGIUMIELLATASOS = ''T'', ''Igen'', ''Nem'') AS ''Kollégiumi ellátásos''
  ,ingyenestankonyv.C_NAME AS ''Ingyenes tankönyvellátás''
  ,etkezesikedvezmeny.C_NAME AS ''Étkezési kedvezmény''
  ,IIF(tanulo.C_SZOCIALISTAMOGATAS = ''T'', ''Igen'', ''Nem'') AS ''Szociális ösztöndíj''
  ,IIF(tanulo.C_ALLAMIGONDOZOTT = ''T'', ''Igen'', ''Nem'') AS ''Intézeti, állami nevelt''
  ,IIF(tanulo.C_VESZELYEZTETETT = ''T'', ''Igen'', ''Nem'') AS ''Veszélyeztetett''
  ,hatranyoshelyzet.C_NAME AS ''Hátrányos helyzetű''
  ,IIF(tanulo.C_BEILLESZKEDESINEHEZSEG = ''T'', ''Igen'', ''Nem'') AS ''Beilleszkedési nehézség''
  ,tanulo.C_RENDSZERESGYERMEKVEDELMIKEDV AS ''Rendszeres gyermekvédelmi kedvezmény''
  ,IIF(tanulo.C_MENEDEKJOGGALRENDELKEZO = ''T'', ''Igen'', ''Nem'') AS ''Menekült, oltalmazott, menedékes''
  ,tanulo.C_TARTOSGYOGYKEZELESSZAMA AS ''Tartós gyógykezelés okmányszáma''
  ,tanulo.C_TOBBGYERMEKIGAZOLASSZAMA AS ''3 vagy több gyermek igazolás okmányszáma''
  ,tanulo.C_TANULOIJOGVISZONYOSELTARTOTT AS ''Tanulói, hallgatói jogviszonnyal rendelkező eltartott'''
SET @sql += N'
  ,IIF(tanulo.C_SAJATOSNEVELESU = ''T'', ''Igen'', ''Nem'') AS ''Sajátos nevelési igényű''
  ,tanulo.C_SNILETSZAMSULY AS ''Tanuló létszámsúlyozása''
  ,IIF(tanulo.C_HALMOZOTTANFOGYATEKOS = ''T'', ''Igen'', ''Nem'') AS ''Halmozottan fogyatékos''
  ,tanulo.C_SNIKIALLITOINTEZMENY AS ''Kiállító intézmény megnevezése''
  ,tanulo.C_SNIKONTROLLIDOPONT AS ''Szükséges kontroll időpontja''
  ,tanulo.C_SNIMEGHATAROZAS	AS ''SNI meghatározás''
  ,tanulo.C_SNIOKMANYERVENYESSEGKEZDETE	AS ''SNI okmány érvényesség kezdete''
  ,tanulo.C_SNIOKMANYERVENYESSEGVEGE AS ''SNI okmány érvényesség vége''
  ,tanulo.C_BNOKOD AS ''BNO-kód''
  ,ertelmifogyatekos.C_NAME	AS ''Értelmi fogyatékos''
  ,tanulo.C_ERTELMIFOGYATEKOSOKMANYSZAM	AS ''Értelmi fogyatékos okmányszám''
  ,hallasserult.C_NAME AS ''Hallássérült''
  ,tanulo.C_HALLASSERULTOKMANYSZAM AS ''Hallássérült okmányszám''
  ,latasserult.C_NAME	AS ''Látássérült''
  ,tanulo.C_LATASSERULTOKMANYSZAM	AS ''Látássérült okmányszám''
  ,tanulo.C_MOZGASSERULTOKMANYSZAM AS ''Mozgáskorlátozott okmányszám''
  ,tanulo.C_BESZEDFOGYATEKOSOKMANYSZAM AS ''Beszédfogyatékos okmányszám'''
SET @sql += N'
  ,tanulo.C_DISZGRAFIAOKMANYSZAM AS ''Diszgráfia okmányszám''
  ,tanulo.C_DISZKALKULIAOKMANYSZAM AS ''Diszkalkulia okmányszám''
  ,tanulo.C_DISZLEXIAOKMANYSZAM	AS ''Diszlexia okmányszám''
  ,tanulo.C_VISELKEDESORGANIKUSOKMANYSZA AS ''Viselkedés fejlődésének organikus okra visszavezethető tartós és súlyos rendellenességével küzd''
  ,tanulo.C_VISELKEDESNEMORGANIKUSOKMANY AS ''Viselkedés fejlődésének organikus okra vissza nem vezethető tartós és súlyos rendellenességével küzd''
  ,tanulo.C_MEGISMEROORGANIKUSOKMANYSZAM AS ''Megismerő funkciók organikus okra visszavezethető tartós és súlyos rendellenességével küzd okmányszám''
  ,tanulo.C_MEGISMERONEMORGANIKUSOKMANYS AS ''Megismerő funkciók organikus okra vissza nem vezethető tartós és súlyos rendellenességével küzd''
  ,tanulo.C_FEJLESZTOFOGLALKOZASORASZAM	AS ''Fejlesztésre fordítandó óraszám''
  ,tanulo.C_FEJLESZTOFOGLALKOZAS AS ''Fejlesztő foglalkozás''
  ,tanulo.C_FEJLESZTESREKIJELOLT AS ''Fejlesztésre kijelölt''
  ,IIF(tanulo.C_BTMPROBLEMAS = ''T'', ''Igen'', ''Nem'') AS ''Beilleszkedési, tanulási és magatartási problémával küzdő''
  ,tanulo.C_BTMLETSZAMSULY AS ''Tanuló létszámsúlyozása''
  ,IIF(tanulo.C_BEILLESZKEDESIPROBLEMAVALKUZ = ''T'', ''Igen'', ''Nem'') AS ''Beilleszkedési problémával küzd''
  ,IIF(tanulo.C_TANULASIPROBLEMAVALKUZD = ''T'', ''Igen'', ''Nem'')	AS ''Tanulási problémával küzd''
  ,IIF(tanulo.C_MAGATARTASIPROBLEMAVALKUZD = ''T'', ''Igen'', ''Nem'') AS ''Magatartási problémával küzd''
  ,tanulo.C_BTMHATAROZATOKMANYSZAM AS ''BTMN határozat okmányszáma''
  ,tanulo.C_BTMKIALLITOINTEZMENY AS ''Kiállító intézmény megnevezése'''
SET @sql += N'
  ,tanulo.C_BTMKONTROLLIDOPONT AS ''Kontroll időpontja''
  ,tanulo.C_BTMOKMANYERVENYESSEGKEZDETE AS ''Okmány érvényességének kezdete''
  ,tanulo.C_BTMOKMANYERVENYESSEGVEGE AS ''Okmány érvényességének vége''
  ,tanulo.C_BTMHATAROZATTARTALMA AS ''Határozat tartalma''
  ,IIF(tta.C_ISESL16EVESUTANBELEPETT = ''T'', ''Igen'', ''Nem'') AS ''Középfokú oktatásba 16. életévét betöltve került''
  ,szakmacsoport.C_NAME AS ''Szakmacsoport''
  ,agazat.C_NAME AS ''Ágazat''
  ,szakkepesites.C_NAME AS ''Szakképesítés''
  ,CONCAT(ISNULL(szakkepesitestipus.C_SZAKKEPESITESSZINT, ''''), 
     ISNULL(szakkepesitestipus.C_TANULMANYITERULET,''''), 
     IIF(szakkepesitestipus.C_TERULETSORSZAM IS NOT NULL, FORMAT(szakkepesitestipus.C_TERULETSORSZAM, ''00''),'''')) AS ''Szakképesítés (kód)''
  ,resszakkepesites.C_NAME AS ''Részszakképesítés''
  ,tanulo.C_SZAKKEPESITESSZAMA AS ''Szakképesítésének száma''
  ,IIF(tta.C_OSZTV = ''T'', ''Igen'', ''Nem'') AS ''OSZTV országos döntős''
  ,IIF(tta.C_SZKTV = ''T'', ''Igen'', ''Nem'') AS ''SZKTV országos döntős''
  ,IIF(tta.C_SZETVAGAZAT = ''T'', ''Igen'', ''Nem'') AS ''SZÉTV országos döntő''
  ,IIF(tta.C_EGYEBORSZAGOSDONTO = ''T'', ''Igen'', ''Nem'') AS ''Egyéb országos döntő''
  ,IIF(tta.C_TECHNIKUSIEVFOLYAM = ''T'', ''Igen'', ''Nem'') AS ''Technikusi évfolyam''
  ,tta.C_SZINTVIZSGA AS ''Gyakorlati szintvizsgák átlaga''
  ,felhasznalo.C_LEIRAS AS ''Megjegyzés''
  ,tta.C_BIZONYITVANYSZAMA AS ''Bizonyítvány sorszáma'''
SET @sql += N'
FROM (
  SELECT t.*
  FROM T_TANULO_OSSZES t
  INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = @pTanevId
  INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = t.ID AND tcs.TOROLT = ''F''
  ' + IIF(@pForOktober != 'T', '', '
  	AND tcs.C_BELEPESDATUM <= DATEFROMPARTS(YEAR(tanev.C_KEZDONAP), 10, 1) AND (tcs.C_KILEPESDATUM >= DATEFROMPARTS(YEAR(tanev.C_KEZDONAP), 10, 1) OR tcs.C_KILEPESDATUM IS NULL)') + '
  INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs2 ON ocs2.ID = tcs.C_OSZTALYCSOPORTID and ocs2.TOROLT = ''F''
  ' + IIF(@pFeladatKategoriaId IS NULL, '', '
    AND ocs2.C_FELADATKATEGORIAID = @pFeladatKategoriaId') + '
  WHERE t.TOROLT = ''F''
    AND t.C_ALTANEVID = @pTanevId
  ' + IIF(@pOsztalyId IS NULL, '', '
    AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId') + '
) tanulo
  INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = tanulo.ID AND felhasznalo.C_TANEVID = tanulo.C_ALTANEVID 
    AND felhasznalo.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND felhasznalo.TOROLT = ''F''
  INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = @pTanevId
  INNER JOIN T_TANULOCSOPORT_OSSZES tanulocsoport ON tanulocsoport.C_TANULOID = tanulo.ID AND tanulocsoport.C_INTEZMENYID = tanulo.C_ALINTEZMENYID 
    AND tanulocsoport.C_TANEVID = tanulo.C_ALTANEVID AND tanulocsoport.TOROLT = ''F''
	' + IIF(@pForOktober != 'T', '', '
  --AND tanulocsoport.C_BELEPESDATUM <= DATEFROMPARTS(YEAR(tanev.C_KEZDONAP), 10, 1) AND (tanulocsoport.C_KILEPESDATUM >= DATEFROMPARTS(YEAR(tanev.C_KEZDONAP), 10, 1) OR tanulocsoport.C_KILEPESDATUM IS NULL)')
SET @sql += N'
  INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tanuloCsoport.ID AND tta.TOROLT = ''F''
  INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tanulocsoport.C_OSZTALYCSOPORTID 
    AND ocs.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND ocs.C_TANEVID = tanulo.C_ALTANEVID AND ocs.TOROLT = ''F'' 
    --AND ocs.C_FELADATKATEGORIAID = (select C_DEFAULTFELADATKATEGORIAID from T_TANEV_OSSZES where ID = ocs.C_TANEVID) /*TODO:Tobb Osztaly*//*OM-1611*/
  ' + IIF(@pFeladatKategoriaId IS NULL, '', '
    AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId') + '
  INNER JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = tanulocsoport.C_OSZTALYCSOPORTID 
    AND osztaly.C_ALINTEZMENYID = tanulo.C_ALINTEZMENYID AND osztaly.C_ALTANEVID = tanulo.C_ALTANEVID AND osztaly.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTanulo ON evfolyamTanulo.ID = tta.C_TANULOEVFOLYAMTIPUSID 
    AND evfolyamTanulo.C_INTEZMENYID = tta.C_INTEZMENYID AND evfolyamTanulo.C_TANEVID = tta.C_TANEVID AND evfolyamTanulo.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = ocs.C_EVFOLYAMTIPUSA 
    AND evfolyam.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND evfolyam.C_TANEVID = tanulo.C_ALTANEVID AND evfolyam.TOROLT = ''F''
  INNER JOIN T_FELADATELLATASIHELY_OSSZES felhely ON felhely.ID = ocs.C_FELADATELLATASIHELYID 
    AND felhely.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND felhely.C_TANEVID = tanulo.C_ALTANEVID AND felhely.TOROLT = ''F''
  INNER JOIN T_DICTIONARYITEMBASE_OSSZES oktatasinevelesifeladat ON oktatasinevelesifeladat.ID = felhely.C_OKTATASINEVELESIFELADATTIPUS 
    AND oktatasinevelesifeladat.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND oktatasinevelesifeladat.C_TANEVID = tanulo.C_ALTANEVID AND oktatasinevelesifeladat.TOROLT = ''F''
  INNER JOIN T_MUKODESIHELY_OSSZES mukodesihely ON mukodesihely.ID = felhely.C_MUKODESIHELYID 
    AND mukodesihely.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND mukodesihely.C_TANEVID = tanulo.C_ALTANEVID AND mukodesihely.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES neme ON neme.ID = felhasznalo.C_NEME 
    AND neme.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND neme.C_TANEVID = tanulo.C_ALTANEVID AND neme.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsaga ON allampolgarsaga.ID = felhasznalo.C_ALLAMPOLGARSAGA 
    AND allampolgarsaga.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND allampolgarsaga.C_TANEVID = tanulo.C_ALTANEVID AND allampolgarsaga.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szuletesiorszag ON szuletesiorszag.ID = felhasznalo.C_SZULETESIORSZAG 
    AND szuletesiorszag.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND szuletesiorszag.C_TANEVID = tanulo.C_ALTANEVID AND szuletesiorszag.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsaga2 ON allampolgarsaga2.ID = felhasznalo.C_ALLAMPOLGARSAGA2 
    AND allampolgarsaga2.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND allampolgarsaga2.C_TANEVID = tanulo.C_ALTANEVID AND allampolgarsaga2.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES anyanyelve ON anyanyelve.ID = felhasznalo.C_ANYANYELVE 
    AND anyanyelve.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND anyanyelve.C_TANEVID = tanulo.C_ALTANEVID AND anyanyelve.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES igazolvanytipus ON igazolvanytipus.ID = felhasznalo.C_IGAZOLVANYTIPUSA 
    AND igazolvanytipus.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND igazolvanytipus.C_TANEVID = tanulo.C_ALTANEVID AND igazolvanytipus.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magantanulosagoka ON magantanulosagoka.ID = tta.C_MAGANTANULOSAGANAKOKAID 
    AND magantanulosagoka.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND magantanulosagoka.C_TANEVID = tanulo.C_ALTANEVID AND magantanulosagoka.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ingyenestankonyv ON ingyenestankonyv.ID = tanulo.C_INGYENESTANKONVYELLATASA 
    AND ingyenestankonyv.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND ingyenestankonyv.C_TANEVID = tanulo.C_ALTANEVID AND ingyenestankonyv.TOROLT = ''F'''
SET @sql += N'
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES etkezesikedvezmeny ON etkezesikedvezmeny.ID = tanulo.C_ETKEZESIKEDVEZMENY 
    AND etkezesikedvezmeny.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND etkezesikedvezmeny.C_TANEVID = tanulo.C_ALTANEVID AND etkezesikedvezmeny.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES vallasa ON vallasa.ID = tanulo.C_VALLASA 
    AND vallasa.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND vallasa.C_TANEVID = tanulo.C_ALTANEVID AND vallasa.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES testnevelestipusa ON testnevelestipusa.ID = tanulo.C_TESTNEVELESTIPUSA 
    AND testnevelestipusa.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND testnevelestipusa.C_TANEVID = tanulo.C_ALTANEVID AND testnevelestipusa.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szakmacsoport ON szakmacsoport.ID = tanulocsoport.C_SZAKMACSOPORT 
    AND szakmacsoport.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND szakmacsoport.C_TANEVID = tanulo.C_ALTANEVID AND szakmacsoport.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazat ON agazat.ID = tanulocsoport.C_AGAZAT 
    AND agazat.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND agazat.C_TANEVID = tanulo.C_ALTANEVID AND agazat.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szakkepesites ON szakkepesites.ID = tanulocsoport.C_SZAKKEPESITES 
    AND szakkepesites.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND szakkepesites.C_TANEVID = tanulo.C_ALTANEVID AND szakkepesites.TOROLT = ''F''
  LEFT JOIN T_SZAKKEPESITESTIPUS_OSSZES szakkepesitestipus ON szakkepesites.ID = szakkepesitestipus.ID 
    AND szakkepesites.C_INTEZMENYID = szakkepesitestipus.C_ALINTEZMENYID AND szakkepesites.C_TANEVID = szakkepesitestipus.C_ALTANEVID AND szakkepesitestipus.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES resszakkepesites ON resszakkepesites.ID = tanulocsoport.C_RESZSZAKKEPESITES 
    AND resszakkepesites.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND resszakkepesites.C_TANEVID = tanulo.C_ALTANEVID AND resszakkepesites.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertelmifogyatekos ON ertelmifogyatekos.ID = tanulo.C_ERTELMIFOGYATEKOS 
    AND ertelmifogyatekos.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND ertelmifogyatekos.C_TANEVID = tanulo.C_ALTANEVID AND ertelmifogyatekos.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES latasserult ON latasserult.ID = tanulo.C_LATASSERULT 
    AND latasserult.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND latasserult.C_TANEVID = tanulo.C_ALTANEVID AND latasserult.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES hallasserult ON hallasserult.ID = tanulo.C_HALLASSERULT 
    AND hallasserult.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND hallasserult.C_TANEVID = tanulo.C_ALTANEVID AND hallasserult.TOROLT = ''F''
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES hatranyoshelyzet ON hatranyoshelyzet.ID = tanulo.C_HATRANYOSHELYZETU 
    AND hatranyoshelyzet.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND hatranyoshelyzet.C_TANEVID = tanulo.C_ALTANEVID AND hatranyoshelyzet.TOROLT = ''F'''
SET @sql += N'
WHERE tanulo.TOROLT = ''F''' 
  + IIF(@pNev IS NULL, '', '
  AND felhasznalo.C_NYOMTATASINEV LIKE ''%'' + @pNev + ''%''')
  + IIF(@pNem IS NULL, '', '
  AND felhasznalo.C_NEME = @pNem')
  + IIF(@pSzuletesiIdoKezdet IS NULL, '', '
  AND felhasznalo.C_SZULETESIDATUM >= @pSzuletesiIdoKezdet')
  + IIF(@pSzuletesiIdoveg IS NULL, '', '
  AND felhasznalo.C_SZULETESIDATUM <= @pSzuletesiIdoveg')
  + IIF(@pSzuletesiHely IS NULL, '', '
  AND felhasznalo.C_SZULETESIHELY LIKE ''%'' + @pSzuletesiHely + ''%''')
  + IIF(@pOktatasiAzonosito IS NULL, '', '
  AND felhasznalo.C_OKTATASIAZONOSITO LIKE ''%'' + @pOktatasiAzonosito + ''%''')
  + IIF(@pOsztalyId IS NULL, '', '
  AND ocs.Id = @pOsztalyId')
  + IIF(@pVegzos IS NULL, '', '
  AND ocs.C_VEGZOSEVFOLYAM = @pVegzos')
  + IIF(@pSNI IS NULL, '', '
  AND tanulo.C_SAJATOSNEVELESU = @pSNI')
  + IIF(@pBTM IS NULL, '', '
  AND tanulo.C_BTMPROBLEMAS = @pBTM')
  + IIF(@pFeladatellatasiHelyId IS NULL, '', '
  AND ocs.C_FELADATELLATASIHELYID = @pFeladatellatasiHelyId')
  + IIF(@pHatranyosHelyzetId IS NULL, '', '
  AND tanulo.C_HATRANYOSHELYZETU = @pHatranyosHelyzetId')
  + IIF(@pEvfolyamId IS NULL, '', '
  AND ocs.C_EVFOLYAMTIPUSA = @pEvfolyamId')
  + IIF(@pOsztalybaSoroltTantervNelkul IS NOT NULL AND @pOsztalybaSoroltTantervNelkul = 'T', '
  AND tanulo.C_TANTERVID IS NULL AND ocs.ID IS NOT NULL', '')
  + IIF(@pAktiv = 'T', '
  AND ocs.ID IS NOT NULL', '')
  + IIF(@pFeladatKategoriaId IS NULL, '', '
  AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId')
  + IIF(@pSearchMuveszetiAgId IS NULL, '', '
  AND ocs.C_MUVESZETIAGID = @pSearchMuveszetiAgId')

EXEC sp_executesql @sql, N'
   @pTanevId int
  ,@pForOktober char(1)
  ,@pAktiv char(1)
  ,@pNev nvarchar(255)
  ,@pNem int
  ,@pSzuletesiIdoKezdet datetime
  ,@pSzuletesiIdoveg datetime
  ,@pSzuletesiHely nvarchar(50)
  ,@pOktatasiAzonosito nvarchar(20)
  ,@pOsztalyId int
  ,@pVegzos char(1)
  ,@pSNI char(1)
  ,@pBTM char(1)
  ,@pFeladatellatasiHelyId int
  ,@pHatranyosHelyzetId int
  ,@pEvfolyamId int
  ,@pOsztalybaSoroltTantervNelkul char(1)
  ,@pFeladatKategoriaId int
  ,@pSearchMuveszetiAgId int'
  ,@pTanevId = @pTanevId
  ,@pForOktober = @pForOktober
  ,@pAktiv = @pAktiv
  ,@pNev = @pNev
  ,@pNem = @pNem
  ,@pSzuletesiIdoKezdet = @pSzuletesiIdoKezdet
  ,@pSzuletesiIdoveg = @pSzuletesiIdoveg
  ,@pSzuletesiHely = @pSzuletesiHely
  ,@pOktatasiAzonosito = @pOktatasiAzonosito
  ,@pOsztalyId = @pOsztalyId
  ,@pVegzos = @pVegzos
  ,@pSNI = @pSNI
  ,@pBTM = @pBTM
  ,@pFeladatellatasiHelyId = @pFeladatellatasiHelyId
  ,@pHatranyosHelyzetId = @pHatranyosHelyzetId
  ,@pEvfolyamId = @pEvfolyamId
  ,@pOsztalybaSoroltTantervNelkul = @pOsztalybaSoroltTantervNelkul
  ,@pFeladatKategoriaId = @pFeladatKategoriaId
  ,@pSearchMuveszetiAgId = @pSearchMuveszetiAgId

END
GO