SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetErtesitoNyomtatvany]') IS NOT NULL 
BEGIN
  DROP PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany]
END  
GO

-- =====================================================================
-- Description: értesítõ nyomtatvány (félévi, év végi, I. negyedévi...)
-- =====================================================================
CREATE PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany]
	@pOsztalyId						INT,
	@pTanevId						INT,
	@pErtekelesTipus				INT,
	@pElmeletGyakorlat				BIT = 0,
	@pKesesTipus					INT = 1499,
	@pElmeletiOraPercben			INT = 45,
	@pGyakorlatiOraPercben			INT = 45,
	@pIskolaErdekuSzamit			BIT,
	@pIsKozossegiSzolgalat			BIT, 
	@pTanuloId						INT	= NULL,
	@pIsMuveszetOktatasi			BIT = 0,
	@pIsShowTanuloiAtlag			BIT = 0,
	@tanitasiHetekSzamaVegzos		INT = 32,
	@tanitasiHetekSzamaNemVegzos	INT = 36,
	@isAltantargyBeszamitasa		BIT = 0,
	@nyomtatvanyNyelvEnum			INT = 0,
  @kiiratkozottTanulokMegjelenitese  BIT = 1
AS
BEGIN
	SET NOCOUNT ON;
	
	DECLARE @EsemenyTipus INT
	SET @EsemenyTipus = (SELECT 
						CASE 
							WHEN @pErtekelesTipus = 1519 THEN 1547 --félévi
							WHEN @pErtekelesTipus = 1520 THEN 1548 --év végi
							WHEN @pErtekelesTipus = 1522 THEN 1549 --I. negyedévi
							WHEN @pErtekelesTipus = 1524 THEN 1550 --II. negyedévi
							WHEN @pErtekelesTipus = 1523 THEN 1551 --III. negyedévi
						END
						) 
	 
	DECLARE @IdoszakVegeTanevRendje INT
	SET @IdoszakVegeTanevRendje = 
    CASE @pErtekelesTipus
      WHEN 1519 THEN 1400 --félévi
      WHEN 1520 THEN 1395 --év végi
      WHEN 1522 THEN 1403 --I. negyedévi
	  WHEN 1524	THEN 1400 --II. negyedévi
      WHEN 1523 THEN 1404 --III. negyedévi
    END

	DECLARE @IdoszakVege DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = @IdoszakVegeTanevRendje AND C_TANEVID = @pTanevId AND TOROLT = 'F')

     -- Fejléc
IF @pIsMuveszetOktatasi = 0 BEGIN
 	SELECT T_INTEZMENYADATOK_OSSZES.C_NEV					IntezmenyNeve,
		   T_INTEZMENYADATOK_OSSZES.C_VAROS					IntezmenyVaros,
		   dbo.fnGetDokumentumIntezmenyCime(@pTanevId)		IntezmenyCime,
		   T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE			IntezmenyVezeto,
		   T_INTEZMENYADATOK_OSSZES.C_OMKOD					OMKod,
		   T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM			TELEFON,
		   T_INTEZMENYADATOK_OSSZES.C_EMAILCIM				EMAILCIM,
		   T_TANEV_OSSZES.C_NEV						        TANEV,
		   T_INTEZMENYADATOK_OSSZES.C_VAROS					VAROS,
			ofo.C_NYOMTATASINEV													OSZTALYFONOK,
			ofo.ID																OsztalyFonokId,
		   ocs.C_NEV															OSZTALYNEV,
		   @pOsztalyId										OsztalyId,
		   GETDATE()																					Datum
	,ocs.C_EVFOLYAMTIPUSA		EvfolyamTipusa
	,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
	,o.C_TANTERVID			TantervId
	,o.C_KEPZESIFORMA		KepzesiForma
	,o.C_AGAZAT				Agazat
	,o.C_SZAKMACSOPORT		SzakmaCsoport
	,o.C_SZAKKEPESITES		Szakkepesites
	,o.C_RESZSZAKKEPESITES	Reszszakkepesites
	,ocs.C_KERESZTFELEVES	OJCSJKeresztfeleves
	,ocs.C_VEGZOSEVFOLYAM	CSJVegzosEvfolyamu
	,o.C_TECHNIKAIOSZTALY	OJTechnikaiOsztaly
	,o.C_NEMZETISEGI		OJNemzetisegi
	,o.C_KETTANNYELVU		OJKettannyelvu
	,o.C_NYELVIELOKESZITO	OJNyelviElokeszito
	,o.C_LOGOPEDIAI			OJLogopediai
	,o.C_SPORT				OJSportOsztaly
	,o.C_AJPROGRAM			OJAranyJanosProgram
	,o.C_GYOGYPEDAGOGIAI	OJGyogypedagogiai
	FROM T_INTEZMENYADATOK_OSSZES
			INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id = @pOsztalyId and ocs.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID and ocs.C_TANEVID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and ocs.TOROLT = 'F'
		  	INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
			LEFT JOIN T_FELHASZNALO ofo on ofo.ID = o.C_OSZTALYFONOKID
			INNER JOIN T_TANEV_OSSZES 
			ON T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
	WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
		  AND T_TANEV_OSSZES.ID = @pTanevId
	END
