136 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS [dbo].[sp_GetKozossegiSzolgalatokReszletek]
 | 
						|
GO
 | 
						|
 | 
						|
-- =============================================
 | 
						|
-- Description:	<Előszedjük a tanuló közösségi szolgálatait részletesen>
 | 
						|
-- =============================================
 | 
						|
CREATE PROCEDURE [dbo].[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
 | 
						|
    ,ocs.C_NEV 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 = ''F''
 | 
						|
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = KozossegiSzolgalat.C_TANULOID AND tcs.TOROLT = ''F''
 | 
						|
	  INNER JOIN T_OSZTALY_OSSZES o ON tcs.C_OSZTALYCSOPORTID = o.ID AND o.TOROLT = ''F''
 | 
						|
	  INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID	AND ocs.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 ocs.C_NEV = @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 |