DROP PROCEDURE IF EXISTS [dbo].[sp_GetKozossegiSzolgalatokReszletek] GO -- ============================================= -- Description: -- ============================================= 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