DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByTantargy GO CREATE PROCEDURE uspGetTanuloErtekelesDataSetByTantargy @pTanevId int ,@pTanarId int ,@pTantargyId int ,@pOsztalyCsoportId int ,@pDatum date = NULL ,@pAmiKategoriaId int ,@pIsFromSzervezet bit = 0 AS BEGIN SET NOCOUNT ON; IF @pDatum IS NULL SET @pDatum = CONVERT(date, GETDATE()) DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId) CREATE TABLE #TanuloOsztalyEvfolyamTipusIdList ( TanuloId int PRIMARY KEY ,EvfolyamTipusId int ) CREATE TABLE #Mentessegek ( TanuloId int ,C_MENTESSEGOKA nvarchar (max) ,C_ERTEKELESMENTESITES char (1) ,C_SZOVEGESENERTEKELHETO char (1) ,RowNumber int ) IF @pIsFromSzervezet = 1 OR @feladatKategoriaId <> @pAmiKategoriaId BEGIN INSERT INTO #TanuloOsztalyEvfolyamTipusIdList ( TanuloId ,EvfolyamTipusId ) SELECT tanuloOsztalyList.C_TANULOID AS TanuloId ,tanuloOsztalyList.C_EVFOLYAMTIPUSA AS EvfolyamTipusId FROM fnGetOsztalyCsoportTanuloOsztalyList(@pTanevId, @pOsztalyCsoportId, @feladatKategoriaId, @pDatum, @pIsFromSzervezet) tanuloOsztalyList END INSERT INTO #Mentessegek ( TanuloId ,C_MENTESSEGOKA ,C_ERTEKELESMENTESITES ,C_SZOVEGESENERTEKELHETO ,RowNumber ) SELECT TanuloMentesseg.C_TANULOID ,TanuloMentesseg.C_MENTESSEGOKA ,TanuloMentesseg.C_ERTEKELESMENTESITES ,TanuloMentesseg.C_SZOVEGESENERTEKELHETO ,ROW_NUMBER() OVER (PARTITION BY TanuloMentesseg.C_TANULOID ORDER BY TanuloMentesseg.C_KEZDETE DESC) RowNumber FROM T_TANULOMENTESSEG_OSSZES TanuloMentesseg WHERE TanuloMentesseg.C_TANEVID = @pTanevId AND TanuloMentesseg.TOROLT = 'F' AND TanuloMentesseg.C_TANTARGYID = @pTantargyId AND ((TanuloMentesseg.C_KEZDETE IS NULL OR TanuloMentesseg.C_KEZDETE <= @pDatum) AND (TanuloMentesseg.C_VEGE IS NULL OR TanuloMentesseg.C_VEGE >= @pDatum)) SELECT FelhasznaloTanulo.ID AS TanuloId ,@pTantargyId AS TantargyId ,FelhasznaloTanulo.C_NYOMTATASINEV AS TanuloNev ,IIF(FelhasznaloTanulo.C_NEVSORREND = 'T', FelhasznaloTanulo.C_UTONEV + ' ' + FelhasznaloTanulo.C_VEZETEKNEV, FelhasznaloTanulo.C_VEZETEKNEV + ' ' + FelhasznaloTanulo.C_UTONEV) AS TanuloNevElotagNelkul ,FelhasznaloTanulo.C_ANYJANEVE AS AnyjaNeve ,FelhasznaloTanulo.C_SZULETESIDATUM AS SzuletesiIdo ,OsztalyCsoport.C_FELADATKATEGORIAID AS FeladatKategoriaId ,OsztalyCsoport.C_NEV AS OsztalyNev ,TanuloMentesseg.C_MENTESSEGOKA AS MentessegOka ,TanuloMentesseg.C_ERTEKELESMENTESITES AS ErtkelesMentesseg ,TanuloMentesseg.C_SZOVEGESENERTEKELHETO AS SzovegesenErtekelheto ,TanuloErtekeles.ID AS ID ,TanuloErtekeles.C_DATUM AS Datum ,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum ,TanuloErtekeles.C_TIPUSID AS TipusId ,TanuloErtekeles.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev ,IIF(TanuloErtekeles.C_ERTEKELOID = @pTanarId,'T','F') AS Modosithato ,TanuloErtekeles.C_ROGZITESDATUM AS Created ,TanuloErtekeles.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom ,TanuloErtekeles.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve ,TanuloErtekeles.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId ,em.C_SULY AS Suly ,TanuloErtekeles.C_ERTEKELESSZOVEG AS ErtekelesSzoveg ,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV AS ErtekelesSzovegRovidNev ,TanuloErtekeles.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek ,TanuloErtekeles.C_ERTEKELESMODID AS ErtekelesModId ,TanuloErtekeles.C_ERTEKELESTEMA AS ErtekelesTema ,TanuloErtekeles.C_AMIFOTARGYID AS AmiFotargyId ,TanuloErtekeles.C_AMITAGOZATID AS AmiTagozatId ,TanuloErtekeles.C_AMITANTARGYKOTELEZOSEGID AS AmiTantargyKotelezosegId ,TanuloErtekeles.C_EVFOLYAMTIPUSID AS EvfolyamId ,TanuloErtekeles.C_ISTANULMANYIATLAGBANEMSZAMIT AS IsTanulmanyiAtlagbaNemSzamit FROM T_TANULOCSOPORT_OSSZES TanuloCsoport INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloTanulo ON FelhasznaloTanulo.C_TANEVID = TanuloCsoport.C_TANEVID AND FelhasznaloTanulo.TOROLT = 'F' AND FelhasznaloTanulo.ID = TanuloCsoport.C_TANULOID INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID AND OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID LEFT JOIN ( SELECT TanuloErtekeles.* ,FelhasznaloErtekelo.C_NYOMTATASINEV ,ttfTanulo.C_AMIFOTARGYID ,ttfTanulo.C_AMITAGOZATID ,ttfTanulo.C_AMITANTARGYKOTELEZOSEGID ,ttfTanulo.C_EVFOLYAMTIPUSID ,Tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = 'F' AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID AND (Osztaly.C_FELADATKATEGORIAID = @feladatKategoriaId OR @pIsFromSzervezet = 1) INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID AND FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID LEFT JOIN T_FOGLALKOZAS ttf ON ttf.C_TANTARGYID = @pTantargyId AND ttf.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND ttf.C_TANARID = @pTanarId AND ttf.C_TANEVID = @pTanevId AND ttf.TOROLT = 'F' LEFT JOIN T_FOGLALKOZASAMITANULO ttfTanulo ON ttf.ID = ttfTanulo.C_FOGLALKOZASID AND ttfTanulo.C_TANULOID = TanuloErtekeles.C_TANULOID AND ttfTanulo.C_TANEVID = @pTanevId AND ttfTanulo.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES Tantargy ON TanuloErtekeles.C_TANTARGYID = Tantargy.ID AND TanuloErtekeles.C_TANEVID = Tantargy.C_TANEVID AND Tantargy.TOROLT = 'F' WHERE TanuloErtekeles.C_TANEVID = @pTanevId AND TanuloErtekeles.TOROLT = 'F' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND @feladatKategoriaId = @pAmiKategoriaId AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' UNION SELECT TanuloErtekeles.* ,FelhasznaloErtekelo.C_NYOMTATASINEV ,ttfTanulo.C_AMIFOTARGYID ,ttfTanulo.C_AMITAGOZATID ,ttfTanulo.C_AMITANTARGYKOTELEZOSEGID ,ttfTanulo.C_EVFOLYAMTIPUSID ,Tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = 'F' AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AND (Osztaly.C_FELADATKATEGORIAID = @feladatKategoriaId OR @pIsFromSzervezet = 1) INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID AND TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID AND TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID AND TanuloCsoport.C_BELEPESDATUM <= @pDatum INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID AND FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID LEFT JOIN T_FOGLALKOZAS ttf ON ttf.C_TANTARGYID = @pTantargyId AND ttf.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND ttf.C_TANARID = @pTanarId AND ttf.C_TANEVID = @pTanevId AND ttf.TOROLT = 'F' LEFT JOIN T_FOGLALKOZASAMITANULO ttfTanulo ON ttf.ID = ttfTanulo.C_FOGLALKOZASID AND ttfTanulo.C_TANULOID = TanuloErtekeles.C_TANULOID AND ttfTanulo.C_TANEVID = @pTanevId AND ttfTanulo.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES Tantargy ON TanuloErtekeles.C_TANTARGYID = Tantargy.ID AND TanuloErtekeles.C_TANEVID = Tantargy.C_TANEVID AND Tantargy.TOROLT = 'F' WHERE TanuloErtekeles.C_TANEVID = @pTanevId AND TanuloErtekeles.TOROLT = 'F' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' ) AS TanuloErtekeles ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID LEFT JOIN T_ERTEKELESMOD_OSSZES em ON em.C_ALTANEVID = TanuloCsoport.C_TANEVID AND em.TOROLT = 'F' AND em.ID = TanuloErtekeles.C_ERTEKELESMODID AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL LEFT JOIN #Mentessegek TanuloMentesseg ON TanuloMentesseg.TanuloId = FelhasznaloTanulo.ID AND TanuloMentesseg.RowNumber = 1 WHERE TanuloCsoport.C_TANEVID = @pTanevId AND TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND TanuloCsoport.C_BELEPESDATUM <= @pDatum AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL) END GO