124 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			4.1 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))
 | 
						|
 | 
						|
	-- SZEREPKÖR JOGOK
 | 
						|
	IF @SZEREPKORTIPUS = 1757 
 | 
						|
	BEGIN
 | 
						|
		INSERT INTO @TEMPJOGOK	(JOG) VALUES (N'Fenntarto')
 | 
						|
    END
 | 
						|
	ELSE IF @SZEREPKORTIPUS = 1758
 | 
						|
	BEGIN
 | 
						|
		INSERT INTO @TEMPJOGOK	(JOG) VALUES (N'Adminisztrator')
 | 
						|
    END
 | 
						|
	ELSE IF @SZEREPKORTIPUS = 1759
 | 
						|
	BEGIN
 | 
						|
		INSERT INTO @TEMPJOGOK	(JOG) VALUES (N'Penzugy')
 | 
						|
    END	ELSE IF @SZEREPKORTIPUS = 1760
 | 
						|
	BEGIN
 | 
						|
		INSERT INTO @TEMPJOGOK	(JOG) VALUES (N'Naplo')
 | 
						|
    END	ELSE IF @SZEREPKORTIPUS = 1761
 | 
						|
	BEGIN
 | 
						|
		INSERT INTO @TEMPJOGOK	(JOG) VALUES (N'Ellenorzo')
 | 
						|
    END
 | 
						|
 	-- 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 IN (6572, 6573, 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 DISTINCT 'Evfolyamfelelos'
 | 
						|
		FROM T_OSZTALY OSZT
 | 
						|
		WHERE OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
 | 
						|
	-- CSOPORTVEZETŐ
 | 
						|
	UNION
 | 
						|
	SELECT DISTINCT 'CsoportVezeto'
 | 
						|
		FROM T_CSOPORT CSOP
 | 
						|
		WHERE CSOP.C_CSOPORTVEZETOID = @FELHASZNALOID AND CSOP.TOROLT = 'F'
 | 
						|
	-- SZUPEROSZTÁLYFŐNÖK (IGAZGATÓ, ÉVFOLYAMFELELŐS)
 | 
						|
	UNION
 | 
						|
	SELECT DISTINCT 'SzuperOsztalyfonok'
 | 
						|
		FROM T_MUNKAUGYIADATOK MUNKAUGY 
 | 
						|
			WHERE (MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
 | 
						|
				AND MUNKAUGY.TOROLT='F'
 | 
						|
				AND MUNKAUGY.C_VEZETOIORASZAMOK IN (6572, 6573, 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 DISTINCT 'Tanar'
 | 
						|
		FROM T_TANARITANTARGY TT 
 | 
						|
		WHERE TT.C_ALKALMAZOTTID = @FELHASZNALOID AND TT.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT DISTINCT 'Tanar'
 | 
						|
		FROM T_FOGLALKOZAS FOGL
 | 
						|
		WHERE FOGL.C_TANARID = @FELHASZNALOID AND FOGL.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT DISTINCT 'Tanar' 
 | 
						|
	FROM T_HELYETTESITESIIDOSZAK HEID
 | 
						|
	WHERE HEID.C_HELYETTESTANAROKID = @FELHASZNALOID AND HEID.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT DISTINCT 'Tanar' 
 | 
						|
	FROM T_TANITASIORA TNO
 | 
						|
	WHERE TNO.C_HELYETTESITOTANARID = @FELHASZNALOID AND TNO.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT DISTINCT 'Tanar' 
 | 
						|
	FROM T_TANITASIORA TNO
 | 
						|
	WHERE TNO.C_TANARID = @FELHASZNALOID AND TNO.TOROLT = 'F'
 | 
						|
	UNION
 | 
						|
	SELECT '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
 | 
						|
GO
 | 
						|
 |