-- =============================================
-- Description:	Foglalkozások egész évben megtartandó óráinak száma.
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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


CREATE PROCEDURE [dbo].[sp_GetFoglalkozasokMegtartandoOraSzama]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
	SET NOCOUNT ON;

   select ID foglalkozasID, count(OraID) OraSzam from(
   select t_foglalkozas_OSSZES.ID ID, T_ORARENDIORA_OSSZES.ID OraID from
			 T_ORARENDIORA_OSSZES
				inner join t_foglalkozas_OSSZES on T_ORARENDIORA_OSSZES.C_FOGLALKOZASID = T_FOGLALKOZAS_OSSZES.ID
				inner join T_NAPTARINAP_OSSZES on T_ORARENDIORA_OSSZES.C_HETNAPJA = T_NAPTARINAP_OSSZES.C_HETNAPJA
								and (T_ORARENDIORA_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_ORARENDIORA_OSSZES.C_HETIREND = 1554)

				
				INNER JOIN T_TANEV_OSSZES ON T_NAPTARINAP_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID and t_foglalkozas_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
				left join T_TANITASIORA_OSSZES on T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANITASIORA_OSSZES.C_DATUM
					and T_TANITASIORA_OSSZES.C_ORARENDIORAGROUPID = T_ORARENDIORA_OSSZES.C_ORARENDIORAGROUPID
					and T_TANITASIORA_OSSZES.C_DATUM BETWEEN T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE 
					and T_TANITASIORA_OSSZES.C_MEGTARTOTT ='F'
					and T_TANITASIORA_OSSZES.TOROLT='F'

				left join T_OSZTALYCSOPORT_TANEVRENDJE on T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID

				
				where NOT EXISTS (Select 1 from
				T_TANEVRENDJE_OSSZES
					left join T_OSZTALYCSOPORT_TANEVRENDJE on t_foglalkozas_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
				WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM 
							and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
							and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
							and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
							and T_TANEVRENDJE_OSSZES.TOROLT='F'
							and T_NAPTARINAP_OSSZES.C_NAPDATUMA >= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE
							and T_NAPTARINAP_OSSZES.C_NAPDATUMA <= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE
							)) 
				AND T_TANITASIORA_OSSZES.ID is null
				AND T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F'

				union all

				select foglalkozas.ID ID, T_TANITASIORA_OSSZES.id OraID
		from T_TANITASIORA_OSSZES
		inner join ( select ID, C_OSZTALYCSOPORTID from t_foglalkozas_OSSZES where torolt='F' ) foglalkozas on T_TANITASIORA_OSSZES.C_FOGLALKOZASID = foglalkozas.ID
		inner join T_NAPTARINAP_OSSZES on T_TANITASIORA_OSSZES.C_HETNAPJA = T_NAPTARINAP_OSSZES.C_HETNAPJA
		left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
		where
			C_ORARENDIORAGROUPID is null and T_TANITASIORA_OSSZES.TOROLT='F'
		and 
		NOT EXISTS (Select 1 from
					T_TANEVRENDJE_OSSZES
						left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
						WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM 
								and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
								and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
								and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
								and T_TANEVRENDJE_OSSZES.TOROLT='F')) 
					) orak

					Group by ID
END
