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

GO 
CREATE PROCEDURE [sp_GetNemMegtartottOrakSzamaPerHet] 
	@osztalycsoportId	int, 
	@intezmenyId		int, 
	@tanevId			int 
AS
BEGIN

SELECT 
	HetSorszam					HetSorszama
	,count(ID)					NemNaplozottOrakSzama
	,@osztalycsoportId			OsztalyID

FROM 
(
	SELECT 
	Id 
	,HetSorszam

	FROM 
	(
		SELECT DISTINCT 
			naptar.C_HETSORSZAMA HetSorszam
			,oo.Id Id
		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
		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

		UNION

		SELECT 
		hi.C_HETSORSZAMA HetSorszam
		,hi.ID
		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
		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 (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
)a
GROUP BY HetSorszam
ORDER BY HetSorszam

END

GO