ELSE BEGIN
 	SELECT T_INTEZMENYADATOK_OSSZES.C_NEV					IntezmenyNeve,
		   T_INTEZMENYADATOK_OSSZES.C_VAROS					IntezmenyVaros,
		   dbo.fnGetDokumentumIntezmenyCime(@pTanevId)		IntezmenyCime,
		   T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE			IntezmenyVezeto,
		   T_INTEZMENYADATOK_OSSZES.C_OMKOD					OMKod,
		   T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM			TELEFON,
		   T_INTEZMENYADATOK_OSSZES.C_EMAILCIM				EMAILCIM,
		   T_TANEV_OSSZES.C_NEV						        TANEV,
		   T_INTEZMENYADATOK_OSSZES.C_VAROS					VAROS,
			ofo.C_NYOMTATASINEV													CsoportVezeto,
			ofo.ID																CsoportVezetoId,
		   ocs.C_NEV															OSZTALYNEV,
		   @pOsztalyId										CsoportId,
		   GETDATE()																					Datum
	,ocs.C_EVFOLYAMTIPUSA		EvfolyamTipusa
	,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
	,o.C_TIPUSA					CsoportTipusa
	,ocs.C_KERESZTFELEVES	OJCSJKeresztfeleves
	,ocs.C_VEGZOSEVFOLYAM	CSJVegzosEvfolyamu
	FROM T_INTEZMENYADATOK_OSSZES
			INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id = @pOsztalyId and ocs.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID and ocs.C_TANEVID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and ocs.TOROLT = 'F'
		  	INNER JOIN T_CSOPORT_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
			LEFT JOIN T_FELHASZNALO ofo on ofo.ID = o.C_CSOPORTVEZETOID
			INNER JOIN T_TANEV_OSSZES 
			ON T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
	WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
		  AND T_TANEV_OSSZES.ID = @pTanevId
