﻿DROP FUNCTION IF EXISTS fnGetTanuloOsztalyString 
GO
CREATE FUNCTION fnGetTanuloOsztalyString (   
   @pTanuloId int
  ,@pDatum date = NULL
  ,@pFeladatKategoriaId int = NULL
  ,@pKiiratkozottNeJelenjenMeg bit = 1)
RETURNS @retTable TABLE (Osztalynev nvarchar(4000))
AS BEGIN
  INSERT INTO @retTable
    SELECT STUFF((
      SELECT ', '+OsztalyCsoport.C_NEV
      FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
        INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID	= TanuloCsoport.C_OSZTALYCSOPORTID AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
          AND Osztaly.TOROLT = 'F'
        INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
          AND OsztalyCsoport.TOROLT	= 'F'
          AND (OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
        INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F'
      WHERE TanuloCsoport.C_TANULOID = @pTanuloId
        AND	TanuloCsoport.TOROLT = 'F'
        AND TanuloCsoport.C_BELEPESDATUM <= ISNULL(@pDatum,GETDATE())
        AND ((TanuloCsoport.C_KILEPESDATUM > ISNULL(@pDatum,GETDATE()) OR TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= Tanev.C_UTOLSOTANITASINAP)
          OR @pKiiratkozottNeJelenjenMeg = 0)
      FOR XML PATH('')),1,1,'')
  RETURN
END
GO