﻿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]
	@osztalyId int,
	@tanevId   int,
	@ertekelesTipus int,
	@elmeletGyakorlat bit=0,
	@kesesTipus int =  1499,
	@elmeletiOraPercben int = 45,
    @gyakorlatiOraPercben int = 60,
	@isBizonyitvany int = 0
AS
BEGIN

	SET NOCOUNT ON;
	
	DECLARE @intezmenyId INT = (SELECT C_INTEZMENYID FROM T_TANEV WHERE ID=@tanevId)
	
    -- fejléc
 	SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
		   T_INTEZMENYADATOK_OSSZES.C_IRANYITOSZAM IntezmenyIranyitoszam,
		   T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
		   T_INTEZMENYADATOK_OSSZES.C_CIME IntezmenyCime,
		   T_INTEZMENYADATOK_OSSZES.C_OMKOD OMKod,
		   T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
		   T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
		   T_TANEV_OSSZES.C_NEV TANEV,		   
		   (SELECT OFO.C_NYOMTATASINEV FROM T_OSZTALY_OSSZES 
					JOIN T_FELHASZNALO_OSSZES OFO 
					ON OFO.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID
		    WHERE T_OSZTALY_OSSZES.ID=@osztalyId 
				  and T_OSZTALY_OSSZES.TOROLT = 'F') OSZTALYFONOK,
		   (SELECT to2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES to2	WHERE ID = @osztalyId and TOROLT = 'F') OSZTALYNEV,
		   Getdate() Datum
	FROM T_INTEZMENYADATOK_OSSZES
			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 = @TanevId

	
	-- TANULÓK
	DECLARE @Tanulok TABLE (TANULOID INT, TANULONEV NVARCHAR(MAX), OKTATASIAZONOSITO NVARCHAR(MAX))
	INSERT INTO @Tanulok
	SELECT T_FELHASZNALO_OSSZES.ID TANULOID,
		   T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV,
		   T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO
	FROM T_FELHASZNALO_OSSZES
			JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
																						  AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
																						  AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT 
			ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID 
	WHERE T_FELHASZNALO_OSSZES.TOROLT='F'
		  AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
		  AND T_FELHASZNALO_OSSZES.C_TANEVID = @TanevId
	ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV

	SELECT * FROM @Tanulok ORDER BY TANULONEV
	
	-- ÉRTÉKELÉSEK
	SELECT ERTEKELES.C_TANULOID TANULOID,
		   'MAGATARTAS' TARGY,
		   ERT.C_NAME FELEVIERTEKELES,
		   null Jegyzet,
		   ERT.C_NAME FELJEGYZES,
		   1 RENDEZ
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
			JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
																						  AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
																						  AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
			ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID
			LEFT JOIN (SELECT ID, C_MAGATARTAS MAGATARTAS  FROM T_OSZTALYFONOKIERTEKELES_OSSZES WHERE TOROLT = 'F') OSZTALYZAT
			ON OSZTALYZAT.ID = ERTEKELES.ID
			LEFT JOIN ( SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE) ERT ON ERT.ID=OSZTALYZAT.MAGATARTAS
	WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId 
		  AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		  AND (OSZTALYZAT.MAGATARTAS IS NOT NULL OR (LEN(ERTEKELES.C_ERTEKELESSZOVEG)>0 and ERTEKELES.C_TANTARGYID is null) )
		  AND ERTEKELES.C_TANEVID = @TanevId
		  AND ERTEKELES.TOROLT='F'
	UNION ALL

	SELECT ERTEKELES.C_TANULOID TANULOID,
		   'SZORGALOM' TARGY,
		   ERT.C_NAME FELEVIERTEKELES,
		   null,
		   ERT.C_NAME FELJEGYZES,
		   2 RENDEZ
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
			JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
																						  AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
																						  AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
			ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID
			LEFT JOIN (SELECT ID,  C_SZORGALOM SZORGALOM FROM T_OSZTALYFONOKIERTEKELES_OSSZES where TOROLT = 'F') OSZTALYZAT
			ON OSZTALYZAT.ID = ERTEKELES.ID
			LEFT JOIN ( SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE) ERT ON ERT.ID=OSZTALYZAT.SZORGALOM
	WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId
		  AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		  AND OSZTALYZAT.SZORGALOM IS NOT NULL -- FÉLÉVES
		  AND ERTEKELES.C_TANEVID = @TanevId
		  AND ERTEKELES.TOROLT='F'
	UNION ALL

	SELECT ERTEKELES.C_TANULOID TANULOID,
		   TARGY.TARGYNEV TARGY,
		   iif(@isBizonyitvany <> 0,ERT.C_NAME, ERT.C_NAME+iif(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA)) FELEVIERTEKELES,
		   ertekelesMegjegyzes.C_TEMA Jegyzet,
		   ERTEKELES.C_ERTEKELESSZOVEG FELJEGYZES,
		   TARGY.KAT RENDEZ
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
			JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
																						  AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
																						  AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
			ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID 
			JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT FROM T_TANTARGY_OSSZES where TOROLT = 'F') TARGY 
			ON TARGY.ID = ERTEKELES.C_TANTARGYID
			LEFT JOIN ( SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE) ERT ON ERT.ID=ERTEKELES.C_OSZTALYZAT
			left join T_OSZTALYZATERTEKELES ertekelesMegjegyzes on ertekelesMegjegyzes.ID=ertekeles.Id
	WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId
		  AND TARGY.KAT != 1248
		  AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus 
		  AND ERTEKELES.C_TANEVID = @TanevId
		  AND ERTEKELES.TOROLT='F'
	ORDER BY TANULOID, RENDEZ
	
	-- MULASZTÁSOK
	DECLARE @Idoszak INT
	DECLARE @IdoszakVege DATE

	SET @Idoszak = (SELECT 
						CASE 
							WHEN @ertekelesTipus = 1519 THEN 1400 --félévi
							WHEN @ertekelesTipus = 1520 THEN 1395 --év végi
							WHEN @ertekelesTipus = 1522 THEN 1403 --I. negyedévi
							WHEN @ertekelesTipus = 1523 then 1404 --III. negyedévi
						END
						) 
			 
	SET @IdoszakVege = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=@Idoszak AND C_TANEVID=@tanevId AND TOROLT='F')

	SELECT 
	t.TANULOID tanuloid 
	,m.Igazolt
	,m.Igazolatlan
	,m.ElmeletIgazolt
	,m.ElmeletIgazolatlan
	,m.GyakorlatiIgazolt
	,m.GyakorlatiIgazolatlan
	,m.Osszes
	FROM @Tanulok t
	LEFT JOIN (
	SELECT DISTINCT
     m.tanuloId												
    ,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)	Igazolt					
	,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Igazolatlan
	,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) ElmeletIgazolt
	,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletIgazolatlan
	,ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) GyakorlatiIgazolt
	,ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) GyakorlatiIgazolatlan
	,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)+
	ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Osszes
  FROM (
    SELECT 
       tanuloId, 
	  [hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati], 
	  [hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati], 
	  [kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
	  [kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati]
    FROM (
      SELECT 
         x.tanuloId
        ,CASE mulasztasTipus WHEN 1500 THEN 'Hianyzas' WHEN 1499 THEN 'Keses' END +
         CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
         CASE isTanorai WHEN 'T' THEN 'Tanorai' WHEN 'F' THEN 'TanoranKivuli' END + 
		 CASE isGyakorlati WHEN  'T' THEN 'Gyakorlati' WHEN 'F' THEN 'Elmeleti' END
		 AS piv
        ,cnt
      FROM (
        SELECT 
          m.C_ORATANULOIID AS tanuloId, 
          m.C_TIPUS mulasztasTipus, 
          m.C_IGAZOLT isIgazolt,
          IIF(cs.ID IS NULL OR cs.C_TIPUSA = 1034, 'T', 'F') AS isTanorai,
		  IIF(t.C_GYAKORLATI='T', 'T', 'F') as isGyakorlati,
          COUNT(1) AS cnt		   
        FROM T_TANULOMULASZTAS_OSSZES m  
          INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
		  INNER JOIN T_TANTARGY_OSSZES t on t.id=tn.C_TANTARGYID
          LEFT  JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
        WHERE 
		  tn.C_DATUM <= @IdoszakVege
		  AND m.C_INTEZMENYID = @intezmenyId 
		  AND m.C_TANEVID = @tanevId 
		  AND m.Torolt ='F'
          AND EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @osztalyId AND tcs.C_TANULOID = m.C_ORATANULOIID AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL))
        GROUP BY m.C_ORATANULOIID, m.C_TIPUS, m.C_IGAZOLT, IIF(cs.ID IS NULL OR cs.C_TIPUSA = 1034, 'T', 'F'), t.C_GYAKORLATI
      ) x
    ) p
    PIVOT (
      MAX(cnt)
      FOR piv IN (
	  [hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati], 
	  [hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati], 
	  [kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
	  [kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati])
    ) AS pvt
  ) m
  LEFT JOIN (
    SELECT 
       tanuloId
      ,[kesesIgazolandoTanoraiPerc]
      ,[kesesIgazoltTanoraiPerc]
      ,[kesesIgazolatlanTanoraiPerc] 
    FROM (
      SELECT 
         x.tanuloId
        ,'Keses' +
         CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
         'TanoraiPerc' AS piv
        ,kesesPercben
      FROM (
        SELECT 
           m.C_ORATANULOIID AS tanuloId 
          ,m.C_IGAZOLT isIgazolt
          ,SUM(m.C_KESESPERCBEN) AS kesesPercben 
        FROM T_TANULOMULASZTAS_OSSZES m  
          INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
          LEFT  JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
        WHERE 
		  tn.C_DATUM <= @IdoszakVege
		  AND m.C_INTEZMENYID = @intezmenyId 
		  AND m.C_TANEVID = @tanevId 
		  AND m.Torolt ='F'
          AND EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @osztalyId AND tcs.C_TANULOID = m.C_ORATANULOIID AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL))
          AND (cs.ID IS NULL OR cs.C_TIPUSA = 1034)
          AND m.C_TIPUS = 1499
        GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT
      ) x
    ) p
    PIVOT (
      MAX(kesesPercben)
      FOR piv IN 
      ([kesesIgazolandoTanoraiPerc], [kesesIgazoltTanoraiPerc], [kesesIgazolatlanTanoraiPerc])
    ) AS pvt 
  ) k ON k.tanuloId = m.tanuloId
  LEFT JOIN (
    SELECT 
		 tanuloId
		,[kesesIgazolandoTanoraiPluszOra]
		,[kesesIgazoltTanoraiPluszOra]
		,[kesesIgazolatlanTanoraiPluszOra]
		,kesesIgazoltElmeletiOraban
		,kesesIgazolatlanElmeletiOraban
		,kesesIgazoltGyakorlatiOraban
		,kesesIgazolatlanGyakorlatiOraban
    FROM (
      SELECT 
         x.tanuloId
        ,'Keses' +
         CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
         'TanoraiPluszOra' AS piv
        ,kesesOraban
		,kesesIgazoltElmeletiOraban
		,kesesIgazolatlanElmeletiOraban
		,kesesIgazoltGyakorlatiOraban
		,kesesIgazolatlanGyakorlatiOraban
      FROM (
        SELECT
           xx.tanuloId 
          ,xx.isIgazolt
          ,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) AS kesesOraban
		  ,SUM(CASE WHEN isGyakorlati = 'F' and isIgazolt='T' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazoltElmeletiOraban
		  ,SUM(CASE WHEN isGyakorlati = 'F' and isIgazolt='F' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazolatlanElmeletiOraban
		  ,SUM(CASE WHEN isGyakorlati = 'T' and isIgazolt='T' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazoltGyakorlatiOraban
		  ,SUM(CASE WHEN isGyakorlati = 'T' and isIgazolt='F' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazolatlanGyakorlatiOraban
        FROM (
          SELECT 
             m.C_ORATANULOIID AS tanuloId 
            ,m.C_IGAZOLT isIgazolt
            ,t.C_GYAKORLATI AS isGyakorlati
            ,SUM(m.C_KESESPERCBEN) AS keses
          FROM T_TANULOMULASZTAS_OSSZES m  
            INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
            INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
            LEFT  JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
          WHERE m.C_INTEZMENYID = @intezmenyId AND m.C_TANEVID = @tanevId
            AND EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @osztalyId AND tcs.C_TANULOID = m.C_ORATANULOIID AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL))
            AND (cs.ID IS NULL OR cs.C_TIPUSA = 1034)
            AND m.C_TIPUS = 1499
			AND m.TOROLT = 'F'
          GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT/*, tn.C_FOGLALKOZASID*/, t.C_GYAKORLATI
        ) xx
        GROUP BY tanuloId, xx.isIgazolt
      ) x
    ) p
    PIVOT (
      MAX(kesesOraban)
      FOR piv IN 
      ([kesesIgazolandoTanoraiPluszOra], [kesesIgazoltTanoraiPluszOra], [kesesIgazolatlanTanoraiPluszOra])
    ) AS pvt
  ) kp ON m.tanuloId = kp.tanuloId
  ) m on m.tanuloId=t.TanuloId


	
	-- TANTÁRGYI MENTESSÉGEK
	SELECT DISTINCT MENTESSEG.C_TANULOID TANULOID,
		   TARGY.TARGYNEV,
		   MENTESSEG.C_MENTESSEGOKA MENTESSEGOKA
	FROM T_TANULOMENTESSEG_OSSZES MENTESSEG
			JOIN (SELECT ID, C_NEV TARGYNEV FROM T_TANTARGY_OSSZES WHERE TOROLT='F') TARGY
			ON TARGY.ID = MENTESSEG.C_TANTARGYID
			JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F' 
																						  and T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
																						  and (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM is null or T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
			ON TANCSOPORT.C_TANULOID = MENTESSEG.C_TANULOID 
	WHERE MENTESSEG.TOROLT = 'F' 
		  AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId 
		  AND MENTESSEG.C_TANEVID = @TanevId
	ORDER BY MENTESSEG.C_TANULOID, TARGY.TARGYNEV

	-- BEJEGYZÉSEK
	DECLARE @EsemenyTipus INT

	SET @EsemenyTipus = (SELECT 
						CASE 
							WHEN @ertekelesTipus = 1519 THEN 1547 --félévi
							WHEN @ertekelesTipus = 1520 THEN 1548 --év végi
							WHEN @ertekelesTipus = 1522 THEN 1549 --I. negyedévi
							WHEN @ertekelesTipus = 1523 then 1551 --III. negyedévi
						END
						) 

	SELECT T_TANULOESEMENY_OSSZES.C_TANULOID TANULOID, 
		   C_TARTALOM BEJEGYZES,
		   C_TIPUS TIPUS
	FROM T_TANULOESEMENY_OSSZES
			JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
																						  and T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
																						  and (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM is null or T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
			ON TANCSOPORT.C_TANULOID = T_TANULOESEMENY_OSSZES.C_TANULOID 
	WHERE T_TANULOESEMENY_OSSZES.TOROLT='F'
		  AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
		  AND T_TANULOESEMENY_OSSZES.C_TIPUS = @EsemenyTipus
		  AND T_TANULOESEMENY_OSSZES.C_TIPUS != 1534
		  AND T_TANULOESEMENY_OSSZES.C_TANEVID = @TanevId
	ORDER BY T_TANULOESEMENY_OSSZES.C_TANULOID 
END

GO