﻿DROP PROCEDURE IF EXISTS dbo.uspGetAmiTorzslap
GO

CREATE PROCEDURE dbo.uspGetAmiTorzslap
   @pTanevId int
  ,@pOsztalyId int
  ,@pErtekelesTipus int
  ,@pIskolaErdekuSzamit bit
  ,@kiiratkozottTanulokMegjelenitese bit = 1
  ,@kellAtsorolasiZaradek bit = 1
  ,@evfolyamTipusTypeId int = 37
  ,@pSzorgalomErtekelesTipusTypeID int = 51
  ,@elmeletiOraPercben int = 45
  ,@gyakorlatiOraPercben int = 45
AS
BEGIN  
  SET NOCOUNT ON;

  DECLARE @IdoszakKezdete DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @pTanevId AND TOROLT = 'F')
  DECLARE @IdoszakVege DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @pTanevId AND TOROLT = 'F')
  DECLARE @idegenNyelvId  int = 0 --magyar
  DECLARE @nyomtatvanyNyelvEnum int = 0 --magyar
  DECLARE @amiFeladatKategoriaId int = 7555

  CREATE TABLE #Student (
    TanuloId int
    ,NaploSorszam int
    ,TorzslapSzam  nvarchar(500)
    ,TanuloCsoportId int
    ,BelepesDatum datetime
    ,KilepesDatum datetime
    ,BeirasiNaploSorszam nvarchar(100)
    ,OsztalyId INT
    ,RowNum int
    INDEX IX_01 CLUSTERED (TanuloId)
  )

  CREATE TABLE #FejlecAdatok (
     TanuloId int
    ,TanuloCsoportId int
    ,TorzslapSzam nvarchar(500)
    ,TanuloNeve nvarchar(120)
    ,TanuloNevElotag nvarchar(120)
    ,TanuloNevVezeteknev nvarchar(120)
    ,TanuloNevUtonev nvarchar(120)
    ,OktatasiAzonosito nvarchar(40)
    ,BeirasiNaploSorszam nvarchar(100)
    ,SzuletesiHely nvarchar(50)
    ,SzuletesiOrszag nvarchar(250)
    ,SzuletesiDatum datetime
    ,AnyjaNeve nvarchar(64)
    ,Allampolgarsag nvarchar(250)
    ,TartozkodasiJogCim nvarchar(255)
    ,OkiratSzam nvarchar(255)
    ,TanevNeve nvarchar(10)
    ,MufajNeve nvarchar(100)
    ,TanszakNeve nvarchar(100)
    ,EvfolyamNeve nvarchar(500)
  )

  CREATE TABLE #TanuloTantargyErtekelesek (
     TanuloId int
    ,TanuloCsoportId int
    ,TantargyId int
    ,OsztalyCsoportId int
    ,EvfolyamNeve nvarchar(500)
    ,AmiFotargyId int
    ,AmiTantargyKotelezosegId int
    ,TantargyNeve nvarchar(510)
    ,Sorszam int
    ,TagozatNeve nvarchar(500)
    ,MufajNeve nvarchar(100)
    ,TanszakNeve nvarchar(100)
    ,IsAtlagbaNemSzamitBe char(1)
    ,Ertekeles nvarchar(max)
    ,ErtekelesValue int
    ,ErtekelesSzoveg nvarchar(max)
    ,Jeloles nvarchar(max)
    ,IsSzoveges char(1)
    ,IsSzorgalom char(1)
    ,KapcsolodoFotargyId int
    ,MuveszetiAgId int
    ,ErtekelesId int
  )

  CREATE TABLE #AlapZaroVizsga (
     TanuloId int
    ,TanuloCsoportId int
    ,Ertekeles nvarchar(510)
    ,TipusId int
    ,Datum datetime
    ,MufajNeve nvarchar(510)
    ,TanszakNeve nvarchar(510)
    ,MuveszetiAgNeve nvarchar(510)
    ,TantargyNeve nvarchar(500)
    ,OsztalyCsoportId int
  )

  CREATE TABLE #Mulasztasok (
     TanuloId int
    ,TanuloCsoportId int
    ,TantargyId int
    ,MuveszetiAgId int
    ,MulasztasTipusId int
    ,IsIgazolt char(1)
    ,Darab int
  )

  CREATE TABLE #FoglalkozasiNaplok (
     TanuloId int
    ,TanuloTanuloCsoport int
    ,TanuloCsoportId int
    ,Naploszam nvarchar(100)
    ,OsztalyCsoportId int
  )

  INSERT INTO #Student (
     TanuloId
    ,NaploSorszam
    ,TorzslapSzam
    ,TanuloCsoportId
    ,BelepesDatum
    ,KilepesDatum
    ,BeirasiNaploSorszam
    ,OsztalyId
    ,RowNum
  ) SELECT 
     OsztalyTanuloi.TanuloId AS TanuloId
    ,OsztalyTanuloi.NaploSorszam AS NaploSorszam
    ,OsztalyTanuloi.TorzslapSzam AS TorzslapSzam  
    ,OsztalyTanuloi.TanuloCsoportId AS TanuloCsoportId
    ,OsztalyTanuloi.BelepesDatum AS BelepesDatum
    ,OsztalyTanuloi.KilepesDatum AS KilepesDatum
    ,OsztalyTanuloi.BeirasiNaploSorszam AS BeirasiNaploSorszam
    ,@pOsztalyId AS OsztalyId
    ,ROW_NUMBER() OVER(ORDER BY LEN(TorzslapSzam), TorzslapSzam) AS RowNum
  FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') OsztalyTanuloi
    LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = @pOsztalyId 
      AND Osztaly.C_ALTANEVID = @pTanevId 
      AND Osztaly.TOROLT = 'F'
  WHERE @kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum >= @IdoszakVege)

  --Fejléc adatok  
  INSERT INTO #FejlecAdatok (
     TanuloId
    ,TanuloCsoportId
    ,TorzslapSzam
    ,TanuloNeve
    ,TanuloNevElotag
    ,TanuloNevVezeteknev
    ,TanuloNevUtonev
    ,OktatasiAzonosito
    ,BeirasiNaploSorszam
    ,SzuletesiHely
    ,SzuletesiOrszag
    ,SzuletesiDatum
    ,AnyjaNeve
    ,Allampolgarsag
    ,TartozkodasiJogCim
    ,OkiratSzam
    ,TanevNeve
    ,MufajNeve
    ,TanszakNeve
    ,EvfolyamNeve
  )  
  SELECT
     felhasznalo.ID AS TanuloId
    ,OsztalyTanuloi.TanuloCsoportId AS TanuloCsoportId
    ,OsztalyTanuloi.TorzslapSzam AS TorzslapSzam
    ,felhasznalo.C_NYOMTATASINEV AS TanuloNeve
    ,felhasznalo.C_ELOTAG AS TanuloNevElotag
    ,felhasznalo.C_VEZETEKNEV AS TanuloNevVezeteknev
    ,felhasznalo.C_UTONEV AS TanuloNevUtonev
    ,felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito
    ,OsztalyTanuloi.BeirasiNaploSorszam AS BeirasiNaploSorszam
    ,felhasznalo.C_SZULETESIHELY AS SzuletesiHely
    ,szorszag.C_NAME AS SzuletesiOrszag
    ,felhasznalo.C_SZULETESIDATUM AS SzuletesiDatum
    ,felhasznalo.C_ANYJANEVE AS AnyjaNeve
    ,LOWER(allampolgarsag.C_NAME  + IIF(allampolgarsag2.C_NAME IS NULL, '', ', ' + allampolgarsag2.C_NAME)) AS Allampolgarsag 
    ,TartozkodasiJogCim.C_NAME AS TartozkodasiJogCim
    ,Tanulo.C_OKIRATSZAM AS OkiratSzam
    ,tanev.C_NEV AS TanevNeve
    ,FoTantargyFejlec.MufajNeve
    ,FoTantargyFejlec.TanszakNeve
    ,FoTantargyFejlec.EvfolyamNeve
  FROM #Student OsztalyTanuloi
    INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = OsztalyTanuloi.TanuloId
      AND Tanulo.TOROLT = 'F'
    INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON OsztalyTanuloi.TanuloId = felhasznalo.ID
      AND felhasznalo.TOROLT = 'F'
    OUTER APPLY(
      SELECT    
         mufaj.C_NAME AS MufajNeve
        ,tanszak.C_NAME AS TanszakNeve
        ,fat.EvfolyamNeve AS EvfolyamNeve
      FROM
        T_TANULOCSOPORT_OSSZES cs
        INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = cs.C_OSZTALYCSOPORTID 
          AND f.C_TANEVID = cs.C_TANEVID
          AND f.TOROLT = 'F'
        INNER JOIN T_TANTARGY_OSSZES tt ON tt.id = f.C_TANTARGYID 
          AND tt.TOROLT = 'F'
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mufaj ON mufaj.ID = tt.C_MUFAJTIPUSID
          AND mufaj.C_TANEVID = tt.C_TANEVID
          AND mufaj.TOROLT = 'F'
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanszak ON tanszak.ID = tt.C_TANSZAKTIPUSID
          AND tanszak.C_TANEVID = tt.C_TANEVID
          AND tanszak.TOROLT = 'F'
        LEFT JOIN (
          SELECT
             C_AMIFOTARGYID
            ,evfolyam.C_NAME_1 AS EvfolyamNeve
            ,C_FOGLALKOZASID
            ,C_TANULOID
            ,ROW_NUMBER() OVER(PARTITION BY f.C_TANEVID, f.C_TANULOID ORDER BY f.ID) RowNum
          FROM T_FOGLALKOZASAMITANULO_OSSZES f
            LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = f.C_EVFOLYAMTIPUSID
              AND evfolyam.ID <> 1296 -- Na
              AND evfolyam.C_TANEVID = f.C_TANEVID
              AND evfolyam.TOROLT = 'F'
            INNER JOIN T_FOGLALKOZAS_OSSZES tta ON tta.ID = f.C_FOGLALKOZASID
              AND tta.TOROLT = 'F'
            INNER JOIN (
              SELECT ID 
              FROM fnGetKapcsolodoOsztalyCsoportok(@pOsztalyId)
            ) kapcsOcs ON kapcsOcs.ID = tta.C_OSZTALYCSOPORTID
          WHERE f.TOROLT = 'F'
            AND f.C_TANEVID = @pTanevId
            AND f.C_AMIFOTARGYID =  7671
        ) fat ON fat.C_FOGLALKOZASID = f.ID AND fat.C_TANULOID = Tanulo.ID
      WHERE cs.C_TANULOID = Tanulo.ID
        AND cs.C_TANEVID = @pTanevId
        AND cs.TOROLT = 'F'
        AND fat.RowNum = 1
      GROUP BY
        mufaj.C_NAME
        ,tanszak.C_NAME
        ,fat.EvfolyamNeve
    ) FoTantargyFejlec
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TartozkodasiJogCim ON TartozkodasiJogCim.ID = Tanulo.C_TARTOZKODASJOGCIMTIPUSID 
      AND TartozkodasiJogCim.C_TANEVID = Tanulo.C_ALTANEVID
      AND TartozkodasiJogCim.TOROLT = 'F'
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = felhasznalo.C_ALLAMPOLGARSAGA 
      AND allampolgarsag.C_TANEVID = felhasznalo.C_TANEVID
      AND allampolgarsag.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag2 ON allampolgarsag2.ID = felhasznalo.C_ALLAMPOLGARSAGA2 
      AND allampolgarsag2.C_TANEVID = felhasznalo.C_TANEVID 
      AND allampolgarsag2.TOROLT = 'F'
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES szorszag ON szorszag.ID = felhasznalo.C_SZULETESIORSZAG 
      AND szorszag.C_TANEVID = felhasznalo.C_TANEVID
      AND szorszag.TOROLT = 'F'
    INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = felhasznalo.C_TANEVID
      and tanev.TOROLT = 'F'
  WHERE felhasznalo.C_TANEVID = @pTanevId
    AND felhasznalo.TOROLT = 'F'
  ORDER BY TanuloNeve

  -- Közös adatok
  SELECT
     ocs.ID AS OsztalyId
    ,ocs.C_NEV AS OsztalyNeve
    ,tv.C_NEV AS TanevNeve
    ,ia.C_OMKOD AS OMKod
    ,ISNULL(mukh.C_VAROS, ia.C_VAROS) AS SzekhelyVaros
  FROM T_OSZTALYCSOPORT_OSSZES ocs
    INNER JOIN T_TANEV_OSSZES tv ON tv.ID = ocs.C_TANEVID 
      AND tv.TOROLT = 'F'
    INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_TANEVID = ocs.C_TANEVID
      AND ia.TOROLT = 'F'
    LEFT JOIN T_MUKODESIHELY_OSSZES mukh ON mukh.C_TANEVID = ocs.C_TANEVID
      AND mukh.TOROLT = 'F'
      AND mukh.C_MUKODESIHELYTIPUSA = 5431
  WHERE ocs.ID = @pOsztalyId
    AND ocs.TOROLT = 'F'

  -- Fejléc adatok
  SELECT 
    TanuloId
    ,TanuloCsoportId
    ,OktatasiAzonosito
    ,TanuloNeve
    ,TanuloNevElotag
    ,TanuloNevUtonev
    ,TanuloNevVezeteknev
    ,BeirasiNaploSorszam
    ,SzuletesiDatum
    ,SzuletesiHely
    ,Allampolgarsag
    ,Anyjaneve
    ,SzuletesiOrszag
    ,TorzslapSzam
    ,TartozkodasiJogCim
    ,OkiratSzam
    ,TanszakNeve
    ,MufajNeve
    ,EvfolyamNeve
  FROM #FejlecAdatok 
  ORDER BY LEN(TorzslapSzam), TorzslapSzam

  -- SNI
  SELECT 
     s.TanuloId AS TanuloId
    ,s.TanuloCsoportId AS TanuloCsoportId  
    ,ISNULL(SNIAdatok.C_KIALLITOSZAKBIZOTTSAGNEVE, '') AS SNIKiallitoIntezmenyNeve
    ,ISNULL(SNIAdatok.C_KIALLITOSZAKBIZOTTSAGCIME, '') AS SNIKiallitoIntezmenyCime                       
    ,SNIAdatok.C_KIALLITASDATUMA AS SNIKiallitasKelte    
    ,SNIAdatok.C_SZAKVELEMENYSZAMA AS SNIOkmanyszamok --SNISzakvelemenySzama
    ,dbo.fnGetDokumentumDatumFormatum(SNIAdatok.C_KIALLITASDATUMA) AS SNIKezdete --SNIKiallitaKelte
    ,SNIAdatok.C_FELULVIZSGALATTANEVE AS SNIKontrolIdopont  --SNIFelulvizsgalatTaneve   
  FROM #Student s
    INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id =  s.TanuloId
    INNER JOIN T_TANULOSNI_OSSZES SNIAdatok ON SNIAdatok.C_TANULOID = s.TanuloId AND SNIAdatok.TOROLT ='F'
  WHERE Tanulo.C_SAJATOSNEVELESU = 'T'

  -- Záradékok
  DECLARE @tempZaradekTipusId int = (SELECT IIF(@kellAtsorolasiZaradek = 1, null, 1))
  EXEC dbo.uspGetDokumentumTanuloZaradekai
     @tanevId = @pTanevId
    ,@osztalyId = @pOsztalyId
    ,@zaradekTipusId = @tempZaradekTipusId
    ,@idegenNyelvId = @idegenNyelvId
    ,@dokumentumTipusId = 2
    ,@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum

  -- Törzslapon megjelenő feljegyzések 
  SELECT 
     bejegyzes.TanuloId AS TanuloId
    ,s.TanuloCsoportId AS TanuloCsoportId
    ,Tartalom AS Bejegyzes 
    ,d.C_NAME AS Tipus_DNAME    
    ,dny.C_NAME AS TipusIdegenNyelven
    ,bejegyzes.Datum AS Datum
    ,BejegyzesIdegenNyelven
  FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId, @idegenNyelvId) bejegyzes
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND C_TANEVID = @pTanevId AND d.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES dny ON dny.C_DICTIONARYITEMBASEID = Tipusa AND dny.C_NYELVID = @idegenNyelvId AND dny.TOROLT = 'F' AND dny.C_TANEVID = @pTanevId
    INNER JOIN #Student s ON s.TanuloId = bejegyzes.TanuloId
  WHERE Tipusa IN (1545, 1548, 1553) --KRETA-6062 Feljegyzések a személyi adatok változásához (törzslapon megjelenik), Év végi bizonyítványban megjelenő tantestületi feljegyzés, határozat (dicséret, felmentés stb.), Törzslapon megjelenő egyéb feljegyzés vagy határozat
    AND BelepesDatum <= Datum
    AND (KilepesDatum IS NULL OR KilepesDatum >= Datum)
    AND (RogziteskoriOsztalyId = @pOsztalyId OR RogziteskoriOsztalyId IS NULL)
  ORDER BY Datum

  -- Tanuló felmentései
  SELECT
     TanuloId  
    ,TanuloCsoportId
    ,TantargyNevMentessegNelkul
    ,MentessegOka
    ,dbo.fnGetDokumentumDatumFormatum(Kezdete) AS Kezdete
  FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId, @nyomtatvanyNyelvEnum)

  -- Tanulói alap- és záróvizsga adatok
  INSERT INTO #AlapZaroVizsga
  SELECT 
     t.TanuloId AS TanuloId
    ,t.TanuloCsoportId AS TanuloCsoportId
    ,REPLACE(LOWER(ertekelesd.C_NAME), '(', ' (') AS Ertekeles
    ,te.C_TIPUSID AS TipusId
    ,te.C_DATUM AS Datum
    ,mufaj.C_NAME AS MufajNeve
    ,tanszak.C_NAME AS TanszakNeve
    ,muvag.C_NAME AS MuveszetiAgNeve
    ,ISNULL(tt.C_NEVNYOMTATVANYBAN, tt.C_NEV) AS TantargyNeve
    ,te.C_OSZTALYCSOPORTID AS OsztalyCsoportId
  FROM T_TANULOERTEKELES_OSSZES te
    INNER JOIN #Student t ON t.TanuloId = te.C_TANULOID 
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesd ON ertekelesd.ID = te.C_ERTEKELESOSZTALYZATID 
      AND ertekelesd.C_TANEVID = te.C_TANEVID 
      AND ertekelesd.TOROLT = 'F'
    LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = te.C_TANTARGYID
      AND tt.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mufaj ON mufaj.ID = tt.C_MUFAJTIPUSID
      AND mufaj.C_TANEVID = tt.C_TANEVID
      AND mufaj.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanszak ON tanszak.ID = tt.C_TANSZAKTIPUSID
      AND tanszak.C_TANEVID = tt.C_TANEVID
      AND tanszak.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES muvag ON muvag.ID = tt.C_MUVESZETIAGID
      AND muvag.C_TANEVID = tt.C_TANEVID
      AND muvag.TOROLT = 'F'
  WHERE te.C_TIPUSID in (7899, 7900) -- Művészeti alapvizsga, Művészeti záróvizsga
    AND te.TOROLT = 'F'
    AND te.C_TANEVID = @pTanevId

  SELECT azv.* 
  FROM #AlapZaroVizsga azv
    LEFT JOIN (
      SELECT
         ID
        ,C_TIPUSA
        ,C_OSZTALYBONTASID
      FROM T_CSOPORT_OSSZES
      WHERE TOROLT = 'F'
        AND C_ALTANEVID = @pTanevID
    ) cs ON azv.OsztalyCsoportId = cs.ID
  WHERE (cs.C_TIPUSA NOT IN (1067, 6757, 6759, 6761)  -- ami egyéni csoportok
    OR cs.C_TIPUSA IS NULL)
    AND (azv.OsztalyCsoportId = @pOsztalyId
      OR cs.C_OSZTALYBONTASID = @pOsztalyId
      OR (cs.C_OSZTALYBONTASID IS NULL AND cs.ID IS NOT NULL))
  UNION
  SELECT azv.* 
  FROM #AlapZaroVizsga azv
    LEFT JOIN (
      SELECT
         ID
        ,C_TIPUSA
        ,C_OSZTALYBONTASID
      FROM T_CSOPORT_OSSZES
      WHERE TOROLT = 'F'
       AND C_ALTANEVID = @pTanevID
    ) cs ON azv.OsztalyCsoportId = cs.ID
  WHERE cs.C_TIPUSA IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok
    AND cs.C_OSZTALYBONTASID = @pOsztalyId

  -- Tantárgyak értékeléssel
  INSERT INTO #TanuloTantargyErtekelesek (
     TanuloId
    ,TanuloCsoportId
    ,TantargyId
    ,OsztalyCsoportId
    ,EvfolyamNeve
    ,AmiFotargyId
    ,AmiTantargyKotelezosegId
    ,TantargyNeve
    ,Sorszam
    ,TagozatNeve
    ,MufajNeve
    ,TanszakNeve
    ,IsAtlagbaNemSzamitBe
    ,Ertekeles
    ,ErtekelesValue
    ,ErtekelesSzoveg
    ,Jeloles
    ,IsSzoveges
    ,IsSzorgalom
    ,KapcsolodoFotargyId
    ,MuveszetiAgId
    ,ErtekelesId)
  SELECT
     te.C_TANULOID
    ,tanulok.TanuloCsoportId
    ,ISNULL(te.C_TANTARGYID, -1)
    ,te.C_OSZTALYCSOPORTID
    ,fat.EvfolyamNeve
    ,fat.C_AMIFOTARGYID
    ,fat.C_AMITANTARGYKOTELEZOSEGID
    ,COALESCE(tt.C_NEVNYOMTATVANYBAN, tt.C_NEV, 'Szorgalom')
    ,ISNULL(tt.C_SORSZAM, -1)
    ,fat.TagozatNeve
    ,mufaj.C_NAME
    ,tanszak.C_NAME
    ,tt.C_ISTANULMANYIATLAGBANEMSZAMIT
    ,COALESCE(
      CONVERT(nvarchar(max)
        ,IIF(@nyomtatvanyNyelvEnum = 0
          ,IIF(tt.C_TARGYKATEGORIA = 7688, LOWER(szorgkatjegy.C_NAME) + ' (' + CONVERT(nvarchar(max), jegy.C_VALUE) + ')', REPLACE(LOWER(jegy.C_NAME), '(', ' ('))
          ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, te.C_ERTEKELESOSZTALYZATID, @pTanevId)
        )
      )
      ,IIF(te.C_ERTEKELESSZOVEGFORMAZOTT IS NOT NULL, CONCAT(IIF(te.C_ERTEKELESSZOVEGROVIDNEV IS NOT NULL, te.C_ERTEKELESSZOVEGROVIDNEV, 'sz'), ''), NULL)
      ,CONVERT(nvarchar(max),te.C_ERTEKELESSZAZALEK)
      ,CONVERT(nvarchar(max)
        ,IIF(@nyomtatvanyNyelvEnum = 0
          ,szg.C_NAME
          ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, te.C_SZORGALOMERTEKID , @pTanevId))
        )
      ,IIF(te.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL, 'sz'
        ,IIF(@nyomtatvanyNyelvEnum = 0
          ,szet.C_NAME
          ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, te.C_SZORGALOMOSZTALYZATID, @pTanevId)
        )
      )
    ) AS Ertekeles
    ,jegy.C_VALUE
    ,COALESCE(te.C_ERTEKELESSZOVEGFORMAZOTT, te.C_ERTEKELESTEMA, te.C_SZORGALOMSZOVEGFORMAZOTT, te.C_SZORGALOMSZOVEG)
    ,CASE
      WHEN te.C_TIPUSID = 1518 THEN
        CASE
          WHEN te.C_ISMAGATARTASSZORGALOM = 'T' THEN
            CASE
              WHEN te.C_MAGATARTASSZOVEG IS NOT NULL THEN
                '<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_MAGATARTASSZOVEG IS NOT NULL, 1, 0) ORDER BY te.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
              WHEN te.C_SZORGALOMSZOVEG IS NOT NULL THEN
                '<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_SZORGALOMSZOVEG IS NOT NULL, 1, 0) ORDER BY te.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
            END
          WHEN te.C_ISMAGATARTASSZORGALOM = 'F' THEN        
            '<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESSZOVEG IS NOT NULL, 1, 0) ORDER BY te.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
        END
      WHEN te.C_ERTEKELESTEMA IS NOT NULL AND te.C_TIPUSID IN (1519, 1520) THEN
        '(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY te.C_DATUM) + 96) AS NVARCHAR(10))+')'
      WHEN (te.C_ERTEKELESSZOVEGFORMAZOTT IS NOT NULL OR te.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL) AND te.C_TIPUSID IN (1519, 1520) THEN
        '(' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESSZOVEGFORMAZOTT IS NOT NULL OR te.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL, 1, 0) ORDER BY te.C_DATUM) AS NVARCHAR(10))+')'
      WHEN te.C_ERTEKELESTEMA IS NOT NULL AND te.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN
          '<i>(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY te.C_DATUM) + 96) AS NVARCHAR(10))+')</i>'
      END
    ,IIF(te.C_ERTEKELESSZOVEGFORMAZOTT IS NULL, IIF(te.C_SZORGALOMSZOVEGFORMAZOTT IS NULL, 'F', 'T'), 'T') AS IsSzoveges
    ,IIF(tt.C_TARGYKATEGORIA = 7688, 'T', IIF(tt.ID IS NULL, 'T', 'F')) AS IsSzorgalom
    ,tt.C_FOTARGYID AS KapcsolodoFotargyId
    ,tt.C_MUVESZETIAGID AS MuveszetiAgId
    ,te.ID
  FROM T_TANULOERTEKELES_OSSZES te
    INNER JOIN #Student tanulok on tanulok.TanuloId = te.C_TANULOID
      AND te.C_DATUM >= tanulok.BelepesDatum
      AND (tanulok.KilepesDatum IS NULL or te.C_DATUM < tanulok.KilepesDatum)
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = te.C_OSZTALYCSOPORTID 
      AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId
      AND ocs.TOROLT = 'F'
    LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = te.C_TANTARGYID 
      AND tt.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES jegy ON jegy.ID = te.C_ERTEKELESOSZTALYZATID 
      AND jegy.C_TANEVID = te.C_TANEVID
      AND jegy.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szg ON szg.ID = te.C_SZORGALOMERTEKID 
      AND szg.C_TANEVID = te.C_TANEVID
      AND szg.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szo ON szo.ID = te.C_SZORGALOMOSZTALYZATID 
      AND szo.C_TANEVID = te.C_TANEVID 
      AND szo.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szet ON (szet.C_VALUE + 1) = szo.C_VALUE
      AND szet.C_DICTIONARYTYPEID = 51
      AND szet.C_TANEVID = te.C_TANEVID
      AND szet.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgkatjegy ON (szorgkatjegy.C_VALUE + 1) = jegy.C_VALUE
      AND szorgkatjegy.TOROLT = 'F'
      AND szorgkatjegy.C_TANEVID = jegy.C_TANEVID
      AND szorgkatjegy.C_DICTIONARYTYPEID = 51
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mufaj ON mufaj.ID = tt.C_MUFAJTIPUSID
      AND mufaj.C_TANEVID = tt.C_TANEVID
      AND mufaj.TOROLT = 'F'
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanszak ON tanszak.ID = tt.C_TANSZAKTIPUSID
      AND tanszak.C_TANEVID = tt.C_TANEVID
      AND tanszak.TOROLT = 'F'
    LEFT JOIN T_TANULOCSOPORT_OSSZES tcs on tcs.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID 
      AND tcs.C_TANULOID = te.C_TANULOID
      AND tcs.C_BELEPESDATUM >= tanulok.BelepesDatum
      AND (tcs.C_KILEPESDATUM IS NULL or tcs.C_KILEPESDATUM < tanulok.KilepesDatum)
      AND tcs.TOROLT = 'F'
    LEFT JOIN T_FOGLALKOZAS_OSSZES f on f.C_TANTARGYID = te.C_TANTARGYID 
      AND f.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID 
      AND f.C_TANARID = te.C_ERTEKELOID
      AND f.TOROLT = 'F'
    LEFT JOIN (
      SELECT
         T_FOGLALKOZASAMITANULO_OSSZES.ID
        ,C_AMIFOTARGYID
        ,C_AMITAGOZATID
        ,C_AMITANTARGYKOTELEZOSEGID
        ,C_EVFOLYAMTIPUSID
        ,evfolyam.C_NAME_1 AS EvfolyamNeve
        ,tagozat.C_NAME AS TagozatNeve
        ,C_FOGLALKOZASID
        ,C_TANULOID
      FROM T_FOGLALKOZASAMITANULO_OSSZES
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_EVFOLYAMTIPUSID
          AND evfolyam.ID <> 1296 -- Na
          AND evfolyam.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID
          AND evfolyam.TOROLT = 'F'
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tagozat ON tagozat.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_AMITAGOZATID
          AND tagozat.ID <> 7780 -- Na
          AND tagozat.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID
          AND tagozat.TOROLT = 'F'
      WHERE T_FOGLALKOZASAMITANULO_OSSZES.TOROLT = 'F'
        AND T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID = @pTanevID
    ) fat ON fat.C_FOGLALKOZASID = f.ID AND fat.C_TANULOID = te.C_TANULOID
  WHERE te.TOROLT = 'F'
    AND te.C_TANEVID = @pTanevId
    AND te.C_TIPUSID = 1520 -- Év végi értékelés

  -- Mulasztás adatok
  INSERT INTO #Mulasztasok (
     TanuloId
    ,TanuloCsoportId
    ,TantargyId
    ,MuveszetiAgId
    ,MulasztasTipusId
    ,IsIgazolt
    ,Darab)
  SELECT 
     mu.C_ORATANULOIID AS TanuloId
    ,Tanulok.TanuloCsoportId AS TanuloCsoportId
    ,t.ID AS TantargyId
    ,t.C_MUVESZETIAGID AS MuveszetiAgId
    ,mu.C_TIPUS AS MulasztasTipus
    ,mu.C_IGAZOLT AS IsIgazolt
    ,COUNT(1) AS Darab
  FROM T_TANULOMULASZTAS_OSSZES mu
    INNER JOIN #Student tanulok ON tanulok.TanuloId = mu.C_ORATANULOIID
    INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = mu.C_TANITASIORAKID 
      AND tn.TOROLT = 'F'
    INNER JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@posztalyID, @ptanevId, 0, DEFAULT)) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID
    INNER JOIN T_TANTARGY_OSSZES t on t.id=tn.C_TANTARGYID 
      AND t.TOROLT = 'F'
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID 
      AND tanulok.TanuloId = tcs.C_TANULOID 
      AND tcs.TOROLT = 'F'
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID 
      AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId 
      AND ocs.Torolt = 'F'
  WHERE tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege
    AND mu.C_TANEVID = @pTanevId
    AND mu.Torolt ='F'
    AND mu.C_IGAZOLT IS NOT NULL
    AND (@pIskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
    AND tcs.C_BELEPESDATUM <= tn.C_DATUM
    AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tn.C_DATUM)
    AND tanulok.BelepesDatum <= tn.C_DATUM
    AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum >= tn.C_DATUM)
    AND mu.C_TIPUS = 1500
  GROUP BY mu.C_ORATANULOIID, Tanulok.TanuloCsoportId, mu.C_TIPUS, t.ID, t.C_MUVESZETIAGID, mu.C_IGAZOLT
  UNION
  SELECT
    mu.C_ORATANULOIID AS tanuloId
    ,Tanulok.TanuloCsoportId AS TanuloCsoportId
    ,t.ID AS TantargyId
    ,t.C_MUVESZETIAGID AS MuveszetiAgId
    ,mu.C_TIPUS AS MulasztasTipus
    ,mu.C_IGAZOLT isIgazolt
    ,cast(SUM(cast(mu.C_KESESPERCBEN as float) / (CASE WHEN t.C_GYAKORLATI = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) as int) AS kesesOraban
  FROM T_TANULOMULASZTAS_OSSZES mu
    INNER JOIN #Student tanulok ON tanulok.TanuloId = mu.C_ORATANULOIID
    INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = mu.C_TANITASIORAKID
      AND tn.TOROLT = 'F'
    INNER JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyID, @pTanevId, 0, DEFAULT)) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID
    INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
      AND t.TOROLT = 'F'
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID 
      AND tanulok.TanuloId = tcs.C_TANULOID 
      AND tcs.TOROLT = 'F'
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID
      AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId 
      AND ocs.Torolt = 'F'
  WHERE mu.C_TANEVID = @pTanevId
    AND mu.C_TIPUS = 1499
    AND mu.TOROLT = 'F'
    AND mu.C_IGAZOLT IS NOT NULL
    AND (@pIskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
    AND tcs.C_BELEPESDATUM <= tn.C_DATUM
    AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tn.C_DATUM)
    AND tanulok.BelepesDatum <= tn.C_DATUM
    AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum >= tn.C_DATUM)
    AND tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege
  GROUP BY mu.C_ORATANULOIID, Tanulok.TanuloCsoportId, t.ID, t.C_MUVESZETIAGID, mu.C_TIPUS, mu.C_IGAZOLT

  -- osztályban kapott jegyből az osztály csoportbontott ami egyéni csoportjának az adatai kerülnek bele
  UPDATE tte
    SET 
       tte.AmiFotargyId = fat.C_AMIFOTARGYID
      ,tte.AmiTantargyKotelezosegId = fat.C_AMITANTARGYKOTELEZOSEGID
      ,tte.EvfolyamNeve = fat.EvfolyamNeve
      ,tte.TagozatNeve = fat.TagozatNeve
  FROM #TanuloTantargyErtekelesek tte
    INNER JOIN T_TANULOERTEKELES_OSSZES te ON te.ID = tte.ErtekelesId
      AND te.TOROLT = 'F'
    INNER JOIN T_TANTARGY_OSSZES t ON t.ID = te.C_TANTARGYID 
      AND t.TOROLT = 'F'
    INNER JOIN T_CSOPORT_OSSZES cs ON cs.C_OSZTALYBONTASID = te.C_OSZTALYCSOPORTID 
      AND cs.C_TIPUSA IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok
      AND cs.TOROLT = 'F'
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = cs.ID 
      AND tcs.C_TANULOID = te.C_TANULOID 
      AND tcs.TOROLT = 'F'
    LEFT JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = te.C_ERTEKELOID
      AND f.C_TANTARGYID = te.C_TANTARGYID
      AND f.C_OSZTALYCSOPORTID = cs.ID
      AND f.TOROLT = 'F'
    LEFT JOIN (
      SELECT
         T_FOGLALKOZASAMITANULO_OSSZES.ID
        ,C_AMIFOTARGYID
        ,C_AMITAGOZATID
        ,C_AMITANTARGYKOTELEZOSEGID
        ,C_EVFOLYAMTIPUSID
        ,evfolyam.C_NAME_1 AS EvfolyamNeve
        ,tagozat.C_NAME AS TagozatNeve
        ,C_FOGLALKOZASID
        ,C_TANULOID
      FROM T_FOGLALKOZASAMITANULO_OSSZES
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_EVFOLYAMTIPUSID
          AND evfolyam.ID <> 1296 -- Na
          AND evfolyam.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID
          AND evfolyam.TOROLT = 'F'
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tagozat ON tagozat.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_AMITAGOZATID
          AND tagozat.ID <> 7780 -- Na
          AND tagozat.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID
          AND tagozat.TOROLT = 'F'
      WHERE T_FOGLALKOZASAMITANULO_OSSZES.TOROLT = 'F'
        AND T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID = @pTanevID
    ) fat ON fat.C_FOGLALKOZASID = f.ID AND fat.C_TANULOID = te.C_TANULOID
  WHERE tte.AmiFotargyId IS NULL
    AND fat.ID IS NOT NULL

  SELECT ert.*
  FROM #TanuloTantargyErtekelesek ert
    LEFT JOIN (
      SELECT
         ID
        ,C_TIPUSA
        ,C_OSZTALYBONTASID
      FROM T_CSOPORT_OSSZES
      WHERE TOROLT = 'F'
        AND C_ALTANEVID = @pTanevID
    ) cs ON ert.OsztalyCsoportId = cs.ID
  WHERE (cs.C_TIPUSA NOT IN (1067, 6757, 6759, 6761)  -- ami egyéni csoportok
    OR cs.C_TIPUSA IS NULL)
    AND (ert.OsztalyCsoportId = @pOsztalyId
      OR cs.C_OSZTALYBONTASID = @pOsztalyId
      OR (cs.C_OSZTALYBONTASID IS NULL AND cs.ID IS NOT NULL))
  UNION
  SELECT ert.* 
  FROM #TanuloTantargyErtekelesek ert
    LEFT JOIN (
      SELECT
         ID
        ,C_TIPUSA
        ,C_OSZTALYBONTASID
      FROM T_CSOPORT_OSSZES
      WHERE TOROLT = 'F'
       AND C_ALTANEVID = @pTanevID
    ) cs ON ert.OsztalyCsoportId = cs.ID
  WHERE cs.C_TIPUSA IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok
    AND cs.C_OSZTALYBONTASID = @pOsztalyId

  SELECT
      TanuloId
    ,TanuloCsoportId
    ,TantargyId
    ,MuveszetiAgId
    ,IsIgazolt
    ,SUM(Darab) AS Darab
  FROM #Mulasztasok m
  WHERE IsIgazolt IS NOT NULL
  GROUP BY TanuloId, TanuloCsoportId, TantargyId, MuveszetiAgId, IsIgazolt

  INSERT INTO #FoglalkozasiNaplok (
     TanuloId
    ,TanuloCsoportId
    ,TanuloTanuloCsoport
    ,Naploszam
    ,OsztalyCsoportId
  )
  SELECT 
     tcs.C_TANULOID AS TanuloId
    ,tcs.ID AS TanuloCsoportId
    ,tanulok.TanuloCsoportId AS TanuloTanuloCsoport
    ,ocs.C_NAPLOSZAM AS Naploszam
    ,ocs.ID
  FROM (
    SELECT
      ID
      ,C_TANULOID
      ,C_OSZTALYCSOPORTID
      ,C_BELEPESDATUM
      ,C_KILEPESDATUM
    FROM T_TANULOCSOPORT_OSSZES
    WHERE TOROLT = 'F'
      AND (@kiiratkozottTanulokMegjelenitese = 1 OR (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM >= @IdoszakVege))
      AND C_TANEVID = @pTanevID
  ) tcs
  INNER JOIN #Student tanulok ON tanulok.TanuloId = tcs.C_TANULOID
  INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID 
    AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId
    AND ocs.TOROLT = 'F'

  SELECT 
     fn.TanuloId
    ,fn.TanuloTanuloCsoport AS TanuloCsoportId
    ,1 AS IsOsztalyos
    ,fn.Naploszam
    ,tta.C_NAPLOSORSZAM AS Naplosorszam
  FROM #FoglalkozasiNaplok fn
    INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = fn.TanuloCsoportId 
      AND tta.TOROLT = 'F'
    INNER JOIN T_OSZTALY_OSSZES o ON o.ID = fn.OsztalyCsoportId
      AND o.TOROLT = 'F'
      AND o.ID = @pOsztalyId
  UNION
  SELECT 
     fn.TanuloId
    ,fn.TanuloTanuloCsoport AS TanuloCsoportId
    ,0 AS IsOsztalyos
    ,fn.Naploszam
    ,CAST(sorszam.RN as int) AS Naplosorszam
  FROM #FoglalkozasiNaplok fn
  INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = fn.OsztalyCsoportId
    AND (cs.C_OSZTALYBONTASID = @pOsztalyId
      OR (cs.C_OSZTALYBONTASID IS NULL AND cs.ID IS NOT NULL))
    AND cs.TOROLT = 'F'
  LEFT JOIN (
  SELECT fn.TanuloId
    ,fn.TanuloCsoportId
    ,ROW_NUMBER() OVER ( PARTITION BY fn.OsztalyCsoportId ORDER BY f.C_NYOMTATASINEV) as RN
  FROM #FoglalkozasiNaplok fn
    INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = fn.TanuloId
      AND f.TOROLT = 'F'
    INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = fn.OsztalyCsoportId
      AND cs.TOROLT = 'F'
    CROSS APPLY dbo.fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, fn.OsztalyCsoportId, 'T') csoptanuloi
  WHERE fn.TanuloId = csoptanuloi.TanuloId
  ) sorszam ON sorszam.TanuloId = fn.TanuloId
    AND sorszam.TanuloCsoportId = fn.TanuloCsoportId

END