﻿DROP FUNCTION IF EXISTS fnGetOsztalyfonokOsztalyanakTanuloi
GO

CREATE FUNCTION fnGetOsztalyfonokOsztalyanakTanuloi(
   @pTanarId int
  ,@pSzuperOsztalyfonok int
  ,@pFeladatKategoriaId int
  ,@pDatum date)
RETURNS TABLE
AS RETURN
  SELECT
     f.ID
    ,f.C_NYOMTATASINEV AS Nev
  FROM T_OSZTALY_OSSZES o
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = o.ID
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID
      AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId
    INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
  WHERE (o.C_OSZTALYFONOKID = @pTanarId OR @pSzuperOsztalyfonok = 1)
    AND tcs.C_BELEPESDATUM <= @pDatum
    AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
    AND o.TOROLT = 'F'
    AND tcs.TOROLT = 'F'
    AND f.TOROLT = 'F'
    AND ocs.TOROLT = 'F'
GO