DROP PROCEDURE  IF EXISTS uspGetAlkalmazottAdatokEugyintezes 
GO

CREATE PROCEDURE uspGetAlkalmazottAdatokEugyintezes
   @pFelhasznaloId INT
  ,@pSzerepkorTipusEnumNaplo INT
  ,@pOktNevKatTipusNevOkt INT
  ,@pTanevId INT
AS
BEGIN
  SET NOCOUNT ON;

  SELECT Alkalmazott.ID AS KretaAzonosito
    ,Felhasznalo.C_NYOMTATASINEV AS Nev
    ,Felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito
    ,Osztaly.ID AS OsztalyKretaAzonosito
    ,Osztaly.Osztaly
    ,OsztalyHelyettes.ID AS OsztalyHelyettesKretaAzonosito
    ,OsztalyHelyettes.Osztaly AS OsztalyHelyettes
    ,IIF(Osztaly.OsztalyfonokId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonok
    ,IIF(OsztalyHelyettes.OsztalyfonokHelyettesId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonokHelyettes
    ,IIF(MunkaugyiAdatok.C_VEZETOIORASZAMOK NOT IN (
        6571 /*Nincs, DictionaryItemBase*/
        ,6578 /*GyakorlatiOktatasvezeto, DictionaryItemBase*/
        ), 1, 0) AS IsAlairo
    ,IIF(MunkaugyiAdatok.C_VEZETOIORASZAMOK IN (
        7755
        ,6572
        ,6573
        ,7757
        ,7758
        ,6574
        ), 1, 0) AS IsIgazgato
    ,IIF(MunkaugyiAdatok.C_VEZETOIORASZAMOK IN (
        7756
        ,6575
        ,6576
        ,6577
        ), 1, 0) AS IsIgazgatoHelyettes
    ,MunkaugyiAdatok.C_VEZETOIORASZAMOK AS Titulus
    ,IIF(Osztaly.OsztalyfonokId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonok
    ,IIF(OsztalyHelyettes.OsztalyfonokHelyettesId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonokHelyettes
    ,IIF(mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = 8384, 1, 0) AS IsTanar
    ,IIF(mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = 8385, 1, 0) AS IsNoks
    ,IIF(mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = 8386, 1, 0) AS IsEgyeb
    ,IIF(Adminisztrator.FelhasznaloId = Alkalmazott.ID, 1, 0) AS IsAdmin
    ,mukodesihely.C_FUNKCIOTERULET AS FunkcioTeruletSAPKod
    ,Felhasznalo.C_EGYEDIAZONOSITO AS EgyediAzonosito
    ,Felhasznalo.C_IDPEGYEDIAZONOSITO AS IdpEgyediAzonosito
  FROM T_ALKALMAZOTT_OSSZES AS Alkalmazott
  INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Alkalmazott.ID = Felhasznalo.ID
    AND Felhasznalo.TOROLT = 'F'
    AND Felhasznalo.C_TANEVID = @pTanevId
  LEFT JOIN (
    SELECT MunkaugyiAdatok.C_ALKALMAZOTTID
      ,MunkaugyiAdatok.C_MUNKAKORTIPUSA
    FROM T_MUNKAUGYIADATOK_OSSZES MunkaugyiAdatok
    INNER JOIN T_FELHASZNALO_SZEREPKOR FelhasznaloSzerepkor ON FelhasznaloSzerepkor.C_FELHASZNALOID = MunkaugyiAdatok.C_ALKALMAZOTTID
    INNER JOIN T_SZEREPKOR_OSSZES Szerepkor ON Szerepkor.ID = FelhasznaloSzerepkor.C_SZEREPKORID
      AND Szerepkor.TOROLT = 'F'
      AND Szerepkor.C_SZEREPKORTIPUS = @pSzerepkorTipusEnumNaplo
      AND Szerepkor.C_TANEVID = @pTanevId
    WHERE MunkaugyiAdatok.C_MUNKAKORTIPUSA NOT IN (
        SELECT JSON_VALUE(VALUE, '$.Value')
        FROM OPENJSON((
              SELECT RendszerBeallitas.C_ERTEK
              FROM T_RENDSZERBEALLITAS_OSSZES RendszerBeallitas
              WHERE RendszerBeallitas.C_BEALLITASTIPUS = 5441
                AND RendszerBeallitas.TOROLT = 'F'
                AND RendszerBeallitas.C_TANEVID = @pTanevId
              ), '$.Options')
        WHERE JSON_VALUE(VALUE, '$.Selected') = 'true'
        )
      OR MunkaugyiAdatok.C_MUNKAKORTIPUSA = 6710 /*Hitoktató*/
      AND MunkaugyiAdatok.TOROLT = 'F'
      AND MunkaugyiAdatok.C_TANEVID = @pTanevId
    ) Szuro ON Szuro.C_ALKALMAZOTTID = Felhasznalo.ID
  LEFT JOIN (
    SELECT OsztalyCsoport.ID
      ,OsztalyCsoport.C_NEV AS Osztaly
      ,Osztaly.C_OSZTALYFONOKID AS OsztalyfonokId
    FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
    INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID
      AND Osztaly.TOROLT = 'F'
      AND Osztaly.C_ALTANEVID = @pTanevId
    WHERE OsztalyCsoport.TOROLT = 'F'
      AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
      AND OsztalyCsoport.C_TANEVID = @pTanevId
    ) Osztaly ON Osztaly.OsztalyfonokId = Alkalmazott.ID
  LEFT JOIN (
    SELECT OsztalyCsoport.ID
      ,OsztalyCsoport.C_NEV AS Osztaly
      ,Osztaly.C_OFOHELYETTESID AS OsztalyfonokHelyettesId
    FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
    INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID
      AND Osztaly.TOROLT = 'F'
      AND Osztaly.C_ALTANEVID = @pTanevId
    WHERE OsztalyCsoport.TOROLT = 'F'
      AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
      AND OsztalyCsoport.C_TANEVID = @pTanevId
    ) OsztalyHelyettes ON OsztalyHelyettes.OsztalyfonokHelyettesId = Alkalmazott.ID
  LEFT JOIN (
    SELECT FelhasznaloSzerepkor.C_FELHASZNALOID AS FelhasznaloId
    FROM T_FELHASZNALO_SZEREPKOR FelhasznaloSzerepkor
    INNER JOIN T_SZEREPKOR_OSSZES Szerepkor ON Szerepkor.ID = FelhasznaloSzerepkor.C_SZEREPKORID
      AND Szerepkor.TOROLT = 'F'
      AND Szerepkor.C_SZEREPKORTIPUS = 1758 /*Adminisztrátor, DictionaryItemBase*/
      AND Szerepkor.C_TANEVID = @pTanevId
    ) Adminisztrator ON Adminisztrator.FelhasznaloId = Alkalmazott.ID
  LEFT JOIN T_MUNKAUGYIADATOK_OSSZES MunkaugyiAdatok ON MunkaugyiAdatok.C_ALKALMAZOTTID = Alkalmazott.ID
    AND MunkaugyiAdatok.TOROLT = 'F'
    AND MunkaugyiAdatok.C_TANEVID = @pTanevId
  LEFT JOIN T_MUNKAKORTIPUS_OSSZES mkt ON mkt.ID = MunkaugyiAdatok.C_MUNKAKORTIPUSA
    AND mkt.C_ALINTEZMENYID = MunkaugyiAdatok.C_INTEZMENYID
    AND mkt.C_ALTANEVID = MunkaugyiAdatok.C_TANEVID AND mkt.TOROLT = 'F'
  LEFT JOIN T_FELADATELLATASIHELY_OSSZES feladatEllatasiHely ON feladatEllatasiHely.ID = MunkaugyiAdatok.C_FELADATELLATASIHELYID
    AND feladatEllatasiHely.TOROLT = 'F'
    AND feladatEllatasiHely.C_TANEVID = @pTanevId
  LEFT JOIN T_MUKODESIHELY_OSSZES mukodesihely ON mukodesihely.ID = feladatEllatasiHely.C_MUKODESIHELYID
    AND mukodesihely.TOROLT = 'F'
    AND mukodesihely.C_TANEVID = @pTanevId
  WHERE Alkalmazott.TOROLT = 'F'
    AND Alkalmazott.ID = @pFelhasznaloId
    AND Alkalmazott.C_ALTANEVID = @pTanevId
  ORDER BY Felhasznalo.C_NYOMTATASINEV
END
GO


