SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

CREATE PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes] 
	@tanevID			INT,
	@intezmenyId		INT,
	@aktivTanevId		INT,
	@isEgyebFoglalkozasok BIT,
	@pedagogusId		INT
AS 
BEGIN

SELECT DISTINCT 
	IntezmenyAdatok.C_NEV as intezmeny
	,ISNULL(IntezmenyAdatok.C_VAROS + ', ', '') + dbo.fnGetDokumentumDatumFormatum(GETDATE()) AS kelt
	,(SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE Id = @pedagogusId) PedagogusNev 
FROM T_INTEZMENY_OSSZES Intezmeny
  INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_INTEZMENYID = Intezmeny.ID AND IntezmenyAdatok.C_TANEVID = @tanevid
WHERE 
	Intezmeny.Id = @intezmenyId 
	AND Intezmeny.TOROLT='F'

DECLARE @tabla TABLE (
	 PedagogusId		INT, 
	 Ora				INT, 
	 Hetirend			INT, 
	 PedagogusNev		NVARCHAR(MAX),
	 Hetfo				NVARCHAR(MAX), 
	 Kedd				NVARCHAR(MAX), 
	 Szerda				NVARCHAR(MAX), 
	 Csutortok			NVARCHAR(MAX), 
	 Pentek				NVARCHAR(MAX), 
	 Szombat			NVARCHAR(MAX), 
	 HetirendNev		NVARCHAR(MAX)
	 )

SELECT 
	Alkalmazott.ID 
	,Felhasznalo.C_NYOMTATASINEV Nev
INTO #Pedagogusok
FROM T_ALKALMAZOTT_OSSZES Alkalmazott
	INNER JOIN (SELECT DISTINCT C_TANARID FROM T_ORARENDIORA_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT = 'F') OrarendiOra on OrarendiOra.C_TANARID = Alkalmazott.Id
	INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = Alkalmazott.Id
WHERE 
	Alkalmazott.torolt='F' 
	AND Alkalmazott.C_ALTANEVID = @tanevID
	AND (@pedagogusId = -1 OR Alkalmazott.Id = @pedagogusId)

DECLARE kurzor CURSOR FOR 
SELECT ID FROM #Pedagogusok

DECLARE @TanarId int

OPEN kurzor
FETCH NEXT FROM kurzor INTO @TanarId

WHILE @@FETCH_STATUS = 0 BEGIN
  INSERT INTO @tabla

  EXEC sp_GetPedagogusOrarend @intezmenyId, @tanevid, @tanarid, @aktivTanevId, @isEgyebFoglalkozasok
  
  FETCH NEXT FROM kurzor INTO @TanarId
END

CLOSE kurzor
DEALLOCATE kurzor

SELECT
	ID PedagogusId
	,Nev
	,Hetirend
FROM #Pedagogusok
CROSS JOIN (SELECT DISTINCT HetirendNev FROM @tabla) Hetirend (Hetirend)
ORDER BY Nev, Hetirend

SELECT 
	*
FROM @tabla 
ORDER BY Hetirend, Ora

END

GO