DROP PROCEDURE  IF EXISTS uspGetTanuloTantargyakByOktatasiAzonosito 
GO

CREATE PROCEDURE uspGetTanuloTantargyakByOktatasiAzonosito
   @pTanuloOktatasiAzonosito NVARCHAR(20)
  ,@pTanevId INT
AS
BEGIN
  SET NOCOUNT ON;

  SELECT DISTINCT Tantargy.ID AS KretaAzonosito
    ,Tantargy.C_NEV AS Nev
  FROM T_TANTARGY_OSSZES  Tantargy
  INNER JOIN T_FOGLALKOZAS_OSSZES  Foglalkozas ON Foglalkozas.C_TANTARGYID = Tantargy.ID
    AND Foglalkozas.TOROLT = 'F'
  WHERE EXISTS (
      SELECT 1
      FROM T_OSZTALYCSOPORT_OSSZES  OsztalyCsoport
      INNER JOIN T_TANULOCSOPORT_OSSZES  Tanulocsoport ON Tanulocsoport.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
        AND Tanulocsoport.TOROLT = 'F'
        AND Tanulocsoport.C_INTEZMENYID = OsztalyCsoport.C_INTEZMENYID
        AND Tanulocsoport.C_TANEVID = OsztalyCsoport.C_TANEVID
        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()
          )
      WHERE EXISTS (
          SELECT 1
          FROM T_FELHASZNALO_OSSZES  Felhasznalo
          WHERE Felhasznalo.ID = Tanulocsoport.C_TANULOID
            AND Felhasznalo.TOROLT = 'F'
            AND Felhasznalo.C_OKTATASIAZONOSITO = @pTanuloOktatasiAzonosito
          )
        AND Foglalkozas.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
        AND Foglalkozas.TOROLT = 'F'
      )
      AND Tantargy.TOROLT = 'F'
      AND Tantargy.C_TANEVID = @pTanevId
END
GO


