-- ============================================= -- Description: -- ============================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanuloErtekelesDetailDataSet] GO CREATE PROCEDURE [dbo].[sp_GetTanuloErtekelesDetailDataSet] @pIntezmenyId INT ,@pTanevId INT ,@pTanuloId INT ,@pTantargyId INT = NULL ,@pShowToroltElemek BIT ,@pIsFotargyAltargyLekerdezes BIT ,@pTanarId INT ,@pErtekelesMegjelenesFajtaEnumTantargyId INT ,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId INT ,@pErtekelesMegjelenesFajtaEnumTanuloId INT ,@pErtekelesMegjelenesFajtaId INT ,@pDatum DATE = NULL AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements. SET NOCOUNT ON; IF @pDatum IS NULL SET @pDatum = CONVERT(DATE, GETDATE()) DECLARE @evfolyamTipusId INT = (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(@pTanuloId, @pDatum)) DECLARE @sql NVARCHAR(MAX) SET @sql = N' SELECT TanuloErtekeles.ID ID ,TanuloErtekeles.C_DATUM Datum ,TanuloErtekeles.C_TIPUSID TipusId ,TanuloErtekeles.C_TANORAID TanoraId ,TanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId ,TanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg ,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev ,TanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek ,TanuloErtekeles.C_ERTEKELESMODID ErtekelesModId ,TanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema ,TanuloErtekeles.C_MAGATARTASOSZTALYZATID MagatartasOsztalyzatId ,TanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg ,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV MagatartasSzovegRovidNev ,TanuloErtekeles.C_MAGATARTASERTEKID MagatartasErtekId ,TanuloErtekeles.C_SZORGALOMOSZTALYZATID SzorgalomOsztalyzatId ,TanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg ,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV SzorgalomSzovegRovidNev ,TanuloErtekeles.C_SZORGALOMERTEKID SzorgalomErtekId ,TanuloErtekeles.C_ISMAGATARTASSZORGALOM IsMagatartasSzorgalom ,TanuloErtekeles.TOROLT Torolt ,TanuloErtekeles.C_TANULOID TanuloId ,TanariAtlagSuly.C_SULY Suly ,Felhasznalo.C_NYOMTATASINEV ErtekeloNyomtatasiNev ,CASE WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId THEN ''T'' ELSE ''F'' END Modosithato FROM T_TANULOERTEKELES_OSSZES AS TanuloErtekeles INNER JOIN T_OSZTALYCSOPORT Osztaly ON Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AND Osztaly.TOROLT = ''F'' AND Osztaly.C_INTEZMENYID = @pIntezmenyId AND Osztaly.C_TANEVID = @pTanevId AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId INNER JOIN T_FELHASZNALO_OSSZES AS Felhasznalo ON Felhasznalo.TOROLT = ''F'' AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId AND Felhasznalo.C_TANEVID = @pTanevId AND Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID LEFT JOIN T_TANARIATLAGSULY_OSSZES AS TanariAtlagSuly ON TanariAtlagSuly.TOROLT = ''F'' AND TanariAtlagSuly.C_INTEZMENYID = @pIntezmenyId AND TanariAtlagSuly.C_TANEVID = @pTanevId AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID WHERE --Ha a @pShowToroltElemek változó True, akkor a törölt elemeket is visszaadjuk! TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'') AND TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId AND TanuloErtekeles.C_TANEVID = @pTanevId AND TanuloErtekeles.C_TANULOID = @pTanuloId ' + CASE WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId THEN N' AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId)' WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId THEN N' AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL)' ELSE N' AND ((TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F''AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND @pTantargyId IS NOT NULL) OR (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL))' END EXEC sp_executesql @sql, N' @pIntezmenyId INT ,@pTanevId INT ,@pTanuloId INT ,@pTantargyId INT = NULL ,@pShowToroltElemek BIT ,@pTanarId INT ,@evfolyamTipusId INT' ,@pIntezmenyId = @pIntezmenyId ,@pTanevId = @pTanevId ,@pTanuloId = @pTanuloId ,@pTantargyId = @pTantargyId ,@pShowToroltElemek = @pShowToroltElemek ,@pTanarId = @pTanarId ,@evfolyamTipusId = @evfolyamTipusId WITH RESULT SETS(( ID INT ,Datum DATETIME ,TipusId INT ,TanoraId INT ,ErtekelesOsztalyzatId INT ,ErtekelesSzoveg NVARCHAR(MAX) ,ErtekelesSzovegRovidNev NVARCHAR(3) ,ErtekelesSzazalek INT ,ErtekelesModId INT ,ErtekelesTema NVARCHAR(255) ,MagatartasOsztalyzatId INT ,MagatartasSzoveg NVARCHAR(MAX) ,MagatartasSzovegRovidNev NVARCHAR(3) ,MagatartasErtekId INT ,SzorgalomOsztalyzatId INT ,SzorgalomSzoveg NVARCHAR(MAX) ,SzorgalomSzovegRovidNev NVARCHAR(3) ,SzorgalomErtekId INT ,IsMagatartasSzorgalom NVARCHAR(1) ,Torolt NVARCHAR(1) ,TanuloId INT ,Suly INT ,ErtekeloNyomtatasiNev NVARCHAR(255) ,Modosithato NVARCHAR(1) )) END GO