﻿DROP PROCEDURE IF EXISTS [dbo].[sp_GetNapkozisNaplo]
GO

CREATE PROCEDURE [dbo].[sp_GetNapkozisNaplo]
   @tanevId				INT
  ,@intezmenyId			INT
  ,@csoportId			INT
  ,@iskolaErdekuSzamit	BIT

AS
BEGIN
  SET NOCOUNT ON;
--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)
  )

  CREATE TABLE #TanugyiAdatok (TanuloId int,TanugyiAdatId int)

  INSERT INTO #TanugyiAdatok (TanuloId,TanugyiAdatId)
  SELECT 
	 TanuloId
	,TanugyiAdatokId
  FROM fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@csoportId,default)

  INSERT INTO #tanulok
  SELECT DISTINCT
     tanulok.TanuloId Id
	,tanulok.TanuloCsoportId
    ,iif(KilepesDatum IS NOT NULL,f.C_NYOMTATASINEV+' (kilépett)', f.C_NYOMTATASINEV) as Nev
    ,dbo.fnGetDokumentumTanuloAktualisOsztaly(t.Id) as Osztaly /*TODO:Tobb Osztaly*//*OM-1651*/
    ,dbo.fnGetDokumentumTanuloAktualisOsztalyId(t.Id) as OsztalyId
    ,tta.C_NAPLOSORSZAM as NaploSorszam
	,tta.C_BEIRASINAPLOSORSZAM as beirasiSorszam
    ,tta.C_TORZSLAPSZAM as TorzsLapSzam
    ,Allampolgarsaga.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(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
  FROM fnGetDokumentumOsztalyokCsoportokTanuloi (@tanevId, @csoportId, 'T') tanulok
  	INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.TanuloId AND f.torolt='F'
	INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID
	INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID AND tt.TOROLT = 'F' AND tt.C_TANEVID = @tanevId
	INNER JOIN #TanugyiAdatok ta ON ta.TanuloId=t.ID
	INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID=ta.TanugyiAdatId AND tta.TOROLT='F'
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES Allampolgarsaga ON Allampolgarsaga.Id = f.c_allampolgarsaga AND Allampolgarsaga.C_TANEVID = @tanevId AND Allampolgarsaga.TOROLT = 'F'
  	LEFT JOIN (
      SELECT DISTINCT
		TanuloId										TanuloId
		,cimTipusa.C_NAME								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,'')				Cim
		FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @csoportid) temp
		INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa AND cimTipusa.C_TANEVID = @tanevId AND cimTipusa.TOROLT = 'F'
		WHERE temp.CimTipusa = 907
	)cim ON cim.TanuloId=tanulok.TanuloId
  	LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid=f.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=tanulok.TanuloId AND email.c_gondviseloid is null AND email.torolt='F' AND email.c_alapertelmezett='T'
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka on MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID AND MagantanulosagOka.C_TANEVID = f.C_TANEVID AND MagantanulosagOka.TOROLT = 'F'

