451 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			451 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
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 |