﻿DROP PROCEDURE IF EXISTS uspGetNapkozisNaplo
GO

CREATE PROCEDURE uspGetNapkozisNaplo
   @tanevId int
  ,@intezmenyId int
  ,@csoportId int
  ,@iskolaErdekuSzamit bit
AS BEGIN
  SET NOCOUNT ON;

  DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId AND TOROLT = 'F')

  DECLARE
     @elsonap date
    ,@utolsonap date
    ,@FelevVege date
    ,@datum date = GETDATE()

  CREATE TABLE #OraSorszam (
     TanitasioraId int PRIMARY KEY
    ,OraSorszam int
  )

  --Tanulók adatai, elérhetőségei
  CREATE TABLE #tanulok (
     Id int
    ,TanuloCsoportId int
    ,Nev nvarchar (max)
    ,Osztaly nvarchar (max)
    ,OsztalyId int
    ,Sorszam nvarchar (max)
    ,beirasiSorszam nvarchar (max)
    ,Torzslapszam nvarchar (max)
    ,Allampolgarsaga nvarchar (max)
    ,DiakIg nvarchar (max)
    ,SzulHely nvarchar (max)
    ,SzulIdo nvarchar (max)
    ,Anyja nvarchar (max)
    ,Taj nvarchar (max)
    ,OktAzon nvarchar (max)
    ,Kilepes nvarchar (max)
    ,Kepzes nvarchar (max)
    ,TanuloCimTipus nvarchar (max)
    ,TanuloCim nvarchar (max)
    ,TanuloEmail nvarchar (max)
    ,szoc nvarchar (max)
    ,BelepesDatum datetime
  )

  DECLARE @Mulasztasok TABLE (
     IgazoltE nvarchar (1)
    ,Tanulo int
    ,Tipus int
  )

  DECLARE @GondViseloCimTable TABLE (
     GondviseloId int
    ,Cim nvarchar (max)
    ,Cimtipusa nvarchar (max)
  )

  DECLARE @EmailCimTableTemp TABLE (
     FelhasznaloId int
    ,EmailCim nvarchar (max)
    ,GondviseloId int
  )

  DECLARE @EmailCimGondviseloTable TABLE (
     GondviseloId int
    ,EmailCim nvarchar (max)
  )

  DECLARE @TelefonTableTemp TABLE (
     FelhasznaloId int
    ,Telefon nvarchar (max)
    ,GondviseloId int
  )

  DECLARE @GondviseloTelefonTable TABLE (
     GondviseloId int
    ,Telefon nvarchar (max)
  )

  SELECT TOP 1
    @FelevVege = tr.C_DATUM
  FROM T_TANEVRENDJE_OSSZES tr
  WHERE tr.C_NAPTIPUSA = 1400
    AND tr.C_TANEVID = @tanevId
    AND tr.TOROLT = 'F'

  INSERT INTO #tanulok (
     Id
    ,TanuloCsoportId
    ,Nev
    ,Osztaly
    ,OsztalyId
    ,Sorszam
    ,beirasiSorszam
    ,Torzslapszam
    ,Allampolgarsaga
    ,DiakIg
    ,SzulHely
    ,SzulIdo
    ,Anyja
    ,Taj
    ,OktAzon
    ,Kilepes
    ,Kepzes
    ,TanuloCimTipus
    ,TanuloCim
    ,TanuloEmail
    ,szoc
    ,BelepesDatum
  )
   SELECT
       tcs.C_TANULOID AS Id
      ,tcs.ID AS TanuloCsoportId
      ,IIF(tcs.C_KILEPESDATUM IS NOT NULL, f.C_NYOMTATASINEV + ' (kilépett)', f.C_NYOMTATASINEV) AS Nev
      ,osztaly.OsztalyNev Osztaly
      ,osztaly.ID AS OsztalyId
      ,tta.C_NAPLOSORSZAM AS NaploSorszam
      ,tta.C_BEIRASINAPLOSORSZAM AS beirasiSorszam
      ,tta.C_TORZSLAPSZAM AS TorzsLapSzam
      ,Allapolgarasaga.C_NAME AS Allampolgarsag
      ,t.C_DIAKIGAZOLVANYSZAM AS DiakIg
      ,f.C_SZULETESIHELY AS SzulHely
      ,FORMAT(f.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS SzulIdo
      ,f.C_ANYJANEVE AS Anyja
      ,f.C_TAJSZAM AS Taj
      ,f.C_OKTATASIAZONOSITO AS OktAzon
      ,FORMAT(tcs.C_KILEPESDATUM, 'yyyy.MM.dd.') AS Kilepes
      ,tt.c_nev AS Kepzes
      ,cim.Tipus
      ,cim.cim
      ,email.c_emailcim AS TanuloEmail
      ,STUFF(
        IIF(tta.C_MAGANTANULO = 'T', ', Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME, '-') + ')', '')
        + IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '')
        + IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '')
        + IIF(t.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', ''), 1, 2, ''
      ) AS szoc
      ,tcs.C_BELEPESDATUM AS BelepesDatum
    FROM T_TANULOCSOPORT_OSSZES tcs
      CROSS APPLY fnGetTanuloOsztaly(tcs.C_TANULOID, tcs.C_KILEPESDATUM, @feladatKategoriaId, 1, DEFAULT) osztaly
      INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
      INNER JOIN T_TANULO_OSSZES t ON t.ID = tcs.C_TANULOID
      INNER JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@csoportId, DEFAULT) tta ON tta.TanuloId = t.ID
      INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = tta.C_TANTERVID
        AND tt.TOROLT = 'F'
        AND tt.C_TANEVID = @tanevId
      LEFT JOIN (
        SELECT DISTINCT
           TanuloId AS TanuloId
          ,cimTipusa.C_NAME AS Tipus
          ,STUFF(
            (
              SELECT DISTINCT
                CAST(Btemp.Cim AS nvarchar(max)) + char(13) + char(10)
              FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @csoportid) btemp
              WHERE temp.TanuloId = btemp.TanuloId
                AND temp.CimTipusa = btemp.CimTipusa
              FOR XML PATH(''), TYPE
            ).value
            ('.', 'NVARCHAR(MAX)'), 1, 0, ''
          ) AS Cim
        FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @csoportid) temp
          INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS cimTipusa ON cimTipusa.Id = temp.CimTipusa
            AND cimTipusa.C_TANEVID = @tanevId
            AND cimTipusa.TOROLT = 'F'
        WHERE temp.CimTipusa = 907
      ) AS cim ON cim.TanuloId = t.ID
      LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid = t.ID
        AND tel.c_gondviseloid IS NULL
        AND tel.torolt = 'F'
        AND tel.c_alapertelmezett = 'T'
      LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid = t.ID
        AND email.c_gondviseloid IS NULL
        AND email.torolt = 'F'
        AND email.c_alapertelmezett = 'T'
      LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID
        AND MagantanulosagOka.C_TANEVID = tt.C_TANEVID
        AND MagantanulosagOka.TOROLT = 'F'
      LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Allapolgarasaga ON Allapolgarasaga.ID = f.C_ALLAMPOLGARSAGA
        AND Allapolgarasaga.C_TANEVID = tt.C_TANEVID
        AND Allapolgarasaga.TOROLT = 'F'
      WHERE tcs.C_TANEVID = @tanevId
        AND tcs.C_OSZTALYCSOPORTID = @csoportId
 
 --Kezdőoldal
  SELECT
     ia.c_nev AS IntezmenyNev
    ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCim
    ,ia.c_omkod AS OMKOD
    ,ia.c_igazgatoneve AS IntezmenyVezeto
    ,ocs.c_nev AS NapkozisCsoport
    ,IIF(LEN(ocs.c_nev) > 17, SUBSTRING(ocs.c_nev, 1, 17) + '...', ocs.c_nev) AS RovidNev
    ,ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
    ,ISNULL(cs.c_csoportnaploleiras, '-') AS CsoportNaploLeiras
    ,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy.MM.dd.') AS Megnyitas
    ,ISNULL(FORMAT(cs.c_csoportnaplozarasa, 'yyyy.MM.dd.'), '-') AS Lezaras
    ,ocs.ID AS NapkozisCsoportId
    ,f.ID AS CsoportVezetoId
    ,ISNULL(ocs.C_EVFOLYAMTIPUSA,1296) AS EvfolyamTipusa              -- 1296 = Na
    ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
    ,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
    ,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
    ,cs.C_TIPUSA AS CsoportTipusa
  FROM T_INTEZMENY_OSSZES i
    INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid = i.id
      AND ocs.c_tanevid = @tanevid
      AND ocs.id = @csoportId
    INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
    LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
  WHERE i.id = @intezmenyid
    AND ia.c_tanevid = @tanevid

  --Csoportot vezette
  SELECT
    ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
  FROM T_CSOPORT_OSSZES cs
    LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
  WHERE cs.id = @csoportId
    AND cs.c_altanevid = @tanevid
    AND cs.c_alintezmenyid = @intezmenyid

  --Tanulók
  SELECT DISTINCT
     Nev
    ,Osztaly
    ,OktAzon
    ,OsztalyId
    ,BelepesDatum
  FROM #tanulok
  ORDER BY
    Nev

  --Naplóhetek
  
   SELECT TOP 1
     @elsonap = t.C_KEZDONAP
  FROM T_TANEV_OSSZES t
  WHERE t.ID = @tanevId
    AND t.TOROLT = 'F'

  IF (
    SELECT
      c_osztalycsoportid
    FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
      INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
        AND tr.c_naptipusa = 1395
    WHERE c_osztalycsoportid = @csoportid
  ) IS NULL

    SELECT TOP 1
      @utolsonap = tr.c_datum
    FROM t_tanevrendje_osszes tr
    WHERE c_naptipusa = 1395
      AND c_tanevid = @tanevId
      AND c_intezmenyid = @intezmenyId
      AND torolt = 'F'
      AND c_osszescsoportravonatkozik = 'T'

  ELSE

    SELECT TOP 1
      @utolsonap = tr.c_datum
    FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
      INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
        AND tr.c_naptipusa = 1395
    WHERE c_osztalycsoportid = @csoportid

	  CREATE TABLE #NapSorszamTemp (
		  Datum DATE
	  )
	  INSERT INTO #NapSorszamTemp
	  EXEC sp_GetDokumentumTanitasiNapokSorszama
			 @tanevId = @tanevId
			,@osztalyId	= @csoportId

    SELECT 
        ROW_NUMBER() OVER (ORDER BY ret.Het) AS TanitasiHetSorszam
       ,ret.Het
      ,dbo.fnGetDokumentumDatumFormatum(ret.HetEleje) AS HetEleje
      ,dbo.fnGetDokumentumDatumFormatum(ret.HetVege) AS HetVege
    FROM (
    SELECT DISTINCT 
       ha.*
    FROM (
      SELECT
         nn.C_HETSORSZAMA AS Het
        ,MIN(nn.C_NAPDATUMA) AS HetEleje
        ,MAX(nn.C_NAPDATUMA) AS HetVege
      FROM T_NAPTARINAP_OSSZES nn
      WHERE nn.C_NAPDATUMA BETWEEN @elsonap AND @utolsonap
        AND nn.TOROLT='F'
        AND nn.c_tanevId = @tanevId
      GROUP BY nn.C_HETSORSZAMA
    ) ha
      INNER JOIN #NapSorszamTemp ns ON ns.Datum >= ha.HetEleje and ns.Datum <= ha.HetVege
    ) ret

    UNION

    SELECT
        NULL AS TanitasiHetSorszam
       ,ret.Het
      ,dbo.fnGetDokumentumDatumFormatum(ret.HetEleje) AS HetEleje
      ,dbo.fnGetDokumentumDatumFormatum(ret.HetVege) AS HetVege
    FROM (
    SELECT DISTINCT 
       ha.*
    FROM (
      SELECT
         nn.C_HETSORSZAMA AS Het
        ,MIN(nn.C_NAPDATUMA) AS HetEleje
        ,MAX(nn.C_NAPDATUMA) AS HetVege
      FROM T_NAPTARINAP_OSSZES nn
      WHERE nn.C_NAPDATUMA BETWEEN  @elsonap AND @utolsonap
        AND nn.TOROLT='F'
        AND nn.c_tanevId = @tanevId
      GROUP BY nn.C_HETSORSZAMA
    ) ha
      LEFT JOIN #NapSorszamTemp ns ON ns.Datum >= ha.HetEleje and ns.Datum <= ha.HetVege
    WHERE ns.Datum IS NULL
    ) ret
    ORDER BY ret.Het

  --Tanuló adatok
  SELECT
    *
  FROM #tanulok
  ORDER BY
    Nev

  SELECT
     DATEPART(MONTH, Datum) AS Honap
    ,TantargyId AS Id
    ,Igazolt AS IgazoltE
    ,TanuloId AS TanuloId
    ,TanuloCsoportId AS TanuloCsoportId
    ,IgazolasTipusa AS IgazolasTipus
    ,Datum AS Datum
    ,Tipusa AS Tipus
    ,KesesPercben AS KesesPercben
    ,HetSorszama AS HetSorszama
    ,Oraszam AS Oraszam
    ,CAST(DATEPART(MONTH, Datum) AS nvarchar (10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') AS ElmeletGyakorlat
    ,C_GYAKORLATI AS isGyakorlat
  INTO #mulasztasTmp
  FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
    INNER JOIN T_TANTARGY_OSSZES AS Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId

  SELECT
     ta.TanuloId AS Id
    ,ta.TanuloCsoportId
    ,ta.Sorszam
    ,ta.TorzslapSzam
    ,ta.OktAzon
    ,ta.TajSzam
    ,ta.AnyjaNeve
    ,ta.SzulHely
    ,ta.SzulIdo
    ,ta.SocAdat
    ,ta.Kepzes
    ,ta.TanuloNeve
    ,ta.Allampolgarsaga
    ,ta.DiakIgazolvanySzam
    ,ta.KilepesDatum
    ,ta.BeirasiNaploSorszam
    ,ta.AdottOsztaly AS Osztaly
    ,ta.AdottOsztalyId AS OsztalyId
    ,CONVERT(DATE, LEFT(ta.BelepesDatum, LEN(ta.BelepesDatum) - 1), 102) AS BelepesDatum
  INTO #studentsWithTanuloCsoport
  FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta

  EXEC sp_GetDokumentumMulasztasokIdoszakonkent
     @tanevId = @tanevId
    ,@osztalyCsoportId = @csoportId
    ,@iskolaErdekuSzamit = @iskolaErdekuSzamit
    ,@isReszletesMulasztasok = 0

  --Napló
  SELECT DISTINCT
    nn.c_hetsorszama AS Het
   ,d.c_name AS Nap
   ,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
   ,ISNULL(osztalyCsoportTanevRendje.NapTipusa 
     + IIF(osztalyCsoportTanevRendje.HetNapja <> nn.C_ALAPHETNAPJA, ' (' + osztalyCsoportTanevRendje.ElteroNap +')', '') 
     + osztalyCsoportTanevRendje.Megjegyzes, '') AS Megjegyzes
  FROM T_NAPTARINAP_OSSZES nn
    LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = nn.c_napdatuma
      AND tao.c_osztalycsoportid = @csoportid
      AND tao.torolt = 'F'
     LEFT JOIN
			(
        SELECT
           C_DATUM
          ,tr.C_HETNAPJA AS HetNapja
          ,elteroNap.C_NAME AS ElteroNap
          ,ISNULL(trNaptipus.C_NAME, '') AS NapTipusa
          ,ISNULL(', ' + C_MEGJEGYZES, '') AS Megjegyzes
        FROM T_TANEVRENDJE_OSSZES tr 
          LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr  ON tr.Id = ocstr.C_TANEVRENDJEID
          LEFT JOIN T_DICTIONARYITEMBASE_OSSZES trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA AND trNaptipus.C_TANEVID = @tanevId AND trNaptipus.TOROLT = 'F'
          LEFT JOIN T_DICTIONARYITEMBASE_OSSZES elteroNap ON elteroNap.ID = tr.C_HETNAPJA AND elteroNap.C_TANEVID = @tanevId AND elteroNap.TOROLT = 'F'
        WHERE
	          tr.TOROLT = 'F'
        AND tr.C_TANEVID = @tanevId
        AND (tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' OR C_OSZTALYCSOPORTID = @csoportId)
       ) osztalyCsoportTanevRendje ON osztalyCsoportTanevRendje.C_DATUM = nn.C_NAPDATUMA
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = nn.c_hetnapja
      AND d.C_TANEVID = @tanevId
      AND d.TOROLT = 'F'
    LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.c_foglalkozasid
      AND fog.c_tanevid = @tanevid
    LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = fog.c_tanarid
      AND f.torolt = 'F'
  WHERE nn.c_napdatuma >= @elsonap
    AND nn.c_napdatuma <= @utolsonap
  ORDER BY
    nn.c_hetsorszama
   ,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')

  --Napló adatok
  INSERT INTO #OraSorszam (
     TanitasioraId
    ,OraSorszam
  )
  EXEC uspGetOraSorszamByOsztaly
    @osztalyCsoportId = @csoportId
   ,@datum = @datum
   ,@intezmenyId = @intezmenyId
   ,@tanevId = @tanevId

  SELECT DISTINCT
     tao.C_ORASZAM AS Oraszam
    ,tao.C_HETSORSZAMA AS Het
    ,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
    ,CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS DatumKezdettel
    ,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, f.C_NYOMTATASINEV) AS Tanar
    ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS TantargyNev
    ,tao.C_TANTARGYID AS TantargyId
    ,tao.C_MEGTARTOTT AS Megtartott
    ,tao.C_TEMA AS Tema
    ,OraSorszam
    ,C_ORAKEZDETE
  INTO #megtartottOrak
  FROM T_TANITASIORA_OSSZES tao
    LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.C_FOGLALKOZASID
      AND fog.TOROLT = 'F'
    LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_TANARID
      AND f.TOROLT = 'F'
    LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.ID = tao.C_HELYETTESITOTANARID
    INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
    LEFT JOIN (
      SELECT DISTINCT
         OraSorszam
        ,TanitasioraId
      FROM #OraSorszam
    ) AS oraSorszam ON oraSorszam.TanitasioraId = tao.Id
  WHERE tao.C_OSZTALYCSOPORTID = @csoportid
    AND tao.TOROLT = 'F'
  ORDER BY
     tao.C_ORAKEZDETE
    ,tao.C_ORASZAM

  SELECT
    *
  FROM #megtartottOrak

  --Napló mulasztás
  SELECT
     C_HETSORSZAMA AS Het
    ,C_NYOMTATASINEV AS Tanulo
    ,MAX([1]) AS Hetfo
    ,MAX([2]) AS Kedd
    ,MAX([3]) AS Szerda
    ,MAX([4]) AS Csutortok
    ,MAX([5]) AS Pentek
    ,MAX([6]) AS Szombat
  FROM (
    SELECT
       C_HETSORSZAMA
      ,C_NYOMTATASINEV
      ,[0]
      ,[1]
      ,[2]
      ,[3]
      ,[4]
      ,[5]
      ,[6]
    FROM (
      SELECT DISTINCT
         n.C_NAPTARINAPID
        ,DATEPART(dw, n.C_DATUM) AS NAP
        ,t.C_NYOMTATASINEV
        ,n.C_HETSORSZAMA
        ,'[' + STUFF(
          (
            SELECT
              ', ' + CAST(OraSorszam AS varchar(3)) + IIF(tm.C_TIPUS = 1499, '(k)', '')
            FROM T_TANULOMULASZTAS_OSSZES tm
              INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
              LEFT JOIN (
                SELECT DISTINCT
                   OraSorszam
                  ,TanitasioraId
                FROM #OraSorszam
              ) AS oraSorszam ON oraSorszam.TanitasioraId = o.Id
            WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
              AND m.C_ORATANULOIID = tm.C_ORATANULOIID
              AND tm.C_TANEVID = @tanevId
              AND tm.torolt = 'F'
              AND tm.c_intezmenyId = @intezmenyId
              AND o.c_tanevId = @tanevId
              AND o.C_OSZTALYCSOPORTID = @csoportId
              AND o.TOROLT = 'F'
            ORDER BY
               o.C_NAPTARINAPID
              ,o.C_ORASZAM
            FOR XML PATH(''), TYPE
          ) .value
          ('.', 'varchar(max)'), 1, 2, ''
        ) + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas
      FROM T_TANITASIORA_OSSZES n
        INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID
          AND m.torolt = 'F'
        INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
      WHERE n.C_TANEVID = @tanevId
        AND m.C_TANEVID = @tanevId
        AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
        AND n.C_OSZTALYCSOPORTID = @csoportId
        AND n.TOROLT = 'F'
      GROUP BY
        n.C_NAPTARINAPID
       ,C_ORATANULOIID
       ,C_NYOMTATASINEV
       ,n.C_HETSORSZAMA
       ,n.C_DATUM
    ) AS SUB PIVOT(MAX(HIANYZAS) FOR NAP IN(
      [0]
     ,[1]
     ,[2]
     ,[3]
     ,[4]
     ,[5]
     ,[6])) AS PivotTable
  ) AS ASD
  GROUP BY
     C_HETSORSZAMA
    ,C_NYOMTATASINEV
  ORDER BY
    C_HETSORSZAMA

  --Tanuló feljegyzései
  SELECT
     tte.C_TANULOID AS Tanulo
    ,FORMAT(tao.c_datum, 'yyyy.MM.dd.') AS Idopont
    ,d.C_NAME AS Tipus
    ,te.C_TARTALOM AS Feljegyzes
    ,f.C_NYOMTATASINEV AS Feljegyzo
  FROM T_TANULO_TANULOESEMENY tte
    INNER JOIN T_TANULOESEMENY_OSSZES te ON te.Id = tte.C_TANULOESEMENYID
    INNER JOIN T_TANITASIORA_OSSZES tao ON tao.Id = te.C_TANITASIORAID
    INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = te.C_FELJEGYZOID
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.Id = te.C_TIPUS
      AND d.C_TANEVID = @tanevId
      AND d.TOROLT = 'F'
  WHERE C_OSZTALYCSOPORTID = @csoportId
    AND te.TOROLT = 'F'
    AND C_TIPUS <> 1534

  INSERT INTO @GondViseloCimTable (
     GondviseloId
    ,Cim
    ,Cimtipusa
  )
  SELECT DISTINCT
     GondviseloId
    ,STUFF(
      (
        SELECT DISTINCT
          CAST(Btemp.Cim AS nvarchar (max))  + char(13) + char(10)
        FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) btemp
        WHERE temp.GondviseloId = btemp.GondviseloId
          AND temp.CimTipusa = btemp.CimTipusa
        FOR XML PATH(''), TYPE
      ).value
      ('.', 'NVARCHAR(MAX)'), 1 ,0, ''
    )
    ,cimTipusa.C_NAME
  FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) temp
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
       AND cimTipusa.C_TANEVID = @tanevId

  INSERT INTO @EmailCimTableTemp (
     FelhasznaloId
    ,EmailCim
    ,GondviseloId
  )
  SELECT
     TanuloId
    ,C_EMAILCIM
    ,C_GONDVISELOID
  FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo
    INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
  WHERE email.TOROLT = 'F'
    AND email.C_TANEVID = @tanevId
    AND LEN(C_EMAILCIM) > 0

  INSERT INTO @EmailCimGondviseloTable (
     GondviseloId
    ,EmailCim
  )
  SELECT DISTINCT
    GondviseloId
    ,STUFF(
      (
        SELECT DISTINCT
          CAST(btemp.EmailCim AS nvarchar (max)) + char(13) + char(10)
        FROM @EmailCimTableTemp btemp
        WHERE temp.GondviseloId = btemp.GondviseloId
          AND btemp.GondviseloId IS NOT NULL
        FOR XML PATH(''), TYPE
      ).value
      ('.', 'NVARCHAR(MAX)'), 1 ,0, ''
    ) Email
  FROM @EmailCimTableTemp temp
  WHERE GondviseloId IS NOT NULL

  INSERT INTO @TelefonTableTemp (
     FelhasznaloId
    ,Telefon
    ,GondviseloId
  )
  SELECT
    TanuloId
    ,C_TELEFONSZAM
    ,C_GONDVISELOID
  FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo
    INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
  WHERE
    telefon.TOROLT = 'F'
    AND telefon.C_TANEVID = @tanevId
    AND LEN(telefon.C_TELEFONSZAM) > 0

  INSERT INTO @GondviseloTelefonTable (
     GondviseloId
    ,Telefon
  )
  SELECT DISTINCT
     GondviseloId
    ,STUFF(
      (
        SELECT DISTINCT
          CAST(btemp.Telefon AS nvarchar (max)) + char(13) + char(10)
        FROM @TelefonTableTemp btemp
        WHERE temp.GondviseloId = btemp.GondviseloId
          AND temp.FelhasznaloId = btemp.FelhasznaloId
          AND GondviseloId IS NOT NULL
        FOR XML PATH(''), TYPE
      ).value
      ('.', 'NVARCHAR(MAX)'), 1 ,0, ''
    )
  FROM @TelefonTableTemp temp
  WHERE GondviseloId IS NOT NULL

  /*gondviselő elérhetőségei */
  SELECT DISTINCT
     Gondviselok.TanuloId AS TanuloId
    ,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV
    ,cim.Cimtipusa AS C_CIMTIPUSA
    ,cim.cim AS C_OSSZETETTCIM
    ,telefon.telefon AS C_TELEFONSZAM
    ,email.emailcim AS C_EMAILCIM
  FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T') Gondviselok
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = Gondviselok.RokonsagifokId AND RokonsagiFok.C_TANEVID = @tanevId
    LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = Gondviselok.GondviseloId
    LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselok.GondviseloId
    LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = Gondviselok.GondviseloId
  ORDER BY cim.Cimtipusa

  --megtartott órák száma
  SELECT
     COUNT(mo.TantargyId) AS TantargyOraszam
    ,mo.Tantargynev AS TantargyNev
  INTO #megtartottOrakSzama
  FROM #megtartottOrak mo
  WHERE mo.Megtartott = 'T'
  GROUP BY
     mo.TantargyId
    ,mo.TantargyNev

  SELECT DISTINCT
     SUM(tmp.TantargyOraszam) AS OsszesTantargySzam
    ,STUFF(
      (
        SELECT DISTINCT
          ', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS nvarchar (max)) + ')'
        FROM #megtartottOrakSzama btmp
        FOR XML PATH(''), TYPE
      ).value('.', 'NVARCHAR(MAX)'), 1 , 2, ''
    ) AS Tantargyak
  FROM #megtartottOrakSzama tmp

  -- Csoport tanárai
  SELECT
     targy.C_NEV AS TargyNev
    ,tanar.C_NYOMTATASINEV AS TanarNev
    ,targykategoria.C_ORDER
    ,tanar.ID TanarId
    ,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon
  FROM T_FELHASZNALO_OSSZES tanar
    INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID
      AND f.TOROLT='F'
      AND f.C_OSZTALYCSOPORTID = @csoportId
    INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID
      AND targy.TOROLT='F'
    INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID
      AND targykategoria.TOROLT = 'F'
      AND targykategoria.C_TANEVID = @tanevId
  WHERE tanar.TOROLT = 'F'
    AND tanar.C_INTEZMENYID = @intezmenyid
    AND tanar.c_tanevId = @tanevId
  GROUP BY
     C_ORDER
    ,targy.C_NEV
    ,tanar.C_NYOMTATASINEV
    ,tanar.ID
    ,tanar.C_OKTATASIAZONOSITO
  ORDER BY
     C_ORDER
    ,targy.C_NEV
    ,tanar.C_NYOMTATASINEV

END
GO
