DROP PROCEDURE  IF EXISTS uspGetTanuloByDiakigazolvanyszamEugyintezes 
GO

CREATE PROCEDURE uspGetTanuloByDiakigazolvanyszamEugyintezes @pDiakigazolvanyszam NVARCHAR(255)
AS
BEGIN
  SET NOCOUNT ON;

  SELECT Felhasznalo.ID AS KretaAzonosito
    ,Felhasznalo.C_VEZETEKNEV AS VezetekNev
    ,Felhasznalo.C_UTONEV AS KeresztNev
    ,Felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito
    ,ISNULL(Felhasznalo.C_ELOTAG, '') AS Elotag
    ,TanuloOsztaly.OsztalyKretaAzonosito
    ,TanuloOsztaly.Osztaly
    ,Felhasznalo.C_SZULETESIDATUM AS SzuletesiIdo
    ,Felhasznalo.C_EGYEDIAZONOSITO AS EgyediAzonosito
    ,Felhasznalo.C_IDPEGYEDIAZONOSITO AS IdpEgyediAzonosito
  FROM T_FELHASZNALO_OSSZES Felhasznalo
  INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = Felhasznalo.ID
    AND Tanulo.TOROLT = 'F'
    AND C_DIAKIGAZOLVANYSZAM = @pDiakigazolvanyszam
  LEFT JOIN (
    SELECT TanuloCsoport.C_TANULOID AS TanuloId
      ,OsztalyCsoport.ID AS OsztalyKretaAzonosito
      ,OsztalyCsoport.C_NEV AS Osztaly
    FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
    INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
      AND OsztalyCsoport.TOROLT = 'F'
    WHERE EXISTS (
        SELECT 1
        FROM T_OSZTALY_OSSZES Osztaly
        INNER JOIN T_OSZTALYCSOPORT_OSSZES InnerOsztalyCsoport ON InnerOsztalyCsoport.ID = Osztaly.ID
        AND InnerOsztalyCsoport.TOROLT = 'F'
        WHERE Osztaly.ID = OsztalyCsoport.ID
          AND Osztaly.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()
        )
      AND TanuloCsoport.TOROLT = 'F'
    ) TanuloOsztaly ON TanuloOsztaly.TanuloId = Felhasznalo.ID
  WHERE Felhasznalo.TOROLT = 'F'
END
GO


