124 lines
No EOL
3.6 KiB
Transact-SQL
124 lines
No EOL
3.6 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
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 = NULL
|
|
,@pOraszam INT = 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 ID
|
|
,KozossegiSzolgalat.C_INTERVALLUMKEZDETE IntervallumKezdete
|
|
,KozossegiSzolgalat.C_INTERVALLUMVEGE IntervallumVege
|
|
,KozossegiSzolgalat.C_ROGZITESDATUM RogzitesDatuma
|
|
,KozossegiSzolgalat.C_TELJESITESIHELYE TeljesitesiHelye
|
|
,KozossegiSzolgalat.C_ORASZAM Oraszam
|
|
,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA KozossegiSzolgalatTipusa
|
|
,KozossegiSzolgalat.C_MEGJEGYZES Megjegyzes
|
|
,KozossegiSzolgalat.TOROLT Torolt
|
|
,KozossegiSzolgalat.C_TANULOID TanuloId
|
|
,Tanulo.C_NYOMTATASINEV TanuloNev
|
|
,KozossegiSzolgalat.C_UGYIRATSZAM Ugyiratszam
|
|
,CASE
|
|
WHEN KozossegiSzolgalat.C_FELJEGYZOID = @pTanarId AND @pToroltElemek = ''T''
|
|
THEN ''T''
|
|
ELSE ''F''
|
|
END Modosithato
|
|
FROM T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat
|
|
INNER JOIN T_FELHASZNALO_OSSZES Tanulo ON KozossegiSzolgalat.C_TANULOID = Tanulo.ID AND 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 LIKE ''%''+ @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
|
|
|
|
|
|
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 = NULL
|
|
,@pOraszam INT = NULL
|
|
,@pKozossegiSzolgalatTipusa INT = NULL'
|
|
,@pIntezmenyId = @pIntezmenyId
|
|
,@pTanevId = @pTanevId
|
|
,@pTanuloId = @pTanuloId
|
|
,@pTanarId = @pTanarId
|
|
,@pToroltElemek = @pToroltElemek
|
|
,@pIntervallumKezdete = @pIntervallumKezdete
|
|
,@pIntervallumVege = @pIntervallumVege
|
|
,@pTeljesitesHelye = @pTeljesitesHelye
|
|
,@pOraszam = @pOraszam
|
|
,@pKozossegiSzolgalatTipusa = @pKozossegiSzolgalatTipusa
|
|
|
|
END |