DROP PROCEDURE IF EXISTS uspGetTanarTanitottTanuloi
GO


CREATE PROCEDURE uspGetTanarTanitottTanuloi
   @pTanarId int
  ,@pFoglalkozasId int = NULL
  ,@pFoglalkozasTipusId int	= NULL
  ,@pTanevId int
  ,@pIntezmenyId int
AS
BEGIN
  DECLARE 
     @sql nvarchar(max)
    ,@sqlWhere nvarchar(max)
    ,@defaultFeladatKategoriaId int
    
  SET @defaultFeladatKategoriaId = (SELECT C_DEFAULTFELADATKATEGORIAID FROM T_TANEV WHERE ID = @pTanevId)
  
  SET @sql = N'
  SELECT 
     fh.ID 
    ,fh.C_NYOMTATASINEV AS TanuloNev
    ,IIF(fh.C_NEVSORREND = ''T'',                        --
        fh.C_UTONEV + '' '' + fh.C_VEZETEKNEV,        --
        fh.C_VEZETEKNEV + '' '' + fh.C_UTONEV) AS TanuloNevElotagNelkul      
    ,OCS.C_NEV AS FoglalkozasNev
    ,f.C_FOGLALKOZASTIPUSA AS Tipus
    ,f.C_TANTARGYID AS TantargyId
    ,tgy.C_NEV AS TantargyNev
    FROM T_FOGLALKOZAS_OSSZES f
      INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON f.C_OSZTALYCSOPORTID = ocs.ID AND OCS.C_FELADATKATEGORIAID = @defaultFeladatKategoriaId AND ocs.TOROLT = ''F''
      INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND tcs.TOROLT = ''F''
      INNER JOIN T_FELHASZNALO_OSSZES fh ON tcs.C_TANULOID = fh.ID AND fh.TOROLT = ''F''
      INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = f.C_TANTARGYID AND tgy.TOROLT = ''F''
    WHERE f.C_TANARID = @pTanarId 
      AND f.TOROLT = ''F'' 
      AND tcs.C_BELEPESDATUM < GETDATE()
  		AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= GETDATE()) 
      ' + IIF(@pFoglalkozasId IS NOT NULL, 'AND f.ID = @pFoglalkozasId', '') + '
      ' + IIF(@pFoglalkozasTipusId IS NOT NULL, 'AND f.C_FOGLALKOZASTIPUSA = @pFoglalkozasTipusId', '') + '
      AND f.C_TANEVID = @pTanevId
      AND f.C_INTEZMENYID = @pIntezmenyId
    '
  
  EXEC sp_executesql @sql, N'
     @pTanarId int
    ,@pFoglalkozasId int
    ,@pFoglalkozasTipusId int
    ,@pTanevId int
    ,@pIntezmenyId int
    ,@defaultFeladatKategoriaId int'
    ,@pTanarId = @pTanarId
    ,@pFoglalkozasId = @pFoglalkozasId
    ,@pFoglalkozasTipusId = @pFoglalkozasTipusId
    ,@pTanevId = @pTanevId
    ,@pIntezmenyId = @pIntezmenyId
    ,@defaultFeladatKategoriaId = @defaultFeladatKategoriaId    
END
GO