117 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS dbo.uspGetDokumentumTanarKapcsolodoOsztalyai
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE dbo.uspGetDokumentumTanarKapcsolodoOsztalyai
 | 
						|
   @pTanarId int
 | 
						|
  ,@pTanevId int
 | 
						|
  ,@pOsztalyKell bit = 1
 | 
						|
  ,@pCsoportKell bit = 1
 | 
						|
  ,@pTartottOraKell bit = 1
 | 
						|
  ,@pFeladatKategoriaId int = null
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  DECLARE @sql nvarchar(max)
 | 
						|
  
 | 
						|
  IF (1758 IN (SELECT C_SZEREPKORTIPUS FROM T_FELHASZNALO_SZEREPKOR INNER JOIN T_SZEREPKOR ON T_SZEREPKOR.ID = T_FELHASZNALO_SZEREPKOR.C_SZEREPKORID WHERE T_FELHASZNALO_SZEREPKOR.C_FELHASZNALOID = @pTanarId))
 | 
						|
    OR ((SELECT C_MUNKAKORTIPUSA FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @pTanarId) IN (1762, 1763, 3027, 3028))
 | 
						|
    OR ((SELECT C_VEZETOIORASZAMOK FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @pTanarId) IN (6572, 6573, 6574)) -- 6572 - Intézményvezetõ, 6573 - Tagintézmény-vezetõ, 6574 - Intézményegység-vezetõ
 | 
						|
  BEGIN
 | 
						|
    IF @pOsztalyKell = 1 BEGIN 
 | 
						|
      SET @sql = CONCAT(N'
 | 
						|
        SELECT o.ID 
 | 
						|
        FROM T_OSZTALY_OSSZES o
 | 
						|
        INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = o.ID', 
 | 
						|
          IIF(@pFeladatKategoriaId IS NOT NULL
 | 
						|
            ,N'
 | 
						|
          AND OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
 | 
						|
            ,'')
 | 
						|
          ,N'
 | 
						|
          AND OsztalyCsoport.C_TANEVID = o.C_ALTANEVID
 | 
						|
          AND OsztalyCsoport.TOROLT = ''F''
 | 
						|
        WHERE o.C_ALTANEVID = @pTanevId
 | 
						|
          AND o.TOROLT = ''F''')
 | 
						|
    END  
 | 
						|
    IF @pCsoportKell = 1 BEGIN
 | 
						|
      SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION ALL' + CHAR(13) + CHAR(10), N'') + CONCAT(N'
 | 
						|
        SELECT cs.ID 
 | 
						|
        FROM T_CSOPORT_OSSZES cs
 | 
						|
        INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = cs.ID', 
 | 
						|
          IIF(@pFeladatKategoriaId IS NOT NULL
 | 
						|
            ,N'
 | 
						|
          AND OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
 | 
						|
            ,'')
 | 
						|
          ,N'
 | 
						|
          AND OsztalyCsoport.C_TANEVID = cs.C_ALTANEVID
 | 
						|
          AND OsztalyCsoport.TOROLT = ''F''
 | 
						|
        WHERE cs.C_ALTANEVID = @pTanevId
 | 
						|
          AND cs.TOROLT = ''F''')
 | 
						|
    END
 | 
						|
  END
 | 
						|
  ELSE BEGIN
 | 
						|
    IF @pOsztalyKell = 1 BEGIN 
 | 
						|
      SET @sql = CONCAT(N'
 | 
						|
        SELECT ocs.ID 
 | 
						|
        FROM T_OSZTALYCSOPORT_OSSZES ocs
 | 
						|
          INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
 | 
						|
            AND o.C_ALTANEVID = ocs.C_TANEVID
 | 
						|
            AND o.TOROLT = ''F''
 | 
						|
        WHERE (o.C_OSZTALYFONOKID = @pTanarId OR o.C_OFOHELYETTESID = @pTanarId)',
 | 
						|
          IIF(@pFeladatKategoriaId IS NOT NULL
 | 
						|
            ,N'
 | 
						|
          AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
 | 
						|
            ,'')
 | 
						|
          ,N'
 | 
						|
          AND ocs.C_TANEVID = @pTanevId
 | 
						|
          AND ocs.TOROLT = ''F''')
 | 
						|
    END
 | 
						|
 | 
						|
    IF @pCsoportKell = 1 BEGIN
 | 
						|
      SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION ALL' + CHAR(13) + CHAR(10), N'') + CONCAT(N'
 | 
						|
        SELECT ocs.ID 
 | 
						|
        FROM T_OSZTALYCSOPORT_OSSZES ocs
 | 
						|
          INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
 | 
						|
            AND cs.C_ALTANEVID = ocs.C_TANEVID
 | 
						|
            AND cs.TOROLT = ''F''
 | 
						|
        WHERE cs.C_CSOPORTVEZETOID = @pTanarId',
 | 
						|
          IIF(@pFeladatKategoriaId IS NOT NULL
 | 
						|
            ,N'
 | 
						|
          AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
 | 
						|
            ,'')
 | 
						|
          ,N'
 | 
						|
          AND ocs.C_TANEVID = @pTanevId
 | 
						|
          AND ocs.TOROLT = ''F''')
 | 
						|
    END
 | 
						|
    
 | 
						|
    IF @pTartottOraKell = 1 BEGIN
 | 
						|
      IF @pOsztalyKell = 1 BEGIN 
 | 
						|
        SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
 | 
						|
          SELECT f.C_OSZTALYCSOPORTID 
 | 
						|
          FROM T_FOGLALKOZAS_OSSZES f
 | 
						|
            INNER JOIN T_OSZTALY_OSSZES o ON o.id = f.C_OSZTALYCSOPORTID
 | 
						|
              AND o.C_ALTANEVID = f.C_TANEVID
 | 
						|
              AND o.TOROLT = ''F''
 | 
						|
          WHERE f.C_TANARID = @pTanarId
 | 
						|
            AND f.C_TANEVID = @pTanevId
 | 
						|
            AND f.TOROLT = ''F'''
 | 
						|
      END
 | 
						|
      IF @pCsoportKell = 1 BEGIN 
 | 
						|
        SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
 | 
						|
          SELECT f.C_OSZTALYCSOPORTID 
 | 
						|
          FROM T_FOGLALKOZAS_OSSZES f
 | 
						|
            INNER JOIN T_CSOPORT cs ON cs.id = f.C_OSZTALYCSOPORTID
 | 
						|
              AND cs.C_ALTANEVID = f.C_TANEVID
 | 
						|
              AND cs.TOROLT = ''F''
 | 
						|
          WHERE f.C_TANARID = @pTanarId
 | 
						|
            AND f.C_TANEVID = @pTanevId
 | 
						|
            AND f.TOROLT = ''F'''
 | 
						|
      END
 | 
						|
    END
 | 
						|
  END
 | 
						|
 | 
						|
  EXEC sp_executesql @sql, N'@pTanarId int, @pFeladatKategoriaId int, @pTanevId int', @pTanarId, @pFeladatKategoriaId, @pTanevId
 | 
						|
  
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
 
 |