END

	-- TANULÓK
  DECLARE @Tanulok TABLE 
  (
	  TANULOID INT
	  ,TanuloCsoportId INT
	  ,BelepesDatum DATE
	  ,KilepesDatum DATE
	  ,TANULONEV NVARCHAR(MAX)
	  ,OKTATASIAZONOSITO NVARCHAR(MAX)
	  ,TORZSLAPSZAM NVARCHAR(MAX)
	  ,SZULHELY NVARCHAR(MAX), SZULIDO NVARCHAR(MAX)
	  ,ANYJANEVE NVARCHAR(MAX)
	  ,Osztaly NVARCHAR(MAX)
	  ,OsztalyId INT
	  ,Osztalyfonok NVARCHAR(MAX)
  )

	IF @pTanuloId IS NOT NULL BEGIN 
    INSERT INTO @Tanulok
  	SELECT 
  		 tanulok.TanuloId 
		,TanuloCsoportId
		,BelepesDatum
		,KilepesDatum
  		,IIF(@nyomtatvanyNyelvEnum = 0, felhasznalo.C_NYOMTATASINEV, felhasznalo.C_UTONEV + ' ' + felhasznalo.C_VEZETEKNEV)
  		,felhasznalo.C_OKTATASIAZONOSITO
  		,tanulok.Torzslapszam
		,felhasznalo.C_SZULETESIHELY          
		,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)         
		,felhasznalo.C_ANYJANEVE             
		,dbo.fnGetDokumentumTanuloAktualisOsztaly(tanulok.TanuloId) Osztaly
		,dbo.fnGetDokumentumTanuloAktualisOsztalyId(tanulok.TanuloId) OsztalyId
		,CASE @pIsMuveszetOktatasi
		WHEN 0 THEN dbo.fnGetDokumentumTanuloAktualisOsztalyfonok(tanulok.TanuloId)
		WHEN 1 THEn dbo.fnGetDokumentumTanuloAktualisCsoportvezeto(tanulok.TanuloId, @pOsztalyId)
		END AS Osztalyfonok
  	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
  		INNER JOIN T_FELHASZNALO_OSSZES	felhasznalo on felhasznalo.Id=tanulok.TanuloId
	WHERE 
		tanulok.TanuloId = @pTanuloId
        AND (@kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum > @IdoszakVege))

  	SELECT
		TANULOID
		,TanuloCsoportId
		,BelepesDatum
		,KilepesDatum
		,TANULONEV
		,OKTATASIAZONOSITO
		,TORZSLAPSZAM
		,SZULHELY
		,SZULIDO
		,ANYJANEVE 
		,Osztaly
		,OsztalyId
		,Osztalyfonok
	FROM @Tanulok 
	ORDER BY TANULONEV
  
  END
  ELSE BEGIN 
  
    INSERT INTO @Tanulok
  	SELECT 
  		tanulok.TanuloId 
		,TanuloCsoportId
		,BelepesDatum
		,KilepesDatum
  		,IIF(@nyomtatvanyNyelvEnum = 0, felhasznalo.C_NYOMTATASINEV, felhasznalo.C_UTONEV + ' ' + felhasznalo.C_VEZETEKNEV)
  		,felhasznalo.C_OKTATASIAZONOSITO
  		,tanulok.Torzslapszam
		,felhasznalo.C_SZULETESIHELY          
		,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)         
		,felhasznalo.C_ANYJANEVE             
		,dbo.fnGetDokumentumTanuloAktualisOsztaly(tanulok.TanuloId) Osztaly
		,dbo.fnGetDokumentumTanuloAktualisOsztalyId(tanulok.TanuloId) OsztalyId
		,CASE @pIsMuveszetOktatasi
		WHEN 0 THEN dbo.fnGetDokumentumTanuloAktualisOsztalyfonok(tanulok.TanuloId)
		WHEN 1 THEn dbo.fnGetDokumentumTanuloAktualisCsoportvezeto(tanulok.TanuloId, @pOsztalyId)
		END AS Osztalyfonok
  	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
  		INNER JOIN T_FELHASZNALO_OSSZES	felhasznalo on felhasznalo.Id=tanulok.TanuloId
    WHERE @kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum > @IdoszakVege)

  	  SELECT
		 TANULOID
		,TanuloCsoportId
		,BelepesDatum
		,KilepesDatum
		,TANULONEV
		,OKTATASIAZONOSITO
		,TORZSLAPSZAM
		,SZULHELY
		,SZULIDO
		,ANYJANEVE
		,Osztaly
		,OsztalyId
		,Osztalyfonok
	FROM @Tanulok 
	ORDER BY TANULONEV
  
  END
	
	-- ÉRTÉKELÉSEK
	DECLARE @Ertekelesek TABLE (
		TanuloId				INT
		,TanuloCsoportId		INT
		,Targy					NVARCHAR(MAX)
		,Jegyzet				NVARCHAR(MAX)
		,Ertekeles				NVARCHAR(MAX)
		,ErtekelesValue			FLOAT	
		,ErtekelesJegyzettel	NVARCHAR(MAX)	
		,Oraszam				FLOAT
		,RENDEZ1				INT
		,RENDEZ2				NVARCHAR(MAX)
		,RENDEZ3				INT
		,RENDEZ4				INT
		,RENDEZ5				NVARCHAR(MAX)
	)
	
	INSERT INTO @Ertekelesek
	EXEC sp_GetDokumentumErtekelesek
		@osztalyId = @pOsztalyId,
		@tanevId = @pTanevId,
		@ertekelesTipus = @pErtekelesTipus,
		@isMuveszetOktatasi = @pIsMuveszetOktatasi,
		@tanitasiHetekSzamaVegzos = @tanitasiHetekSzamaVegzos,
		@tanitasiHetekSzamaNemVegzos = @tanitasiHetekSzamaNemVegzos,
		@isAltantargyBeszamitasa = @isAltantargyBeszamitasa,
		@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum

	SELECT 
		 ertekeles.TanuloId		
		,ertekeles.TanuloCsoportId	
		,Targy			
		,Jegyzet
		,Ertekeles
		,ErtekelesValue
		,ErtekelesJegyzettel				
		,Oraszam		
		,RENDEZ1
		,RENDEZ2
		,RENDEZ3
		,RENDEZ4
		,RENDEZ5
		,'' TanarNev
	FROM @Ertekelesek ertekeles
		INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = ertekeles.TanuloId AND Tanulok.TanuloCsoportId = ertekeles.TanuloCsoportId
	ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
	
	IF(@pIsShowTanuloiAtlag = 1) BEGIN
		--Tanuló Átlaga
		SELECT
			atlag.TanuloId					TanuloId
			,atlag.TanuloCsoportId
			,REPLACE(CAST(AVG(ErtekelesValue) AS DECIMAL(10,2)), '.', ',')		ErtekelesAtlag
		FROM @Ertekelesek atlag
    INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = atlag.TanuloId AND Tanulok.TanuloCsoportId = atlag.TanuloCsoportId
		GROUP BY atlag.TanuloId, atlag.TanuloCsoportId
	END
 
  
	-- MULASZTÁSOK
	DECLARE @Mulasztasok TABLE (
		TanuloId				INT
		,TanuloCsoportId		INT
		,Igazolt				INT
		,Igazolatlan			INT
		,ElmeletIgazolt			INT
		,ElmeletIgazolatlan		INT
		,GyakorlatIgazolt		INT
		,GyakorlatIgazolatlan	INT
		,ElmeletOsszes			INT
		,GyakorlatOsszes		INT
		,Osszes					INT		
		)

	INSERT INTO @Mulasztasok
	EXEC sp_GetDokumentumMulasztasok
		@osztalyId = @pOsztalyId,
		@tanevId = @pTanevId,
		@elmeletiOraPercben = @pElmeletiOraPercben,
		@gyakorlatiOraPercben = @pGyakorlatiOraPercben,
		@ertekelesTipus = @pErtekelesTipus,
		@iskolaErdekuSzamit = @pIskolaErdekuSzamit,
		@isMuveszetOktatasi = @pIsMuveszetOktatasi
	
	SELECT 
		 mulasztasok.TanuloId 
		,mulasztasok.TanuloCsoportId
		,Igazolt 
		,Igazolatlan 
		,ElmeletIgazolt 
		,ElmeletIgazolatlan 
		,GyakorlatIgazolt 
		,GyakorlatIgazolatlan 
		,ElmeletOsszes
		,GyakorlatOsszes
		,Osszes	
	FROM @Mulasztasok mulasztasok
		INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = mulasztasok.TanuloId AND Tanulok.TanuloCsoportId = mulasztasok.TanuloCsoportId
	
	-- TANTÁRGYI MENTESSÉGEK
	SELECT 
		Mentessegek.TanuloId	
		,Mentessegek.TanuloCsoportId
		,TantargyNev
		,MentessegOka
	FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId, DEFAULT) Mentessegek
		INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Mentessegek.TanuloId AND Tanulok.TanuloCsoportId = Mentessegek.TanuloCsoportId

  --TANULÓ elérhetőségei 
	SELECT 
		 GondviseloNev	GondviseloNeve  
		,Gondviselo.TanuloId 
	FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T') Gondviselo
		INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Gondviselo.TanuloId

	SELECT DISTINCT
		 TanuloTable.TanuloId																				tanuloID 
		,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM	CimText
		,cimTipus.C_NAME																					CimTipusa
	FROM @Tanulok TanuloTable 
		INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloTable.TanuloId
		INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
		INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipus ON cim.C_CIMTIPUSA = cimTipus.ID AND cimTipus.C_TANEVID = @pTanevId
	WHERE
		cim.TOROLT = 'F'
		AND cim.C_GONDVISELOID IS NULL
		AND	cim.C_ALAPERTELMEZETT = 'T'
		AND cim.C_TANEVID = @pTanevId

	--Tanuló összefüggő szakmai gyakorlat	
	SELECT
		 SzakmaiGyakorlat.TanuloId
		,SzakmaiGyakorlat.TanuloCsoportId
		,isTeljesitett
		,Ertekeles
		,Megjegyzes
		,Datum
	FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@pTanevId, @pOsztalyId) SzakmaiGyakorlat
		INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = SzakmaiGyakorlat.TanuloId AND Tanulok.TanuloCsoportId = SzakmaiGyakorlat.TanuloCsoportId

	-- Osztály adatok az iktatáshoz
	IF @pIsMuveszetOktatasi = 0 BEGIN
		SELECT 
			f.C_NYOMTATASINEV		Osztalyfonok
			,f.ID					OsztalyfonokId
			,ocs.C_NEV				Osztalynev
			,@pOsztalyId				OsztalyId
			,ocs.C_EVFOLYAMTIPUSA		EvfolyamTipusa
			,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
			,o.C_TANTERVID			TantervId
			,o.C_KEPZESIFORMA		KepzesiForma
			,o.C_AGAZAT				Agazat
			,o.C_SZAKMACSOPORT		SzakmaCsoport
			,o.C_SZAKKEPESITES		Szakkepesites
			,o.C_RESZSZAKKEPESITES	Reszszakkepesites
			,ocs.C_KERESZTFELEVES	OJCSJKeresztfeleves
			,ocs.C_VEGZOSEVFOLYAM	CSJVegzosEvfolyamu
			,o.C_TECHNIKAIOSZTALY	OJTechnikaiOsztaly
			,o.C_NEMZETISEGI		OJNemzetisegi
			,o.C_KETTANNYELVU		OJKettannyelvu
			,o.C_NYELVIELOKESZITO	OJNyelviElokeszito
			,o.C_LOGOPEDIAI			OJLogopediai
			,o.C_SPORT				OJSportOsztaly
			,o.C_AJPROGRAM			OJAranyJanosProgram
			,o.C_GYOGYPEDAGOGIAI	OJGyogypedagogiai
		FROM T_OSZTALYCSOPORT_OSSZES ocs
			INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
			LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
		WHERE 
			ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
	END
	ELSE BEGIN
		SELECT 
			f.C_NYOMTATASINEV		CsoportVezeto
			,f.ID					CsoportVezetoId
			,ocs.C_NEV				OSZTALYNEV
			,@pOsztalyId				CsoportId
			,ocs.C_EVFOLYAMTIPUSA		EvfolyamTipusa
			,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
			,ocs.C_KERESZTFELEVES	OJCSJKeresztfeleves
			,ocs.C_VEGZOSEVFOLYAM	CSJVegzosEvfolyamu
			,cs.C_TIPUSA			CsoportTipusa
		FROM T_OSZTALYCSOPORT_OSSZES ocs
			INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.id
			LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = cs.C_CSOPORTVEZETOID
		WHERE 
			ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
	END

  --Bejegyzések
	SELECT 
		 TanuloTable.TanuloId
		,TanuloTable.TanuloCsoportId
		,'A tanév során ' + CAST(SUM(Oraszam) AS NVARCHAR(MAX)) + ' óra közösségi szolgálatot teljesített.'	Bejegyzes
	FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@pTanevId, @pOsztalyId) bejegyzes
		INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId AND bejegyzes.TanuloCsoportId = TanuloTable.TanuloCsoportId
	WHERE
		@pIsKozossegiSzolgalat = 1
		AND (IntervallumVege <= @IdoszakVege OR @IdoszakVege BETWEEN IntervallumKezdete AND IntervallumVege)
	GROUP BY TanuloTable.TanuloId, TanuloTable.TanuloCsoportId

	UNION 

	SELECT  
		 bejegyzes.TanuloId		TanuloId
		 ,TanuloCsoportId
		 ,Tartalom				Bejegyzes
	FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId) bejegyzes
		INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
	WHERE
		Tipusa IN (1546, @EsemenyTipus)
		AND BelepesDatum <= Datum
		AND (KilepesDatum IS NULL OR KilepesDatum >= Datum) 

	-- Zaradekok
	  SELECT  
		   Hatarozatok.TanuloId
		  ,Hatarozatok.TanuloCsoportId
		  ,Bejegyzes	 VegZaradek
	  FROM fnGetDokumentumTanuloZaradekai(@pTanevId, @pOsztalyId) Hatarozatok
		  INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Hatarozatok.TanuloId AND Tanulok.TanuloCsoportId = Hatarozatok.TanuloCsoportId
	  WHERE @pErtekelesTipus IN (1519, 1520)
  
END

GO