127 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS sp_GetKozossegiSzolgalatokReszletek
 | 
						|
GO
 | 
						|
 | 
						|
-- =============================================
 | 
						|
-- Description:	<Előszedjük a tanuló közösségi szolgálatait részletesen>
 | 
						|
-- =============================================
 | 
						|
CREATE PROCEDURE sp_GetKozossegiSzolgalatokReszletek
 | 
						|
   @pIntezmenyId int
 | 
						|
  ,@pTanevId int
 | 
						|
  ,@pTanuloId int = NULL
 | 
						|
  ,@pTanarId int = NULL
 | 
						|
  ,@pToroltElemek char = 'F'
 | 
						|
  ,@pIntervallumKezdete datetime = NULL
 | 
						|
  ,@pIntervallumVege datetime = NULL
 | 
						|
  ,@pTeljesitesHelye nvarchar(100) = NULL
 | 
						|
  ,@pOraszam int = NULL
 | 
						|
  ,@pTanuloNev nvarchar (100) = NULL
 | 
						|
  ,@pOsztalyNev nvarchar (100) = NULL
 | 
						|
  ,@pKozossegiSzolgalatTipusa int = NULL
 | 
						|
AS BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
 | 
						|
  DECLARE
 | 
						|
     @sql nvarchar (max)
 | 
						|
    ,@selectSql nvarchar (max)
 | 
						|
    ,@whereSql nvarchar (max)
 | 
						|
    ,@orderSql nvarchar (max)
 | 
						|
 | 
						|
 | 
						|
  SET @selectSql = N'
 | 
						|
    SELECT
 | 
						|
       KozossegiSzolgalat.ID AS	ID
 | 
						|
      ,KozossegiSzolgalat.C_INTERVALLUMKEZDETE AS	IntervallumKezdete
 | 
						|
      ,KozossegiSzolgalat.C_INTERVALLUMVEGE AS IntervallumVege
 | 
						|
      ,KozossegiSzolgalat.C_ROGZITESDATUM AS RogzitesDatuma
 | 
						|
      ,KozossegiSzolgalat.C_TELJESITESIHELYE AS	TeljesitesiHelye
 | 
						|
      ,KozossegiSzolgalat.C_ORASZAM AS Oraszam
 | 
						|
      ,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA AS	KozossegiSzolgalatTipusa
 | 
						|
      ,KozossegiSzolgalat.C_MEGJEGYZES AS	Megjegyzes
 | 
						|
      ,KozossegiSzolgalat.TOROLT AS	Torolt
 | 
						|
      ,KozossegiSzolgalat.C_TANULOID AS	TanuloId
 | 
						|
      ,Tanulo.C_NYOMTATASINEV AS TanuloNev
 | 
						|
      ,dbo.fnGetTanuloAktualisOsztaly(KozossegiSzolgalat.C_TANULOID) AS	OsztalyNev
 | 
						|
      ,KozossegiSzolgalat.C_UGYIRATSZAM AS Ugyiratszam
 | 
						|
      ,CASE WHEN KozossegiSzolgalat.C_FELJEGYZOID = @pTanarId AND @pToroltElemek = ''T'' THEN ''T'' ELSE ''F'' END AS Modosithato
 | 
						|
    FROM T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat
 | 
						|
      INNER JOIN T_FELHASZNALO_OSSZES Tanulo ON KozossegiSzolgalat.C_TANULOID = Tanulo.ID
 | 
						|
        AND Tanulo.TOROLT = IIF(@pToroltElemek = ''T'', Tanulo.TOROLT, ''F'')'
 | 
						|
  
 | 
						|
  SET @whereSql = N'
 | 
						|
    WHERE KozossegiSzolgalat.C_INTEZMENYID = @pIntezmenyId
 | 
						|
      AND KozossegiSzolgalat.TOROLT = IIF(@pToroltElemek = ''T'', KozossegiSzolgalat.TOROLT, ''F'')'
 | 
						|
 | 
						|
  IF @pTanuloId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND KozossegiSzolgalat.C_TANULOID = @pTanuloId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pIntervallumKezdete IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND KozossegiSzolgalat.C_INTERVALLUMKEZDETE >= @pIntervallumKezdete'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pIntervallumVege IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND KozossegiSzolgalat.C_INTERVALLUMVEGE <= @pIntervallumVege'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pTeljesitesHelye IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND KozossegiSzolgalat.C_TELJESITESIHELYE = @pTeljesitesHelye'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pOraszam IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND KozossegiSzolgalat.C_ORASZAM = @pOraszam'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pKozossegiSzolgalatTipusa IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA = @pKozossegiSzolgalatTipusa'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pTanuloNev IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND Tanulo.C_NYOMTATASINEV = @pTanuloNev'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pOsztalyNev IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND dbo.fnGetTanuloAktualisOsztaly(KozossegiSzolgalat.C_TANULOID) = @pOsztalyNev'
 | 
						|
  END
 | 
						|
 | 
						|
  SET @orderSql = N'
 | 
						|
  ORDER BY KozossegiSzolgalat.C_INTERVALLUMKEZDETE DESC'
 | 
						|
 | 
						|
  SET @sql = @selectSql + @whereSql + @orderSql
 | 
						|
 | 
						|
  EXEC sp_executesql @sql, N'
 | 
						|
     @pIntezmenyId int
 | 
						|
    ,@pTanevId int
 | 
						|
    ,@pTanuloId int = NULL
 | 
						|
    ,@pTanarId int = NULL
 | 
						|
    ,@pToroltElemek char
 | 
						|
    ,@pIntervallumKezdete datetime = NULL
 | 
						|
    ,@pIntervallumVege datetime = NULL
 | 
						|
    ,@pTeljesitesHelye nvarchar (100) = NULL
 | 
						|
    ,@pOraszam int = NULL
 | 
						|
    ,@pTanuloNev nvarchar (100) = NULL
 | 
						|
    ,@pOsztalyNev nvarchar (100) = NULL
 | 
						|
    ,@pKozossegiSzolgalatTipusa int = NULL'
 | 
						|
    ,@pIntezmenyId = @pIntezmenyId
 | 
						|
    ,@pTanevId = @pTanevId
 | 
						|
    ,@pTanuloId = @pTanuloId
 | 
						|
    ,@pTanarId = @pTanarId
 | 
						|
    ,@pToroltElemek = @pToroltElemek
 | 
						|
    ,@pIntervallumKezdete = @pIntervallumKezdete
 | 
						|
    ,@pIntervallumVege = @pIntervallumVege
 | 
						|
    ,@pTeljesitesHelye = @pTeljesitesHelye
 | 
						|
    ,@pOraszam = @pOraszam
 | 
						|
    ,@pTanuloNev = @pTanuloNev
 | 
						|
    ,@pOsztalyNev = @pOsztalyNev
 | 
						|
    ,@pKozossegiSzolgalatTipusa = @pKozossegiSzolgalatTipusa
 | 
						|
 | 
						|
END
 | 
						|
GO
 |