kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190705164034_KRETA2_194_DB1/sp_GetFelhasznaloJogok.sql
2024-03-13 00:33:46 +01:00

116 lines
4 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 7698 THEN N'GazdasagiUgyintezo'
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