DROP PROCEDURE IF EXISTS [dbo].[sp_GetErtesitoNyomtatvany]
DROP PROCEDURE IF EXISTS [dbo].[uspGetErtesitoNyomtatvany]
GO

-- =====================================================================
-- Description: értesítõ nyomtatvány (félévi, év végi, I. negyedévi...)
-- =====================================================================
CREATE PROCEDURE [dbo].[uspGetErtesitoNyomtatvany]
	@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
	    ,ocs.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 ertekeles.TanuloId, 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
			,ocs.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 ((@IdoszakVegeTanevRendje = 1395) OR (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, 1) Hatarozatok
		  INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Hatarozatok.TanuloId AND Tanulok.TanuloCsoportId = Hatarozatok.TanuloCsoportId
	  WHERE @pErtekelesTipus IN (1519, 1520)
  
END

GO