DROP PROCEDURE  IF EXISTS uspGetGondviseloAdatokEugyintezes 
GO

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

  SELECT Gondviselo.ID AS KretaAzonosito
    ,Gondviselo.C_NEV AS GondviseloNev
    ,Email.C_EMAILCIM AS EmailCim
    ,Felhasznalo.C_NYOMTATASINEV AS TanuloNev
    ,Felhasznalo.C_OKTATASIAZONOSITO AS TanuloOktatasiAzonosito
    ,Felhasznalo.ID AS TanuloId
    ,RokonsagiFokDictionary.C_NAME AS RokonsagiFok
    ,IIF(Gondviselo.C_ISTORVENYESKEPVISELO = 'T', 1, 0) AS IsTorvenyesKepviselo
    ,(
      SELECT Osztaly.ID
      FROM T_OSZTALY_OSSZES Osztaly
      INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID
        AND OsztalyCsoport.TOROLT = 'F'
        AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
      WHERE Osztaly.C_SZMKKEPVISELOHELYETTESID = Gondviselo.ID
        AND Osztaly.TOROLT = 'F'
      ) AS SZMKOsztalyHelyettesKretaAzonosito
    ,(
      SELECT OsztalyCsoport.C_NEV
      FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
      INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID
        AND Osztaly.TOROLT = 'F'
      WHERE Osztaly.C_SZMKKEPVISELOHELYETTESID = Gondviselo.ID
       
        AND OsztalyCsoport.TOROLT = 'F'
        AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
      ) AS SZMKOsztalyHelyettes
    ,(
      SELECT Osztaly.ID
      FROM T_OSZTALY_OSSZES Osztaly
      INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID
        AND OsztalyCsoport.TOROLT = 'F'
        AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
      WHERE Osztaly.C_SZMKKEPVISELOID = Gondviselo.ID
        AND Osztaly.TOROLT = 'F'
      ) AS SZMKOsztalyKretaAzonosito
    ,(
      SELECT OsztalyCsoport.C_NEV
      FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
      INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID
        AND Osztaly.TOROLT = 'F'
      WHERE Osztaly.C_SZMKKEPVISELOID = Gondviselo.ID       
        AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
        AND OsztalyCsoport.TOROLT = 'F'
      ) AS SZMKOsztaly
    ,(
      SELECT TOP 1 OsztalyCsoport.ID
      FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
      INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID
        AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
        AND Osztaly.TOROLT = 'F'
      INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID
        AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
        AND OsztalyCsoport.TOROLT = 'F'
      WHERE TanuloCsoport.C_TANULOID = Gondviselo.C_TANULOID
        AND TanuloCsoport.TOROLT = 'F'
      ) AS TanuloOsztalyKretaAzonosito
    ,(
      SELECT TOP 1 OsztalyCsoport.C_NEV
      FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
      INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID
        AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
        AND Osztaly.TOROLT = 'F'
      INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID
        AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
        AND OsztalyCsoport.TOROLT = 'F'
      WHERE TanuloCsoport.C_TANULOID = Gondviselo.C_TANULOID
        AND TanuloCsoport.TOROLT = 'F'
      ) AS TanuloOsztaly
    ,IIF((
        SELECT Osztaly.ID
        FROM T_OSZTALY_OSSZES Osztaly
        INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID
          AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
          AND OsztalyCsoport.TOROLT = 'F'
        WHERE Osztaly.C_SZMKKEPVISELOID = Gondviselo.ID
          AND Osztaly.TOROLT = 'F'
        ) IS NOT NULL, 1, 0) AS IsSZMK
    ,IIF((
        SELECT Osztaly.ID
        FROM T_OSZTALY_OSSZES Osztaly
        INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID
          AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
          AND OsztalyCsoport.TOROLT = 'F'
        WHERE Osztaly.C_SZMKKEPVISELOHELYETTESID = Gondviselo.ID
          AND Osztaly.TOROLT = 'F'
        ) IS NOT NULL, 1, 0) AS IsSZMKHelyettes
    ,Gondviselo.C_EGYEDIAZONOSITO AS EgyediAzonosito
    ,Gondviselo.C_IDPEGYEDIAZONOSITO AS IdpEgyediAzonosito
  FROM T_GONDVISELO_OSSZES Gondviselo
  LEFT JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON Gondviselo.C_TANULOID = TanuloCsoport.C_TANULOID
    AND TanuloCsoport.TOROLT = 'F'
    AND TanuloCsoport.C_BELEPESDATUM <= (
      SELECT IIF(GETDATE() < C_ELSOTANITASINAP, C_ELSOTANITASINAP, GETDATE())
      FROM T_TANEV_OSSZES
      WHERE C_AKTIV = 'T'
        AND TOROLT = 'F'
        AND C_INTEZMENYID = TanuloCsoport.C_INTEZMENYID
      )
    AND (
      TanuloCsoport.C_KILEPESDATUM IS NULL
      OR TanuloCsoport.C_KILEPESDATUM > GETDATE()
      )
  LEFT JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
    AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
    AND OsztalyCsoport.TOROLT = 'F'
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFokDictionary ON RokonsagiFokDictionary.ID = Gondviselo.C_ROKONSAGFOKA
    AND RokonsagiFokDictionary.TOROLT = 'F'
  LEFT JOIN T_EMAIL_OSSZES Email ON Email.C_GONDVISELOID = Gondviselo.ID
    AND Email.TOROLT = 'F'
    AND Email.C_ALAPERTELMEZETT = 'T'
  INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Gondviselo.C_TANULOID
    AND Felhasznalo.TOROLT = 'F'
  WHERE Gondviselo.TOROLT = 'F'
    AND Gondviselo.ID = @pFelhasznaloId
    AND RokonsagiFokDictionary.C_TANEVID = @pTanevId
    --AND Gondviselo.C_TANEVID = @pTanevId
END
GO
