121 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- =============================================
 | 
						|
-- Author:		Sólyom Péter
 | 
						|
-- Create date: 2016.04.05.
 | 
						|
-- Description:	Lekérdezi a felhasználóhoz tartozó jogokat (osztályfőnök, csoportvezető, stb.)
 | 
						|
-- =============================================
 | 
						|
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('dbo.sp_GetFelhasznaloJogok') IS NOT NULL BEGIN
 | 
						|
  DROP PROCEDURE dbo.sp_GetFelhasznaloJogok
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE sp_GetFelhasznaloJogok
 | 
						|
	@FELHASZNALOID INT,
 | 
						|
	@SZEREPKORTIPUS INT
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	-- SET NOCOUNT ON added to prevent extra result sets from
 | 
						|
	-- interfering with SELECT statements.
 | 
						|
	SET NOCOUNT ON;
 | 
						|
	DECLARE @TEMPJOGOK TABLE (JOG nvarchar(100))
 | 
						|
	DECLARE @szerepkorjog nvarchar(100)
 | 
						|
 | 
						|
	-- SZEREPKÖR JOGOK
 | 
						|
   SELECT  @szerepkorjog = 
 | 
						|
   CASE @SZEREPKORTIPUS
 | 
						|
      WHEN 1757  THEN  N'Fenntarto'  
 | 
						|
	  WHEN 1758  THEN  N'Adminisztrator'  
 | 
						|
	  WHEN 1759  THEN  N'Penzugy'  
 | 
						|
	  WHEN 1760  THEN  N'Naplo'  
 | 
						|
	  WHEN 1761  THEN  N'Ellenorzo'
 | 
						|
	  WHEN 7371  THEN  N'PenzugyiAdmin'
 | 
						|
	  WHEN 7372  THEN  N'Penztaros'
 | 
						|
	  WHEN 7373  THEN  N'Alairo'
 | 
						|
	  WHEN 7374  THEN  N'eUgyintezo'
 | 
						|
	  WHEN 7703  THEN  N'EtkezesiAdmin'
 | 
						|
	  WHEN 7704  THEN  N'EtkezesiEllenorzo'
 | 
						|
	  WHEN 7705  THEN  N'TeremberletJelenletEllenorzo'
 | 
						|
	  WHEN 7698  THEN  N'GazdasagiUgyintezo'
 | 
						|
	  WHEN 7702  THEN  N'ESL'
 | 
						|
   END   
 | 
						|
   
 | 
						|
   INSERT INTO @TEMPJOGOK SELECT @szerepkorjog
 | 
						|
 | 
						|
 	-- RENDSZERGAZDA VAGY SZUPERADMIN
 | 
						|
	INSERT INTO @TEMPJOGOK
 | 
						|
	SELECT DISTINCT C_JOG JOG
 | 
						|
		FROM T_JOGOSULTSAG
 | 
						|
			JOIN T_JOGOSULTSAG_FELHASZNALO FELHASZNALOJOG ON FELHASZNALOJOG.C_JOGOSULTSAGID = T_JOGOSULTSAG.ID
 | 
						|
		WHERE T_JOGOSULTSAG.TOROLT = 'F'
 | 
						|
			AND FELHASZNALOJOG.C_FELHASZNALOID = @FELHASZNALOID
 | 
						|
			AND T_JOGOSULTSAG.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
 | 
						|
	UNION
 | 
						|
	-- OSZTÁLYFŐNÖK
 | 
						|
	SELECT DISTINCT 'Osztalyfonok'
 | 
						|
		FROM T_OSZTALY OSZT
 | 
						|
		LEFT JOIN T_MUNKAUGYIADATOK MUNKAUGY ON MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
 | 
						|
		WHERE (OSZT.C_OSZTALYFONOKID = @FELHASZNALOID OR OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F')
 | 
						|
		OR (MUNKAUGY.TOROLT='F' AND
 | 
						|
			MUNKAUGY.C_VEZETOIORASZAMOK BETWEEN 6572 AND 6574)   -- 6572 - Intézményvezető, 6573 - Tagintézmény-vezető, 6574 - Intézményegység-vezető
 | 
						|
		OR EXISTS (SELECT 1
 | 
						|
						   FROM T_SZEREPKOR
 | 
						|
						     INNER JOIN T_FELHASZNALO_SZEREPKOR FELHASZNALOSZEREPKOR ON FELHASZNALOSZEREPKOR.C_SZEREPKORID = T_SZEREPKOR.ID 
 | 
						|
						   WHERE T_SZEREPKOR.TOROLT = 'F'
 | 
						|
						     AND FELHASZNALOSZEREPKOR.C_FELHASZNALOID = @FELHASZNALOID
 | 
						|
							 AND T_SZEREPKOR.C_SZEREPKORTIPUS = 1758)
 | 
						|
 | 
						|
	-- ÉVFOLYAMFELELŐS
 | 
						|
	UNION
 | 
						|
	SELECT TOP 1 'Evfolyamfelelos'
 | 
						|
		FROM T_OSZTALY OSZT
 | 
						|
		WHERE OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
 | 
						|
	-- CSOPORTVEZETŐ
 | 
						|
	UNION
 | 
						|
	SELECT TOP 1 'CsoportVezeto'
 | 
						|
		FROM T_CSOPORT CSOP
 | 
						|
		WHERE CSOP.C_CSOPORTVEZETOID = @FELHASZNALOID AND CSOP.TOROLT = 'F'
 | 
						|
	-- SZUPEROSZTÁLYFŐNÖK (IGAZGATÓ, ÉVFOLYAMFELELŐS)
 | 
						|
	UNION
 | 
						|
	SELECT TOP 1 'SzuperOsztalyfonok'
 | 
						|
		FROM T_MUNKAUGYIADATOK MUNKAUGY 
 | 
						|
			WHERE (MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
 | 
						|
				AND MUNKAUGY.TOROLT='F'
 | 
						|
				AND MUNKAUGY.C_VEZETOIORASZAMOK  BETWEEN 6572 AND 6574) -- 6572 - Intézményvezető, 6573 - Tagintézmény-vezető, 6574 - Intézményegység-vezető
 | 
						|
				OR EXISTS (SELECT 1
 | 
						|
						   FROM T_SZEREPKOR
 | 
						|
						     INNER JOIN T_FELHASZNALO_SZEREPKOR FELHASZNALOSZEREPKOR ON FELHASZNALOSZEREPKOR.C_SZEREPKORID = T_SZEREPKOR.ID 
 | 
						|
						   WHERE T_SZEREPKOR.TOROLT = 'F'
 | 
						|
						     AND FELHASZNALOSZEREPKOR.C_FELHASZNALOID = @FELHASZNALOID
 | 
						|
							 AND T_SZEREPKOR.C_SZEREPKORTIPUS = 1758)
 | 
						|
	UNION	-- TANÁR
 | 
						|
	SELECT TOP 1 'Tanar'
 | 
						|
		FROM T_TANARITANTARGY TT 
 | 
						|
		WHERE TT.C_ALKALMAZOTTID = @FELHASZNALOID AND TT.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT TOP 1 'Tanar'
 | 
						|
		FROM T_FOGLALKOZAS FOGL
 | 
						|
		WHERE FOGL.C_TANARID = @FELHASZNALOID AND FOGL.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT TOP 1 'Tanar' 
 | 
						|
	FROM T_HELYETTESITESIIDOSZAK HEID
 | 
						|
	WHERE HEID.C_HELYETTESTANAROKID = @FELHASZNALOID AND HEID.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT TOP 1 'Tanar' 
 | 
						|
	FROM T_TANITASIORA TNO
 | 
						|
	WHERE (TNO.C_HELYETTESITOTANARID = @FELHASZNALOID OR TNO.C_TANARID = @FELHASZNALOID) AND TNO.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT TOP 1 'Tanulo'
 | 
						|
		FROM T_TANULO tt 
 | 
						|
		WHERE ID= @FELHASZNALOID AND tt.TOROLT = 'F'
 | 
						|
 | 
						|
	SELECT t.JOG
 | 
						|
		FROM @TEMPJOGOK T
 | 
						|
			JOIN T_JOGOSULTSAG JOGOS ON JOGOS.C_JOG = T.JOG
 | 
						|
		WHERE JOGOS.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
 | 
						|
END
 |