-- ============================================= -- Description: -- ============================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDetailDataSet GO CREATE PROCEDURE uspGetTanuloErtekelesDetailDataSet @pIntezmenyId INT ,@pTanevId INT ,@pTanuloId INT ,@pTantargyId INT = NULL ,@pShowToroltElemek BIT ,@pTanarId INT ,@pErtekelesMegjelenesFajtaEnumTantargyId INT ,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId INT ,@pErtekelesMegjelenesFajtaId INT ,@pDatum DATE = NULL ,@pAmiKategoriaId INT ,@pFeladatKategoriaId INT = NULL ,@pKiiratkozottNeJelenjenMeg BIT = 1 AS BEGIN SET NOCOUNT ON; IF @pDatum IS NULL SET @pDatum = CONVERT(DATE, GETDATE()) DECLARE @evfolyamTipusId INT = (SELECT TOP 1 EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, @pKiiratkozottNeJelenjenMeg) ORDER BY BelepesDatuma DESC) DECLARE @sql NVARCHAR(MAX) SET @sql = N' SELECT DISTINCT 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 ,Tantargy.C_TARGYKATEGORIA TantargyKategoriaId ,CASE WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId THEN ''T'' ELSE ''F'' END Modosithato FROM T_TANULOERTEKELES_OSSZES AS TanuloErtekeles' IF @pFeladatKategoriaId IS NOT NULL AND @pFeladatKategoriaId <> @pAmiKategoriaId BEGIN SET @sql += N' INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AND Osztaly.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'') AND Osztaly.C_INTEZMENYID = @pIntezmenyId AND Osztaly.C_TANEVID = @pTanevId AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_OSZTALYCSOPORTID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AND TanuloCsoport.C_TANULOID = @pTanuloId AND TanuloCsoport.C_INTEZMENYID = @pIntezmenyId AND TanuloCsoport.C_TANEVID = @pTanevId AND TanuloCsoport.C_BELEPESDATUM <= GETDATE() AND TanuloCsoport.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')' IF @pKiiratkozottNeJelenjenMeg = 1 BEGIN SET @sql += N' AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= GETDATE())' END END SET @sql += N' LEFT JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_INTEZMENYID = @pIntezmenyId AND Tantargy.C_TANEVID = @pTanevId AND Tantargy.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'') AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID INNER JOIN T_FELHASZNALO_OSSZES AS Felhasznalo ON Felhasznalo.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.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 = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'') AND TanariAtlagSuly.C_INTEZMENYID = @pIntezmenyId AND TanariAtlagSuly.C_TANEVID = @pTanevId AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL WHERE TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'') AND TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId AND TanuloErtekeles.C_TANEVID = @pTanevId AND TanuloErtekeles.C_TANULOID = @pTanuloId' IF @pFeladatKategoriaId IS NOT NULL BEGIN IF @pFeladatKategoriaId = @pAmiKategoriaId BEGIN SET @sql += N' AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL' END ELSE BEGIN SET @sql += N' AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL' END END 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 += N' ORDER BY Datum DESC ,RogzitesDatum DESC' EXEC sp_executesql @sql, N' @pIntezmenyId INT ,@pTanevId INT ,@pTanuloId INT ,@pTantargyId INT ,@pShowToroltElemek BIT ,@pTanarId INT ,@evfolyamTipusId INT ,@pFeladatKategoriaId INT' ,@pIntezmenyId = @pIntezmenyId ,@pTanevId = @pTanevId ,@pTanuloId = @pTanuloId ,@pTantargyId = @pTantargyId ,@pShowToroltElemek = @pShowToroltElemek ,@pTanarId = @pTanarId ,@evfolyamTipusId = @evfolyamTipusId ,@pFeladatKategoriaId = @pFeladatKategoriaId END GO