-- ============================================= -- Description: -- ============================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDetailDataSet] GO CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDetailDataSet] @pIntezmenyId INT ,@pTanevId INT ,@pTanuloId INT ,@pTantargyId INT = NULL ,@pShowToroltElemek BIT ,@pTanarId INT ,@pErtekelesMegjelenesFajtaEnumTantargyId INT ,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId 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)) /*TODO:Tobb Osztaly*//*OM-1643*/ DECLARE @sql NVARCHAR(MAX) SET @sql = N' SELECT TanuloErtekeles.ID ID ,TanuloErtekeles.C_DATUM Datum ,TanuloErtekeles.C_ROGZITESDATUM RogzitesDatum ,TanuloErtekeles.C_TIPUSID TipusId ,TanuloErtekeles.C_ISERTESITESELKULDVE IsErtesitesElkuldve ,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.CREATED Created ,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 AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL ' SET @sql += 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 SET @sql += -- NOTE: Ami-s értékelésnél a C_ROGZITESKORITANULOOSZTALYID null, ezeket mindig meg kell jeleníteni N' UNION ALL SELECT TanuloErtekeles.ID ID ,TanuloErtekeles.C_DATUM Datum ,TanuloErtekeles.C_ROGZITESDATUM RogzitesDatum ,TanuloErtekeles.C_TIPUSID TipusId ,TanuloErtekeles.C_ISERTESITESELKULDVE IsErtesitesElkuldve ,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.CREATED Created ,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_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 AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL ' SET @sql += 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 SET @sql += ' ORDER BY Datum DESC ,RogzitesDatum DESC' 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 END GO