SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

CREATE PROCEDURE [dbo].[sp_GetTeremOrarend]
	@TeremId int,
	@TanevId int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
    	-- Insert statements for procedure here
	-- �rarend

IF OBJECT_ID('tempdb..#tempszorzat') IS NOT NULL drop table #tempszorzat 
IF OBJECT_ID('tempdb..#orarend') IS NOT NULL drop table #orarend

	SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve, T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod --Fejl�c
	FROM T_INTEZMENYADATOK_OSSZES
	WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
	AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @TanevId

	declare @intezmenyid int=(select C_INTEZMENYID from T_TEREM_OSSZES where id=@TeremId)
	declare @AktualisHetEleje date=(select top 1 C_HETKEZDONAPJA from T_NAPTARIHET_OSSZES 
										where c_intezmenyid=@intezmenyid and c_tanevid=@tanevId 
										and torolt='F' and C_HETKEZDONAPJA<=convert(date,GETDATE()) 
										and C_HETUTOLSONAPJA>=convert(date,GETDATE())
									)

	declare @AktualisHetVege date=(	select top 1 C_HETUTOLSONAPJA from T_NAPTARIHET_OSSZES 
										where c_intezmenyid=@intezmenyid and c_tanevid=@tanevId 
										and torolt='F' and C_HETKEZDONAPJA<=convert(date,GETDATE()) 
										and C_HETUTOLSONAPJA>=convert(date,GETDATE())
									)

	declare @tmpTable table (oraszam int,hetirend int, [1408] nvarchar(MAX), [1409] nvarchar(MAX), [1410] nvarchar(MAX), [1411] nvarchar(MAX), [1412] nvarchar(MAX), [1413] nvarchar(MAX))
	select * into #tempszorzat from (select ID as Hetnapja  from T_DICTIONARYITEMBASE_OSSZES where id between 1408 and 1413 and torolt = 'F' and c_tanevid = @TanevId) napok,(select C_oraszam as Oraszam  from T_ORARENDIORA_OSSZES where torolt = 'F' and c_tanevid = @TanevId and C_INTEZMENYID=@intezmenyid) as oraszam
	

	DECLARE @ID INT = 0
			WHILE (1 = 1) 
			BEGIN  
				IF OBJECT_ID('tempdb..#orarend') IS NOT NULL drop table #orarend
				SELECT TOP 1 @ID = ID FROM T_HETIRENDTIPUS_OSSZES WHERE TOROLT ='F' and ID != 1554 and ID > @ID and C_ALTANEVID = @TanevId ORDER BY ID
				IF @@ROWCOUNT = 0 BREAK;
    
    
				select #tempszorzat.Hetnapja,#tempszorzat.Oraszam,
				(case
					WHEN  orak.HetiRend is null
					THEN @ID
					ELSE orak.HetiRend
					END)  as Hetirend
					,orak.ADAT Into #orarend from #tempszorzat 
					left join  (
					SELECT	ora.C_HETIREND HetiRend, 
							ora.C_HETNAPJA HetNapja, 
							ora.C_ORASZAM Oraszam, 
							STUFF((select ', '+t.c_nev+'- '+f.c_nev 
									from T_ORARENDIORA_OSSZES bo
									inner join T_FOGLALKOZAS_OSSZES f on f.id=bo.C_FOGLALKOZASID
									inner join T_TEREM_OSSZES t on t.id=bo.c_teremid
									where
									bo.C_HETNAPJA=ora.C_HETNAPJA and
									bo.C_ORASZAM=ora.C_ORASZAM and
									bo.C_HETIREND=ora.C_HETIREND AND
									((bo.C_ORAERVENYESSEGKEZDETE<=@AktualisHetEleje) and (bo.c_oraervenyessegvege>=@AktualisHetVege)or 
																						(bo.C_ORAERVENYESSEGKEZDETE>=@AktualisHetEleje) and (bo.C_ORAERVENYESSEGKEZDETE<=@AktualisHetVege))
									and bo.C_TEREMID=@teremId 
									and bo.torolt='F'																
									FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,2,' ') Adat
							FROM  T_ORARENDIORA_OSSZES ora
								JOIN T_FOGLALKOZAS_OSSZES ON T_FOGLALKOZAS_OSSZES.ID = ora.C_FOGLALKOZASID
								JOIN T_TANTARGY_OSSZES targy ON targy.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
								JOIN T_FOGLALKOZASOK_TANAROK ON T_FOGLALKOZAS_OSSZES.ID = T_FOGLALKOZASOK_TANAROK.C_FOGLALKOZASOKID
								JOIN T_FELHASZNALO_OSSZES tanar ON T_FOGLALKOZASOK_TANAROK.C_TANAROKID = tanar.ID
								JOIN T_OSZTALYCSOPORT_OSSZES OSZTCSOP ON OSZTCSOP.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
							WHERE ora.TOROLT = 'F'
								AND ora.C_TEREMID = @TeremId
								and ora.C_TANEVID = @TanevId
							GROUP BY ora.C_HETIREND, ora.C_HETNAPJA, ora.C_ORASZAM,OSZTCSOP.C_NEV, targy.C_NEV, tanar.C_NYOMTATASINEV,T_FOGLALKOZAS_OSSZES.ID) orak on #tempszorzat.Oraszam = orak.Oraszam and (#tempszorzat.HetNapja = orak.HetNapja or orak.HetNapja = 1554)
				
				insert into @tmpTable 
					select * from
							(
								select oraszam,hetnapja,adat, @ID as Hetirend
								from #orarend where Hetirend = @ID or Hetirend = 1554
								
							) o1
							PIVOT
							(
								max (adat)
								FOR hetnapja
								IN ([1408], [1409], [1410], [1411], [1412], [1413])
							) p1 
			
			END

		select * from  @tmpTable 
	IF OBJECT_ID('tempdb..#tempszorzat') IS NOT NULL drop table #tempszorzat 
	IF OBJECT_ID('tempdb..#orarend') IS NOT NULL drop table #orarend

END

GO