﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

-- =============================================
-- Description:	Félévi értesítõ nyomtatvány.
-- =============================================

CREATE PROCEDURE sp_GetFeleviErtesito
	@osztalyId int,
	@TanevId   int,
	@ElmeletGyakorlat bit=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    -- 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
	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
	
	-- ÉRTÉKELÉSEK
	SELECT ERTEKELES.C_TANULOID TANULOID,
		   'MAGATARTAS' TARGY,
		   ERT.C_NAME FELEVIERTEKELES,
		   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 = 1519
		  AND (OSZTALYZAT.MAGATARTAS IS NOT NULL OR (LEN(ERTEKELES.C_ERTEKELESSZOVEG)>0 and ERTEKELES.C_TANTARGYID is null) )  -- FÉLÉVES
		  AND ERTEKELES.C_TANEVID = @TanevId
		  AND ERTEKELES.TOROLT='F'
	UNION ALL

	SELECT ERTEKELES.C_TANULOID TANULOID,
		   'SZORGALOM' TARGY,
		   ERT.C_NAME FELEVIERTEKELES,
		   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 = 1519
		  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,
		   ERT.C_NAME+iif(ertekelesMegjegyzes.C_TEMA is null, '', +' * '+ertekelesMegjegyzes.C_TEMA) FELEVIERTEKELES,
		   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 --Osztályfőnöki nem jelenítődik meg
		  AND ERTEKELES.C_ERTEKELESTIPUSA = 1519 -- FÉLÉVES
		  AND ERTEKELES.C_TANEVID = @TanevId
		  AND ERTEKELES.TOROLT='F'
	ORDER BY TANULOID, RENDEZ
	/*
SELECT ERTEKELES.C_TANULOID TANULOID,
		   'MAGATARTAS' TARGY,
		   d.C_NAME FELEVIERTEKELES,
		   d.C_NAME++iif(ertekeles.c_ertekelesszoveg is null, '', +' - '+ertekeles.c_ertekelesszoveg) 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
			inner join (select distinct id, c_name from T_DICTIONARYITEMBASE) d on d.id=OSZTALYZAT.MAGATARTAS
	WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId 
		  AND ERTEKELES.C_ERTEKELESTIPUSA = 1519
		  AND OSZTALYZAT.MAGATARTAS IS NOT NULL -- FÉLÉVES
		  AND ERTEKELES.C_TANEVID = @TanevId
		  AND ERTEKELES.TOROLT='F'
UNION ALL
	SELECT ERTEKELES.C_TANULOID TANULOID,
		   'SZORGALOM' TARGY,
		   d.C_NAME FELEVIERTEKELES,
		   ERTEKELES.C_ERTEKELESSZOVEG 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
			inner join (select distinct id, c_name from T_DICTIONARYITEMBASE) d on d.id=OSZTALYZAT.szorgalom
	WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId
		  AND ERTEKELES.C_ERTEKELESTIPUSA = 1519
		  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,
		   d.C_NAME+iif(ertekelesMegjegyzes.C_TEMA is null, '', +' * '+ertekelesMegjegyzes.C_TEMA) FELEVIERTEKELES,
		   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
			inner join (select distinct id, c_name from T_DICTIONARYITEMBASE) d on d.id=ERTEKELES.C_OSZTALYZAT
			left join T_OSZTALYZATERTEKELES ertekelesMegjegyzes on ertekelesMegjegyzes.ID=ertekeles.Id
	WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId
		  AND TARGY.KAT != 1248 --Osztályfőnöki nem jelenítődik meg
		  AND ERTEKELES.C_ERTEKELESTIPUSA = 1519 -- FÉLÉVES
		  AND ERTEKELES.C_TANEVID = @TanevId
		  AND ERTEKELES.TOROLT='F'
ORDER BY TANULOID, Rendez
*/
	-- MULASZTÁSOK

declare @tanulok table (Tanulo int)
insert into @tanulok
select c_tanuloid from t_tanulocsoport where torolt='F' and c_osztalycsoportid=@osztalyId




