﻿IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaByHet') IS NOT NULL BEGIN
  DROP PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
END
GO

CREATE PROCEDURE [sp_GetNemMegtartottOrakSzamaByHet] 
	@osztalycsoportId	INT
	,@intezmenyId		INT
	,@tanevId			INT
	,@hetSorszam		INT
AS
BEGIN

DECLARE @aktualisHetHetirendje INT = (SELECT C_HETIREND FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA=@hetSorszam AND TOROLT='F' AND C_TANEVID=@tanevId)

SELECT 
		Id					AS Id
		,@hetSorszam		AS HetSzama
		,C_NAPDATUMA		AS Datum
		,C_HETNAPJA			AS Hetnapja
		,C_ORASZAM			AS Oraszam
		,C_NEV				AS OsztalyNev
		,tant				AS TargyNev
		,Nev	AS TanarNev
FROM 
(
	SELECT DISTINCT 
		oo.id
		,naptar.C_NAPDATUMA
		,naptar.C_HETNAPJA
		,oo.C_ORASZAM
		,ocs.C_NEV
		,t.C_NEV tant
		,ISNULL(fh.C_NYOMTATASINEV, f.C_NYOMTATASINEV) Nev
	FROM T_ORARENDIORA_OSSZES oo
		INNER JOIN T_NAPTARINAP_OSSZES naptar ON 		
							((naptar.C_NAPDATUMA >=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA < oo.C_ORAERVENYESSEGVEGE) 
							OR
							(naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGVEGE))		
							AND naptar.C_ORARENDINAP='T'
							AND (naptar.C_HETIREND = oo.C_HETIREND OR oo.C_HETIREND = 1554)
							AND oo.C_HETNAPJA=naptar.C_HETNAPJA
							AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
		LEFT JOIN T_TANITASIORA_OSSZES tao ON 
							naptar.C_NAPDATUMA=tao.C_DATUM
							AND oo.ID = tao.C_ORARENDIORAID
							AND tao.TOROLT='F'
		LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hely ON hely.C_HELYETTESITETTORARENDID=oo.ID AND CAST(hely.C_HELYETTESITESNAPJA AS DATE) = naptar.C_NAPDATUMA
		LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
		LEFT JOIN T_FELHASZNALO_OSSZES fh ON hely.C_HELYETTESTANAROKID = f.ID
		INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
		INNER JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
		INNER JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID
		INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID
	WHERE 
		oo.TOROLT='F'
		AND oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalycsoportId)) 
		AND naptar.C_NAPDATUMA <= GETDATE()
		AND tao.ID IS NULL
		AND hely.ID IS NULL
		AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
		AND oo.C_CSENGETESIRENDORAID IS NOT NULL
		AND naptar.C_TANEVID = @tanevId
		AND naptar.C_HETSORSZAMA=@hetSorszam

	UNION

	SELECT 
		oo.id
		,hi.C_HELYETTESITESNAPJA
		,naptar.C_HETNAPJA
		,oo.C_ORASZAM
		,ocs.C_NEV
		,t.C_NEV 
		,ISNULL(fh.C_NYOMTATASINEV, f.C_NYOMTATASINEV) Nev
	FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
			INNER JOIN T_ORARENDIORA_OSSZES oo on oo.Id=hi.C_HELYETTESITETTORARENDID
			INNER JOIN T_NAPTARINAP_OSSZES naptar on naptar.C_NAPDATUMA = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND naptar.C_TANEVID=hi.C_TANEVID AND naptar.C_INTEZMENYID=hi.C_INTEZMENYID
			LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
			LEFT JOIN T_FELHASZNALO_OSSZES fh ON hi.C_HELYETTESTANAROKID = f.ID
			LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
			LEFT JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
			LEFT JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID
			LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID
	WHERE 
	oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalycsoportId)) 
    AND (oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA=1034) OR oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES))
	AND hi.TOROLT='F'
	AND hi.C_HETSORSZAMA=@hetSorszam
	AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
	AND oo.C_CSENGETESIRENDORAID IS NOT NULL
	AND oo.TOROLT='F'
	AND hi.C_HELYETTESITESNAPJA <= GETDATE()
	AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA tao WHERE tao.C_DATUM =  CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND tao.C_ORARENDIORAID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F')
)a
ORDER BY Datum

END

GO