129 lines
4.5 KiB
Transact-SQL
129 lines
4.5 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS sp_GetKozossegiSzolgalatokReszletek
|
|
GO
|
|
|
|
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
|
|
,ISNULL(@pTanuloId, ISNULL(AktTanuloOktazon.ID, AktTanuloIdp.ID)) AS TanuloId
|
|
,Tanulo.C_NYOMTATASINEV AS TanuloNev
|
|
,dbo.fnGetTanuloAktualisOsztaly(ISNULL(@pTanuloId, ISNULL(AktTanuloOktazon.ID, AktTanuloIdp.ID))) 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'')
|
|
LEFT JOIN T_FELHASZNALO_OSSZES AktTanuloOktazon ON AktTanuloOktazon.C_OKTATASIAZONOSITO = Tanulo.C_OKTATASIAZONOSITO
|
|
AND AktTanuloOktazon.TOROLT = IIF(@pToroltElemek = ''T'', AktTanuloOktazon.TOROLT, ''F'') AND AktTanuloOktazon.C_TANEVID = @pTanevId
|
|
LEFT JOIN T_FELHASZNALO_OSSZES AktTanuloIdp ON AktTanuloIdp.C_IDPEGYEDIAZONOSITO = Tanulo.C_IDPEGYEDIAZONOSITO
|
|
AND AktTanuloIdp.TOROLT = IIF(@pToroltElemek = ''T'', AktTanuloIdp.TOROLT, ''F'') AND AktTanuloIdp.C_TANEVID = @pTanevId'
|
|
|
|
SET @whereSql = N'
|
|
WHERE KozossegiSzolgalat.TOROLT = IIF(@pToroltElemek = ''T'', KozossegiSzolgalat.TOROLT, ''F'')'
|
|
|
|
IF @pTanuloId IS NOT NULL BEGIN
|
|
SET @whereSql += N'
|
|
AND ISNULL(AktTanuloOktazon.ID, AktTanuloIdp.ID) = @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 LIKE N''%'' + @pTanuloNev + N''%'''
|
|
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
|
|
|