kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_GetFelhasznaloJogok.sql
2024-03-13 00:33:46 +01:00

122 lines
4.7 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.)
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetFelhasznaloJogok
GO
CREATE PROCEDURE sp_GetFelhasznaloJogok
@FELHASZNALOID INT,
@SZEREPKORTIPUS INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TEMPJOGOK TABLE (JOG nvarchar(100))
DECLARE @szerepkorjog nvarchar(100)
-- SZEREPKÖR JOGOK
SELECT @szerepkorjog =
CASE @SZEREPKORTIPUS
WHEN 1758 THEN N'Adminisztrator'
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'FokuszMonitoring'
WHEN 7781 THEN N'Alkalmazott'
WHEN 7789 THEN N'IskolaEgeszsegugyiKoordinator'
WHEN 7790 THEN N'Vedono'
WHEN 7791 THEN N'Iskolaorvos'
WHEN 7792 THEN N'IskolaEgeszsegugyiAsszisztens'
WHEN 7793 THEN N'IskolaEgeszsegugyiLekerdezo'
WHEN 8753 THEN N'BelepokartyaAdmin'
WHEN 8755 THEN N'LELTAR_CONCERNED'
WHEN 8824 THEN N'Konyvtaros'
WHEN 8828 THEN N'FELTAR_EsetKezelo'
WHEN 8829 THEN N'FELTAR_EszkozMenedzser'
WHEN 8961 THEN N'KerdoivKitolto_KerdoivKezelo'
WHEN 9001 THEN N'Dualis_Admin'
WHEN 9061 THEN N'FELTAR_SzerzodesMenedzser'
WHEN 9062 THEN N'FELTAR_EsetJovahagyo'
WHEN 9063 THEN N'FELTAR_EsetKozremukodo'
WHEN 9064 THEN N'FELTAR_Munkavegzo'
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_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
GO