DROP PROCEDURE  IF EXISTS uspGetGondviseloGyerekAdatokNextYearEugyintezes 
GO

CREATE PROCEDURE uspGetGondviseloGyerekAdatokNextYearEugyintezes
   @pTanevId INT
  ,@pGondviseloId INT
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'
  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.C_ALTANEVID = @pTanevId
          AND Osztaly.TOROLT = 'F'
        )
      AND TanuloCsoport.C_TANEVID = @pTanevId
      AND TanuloCsoport.TOROLT = 'F'
      AND TanuloCsoport.C_BELEPESDATUM <= (
        SELECT IIF(GETDATE() < C_ELSOTANITASINAP, C_ELSOTANITASINAP, GETDATE())
        FROM T_TANEV
        WHERE ID = @pTanevId
          AND TOROLT = 'F'
        )
      AND (
        TanuloCsoport.C_KILEPESDATUM IS NULL
        OR TanuloCsoport.C_KILEPESDATUM > GETDATE()
        )
    ) TanuloOsztaly ON TanuloOsztaly.TanuloId = Felhasznalo.ID
  WHERE Felhasznalo.TOROLT = 'F'
    AND Felhasznalo.C_TANEVID = @pTanevId
    AND EXISTS (
      SELECT 1
      FROM T_GONDVISELO_OSSZES Gondviselo
      INNER JOIN T_FELHASZNALO_OSSZES Tanulo ON Tanulo.ID = Gondviselo.C_TANULOID
        AND Tanulo.TOROLT = 'F'
      WHERE Gondviselo.TOROLT = 'F'
        AND Gondviselo.ID = @pGondviseloId
        AND Tanulo.C_OKTATASIAZONOSITO = Felhasznalo.C_OKTATASIAZONOSITO
      )
END
GO


