326 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS sp_GetOrarend
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE sp_GetOrarend
 | 
						|
   @pIntezmenyId int
 | 
						|
  ,@pTanevId int
 | 
						|
  ,@pIdoszakKezdete datetime
 | 
						|
  ,@pIdoszakVege datetime
 | 
						|
  ,@pTanarId int = NULL 
 | 
						|
  ,@pIsHelyettesitesNelkul bit = 0
 | 
						|
  ,@pOsztalyCsoportId int = NULL
 | 
						|
  ,@pTanuloId int = NULL
 | 
						|
  ,@pTantargyId int = NULL
 | 
						|
  ,@pTeremId int = NULL
 | 
						|
  ,@pCsakOrarendiOrak bit
 | 
						|
  ,@pIsNapirend bit = 0 /*0 csak orarendi ora, 1 csak napirend, NULL mindkettő*/
 | 
						|
  ,@pFeladatKategoriaId int = NULL
 | 
						|
  ,@pOrakezdete datetime = NULL
 | 
						|
  ,@pOravege datetime = NULL
 | 
						|
  ,@pHetnapja int = NULL
 | 
						|
 | 
						|
AS BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
  SET @pOrakezdete = CONVERT(datetime,CONVERT(TIME, @pOrakezdete))
 | 
						|
  SET @pOravege = CONVERT(datetime,CONVERT(TIME, @pOravege))
 | 
						|
  DECLARE @sqlOrarendiOra nvarchar(max) =N''
 | 
						|
  DECLARE @sql nvarchar(max) = ''
 | 
						|
 | 
						|
  IF @pOsztalyCsoportId IS NOT NULL BEGIN
 | 
						|
  SET @sql = N'
 | 
						|
    CREATE TABLE #Orarend (
 | 
						|
       C_DATUM datetime
 | 
						|
      ,C_ORARENDIORAID int
 | 
						|
      ,C_OSZTALYCSOPORTID int
 | 
						|
      INDEX IX1 CLUSTERED(C_ORARENDIORAID, C_DATUM)
 | 
						|
    );
 | 
						|
 | 
						|
    INSERT INTO #Orarend (C_DATUM, C_ORARENDIORAID, C_OSZTALYCSOPORTID)
 | 
						|
    SELECT orr.C_DATUM, orr.C_ORARENDIORAID, kocs.ID FROM T_ORAREND_OSSZES orr
 | 
						|
    INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.ID = orr.C_ORARENDIORAID
 | 
						|
    INNER JOIN fnGetKapcsolodoOsztalyCsoportokByDateRange(@pOsztalyCsoportId, @pIdoszakKezdete, @pIdoszakVege, @pIntezmenyId, @pTanevId) kocs ON oo.C_OSZTALYCSOPORTID = kocs.Id AND orr.C_DATUM >= kocs.Kezdete AND orr.C_DATUM < kocs.Vege
 | 
						|
      AND oo.C_TANEVID = @pTanevId AND oo.TOROLT = ''F'' AND orr.C_TANEVID = @pTanevId'
 | 
						|
  END 
 | 
						|
  
 | 
						|
  SET @sql += N'
 | 
						|
  CREATE TABLE #OrarendTable (
 | 
						|
     Id int
 | 
						|
    ,ORARENDIID int
 | 
						|
    ,Datum datetime
 | 
						|
    ,Bontott char(1)
 | 
						|
    ,Hetirend int
 | 
						|
    ,HetNapja int
 | 
						|
    ,HetSorszam int
 | 
						|
    ,ErvenyessegKezdete datetime
 | 
						|
    ,ErvenyessegVege datetime
 | 
						|
    ,OraKezdete datetime
 | 
						|
    ,OraVege datetime
 | 
						|
    ,Oraszam int
 | 
						|
    ,TargyNev nvarchar(300)
 | 
						|
    ,TargyNevForMobile nvarchar(300)
 | 
						|
    ,TargykategoriaID int
 | 
						|
    ,Megtartott char(1)
 | 
						|
    ,CsengetesiRendOraID int
 | 
						|
    ,CsengetesiRendID int
 | 
						|
    ,MaxNapiOraszam int
 | 
						|
    ,OsztalyNev nvarchar(255)
 | 
						|
    ,TanevRendOsztalyCsoportId int
 | 
						|
    ,MegjelenesOka nvarchar(300)
 | 
						|
    ,TanarNev nvarchar(255)
 | 
						|
    ,TeremNev nvarchar(255)
 | 
						|
    ,TeremId int
 | 
						|
    ,OraTipus nvarchar(200)
 | 
						|
    ,Hianyzas char(1)
 | 
						|
    ,Keses char(1)
 | 
						|
    ,Ures char(1)
 | 
						|
    ,HelyettesitoTanarID int
 | 
						|
    ,HelyettesitoTanarNev nvarchar(255)
 | 
						|
    ,HelyettesitesId int
 | 
						|
    ,TanarID int
 | 
						|
    ,AdminAltalKiirt  char(1)
 | 
						|
    ,GroupId int
 | 
						|
    ,Tema nvarchar(max)
 | 
						|
    ,TantargyId int
 | 
						|
    ,OsztCsopId int
 | 
						|
    ,IsEgyediNap char(1)
 | 
						|
    ,TeremTobbOratLehetTartani char(1)
 | 
						|
    ,KozpontiOraGroupId uniqueidentifier NULL
 | 
						|
    ,KozpontilagToroltOraGroupId uniqueidentifier NULL
 | 
						|
    ,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
 | 
						|
  );'
 | 
						|
  IF @pCsakOrarendiOrak = 0 BEGIN
 | 
						|
    SET @sql += N'
 | 
						|
    INSERT INTO #OrarendTable
 | 
						|
    '
 | 
						|
  END
 | 
						|
  SET @sqlOrarendiora += N'
 | 
						|
   SELECT DISTINCT
 | 
						|
       oo.ID AS Id
 | 
						|
      ,oo.ID AS ORARENDIID
 | 
						|
      ,orr.C_DATUM AS Datum
 | 
						|
      ,oo.C_BONTOTT AS Bontott
 | 
						|
      ,oo.C_HETIREND AS Hetirend
 | 
						|
      ,oo.C_HETNAPJA AS HetNapja
 | 
						|
      ,nn.C_HETSORSZAMA AS HetSorszam
 | 
						|
      ,oo.C_ORAERVENYESSEGKEZDETE AS ErvenyessegKezdete
 | 
						|
      ,oo.C_ORAERVENYESSEGVEGE AS ErvenyessegVege
 | 
						|
      ,orr.C_DATUM + oo.C_ORAKEZDETE AS OraKezdete
 | 
						|
      ,orr.C_DATUM + oo.C_ORAVEGE AS OraVege
 | 
						|
      ,oo.C_ORASZAM AS Oraszam
 | 
						|
      ,ISNULL(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNev
 | 
						|
      ,COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile
 | 
						|
      ,tt.C_TARGYKATEGORIA AS TargykategoriaID
 | 
						|
      ,''F'' AS Megtartott
 | 
						|
      ,csro.ID AS CsengetesiRendOraID
 | 
						|
      ,csro.C_CSENGETESIRENDID AS CsengetesiRendID
 | 
						|
      ,MAX(oo.C_ORASZAM) OVER() AS MaxNapiOraszam
 | 
						|
      ,ocs.C_NEV AS OsztalyNev
 | 
						|
      ,ocs.ID AS TanevRendOsztalyCsoportId
 | 
						|
      ,'''' AS MegjelenesOka
 | 
						|
      ,tanar.C_NYOMTATASINEV AS TanarNev
 | 
						|
      ,terem.C_NEV AS TeremNev
 | 
						|
      ,terem.ID AS TeremId
 | 
						|
      ,''OrarendiOra'' AS OraTipus
 | 
						|
      ,''F'' AS Hianyzas
 | 
						|
      ,''F'' AS Keses
 | 
						|
      ,''F'' AS Ures
 | 
						|
      ,hisz.C_HELYETTESTANAROKID AS HelyettesitoTanarID
 | 
						|
      ,helyettes.C_NYOMTATASINEV AS HelyettesitoTanarNev
 | 
						|
      ,hisz.Id AS HelyettesitesId
 | 
						|
      ,tanar.ID AS TanarID
 | 
						|
      ,NULL AS AdminAltalKiirt
 | 
						|
      ,oo.C_ORARENDIORAGROUPID AS GroupId
 | 
						|
      ,NULL AS Tema
 | 
						|
      ,oo.C_TANTARGYID AS TantargyId
 | 
						|
      ,oo.C_OSZTALYCSOPORTID AS OsztCsopId
 | 
						|
      ,oo.C_EGYEDINAP as IsEgyediNap
 | 
						|
      ,ISNULL(terem.C_TOBBORATLEHETTARTANI,''F'') as TeremTobbOratLehetTartani
 | 
						|
      ,oo.C_KOZPONTIORAGROUPID as KozpontiOraGroupId
 | 
						|
      ,oo.C_KOZPONTILAGTOROLTORAGROUPID as KozpontilagToroltOraGroupId
 | 
						|
    FROM ' + IIF(@pOsztalyCsoportId IS NULL, 'T_ORAREND', '#Orarend') + ' orr
 | 
						|
      INNER JOIN T_NAPTARINAP_OSSZES nn ON orr.C_DATUM = nn.C_NAPDATUMA
 | 
						|
      INNER JOIN T_ORARENDIORA_OSSZES oo ON orr.C_ORARENDIORAID = oo.ID --AND oo.TOROLT = ''F''
 | 
						|
      INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID
 | 
						|
      INNER JOIN T_TANTARGY_OSSZES tt ON tt.ID = oo.C_TANTARGYID AND tt.TOROLT = ''F''
 | 
						|
      INNER JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = oo.C_TANARID AND tanar.TOROLT = ''F''
 | 
						|
      LEFT JOIN T_TEREM_OSSZES terem ON terem.id = oo.C_TEREMID AND terem.TOROLT = ''F''
 | 
						|
      LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hisz ON oo.ID = hisz.C_HELYETTESITETTORARENDID AND hisz.C_HELYETTESITESNAPJA = nn.C_NAPDATUMA AND hisz.TOROLT = ''F''
 | 
						|
      LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON hisz.C_HELYETTESTANAROKID = helyettes.ID AND helyettes.TOROLT = ''F''
 | 
						|
      ' + IIF(@pIsNapirend = 0, 'INNER', 'LEFT') + ' JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_CSENGETESIRENDID = oo.C_CSENGETESIRENDID AND csro.C_ORASZAM = oo.C_ORASZAM AND csro.TOROLT = ''F''
 | 
						|
    WHERE oo.TOROLT = ''F'' --AND orr.C_TANEVID = @pTanevId 
 | 
						|
      ' + IIF(@pOsztalyCsoportId IS NULL,' AND orr.C_DATUM >= @pIdoszakKezdete AND orr.C_DATUM < @pIdoszakVege AND orr.C_TANEVID = @pTanevId',' ') + '
 | 
						|
      ' + CASE WHEN @pIsNapirend = 1 THEN N'AND oo.C_CSENGETESIRENDID IS NULL ' WHEN @pIsNapirend IS NULL THEN N'AND ((oo.C_CSENGETESIRENDID IS NOT NULL AND csro.C_CSENGETESIRENDID IS NOT NULL) OR (oo.C_CSENGETESIRENDID IS NULL AND csro.C_CSENGETESIRENDID IS NULL))' ELSE '' END + '
 | 
						|
      ' + IIF(@pTantargyId IS NULL, N'', N'AND oo.C_TANTARGYID = @pTantargyId') + N'
 | 
						|
      ' + IIF(@pOravege IS NOT NULL AND @pOrakezdete IS NOT NULL, N'AND oo.C_ORAVEGE > @pOrakezdete AND oo.C_ORAKEZDETE < @pOravege', N'') + N'
 | 
						|
      ' + IIF(@pHetnapja IS NULL, N'', N'AND nn.C_HETNAPJA = @pHetnapja') + N'
 | 
						|
      ' + IIF(@pTeremId IS NULL, N'', 'AND oo.C_TEREMID = @pTeremId') + N'
 | 
						|
      ' + IIF(@pFeladatKategoriaId IS NULL, N'', 'AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId')
 | 
						|
  SET @sql += @sqlOrarendiOra + N'
 | 
						|
    ' + IIF(@pTanarId IS NULL, N'', 'AND oo.C_TANARID = @pTanarId')
 | 
						|
  IF @pTanarId IS NOT NULL AND @pIsHelyettesitesNelkul = 0 BEGIN
 | 
						|
    SET @sql += N'
 | 
						|
    UNION ALL
 | 
						|
    ' + @sqlOrarendiOra + '
 | 
						|
      AND hisz.C_HELYETTESTANAROKID = @pTanarId
 | 
						|
      AND hisz.C_HELYETTESITESNAPJA = orr.C_DATUM
 | 
						|
    '
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pCsakOrarendiOrak = 0 BEGIN
 | 
						|
    /* TanításiÓra lekérdezés */
 | 
						|
    SET @sql += N'
 | 
						|
    SELECT
 | 
						|
       ISNULL(tn.Id, oo.Id) AS Id
 | 
						|
      ,ISNULL(tn.ORARENDIID, oo.ORARENDIID) AS ORARENDIID
 | 
						|
      ,ISNULL(tn.Datum, oo.Datum) AS Datum
 | 
						|
      ,ISNULL(tn.Bontott, oo.Bontott) AS Bontott
 | 
						|
      ,ISNULL(tn.Hetirend, oo.Hetirend) AS Hetirend
 | 
						|
      ,ISNULL(tn.HetNapja, oo.HetNapja) AS HetNapja
 | 
						|
      ,ISNULL(tn.HetSorszam, oo.HetSorszam) AS HetSorszam
 | 
						|
      ,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegKezdete) AS ErvenyessegKezdete
 | 
						|
      ,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegVege) AS ErvenyessegVege
 | 
						|
      ,ISNULL(tn.OraKezdete, oo.OraKezdete) AS OraKezdete
 | 
						|
      ,ISNULL(tn.OraVege, oo.OraVege) AS OraVege
 | 
						|
      ,ISNULL(tn.Oraszam, oo.Oraszam) AS Oraszam
 | 
						|
      ,ISNULL(tn.TargyNev, oo.TargyNev) AS TargyNev
 | 
						|
      ,ISNULL(tn.TargyNevForMobile, oo.TargyNevForMobile) AS TargyNevForMobile
 | 
						|
      ,ISNULL(tn.TargykategoriaID, oo.TargykategoriaID) AS TargykategoriaID
 | 
						|
      ,ISNULL(tn.Megtartott, oo.Megtartott) AS Megtartott
 | 
						|
      ,ISNULL(tn.CsengetesiRendOraID, oo.CsengetesiRendOraID) AS CsengetesiRendOraID
 | 
						|
      ,ISNULL(tn.CsengetesiRendID, oo.CsengetesiRendID) AS CsengetesiRendID
 | 
						|
      ,ISNULL(tn.MaxNapiOraszam, oo.MaxNapiOraszam) AS MaxNapiOraszam
 | 
						|
      ,ISNULL(tn.OsztalyNev, oo.OsztalyNev) AS OsztalyNev
 | 
						|
      ,ISNULL(tn.TanevRendOsztalyCsoportId, oo.TanevRendOsztalyCsoportId) AS TanevRendOsztalyCsoportId
 | 
						|
      ,ISNULL(tn.MegjelenesOka, oo.MegjelenesOka) AS MegjelenesOka
 | 
						|
      ,ISNULL(tn.TanarNev, oo.TanarNev) AS TanarNev
 | 
						|
      ,ISNULL(tn.TeremNev, oo.TeremNev) AS TeremNev
 | 
						|
      ,ISNULL(tn.TeremId, oo.TeremId) AS TeremId
 | 
						|
      ,ISNULL(tn.OraTipus, oo.OraTipus) AS OraTipus
 | 
						|
      ,ISNULL(tn.Hianyzas, oo.Hianyzas) AS Hianyzas
 | 
						|
      ,ISNULL(tn.Keses, oo.Keses) AS Keses
 | 
						|
      ,ISNULL(tn.Ures, oo.Ures) AS Ures
 | 
						|
      ,ISNULL(tn.HelyettesitoTanarID, oo.HelyettesitoTanarID) AS HelyettesitoTanarID
 | 
						|
      ,ISNULL(tn.HelyettesitoTanarNev, oo.HelyettesitoTanarNev) AS HelyettesitoTanarNev
 | 
						|
      ,oo.HelyettesitesId AS HelyettesitesId
 | 
						|
      ,ISNULL(tn.TanarID, oo.TanarID) AS TanarID
 | 
						|
      ,ISNULL(tn.AdminAltalKiirt, oo.AdminAltalKiirt) AS AdminAltalKiirt
 | 
						|
      ,ISNULL(tn.GroupId, oo.GroupId) AS GroupId
 | 
						|
      ,tn.Tema AS Tema
 | 
						|
      ,ISNULL(tn.TantargyId, oo.TantargyId) AS TantargyId
 | 
						|
      ,ISNULL(tn.OsztCsopId, oo.OsztCsopId) AS OsztCsopId
 | 
						|
      ,ISNULL(tn.IsEgyediNap, oo.IsEgyediNap) as IsEgyediNap
 | 
						|
      ,ISNULL(tn.TeremTobbOratLehetTartani, oo.TeremTobbOratLehetTartani) as TeremTobbOratLehetTartani
 | 
						|
      ,oo.KozpontiOraGroupId
 | 
						|
      ,oo.KozpontilagToroltOraGroupId
 | 
						|
    FROM #OrarendTable oo
 | 
						|
    '
 | 
						|
    SET @sql += N'
 | 
						|
    FULL JOIN (
 | 
						|
      SELECT
 | 
						|
         tao.ID AS Id
 | 
						|
        ,NULL AS ORARENDIID
 | 
						|
        ,tao.C_DATUM AS Datum
 | 
						|
        ,tao.C_BONTOTT AS Bontott
 | 
						|
        ,1554 AS Hetirend
 | 
						|
        ,tao.C_HETNAPJA AS HetNapja
 | 
						|
        ,tao.C_HETSORSZAMA AS HetSorszam
 | 
						|
        ,tao.C_ORAKEZDETE AS OraKezdete
 | 
						|
        ,tao.C_ORAVEGE AS OraVege
 | 
						|
        ,tao.C_ORASZAM AS Oraszam
 | 
						|
        ,ISNULL(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNev
 | 
						|
        ,COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile
 | 
						|
        ,tt.C_TARGYKATEGORIA AS TargykategoriaID
 | 
						|
        ,tao.C_MEGTARTOTT AS Megtartott
 | 
						|
        ,tao.C_CSENGETESIRENDORAID AS CsengetesiRendOraID
 | 
						|
        ,tao.C_CSENGETESIRENDID AS CsengetesiRendID
 | 
						|
        ,MAX(tao.C_ORASZAM) OVER() AS MaxNapiOraszam
 | 
						|
        ,ocs.C_NEV AS OsztalyNev
 | 
						|
        ,tao.C_OSZTALYCSOPORTID AS TanevRendOsztalyCsoportId
 | 
						|
        ,'''' AS MegjelenesOka
 | 
						|
        ,tanar.C_NYOMTATASINEV AS TanarNev
 | 
						|
        ,terem.C_NEV AS TeremNev
 | 
						|
        ,terem.ID as TeremId
 | 
						|
        ,''TanitasiOra'' AS OraTipus
 | 
						|
        ,' + IIF(@pTanuloId IS NULL, N'''F''', N'IIF(mh.ID IS NULL, ''F'', ''T'')') + N' AS Hianyzas
 | 
						|
        ,' + IIF(@pTanuloId IS NULL, N'''F''', N'IIF(mk.ID IS NULL, ''F'', ''T'')') + N' AS Keses
 | 
						|
        ,' + IIF(@pTanuloId IS NULL, N'''F''', N'IIF(mu.ID IS NULL, ''F'', ''T'')') + N' AS Ures
 | 
						|
        ,helyettes.ID HelyettesitoTanarID
 | 
						|
        ,helyettes.C_NYOMTATASINEV HelyettesitoTanarNev
 | 
						|
        ,tanar.ID AS TanarID
 | 
						|
        ,tao.C_ADMINALTALKIIRT AS AdminAltalKiirt
 | 
						|
        ,tao.C_ORARENDIORAGROUPID AS GroupId
 | 
						|
        ,tao.C_TEMA AS Tema
 | 
						|
        ,tao.C_TANTARGYID AS TantargyId
 | 
						|
        ,tao.C_OSZTALYCSOPORTID AS OsztCsopId
 | 
						|
        ,tao.C_EGYEDINAP as IsEgyediNap
 | 
						|
        ,ISNULL(terem.C_TOBBORATLEHETTARTANI,''F'') as TeremTobbOratLehetTartani
 | 
						|
      FROM T_TANITASIORA_OSSZES tao
 | 
						|
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F''
 | 
						|
        ' + IIF(@pOsztalyCsoportId IS NULL, '', 'INNER JOIN dbo.fnGetKapcsolodoOsztalyCsoportokByDateRange(@pOsztalyCsoportId, @pIdoszakKezdete, @pIdoszakVege, @pIntezmenyId, @pTanevId) kocs ON tao.C_OSZTALYCSOPORTID = kocs.Id AND tao.C_DATUM >= kocs.Kezdete AND tao.C_DATUM < kocs.Vege') + '
 | 
						|
        INNER JOIN T_TANTARGY_OSSZES tt ON tao.C_TANTARGYID = tt.ID
 | 
						|
        INNER JOIN T_FELHASZNALO_OSSZES tanar ON tao.C_TANARID = tanar.ID
 | 
						|
        LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON helyettes.ID = tao.C_HELYETTESITOTANARID
 | 
						|
        INNER JOIN T_TEREM_OSSZES terem ON terem.ID = tao.C_TEREMID
 | 
						|
      '
 | 
						|
      IF @pTanuloId IS NOT NULL BEGIN
 | 
						|
      SET @sql += N'
 | 
						|
        LEFT JOIN T_TANULOMULASZTAS_OSSZES mh ON mh.C_TANITASIORAKID = tao.ID AND mh.C_ORATANULOIID = @pTanuloId AND mh.C_TIPUS = 1500 AND mh.TOROLT = ''F''
 | 
						|
        LEFT JOIN T_TANULOMULASZTAS_OSSZES mk ON mk.C_TANITASIORAKID = tao.ID AND mk.C_ORATANULOIID = @pTanuloId AND mk.C_TIPUS = 1499 AND mk.TOROLT = ''F''
 | 
						|
        LEFT JOIN T_TANULOMULASZTAS_OSSZES mu ON mu.C_TANITASIORAKID = tao.ID AND mu.C_ORATANULOIID = @pTanuloId AND mu.C_TIPUS = 1817 AND mu.TOROLT = ''F''
 | 
						|
      '
 | 
						|
      END
 | 
						|
      SET @sql += N'
 | 
						|
      WHERE tao.TOROLT = ''F'' AND tao.C_TANEVID = @pTanevId
 | 
						|
        AND tao.C_DATUM >= @pIdoszakKezdete AND tao.C_DATUM < @pIdoszakVege
 | 
						|
        ' + CASE @pIsNapirend WHEN 1 THEN N'AND tao.C_CSENGETESIRENDID IS NULL ' WHEN 0 THEN 'AND tao.C_CSENGETESIRENDID IS NOT NULL ' ELSE '' END + '
 | 
						|
        ' + IIF(@pTanarId IS NULL, N'', IIF(@pIsHelyettesitesNelkul = 0, 'AND (tao.C_TANARID = @pTanarId OR tao.C_HELYETTESITOTANARID = @pTanarId)', 'AND tao.C_TANARID = @pTanarId')) + '
 | 
						|
        ' + IIF(@pTantargyId IS NULL, N'', 'AND tao.C_TANTARGYID = @pTantargyId') + '
 | 
						|
        ' + IIF(@pOravege IS NOT NULL AND @pOrakezdete IS NOT NULL, N'AND tao.C_ORAVEGE > @pOrakezdete AND tao.C_ORAKEZDETE < @pOravege', N'') + N'
 | 
						|
        ' + IIF(@pHetnapja IS NULL, N'', N'AND tao.C_HETNAPJA = @pHetnapja') + N'
 | 
						|
        ' + IIF(@pTeremId IS NULL, N'', 'AND tao.C_TEREMID = @pTeremId') + N'
 | 
						|
        ' + IIF(@pFeladatKategoriaId IS NULL, N'', 'AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId') + N'
 | 
						|
    ) tn ON tn.Datum = oo.Datum
 | 
						|
        AND tn.HetNapja = oo.HetNapja
 | 
						|
        ' + CASE @pIsNapirend WHEN 1 THEN N'AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege ' WHEN 0 THEN N'AND tn.Oraszam = oo.Oraszam  ' ELSE N'AND ((tn.CsengetesiRendID IS NULL AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege) OR (tn.CsengetesiRendID IS NOT NULL AND tn.Oraszam = oo.Oraszam)) ' END + '
 | 
						|
        AND tn.TanevRendOsztalyCsoportId = oo.TanevRendOsztalyCsoportId
 | 
						|
        AND tn.TantargyId = oo.TantargyId
 | 
						|
        AND tn.TanarID = oo.TanarID
 | 
						|
    '
 | 
						|
  END
 | 
						|
 | 
						|
  EXEC sp_executesql @sql, N'
 | 
						|
     @pIntezmenyId int
 | 
						|
    ,@pTanevId int
 | 
						|
    ,@pIdoszakKezdete datetime
 | 
						|
    ,@pIdoszakVege datetime
 | 
						|
    ,@pTanarId int
 | 
						|
    ,@pIsHelyettesitesNelkul bit
 | 
						|
    ,@pOsztalyCsoportId int
 | 
						|
    ,@pTanuloId int
 | 
						|
    ,@pTantargyId int
 | 
						|
    ,@pTeremId int
 | 
						|
    ,@pCsakOrarendiOrak bit
 | 
						|
    ,@pIsNapirend bit
 | 
						|
    ,@pFeladatKategoriaId int
 | 
						|
    ,@pOrakezdete datetime
 | 
						|
    ,@pOravege datetime
 | 
						|
    ,@pHetnapja int'
 | 
						|
    ,@pIntezmenyId = @pIntezmenyId
 | 
						|
    ,@pTanevId = @pTanevId
 | 
						|
    ,@pIdoszakKezdete = @pIdoszakKezdete
 | 
						|
    ,@pIdoszakVege = @pIdoszakVege
 | 
						|
    ,@pTanarId =   @pTanarId
 | 
						|
    ,@pIsHelyettesitesNelkul  = @pIsHelyettesitesNelkul
 | 
						|
    ,@pOsztalyCsoportId  =  @pOsztalyCsoportId
 | 
						|
    ,@pTanuloId  = @pTanuloId
 | 
						|
    ,@pTantargyId  = @pTantargyId
 | 
						|
    ,@pTeremId  = @pTeremId
 | 
						|
    ,@pCsakOrarendiOrak  = @pCsakOrarendiOrak
 | 
						|
    ,@pIsNapirend  = @pIsNapirend
 | 
						|
    ,@pFeladatKategoriaId = @pFeladatKategoriaId
 | 
						|
    ,@pOrakezdete = @pOrakezdete
 | 
						|
    ,@pOravege = @pOravege
 | 
						|
    ,@pHetnapja = @pHetnapja
 | 
						|
 | 
						|
END
 | 
						|
GO |