--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 NapkozisCsoport, iif(len(ocs.c_nev)>17, SUBSTRING (ocs.c_nev, 1 , 17)+'...', ocs.c_nev) 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 NapkozisCsoportId
	,f.ID CsoportVezetoId
	,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296)	AS EvfolyamTipusa              -- 1296 = Na
	,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
	,ocs.C_KERESZTFELEVES	OJCSJKeresztfeleves
	,ocs.C_VEGZOSEVFOLYAM	CSJVegzosEvfolyamu
	,cs.C_TIPUSA	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
  FROM #tanulok
  ORDER BY Nev

  --Naplóhetek
  DECLARE @elsonap as date
  DECLARE @utolsonap as date

  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=1394
	  WHERE c_osztalycsoportid=@csoportid
  ) IS NULL begin
		SET @elsonap= (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1394 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T')
  END
  ELSE BEGIN
	SET @elsonap = (
    SELECT top 1 tr.C_DATUM
    FROM T_OSZTALYCSOPORT_TANEVRENDJE  otr
		  INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394
		WHERE c_osztalycsoportid=@csoportid)
  END

  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
  BEGIN
		SET @utolsonap = (SELECT top 1 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')
  END
  ELSE BEGIN
		SET @utolsonap = (
      SELECT top 1 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)
  END

  	SELECT
		nn.C_HETSORSZAMA Het
		,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetEleje
		,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetVege
	FROM T_NAPTARINAP_OSSZES nn
	WHERE
		nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap
		AND nn.C_HETNAPJA BETWEEN 1407 AND 1413
		AND nn.TOROLT='F'
		AND nn.c_tanevId = @tanevId
	GROUP BY nn.C_HETSORSZAMA
	ORDER BY MIN(nn.C_NAPDATUMA)

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

--Mulasztások
  DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1), Tanulo int, Tipus int)

  	DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F')

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

	SELECT
		 TanuloId	Id
		,TanuloCsoportId
		,Sorszam
		,TorzslapSzam
		,OktAzon
		,TajSzam
		,AnyjaNeve
		,SzulHely
		,SzulIdo
		,SocAdat
		,Kepzes
		,TanuloNeve
		,Allampolgarsaga
		,DiakIgazolvanySzam
		,KilepesDatum
		,BeirasiNaploSorszam
		,AktualisOsztaly	Osztaly
	INTO #studentsWithTanuloCsoport
	FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId)

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 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 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
  DECLARE @datum DATE = GETDATE()
  CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT)

  INSERT INTO #OraSorszam
	EXEC	sp_GetOraSorszamByOsztaly
  	@osztalyCsoportId = @csoportId,
  	@datum = @datum,
  	@intezmenyId = @intezmenyId,
  	@tanevId = @tanevId

  SELECT DISTINCT
	 tao.C_ORASZAM																							Oraszam
	,tao.C_HETSORSZAMA																						Het
    ,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu')															Datum
	,CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(VARCHAR(5), tao.C_ORAVEGE, 108)				DatumKezdettel
	,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, f.C_NYOMTATASINEV)								Tanar
	,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN 	--
	+ ' (' + tantargy.C_NEV + ')', tantargy.C_NEV)															TantargyNev
	,tao.C_TANTARGYID																						TantargyId
	,tao.C_MEGTARTOTT																						Megtartott
	,tao.C_TEMA																								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) 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 Het, C_NYOMTATASINEV 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) 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

    CREATE TABLE #Gondviselok (TanuloId INT, GondviseloId INT PRIMARY KEY CLUSTERED)
	INSERT INTO #Gondviselok
	SELECT
		 TanuloId
		,GondviseloId
	FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T')

	CREATE TABLE #GondViseloCimTable (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
	INSERT INTO #GondViseloCimTable
	SELECT
		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 AND cimTipusa.TOROLT = 'F'

	CREATE TABLE #EmailCimTableTemp (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
	INSERT INTO #EmailCimTableTemp
	SELECT
		TanuloId
		,C_EMAILCIM
		,GondviseloId
	FROM #Gondviselok
		INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId
	WHERE
		email.TOROLT = 'F'
		AND email.C_TANEVID = @tanevId
		AND LEN(C_EMAILCIM) > 0

	CREATE TABLE #EmailCimGondviseloTable(GondviseloId INT PRIMARY KEY CLUSTERED, EmailCim NVARCHAR(MAX))
	INSERT INTO #EmailCimGondviseloTable
	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

	CREATE TABLE #TelefonTableTemp(FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT, index ix_Ci_telefon (FelhasznaloId))
	INSERT INTO #TelefonTableTemp
	SELECT
		TanuloId
		,C_TELEFONSZAM
		,GondviseloId
	FROM #Gondviselok gondviselo
		INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId
	WHERE
		telefon.TOROLT = 'F'
		AND telefon.C_TANEVID = @tanevId
		AND LEN(telefon.C_TELEFONSZAM) > 0

	CREATE TABLE #GondviseloTelefonTable(GondviseloId INT PRIMARY KEY CLUSTERED,Telefon NVARCHAR(MAX))
	INSERT INTO #GondviseloTelefonTable
	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


  --Tanuló gondviselői
	SELECT DISTINCT
		 Gondviselok.TanuloId
		,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' C_NEV
		,cim.Cimtipusa		C_CIMTIPUSA
		,cim.cim			C_OSSZETETTCIM
		,telefon.telefon	C_TELEFONSZAM
		,email.emailcim		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 AND RokonsagiFok.TOROLT = 'F'
		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

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

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

	-- Csoport tanárai
	  SELECT
	 targy.C_NEV			TargyNev
	,tanar.C_NYOMTATASINEV	TanarNev
	,targykategoria.C_ORDER
	,tanar.ID TanarId
	,tanar.C_OKTATASIAZONOSITO 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 f.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