-- =============================================
-- 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
