DROP PROCEDURE IF EXISTS uspGetCsoportTanuloiByMunkarend
GO

CREATE PROCEDURE uspGetCsoportTanuloiByMunkarend
   @pOsztalycsoportId int
  ,@pHasMunkarend bit
  ,@pIsAktivTanev bit

AS BEGIN
  SET NOCOUNT ON;
    SELECT 
       osztalyDetails.TanuloNev 
      ,osztalyDetails.OktatasiAzonosito 
      ,osztalyDetails.SzuletesiDatum 
      ,osztalyDetails.Munkarend 
    FROM T_TANULOCSOPORT_OSSZES csoporTanuloi
      INNER JOIN T_OSZTALYCSOPORT_OSSZES csoportDetails on csoportDetails.ID = csoporTanuloi.C_OSZTALYCSOPORTID AND csoportDetails.TOROLT = 'F'
      OUTER APPLY (
        SELECT 
           felhasznalo.C_NYOMTATASINEV TanuloNev
          ,felhasznalo.C_OKTATASIAZONOSITO OktatasiAzonosito
          ,C_SZULETESIDATUM SzuletesiDatum
          ,dic.C_NAME Munkarend
        FROM T_TANULOCSOPORT_OSSZES osztalyBesorolas 
          INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = osztalyBesorolas.ID AND tta.TOROLT = 'F'
          INNER JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = osztalyBesorolas.C_OSZTALYCSOPORTID AND osztaly.TOROLT = 'F'
          INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyDetails ON osztalyDetails.ID = osztalyBesorolas.C_OSZTALYCSOPORTID AND osztalyDetails.TOROLT = 'F'
          INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = osztalyBesorolas.C_TANULOID AND felhasznalo.TOROLT ='F'
          LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.ID = tta.C_TANTERVIJELLEGID AND dic.C_TANEVID = osztalyBesorolas.C_TANEVID AND dic.TOROLT = 'F'
        WHERE 
          osztalyBesorolas.TOROLT = 'F'
          AND (@pIsAktivTanev = 0 OR osztalyBesorolas.C_BELEPESDATUM <= GETDATE())
          AND (osztalyBesorolas.C_KILEPESDATUM IS NULL OR osztalyBesorolas.C_KILEPESDATUM > GETDATE())
          AND osztalyBesorolas.C_TANULOID = csoporTanuloi.C_TANULOID
          AND ((@pHasMunkarend = 1 AND tta.C_TANTERVIJELLEGID IS NOT NULL) OR (@pHasMunkarend = 0 AND tta.C_TANTERVIJELLEGID IS NULL))
          AND csoportDetails.C_FELADATKATEGORIAID = osztalyDetails.C_FELADATKATEGORIAID
      ) osztalyDetails
    WHERE 
      csoporTanuloi.C_OSZTALYCSOPORTID = @pOsztalycsoportId
      AND csoporTanuloi.TOROLT = 'F'
      AND (@pIsAktivTanev = 0 OR csoporTanuloi.C_BELEPESDATUM <= GETDATE())
      AND (csoporTanuloi.C_KILEPESDATUM IS NULL OR csoporTanuloi.C_KILEPESDATUM > GETDATE())
END
GO
