96 lines
2.8 KiB
Transact-SQL
96 lines
2.8 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 SZUPEROSZTÁLYFŐNÖK
|
|
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
|
|
WHERE OSZT.C_OSZTALYFONOKID = @FELHASZNALOID OR OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
|
|
-- É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_MUNKAKORTIPUSA IN (1762,1763) -- IGAZGATÓ VAGY IGAZGATÓ HELYETTES
|
|
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
|
|
JOIN T_FOGLALKOZASOK_TANAROK FT ON FT.C_FOGLALKOZASOKID = FOGL.ID
|
|
WHERE FT.C_TANAROKID = @FELHASZNALOID AND FOGL.TOROLT = 'F'
|
|
UNION
|
|
SELECT 'Tanulo'
|
|
FROM T_TANULO tt
|
|
WHERE ID= @FELHASZNALOID
|
|
|
|
SELECT t.JOG
|
|
FROM @TEMPJOGOK T
|
|
JOIN T_JOGOSULTSAG JOGOS ON JOGOS.C_JOG = T.JOG
|
|
WHERE JOGOS.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
|
|
END
|
|
GO
|
|
|