﻿
DROP PROCEDURE IF EXISTS uspGetOsztalycsoportTanevrendje
GO

CREATE PROCEDURE uspGetOsztalycsoportTanevrendje
   @pIntezmenyId int
  ,@pTanevId int
  ,@pOsztalyCsoportId int
  ,@pOsszesCsoportVonatkozokat bit = NULL
  ,@pDate datetime = NULL
  
AS
BEGIN
  SET NOCOUNT ON;
  DECLARE @sql nvarchar(max)   
  SET @sql = N''
  SET @sql += N'
    SELECT
        ID
        ,C_HETIREND
        ,C_DATUM
        ,C_CSENGETESIRENDID
        ,C_NAPTIPUSA
        ,C_HETNAPJA
        ,C_OSSZESCSOPORTRAVONATKOZIK
        ,C_ORARENDINAP
      FROM T_TANEVRENDJE_OSSZES
      LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE on T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
      WHERE
        T_TANEVRENDJE_OSSZES.TOROLT = ''F''
        and T_TANEVRENDJE_OSSZES.C_TANEVID = @pTanevId
        and T_TANEVRENDJE_OSSZES.C_INTEZMENYID = @pIntezmenyId
        ' + IIF(@pOsszesCsoportVonatkozokat IS NULL ,
              'and (T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID = @pOsztalyCsoportId OR T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID is null)', 
              IIF(@pOsszesCsoportVonatkozokat = 0,
                  'and T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID = @pOsztalyCsoportId ',
                  'and T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID is null')) + '
        '+IIF(@pDate IS NOT NULL,'and T_TANEVRENDJE_OSSZES.C_DATUM = @pDate', '')

  EXEC sp_executesql @sql, N'
   @pIntezmenyId int
  ,@pTanevId int
  ,@pOsztalyCsoportId int
  ,@pDate datetime = NULL'
  ,@pIntezmenyId = @pIntezmenyId
  ,@pTanevId = @pTanevId
  ,@pOsztalyCsoportId = @pOsztalyCsoportId
  ,@pDate = @pDate

END
GO
