﻿DROP PROCEDURE IF EXISTS uspGetTanulokTanugyiAdatai
GO

CREATE PROCEDURE uspGetTanulokTanugyiAdatai
   @pTanevId int
  ,@pTorolt char
  ,@pFeladatKategoriaId int = null
  ,@pDatum datetime
  ,@pOsztalyID int = null
  ,@pTanterviJellegId int = NULL

AS BEGIN
  SET NOCOUNT ON;

  SELECT
     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ója'
    ,CONVERT(nvarchar(25),felhasznalo.C_SZULETESIDATUM, 102) AS 'Születési dátuma'
    ,felhasznalo.C_ANYJANEVE AS 'Anyja születési neve'
    ,tanugyiAdatok.Tanterv AS 'Tanterv'
    ,ISNULL(tanugyiAdatok.C_NAPLOSORSZAM, tanulo.C_NAPLOSORSZAM) AS 'Napló sorszám'
    ,ISNULL(tanugyiAdatok.C_BEIRASINAPLOSORSZAM, tanulo.C_BEIRASINAPLOSORSZAM) AS 'Beírási napló sorszám'
    ,ISNULL(tanugyiAdatok.FelvetelTanev, felvetelTanev.C_NEV) AS 'Felvétel tanéve'
    ,ISNULL(tanugyiAdatok.C_TORZSLAPSZAM, tanulo.C_TORZSLAPSZAM) AS 'Törzslapszám'
    ,IIF(tanugyiAdatok.ID IS NOT NULL, tanugyiAdatok.JogviszonyTipusId, tanulo.C_JOGVISZONYTIPUSID) AS 'JogviszonyTipusId'
    ,CONVERT(nvarchar(25), ISNULL(tanugyiAdatok.C_NYILVANTARTASKEZDETE, felhasznalo.C_NYILVANTARTASKEZDETE), 102) AS 'Jogviszony kezdete'
    ,CONVERT(nvarchar(25), ISNULL(tanugyiAdatok.C_JOGVISZONYVARHATOBEFEJEZESE, tanulo.C_JOGVISZONYVARHATOBEFEJEZESE), 102) AS 'Jogviszony várható befejezése'
    ,IIF(ISNULL(tanugyiAdatok.C_JOGVISZONYATSZUNETELTETO, tanulo.C_JOGVISZONYATSZUNETELTETO) = 'T', 'Igen', 'Nem') AS 'Jogviszonyát szüneteltető'
    ,IIF(ISNULL(tanugyiAdatok.C_TANKOTELEZETT, tanulo.C_TANKOTELEZETT) = 'T', 'Igen', 'Nem') AS 'Tankötelezettséget teljesítő'
    ,CONVERT(nvarchar(25), ISNULL(tanugyiAdatok.C_TANKOTELEZETTSEGVEGE, tanulo.C_TANKOTELEZETTSEGVEGE), 102) AS 'Tankötelezettség vége'
    ,IIF(ISNULL(tanugyiAdatok.C_BEJARO, tanulo.C_BEJARO) = 'T', 'Igen', 'Nem') AS 'Bejáró'
    ,IIF(ISNULL(tanugyiAdatok.C_SZAKMAIGYAKORLATON, tanulo.C_SZAKMAIGYAKORLATON) = 'T', 'Igen', 'Nem') AS 'Szakmai gyakorlaton tartózkodik'
    ,IIF(ISNULL(tanugyiAdatok.C_MAGANTANULO, tanulo.C_MAGANTANULO) = 'T', 'Igen', 'Nem') AS 'Magántanuló'
    ,ISNULL(tanugyiAdatok.MagantanulosagOka, tanuloMaganTanulosag.C_NAME) AS 'Magántanulóság oka'
    ,CONVERT(nvarchar(25), ISNULL(tanugyiAdatok.C_MAGANTANULOSAGKEZDETE, tanulo.C_MAGANTANULOSAGKEZDETE), 102) AS 'Magántanulóság kezdete'
    ,CONVERT(nvarchar(25), ISNULL(tanugyiAdatok.C_MAGANTANULOSAGVEGE, tanulo.C_MAGANTANULOSAGVEGE), 102) AS 'Egyéni munkarend vége'
    ,IIF(ISNULL(tanugyiAdatok.C_VENDEG, tanulo.C_VENDEG) = 'T', 'Igen', 'Nem') AS 'Vendégtanuló'
    ,IIF(ISNULL(tanugyiAdatok.C_TANDIJATFIZETO, tanulo.C_TANDIJATFIZETO) = 'T', 'Igen', 'Nem') AS 'Tandíjat fizető'
    ,IIF(ISNULL(tanugyiAdatok.C_TERITESIDIJATFIZETO, tanulo.C_TERITESIDIJATFIZETO) = 'T', 'Igen', 'Nem') AS 'Térítési díjat fizető'
    ,IIF(ISNULL(tanugyiAdatok.C_TANULOSZERZODESES, tanulo.C_TANULOSZERZODESES) = 'T', 'Igen', 'Nem') AS 'Tanulószerződéses'
    ,IIF(ISNULL(tanugyiAdatok.C_POLGARISZERZODESES, tanulo.C_POLGARISZERZODESES) = 'T', 'Igen', 'Nem') AS 'Polgári szerződéses'
    ,IIF(ISNULL(tanugyiAdatok.C_DIAKSPORTKOROS, tanulo.C_DIAKSPORTKOROS) = 'T', 'Igen', 'Nem') AS 'Diáksportkör tagja'
    ,IIF(ISNULL(tanugyiAdatok.C_EVISMETLO, tanulo.C_EVISMETLO) = 'T', 'Igen', 'Nem') AS 'Évfolyamismétlő' 
    ,ISNULL(tanugyiAdatok.C_ELOZOINTEZMENY, tanulo.C_ELOZOINTEZMENY) AS 'Előző intézmény'
    ,tanugyiAdatok.Osztaly AS 'Osztály'
    ,tanugyiAdatok.EvfolyamTipusa AS 'Évfolyam'
    ,tanugyiAdatok.C_BIZONYITVANYSZAMA AS 'Bizonyítvány sorszáma'
    ,tanugyiAdatok.SzktAgazat AS 'Új Szkt. - Ágazat típusa'
    ,tanugyiAdatok.SzktSzakma AS 'Új Szkt. - Szakma típusa'
    ,tanugyiAdatok.SzktSzakmaIrany AS 'Új Szkt. - Szakmairány típusa'
    ,tanugyiAdatok.NktTanulmanyiTerulet AS 'Nkt. - Tanulmányi terület'
    ,tanugyiAdatok.NktSzakkepesites AS 'Nkt. - Szakképesítés'
    ,tanugyiAdatok.NktSzakIrany AS 'Nkt. - Szakirány'
    ,tanugyiAdatok.Agazat AS 'Ágazat típusa'
    ,tanugyiAdatok.Szakkepesites AS 'Szakképesítés típusa'
    ,tanugyiAdatok.ReszSzakkepesites AS 'Részszakképesítés típusa'
    ,tanugyiAdatok.SzakmaCsoport AS 'Szakmacsoport típusa'
    ,tanugyiAdatok.AgazatResszakmaTipus AS 'Ágazat - Új Szkt. – részszakmához'
    ,tanugyiAdatok.ResszakmaTipus AS 'Szakma – részszakmához'
    ,tanugyiAdatok.SzakmaResszakma AS 'Részszakma'
    ,tanugyiAdatok.AgazatiAlapvizsgaMegnevezes AS 'Ágazati alapoktatás megnevezése'
    ,tanugyiAdatok.AgazatiAlapvizsgaerEdmenyTipus AS 'Ágazati alapvizsga eredmény'
    ,CONVERT(nvarchar(25),tanugyiAdatok.C_AGAZATIALAPVIZSGATELJESITES, 102) AS 'Ágazati alapvizsga teljesítésének dátuma'
    ,ISNULL(tanugyiAdatok.C_AGAZATIALAPVIZSGAEREDMENYE, tanulo.C_AGAZATIALAPVIZSGAEREDMENYE) AS 'Ágazati alapvizsga eredménye'
    ,ISNULL(tanugyiAdatok.C_AGAZATIALAPVIZSGAEREDMENYESZ, tanulo.C_AGAZATIALAPVIZSGAEREDMENYESZ) AS 'Ágazati alapvizsga eredménye %'
    ,IIF(ISNULL(tanugyiAdatok.C_ISSZAKKEPZESIMUNKASZERZODESS, tanulo.C_ISSZAKKEPZESIMUNKASZERZODESS) = 'T', 'Igen', 'Nem') AS 'Szakképzési munkaszerződéssel'
    ,COALESCE(szerv.C_NEV, tanugyiAdatok.C_DUALISKEPZOHELYNEVE, tanulo.C_DUALISKEPZOHELYNEVE) AS 'Duális képzőhely neve'
    ,COALESCE(szerv.C_AZONOSITO, tanugyiAdatok.C_DUALISKEPZOHELYADOSZAMA, tanulo.C_DUALISKEPZOHELYADOSZAMA) 'Duális képzőhely adószáma'
    ,IIF(ISNULL(tanugyiAdatok.C_IS9KOZUL8ELOZOTANEVBENVEGEZT, tanulo.C_IS9KOZUL8ELOZOTANEVBENVEGEZT) = 'T', 'Igen', 'Nem') AS 'A 9. évfolyamosok közül a 8. évfolyamot az előző tanévben végezte'
    ,IIF(ISNULL(tanugyiAdatok.C_ISKIEMELTENTEHETSEGES, tanulo.C_ISKIEMELTENTEHETSEGES) = 'T', 'Igen', 'Nem') AS 'Kiemelten tehetséges'
    ,IIF(ISNULL(tanugyiAdatok.C_ISSZAMITOGEPETOKTCELRAHASZNA, tanulo.C_ISSZAMITOGEPETOKTCELRAHASZNA) = 'T', 'Igen', 'Nem') AS 'Számítógépet oktatási célra használ'
    ,IIF(ISNULL(tanugyiAdatok.C_ISSZABOKYADOLFSZAKKEPODRESZE, tanulo.C_ISSZABOKYADOLFSZAKKEPODRESZE) = 'T', 'Igen', 'Nem') AS 'Szabóky Adolf Szakképzési Ösztöndíjban részesül'
    ,IIF(ISNULL(tanugyiAdatok.C_ISEGESZNAPOSISKOKTRESZESUL, tanulo.C_ISEGESZNAPOSISKOKTRESZESUL) = 'T', 'Igen', 'Nem') AS 'Egész napos iskolai oktatásban részesül'
    ,tanugyiAdatok.TanterviJellegName AS 'Munkarend'
    ,COALESCE(NULLIF(tanugyiAdatok.MuveszetiAgName, 'na'), NULLIF(tanuloMuveszetiAg.C_NAME, 'na')) AS 'Művészeti ág'
    ,COALESCE(NULLIF(tanugyiAdatok.TanszakName, 'na'), NULLIF(tanuloTanszak.C_NAME, 'na')) AS 'Tanszak'
    ,COALESCE(NULLIF(tanugyiAdatok.MufajName, 'na'), NULLIF(tanuloMufaj.C_NAME, 'na')) AS 'Műfaj'
  FROM T_FELHASZNALO_OSSZES felhasznalo
    INNER JOIN T_TANULO_OSSZES tanulo ON felhasznalo.ID = tanulo.ID
      AND tanulo.TOROLT = felhasznalo.TOROLT
    INNER JOIN T_TANEV_OSSZES felvetelTanev ON felvetelTanev.ID = tanulo.C_FELVETELTANEVEID
      AND felvetelTanev.TOROLT = felhasznalo.TOROLT
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanuloMaganTanulosag ON tanuloMaganTanulosag.ID = tanulo.C_MAGANTANULOSAGANAKOKA
      AND tanuloMaganTanulosag.C_TANEVID = felhasznalo.C_TANEVID
      AND tanuloMaganTanulosag.TOROLT = felhasznalo.TOROLT
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanuloMuveszetiAg ON tanuloMuveszetiAg.ID = tanulo.C_MUVESZETIAGID
      AND tanuloMuveszetiAg.C_TANEVID = felhasznalo.C_TANEVID
      AND tanuloMuveszetiAg.TOROLT = felhasznalo.TOROLT
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanuloTanszak ON tanuloTanszak.ID = tanulo.C_TANSZAKTIPUSID
      AND tanuloTanszak.C_TANEVID = felhasznalo.C_TANEVID
      AND tanuloTanszak.TOROLT = felhasznalo.TOROLT
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanuloMufaj ON tanuloMufaj.ID = tanulo.C_MUFAJTIPUSID
      AND tanuloMufaj.C_TANEVID = felhasznalo.C_TANEVID
      AND tanuloMufaj.TOROLT = felhasznalo.TOROLT
    OUTER APPLY(
      SELECT TOP 1
        tcso.ID AS TanuloCsoportId
      FROM T_TANULO_OSSZES tanulo
        INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tanulo.ID
          AND (@pFeladatKategoriaId IS NULL OR tcso.C_KILEPESDATUM IS NULL)
          AND tcso.TOROLT= tanulo.TOROLT
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcso.C_OSZTALYCSOPORTID
          AND (@pFeladatKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId)
          AND ocs.TOROLT = tanulo.TOROLT
        INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
          AND ocs.TOROLT = tanulo.TOROLT
      WHERE tanulo.ID = felhasznalo.ID
        AND tanulo.C_ALTANEVID = felhasznalo.C_TANEVID
        AND tanulo.TOROLT = felhasznalo.TOROLT
      ORDER BY tcso.C_BELEPESDATUM DESC
    ) AS utolso
    CROSS APPLY(
      SELECT
         tanulo.ID AS TanuloId
        ,tta.ID
        ,tanterv.C_NEV AS Tanterv
        ,tta.C_NAPLOSORSZAM
        ,tta.C_BEIRASINAPLOSORSZAM
        ,felvetelTanev.C_NEV AS FelvetelTanev
        ,tta.C_TORZSLAPSZAM
        ,tta.C_NYILVANTARTASKEZDETE
        ,tta.C_JOGVISZONYVARHATOBEFEJEZESE
        ,tta.C_JOGVISZONYATSZUNETELTETO
        ,tta.C_TANKOTELEZETT
        ,tta.C_TANKOTELEZETTSEGVEGE
        ,tta.C_BEJARO
        ,tta.C_SZAKMAIGYAKORLATON
        ,tta.C_MAGANTANULO
        ,ttaMaganTanulosag.C_NAME AS MagantanulosagOka
        ,tta.C_MAGANTANULOSAGKEZDETE
        ,tta.C_MAGANTANULOSAGVEGE
        ,tta.C_VENDEG
        ,tta.C_TANDIJATFIZETO
        ,tta.C_TERITESIDIJATFIZETO
        ,tta.C_TANULOSZERZODESES
        ,tta.C_POLGARISZERZODESES
        ,tta.C_DIAKSPORTKOROS
        ,tta.C_EVISMETLO
        ,tta.C_ELOZOINTEZMENY
        ,ocs.C_NEV AS Osztaly
        ,o.ID AS OsztalyId
        ,evfolyam.C_NAME AS EvfolyamTipusa
        ,tta.C_BIZONYITVANYSZAMA
        ,COALESCE(NULLIF(ttaSzktAgazat.C_NAME, 'na'), NULLIF(oSzktAgazat.C_NAME, 'na')) AS SzktAgazat
        ,COALESCE(NULLIF(ttaSzktSzakma.C_NAME, 'na'), NULLIF(oSzktSzakma.C_NAME, 'na')) AS SzktSzakma
        ,COALESCE(NULLIF(ttaSzktSzakmaIrany.C_NAME, 'na'), NULLIF(oSzktSzakmaIrany.C_NAME, 'na')) AS SzktSzakmaIrany
        ,COALESCE(NULLIF(ttaNktTanulmanyiTerulet.C_NAME, 'na'), NULLIF(oNktTanulmanyiTerulet.C_NAME, 'na')) AS NktTanulmanyiTerulet
        ,COALESCE(NULLIF(ttaNktSzakkepesites.C_NAME, 'na'), NULLIF(oNktSzakkepesites.C_NAME, 'na')) AS NktSzakkepesites
        ,COALESCE(NULLIF(ttaNktSzakIrany.C_NAME, 'na'), NULLIF(oNktSzakIrany.C_NAME, 'na')) AS NktSzakIrany
        ,COALESCE(NULLIF(ttaAgazat.C_NAME, 'na'), NULLIF(oAgazat.C_NAME, 'na')) AS Agazat
        ,NULLIF(ttaSzakkepesites.C_NAME, 'na') AS Szakkepesites
        ,NULLIF(ttaReszSzakkepesites.C_NAME, 'na') AS ReszSzakkepesites
        ,NULLIF(ttaSzakmaCsoport.C_NAME, 'na') AS SzakmaCsoport
        ,NULLIF(ttaAgazatResszakmaTipus.C_NAME, 'na') AS AgazatResszakmaTipus
        ,NULLIF(ttaResszakmaTipus.C_NAME, 'na') AS ResszakmaTipus
        ,NULLIF(ttaSzakmaResszakma.C_NAME, 'na') AS SzakmaResszakma       
        ,ttaAgazatiAlapvizsgaMegnevezes.C_NAME AS AgazatiAlapvizsgaMegnevezes
        ,ttaAgazatiAlapvizsgaEredTipus.C_NAME AS AgazatiAlapvizsgaerEdmenyTipus
        ,tta.C_AGAZATIALAPVIZSGATELJESITES
        ,tta.C_AGAZATIALAPVIZSGAEREDMENYE
        ,tta.C_AGAZATIALAPVIZSGAEREDMENYESZ
        ,tta.C_ISSZAKKEPZESIMUNKASZERZODESS
        ,tta.C_DUALISKEPZOHELYNEVE
        ,tta.C_DUALISKEPZOHELYADOSZAMA
        ,tta.C_IS9KOZUL8ELOZOTANEVBENVEGEZT
        ,tta.C_ISKIEMELTENTEHETSEGES
        ,tta.C_ISSZAMITOGEPETOKTCELRAHASZNA
        ,tta.C_ISSZABOKYADOLFSZAKKEPODRESZE
        ,tta.C_ISEGESZNAPOSISKOKTRESZESUL
        ,tta.C_TANTERVIJELLEGID
        ,ttaTanterviJelleg.C_NAME AS TanterviJellegName
        ,ttaMuveszetiAg.C_NAME AS MuveszetiAgName
        ,ttaTanszak.C_NAME AS TanszakName
        ,ttaMufaj.C_NAME AS MufajName
        ,tcso.C_JOGVISZONYTIPUSID AS JogviszonyTipusId
        ,tta.C_SZERVEZETID
      FROM T_TANULO_OSSZES tanulo
        INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tanulo.ID
          AND (tcso.ID = utolso.TanuloCsoportId 
            OR (tcso.C_BELEPESDATUM <= @pDatum AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM > @pDatum)))
          AND tcso.TOROLT= tanulo.TOROLT
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcso.C_OSZTALYCSOPORTID
          AND (@pFeladatKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId)
          AND ocs.TOROLT = tanulo.TOROLT
        INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
          AND ocs.TOROLT = tanulo.TOROLT
        INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcso.ID
          AND tta.TOROLT= tanulo.TOROLT
        INNER JOIN T_TANTERV_OSSZES tanterv on tanterv.ID = tta.C_TANTERVID
          AND tanterv.TOROLT = tanulo.TOROLT
        INNER JOIN T_TANEV_OSSZES felvetelTanev ON felvetelTanev.ID = tta.C_FELVETELTANEVEID
          AND felvetelTanev.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = IIF(ocs.C_EVFOLYAMTIPUSA = 7366, tta.C_TANULOEVFOLYAMTIPUSID, ocs.C_EVFOLYAMTIPUSA)
          AND evfolyam.C_TANEVID = tanulo.C_ALTANEVID
          AND evfolyam.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaMaganTanulosag ON ttaMaganTanulosag.ID = tta.C_MAGANTANULOSAGANAKOKAID
          AND ttaMaganTanulosag.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaMaganTanulosag.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaSzktAgazat ON ttaSzktAgazat.ID = tta.C_AGAZATUJSZKTTIPUSID
          AND ttaSzktAgazat.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaSzktAgazat.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oSzktAgazat ON oSzktAgazat.ID = o.C_AGAZATUJSZKTTIPUSID
          AND oSzktAgazat.C_TANEVID = tanulo.C_ALTANEVID
          AND oSzktAgazat.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaSzktSzakma ON ttaSzktSzakma.ID = tta.C_SZAKMATIPUSID
          AND ttaSzktSzakma.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaSzktSzakma.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oSzktSzakma ON oSzktSzakma.ID = o.C_SZAKMATIPUSID
          AND oSzktSzakma.C_TANEVID = tanulo.C_ALTANEVID
          AND oSzktSzakma.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaSzktSzakmaIrany ON ttaSzktSzakmaIrany.ID = tta.C_SZAKMAIRANYTIPUSID
          AND ttaSzktSzakmaIrany.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaSzktSzakmaIrany.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oSzktSzakmaIrany ON oSzktSzakmaIrany.ID = o.C_SZAKMAIRANYTIPUSID
          AND oSzktSzakmaIrany.C_TANEVID = tanulo.C_ALTANEVID
          AND oSzktSzakmaIrany.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaNktTanulmanyiTerulet ON ttaNktTanulmanyiTerulet.ID = tta.C_TANULMANYITERULETNKTTIPUSID
          AND ttaNktTanulmanyiTerulet.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaNktTanulmanyiTerulet.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oNktTanulmanyiTerulet ON oNktTanulmanyiTerulet.ID = o.C_TANULMANYITERULETNKTTIPUSID
          AND oNktTanulmanyiTerulet.C_TANEVID = tanulo.C_ALTANEVID
          AND oNktTanulmanyiTerulet.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaNktSzakkepesites ON ttaNktSzakkepesites.ID = tta.C_SZAKKEPESITESNKTTIPUSID
          AND ttaNktSzakkepesites.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaNktSzakkepesites.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oNktSzakkepesites ON oNktSzakkepesites.ID = o.C_SZAKKEPESITESNKTTIPUSID
          AND oNktSzakkepesites.C_TANEVID = tanulo.C_ALTANEVID
          AND oNktSzakkepesites.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaNktSzakIrany ON ttaNktSzakIrany.ID = tta.C_SZAKIRANYNKTTIPUSID
          AND ttaNktSzakIrany.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaNktSzakIrany.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oNktSzakIrany ON oNktSzakIrany.ID = o.C_SZAKIRANYNKTTIPUSID
          AND oNktSzakIrany.C_TANEVID = tanulo.C_ALTANEVID
          AND oNktSzakIrany.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaAgazat ON ttaAgazat.ID = tta.C_AGAZATID
          AND ttaAgazat.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaAgazat.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES oAgazat ON oAgazat.ID = o.C_AGAZAT
          AND oAgazat.C_TANEVID = tanulo.C_ALTANEVID
          AND oAgazat.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaSzakkepesites ON ttaSzakkepesites.ID = tta.C_SZAKKEPESITESID
          AND ttaSzakkepesites.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaSzakkepesites.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaReszSzakkepesites ON ttaReszSzakkepesites.ID = tta.C_RESZSZAKKEPESITESID
          AND ttaReszSzakkepesites.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaReszSzakkepesites.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaSzakmaCsoport ON ttaSzakmaCsoport.ID = tta.C_SZAKMACSOPORTID
          AND ttaSzakmaCsoport.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaSzakmaCsoport.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaAgazatResszakmaTipus ON ttaAgazatResszakmaTipus.ID = tta.C_AGAZATRESZSZAKMATIPUSID
          AND ttaAgazatResszakmaTipus.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaAgazatResszakmaTipus.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaResszakmaTipus ON ttaResszakmaTipus.ID = tta.C_RESZSZAKMATIPUSID
          AND ttaResszakmaTipus.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaResszakmaTipus.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaSzakmaResszakma ON ttaSzakmaResszakma.ID = tta.C_SZAKMARESZSZAKMATIPUSID
          AND ttaSzakmaResszakma.C_TANEVID = tanulo.C_ALTANEVID
          AND ttaSzakmaResszakma.TOROLT = tanulo.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaTanterviJelleg ON ttaTanterviJelleg.ID = tta.C_TANTERVIJELLEGID
          AND ttaTanterviJelleg.C_TANEVID = tta.C_TANEVID
          AND ttaTanterviJelleg.TOROLT = tta.TOROLT
       LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaMuveszetiAg ON ttaMuveszetiAg.ID = tta.C_MUVESZETIAGID
          AND ttaMuveszetiAg.C_TANEVID = tta.C_TANEVID
          AND ttaMuveszetiAg.TOROLT = tta.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaTanszak ON ttaTanszak.ID = tta.C_TANSZAKTIPUSID
          AND ttaTanszak.C_TANEVID = tta.C_TANEVID
          AND ttaTanszak.TOROLT = tta.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaMufaj ON ttaMufaj.ID = tta.C_MUFAJTIPUSID
          AND ttaMufaj.C_TANEVID = tta.C_TANEVID
          AND ttaMufaj.TOROLT = tta.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaAgazatiAlapvizsgaMegnevezes ON ttaAgazatiAlapvizsgaMegnevezes.ID = tta.C_AGAZATALAPOKTMEGNEVTIPUSID
          AND ttaAgazatiAlapvizsgaMegnevezes.C_TANEVID = tta.C_TANEVID
          AND ttaAgazatiAlapvizsgaMegnevezes.TOROLT = tta.TOROLT
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ttaAgazatiAlapvizsgaEredTipus ON ttaAgazatiAlapvizsgaEredTipus.ID = tta.C_AGAZATALAPVIZSGAEREDTIPUSID
          AND ttaAgazatiAlapvizsgaEredTipus.C_TANEVID = tta.C_TANEVID
          AND ttaAgazatiAlapvizsgaEredTipus.TOROLT = tta.TOROLT         
      WHERE tanulo.ID = felhasznalo.ID
        AND tanulo.C_ALTANEVID = felhasznalo.C_TANEVID
        AND tanulo.TOROLT = felhasznalo.TOROLT
    ) AS tanugyiAdatok
        LEFT JOIN T_SZERVEZET_OSSZES szerv ON szerv.ID = tanugyiAdatok.C_SZERVEZETID
          AND szerv.TOROLT = 'F'
          AND szerv.C_TANEVID = @pTanevId
  WHERE felhasznalo.TOROLT= @pTorolt
    AND felhasznalo.C_TANEVID = @pTanevId
    AND (@pOsztalyID IS NULL OR tanugyiAdatok.OsztalyId = @pOsztalyID)
    AND (@pTanterviJellegId IS NULL OR tanugyiAdatok.C_TANTERVIJELLEGID = @pTanterviJellegId)
  ORDER BY
     felhasznalo.C_VEZETEKNEV
    ,felhasznalo.C_UTONEV

END
GO