IF @ElmeletGyakorlat=0
BEGIN
select * from (select Tanulok.Tanulo TanuloId, 'IGAZOLT' Tipus, isnull(Igazolt.Osszes, 0)+isnull(IgazoltElmeletKeses.Osszes, 0)+isnull(IgazoltGyakorlatKeses.Osszes, 0) Oraszam from @tanulok Tanulok
	left join (
				select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
				inner join T_TANITASIORA tao on tao.id=tm.C_TANITASIORAKID
				--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
		where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
				and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  Igazolt on Igazolt.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/45 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
		where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
				and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazoltElmeletKeses on IgazoltElmeletKeses.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/60 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
		where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
				and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazoltGyakorlatKeses on IgazoltGyakorlatKeses.Tanulo=Tanulok.Tanulo


union


select Tanulok.Tanulo TanuloId, 'IGAZOLATLAN' Tipus, isnull(Igazolatlan.Osszes, 0)+isnull(IgazolatlanElmeletKeses.Osszes, 0)+isnull(IgazolatlatGyakorlatKeses.Osszes, 0) Oraszam from @tanulok Tanulok
	left join (
		select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
				inner join T_TANITASIORA tao on tao.id=tm.C_TANITASIORAKID
				--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
		where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  Igazolatlan on Igazolatlan.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/45 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
		where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazolatlanElmeletKeses on IgazolatlanElmeletKeses.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/60 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
		where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazolatlatGyakorlatKeses on IgazolatlatGyakorlatKeses.Tanulo=Tanulok.Tanulo
) Ossz
ORDER BY TANULOID, TIPUS DESC
/*SELECT * FROM (
	SELECT MULASZT.C_ORATANULOIID TANULOID,
			'IGAZOLT' TIPUS,
			COUNT(1) ORASZAM
	FROM T_TANULOMULASZTAS_OSSZES MULASZT
			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 = MULASZT.C_ORATANULOIID				 
	WHERE MULASZT.TOROLT ='F'
			AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
			AND MULASZT.C_IGAZOLT = 'T'
			AND MULASZT.C_TIPUS = 1500
			AND MULASZT.C_TANEVID = @TanevId
	GROUP BY MULASZT.C_ORATANULOIID


	UNION 

	SELECT MULASZT.C_ORATANULOIID TANULOID,
			  'IGAZOLATLAN' TIPUS,
			  COUNT(1) ORASZAM
		FROM T_TANULOMULASZTAS_OSSZES MULASZT
				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 = MULASZT.C_ORATANULOIID 						
		WHERE MULASZT.TOROLT ='F'
			  AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
			  AND MULASZT.C_IGAZOLT = 'F'
			  AND MULASZT.C_TIPUS = 1500
			  AND MULASZT.C_TANEVID = @TanevId
		GROUP BY MULASZT.C_ORATANULOIID) ORAK
	ORDER BY ORAK.TANULOID, ORAK.TIPUS DESC
*/

END

ELSE

BEGIN
select * from (select Elmeletgyakorlat.*, Elmelet.Elmelet, Gyakorlat.Gyakorlat from 
(select Tanulok.Tanulo TanuloId, 'IGAZOLT' Tipus, isnull(Igazolt.Osszes, 0)+isnull(IgazoltElmeletKeses.Osszes, 0)+isnull(IgazoltGyakorlatKeses.Osszes, 0) Oraszam from @tanulok Tanulok
	left join (
		select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
			inner join T_TANITASIORA tao on tao.id=tm.C_TANITASIORAKID
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
		where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  Igazolt on Igazolt.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/45 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
		where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazoltElmeletKeses on IgazoltElmeletKeses.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/60 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
		where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazoltGyakorlatKeses on IgazoltGyakorlatKeses.Tanulo=Tanulok.Tanulo


union


select Tanulok.Tanulo TanuloId, 'IGAZOLATLAN' Tipus, isnull(Igazolatlan.Osszes, 0)+isnull(IgazolatlanElmeletKeses.Osszes, 0)+isnull(IgazolatlanGyakorlatKeses.Osszes, 0) Oraszam from @tanulok Tanulok
	left join (
		select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
			inner join T_TANITASIORA tao on tao.id=tm.C_TANITASIORAKID
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
		where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  Igazolatlan on Igazolatlan.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/45 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
		where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazolatlanElmeletKeses on IgazolatlanElmeletKeses.Tanulo=Tanulok.Tanulo

	left join (
		select c_oratanuloiid Tanulo, sum(c_kesespercben)/60 Osszes from t_tanulomulasztas tm
			inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
			--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
			inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
		where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
			and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
		group by c_oratanuloiid
	)  IgazolatlanGyakorlatKeses on IgazolatlanGyakorlatKeses.Tanulo=Tanulok.Tanulo
)Elmeletgyakorlat

left join (
			select Tanulok.Tanulo TanuloId, 'IGAZOLT' Tipus, isnull(Igazolt.Osszes, 0)+isnull(IgazoltElmeletKeses.Osszes,0) Elmelet from @tanulok Tanulok
					left join (
										select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
										where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  Igazolt on Igazolt.Tanulo=Tanulok.Tanulo

					left join (
										select c_oratanuloiid Tanulo, sum(c_kesespercben)/45 Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
										where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  IgazoltElmeletKeses on IgazoltElmeletKeses.Tanulo=Tanulok.Tanulo
			union 

			select Tanulok.Tanulo TanuloId, 'IGAZOLATLAN' Tipus, isnull(Igazolatlan.Osszes, 0)+isnull(IgazolatlanElmeletKeses.Osszes,0) Elmelet from @tanulok Tanulok
					left join (
										select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
										where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  Igazolatlan on Igazolatlan.Tanulo=Tanulok.Tanulo

					left join (
										select c_oratanuloiid Tanulo, sum(c_kesespercben)/45 Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='F'
										where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  IgazolatlanElmeletKeses on IgazolatlanElmeletKeses.Tanulo=Tanulok.Tanulo


			)Elmelet on Elmelet.Tanuloid=Elmeletgyakorlat.TanuloId and Elmelet.Tipus=Elmeletgyakorlat.Tipus



left join (
			select Tanulok.Tanulo TanuloId, 'IGAZOLT' Tipus, isnull(Igazolt.Osszes, 0)+isnull(IgazoltGyakorlatKeses.Osszes,0) Gyakorlat from @tanulok Tanulok
					left join (
										select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
										where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  Igazolt on Igazolt.Tanulo=Tanulok.Tanulo

					left join (
										select c_oratanuloiid Tanulo, sum(c_kesespercben)/60 Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
										where tm.torolt='F' and tm.c_igazolt='T' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  IgazoltGyakorlatKeses on IgazoltGyakorlatKeses.Tanulo=Tanulok.Tanulo
			union 

			select Tanulok.Tanulo TanuloId, 'IGAZOLATLAN' Tipus, isnull(Igazolatlan.Osszes, 0)+isnull(IgazolatlanGyakorlatKeses.Osszes,0) Elmelet from @tanulok Tanulok
					left join (
										select c_oratanuloiid Tanulo, count(tm.id) Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
										where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1500
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  Igazolatlan on Igazolatlan.Tanulo=Tanulok.Tanulo

					left join (
										select c_oratanuloiid Tanulo, sum(c_kesespercben)/60 Osszes from t_tanulomulasztas tm
											inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid
											--inner join t_foglalkozas fog on fog.id=tao.C_FOGLALKOZASID and fog.C_FOGLALKOZASTIPUSA=1339
											inner join t_tantargy t on t.id=tao.c_tantargyid and t.c_gyakorlati='T'
										where tm.torolt='F' and tm.c_igazolt='F' and tm.c_tanevId=@tanevId and tm.c_tipus=1499
											and ((tao.C_OSZTALYCSOPORTID in (select id from t_osztaly)) or (tao.c_osztalycsoportid in (select id from t_csoport where C_TIPUSA=1034)))
										group by c_oratanuloiid
								)  IgazolatlanGyakorlatKeses on IgazolatlanGyakorlatKeses.Tanulo=Tanulok.Tanulo


			)Gyakorlat on Gyakorlat.Tanuloid=Elmeletgyakorlat.TanuloId and Gyakorlat.Tipus=Elmeletgyakorlat.Tipus
									
)Ossz
ORDER BY TANULOID, TIPUS DESC

END

	-- 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
	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 = 1547
		  AND T_TANULOESEMENY_OSSZES.C_TIPUS != 1534
		  AND T_TANULOESEMENY_OSSZES.C_TANEVID = @TanevId
	ORDER BY T_TANULOESEMENY_OSSZES.C_TANULOID
END

GO