244 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			244 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS uspGetDokumentumTantargyakErtekeleshez
 | 
						|
GO
 | 
						|
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
CREATE PROCEDURE uspGetDokumentumTantargyakErtekeleshez 
 | 
						|
	@intezmenyId int, 
 | 
						|
	@tanevId int,
 | 
						|
  @osztalyCsoportId int
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
 | 
						|
    DECLARE @evfolyamTipusId INT = (SELECT C_EVFOLYAMTIPUSA FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND TOROLT = 'F')
 | 
						|
 | 
						|
	CREATE TABLE #KapcsopodoTantargyak(
 | 
						|
  		 ID					INT
 | 
						|
		,C_FOTARGYID		INT
 | 
						|
		,C_NEV				NVARCHAR(255)
 | 
						|
    ,C_NEVNYOMTATVANYBAN NVARCHAR(255)
 | 
						|
		,C_TARGYKATEGORIA 	INT
 | 
						|
		,C_INTEZMENYID	 	INT
 | 
						|
		,C_TANEVID 			INT
 | 
						|
	)
 | 
						|
	INSERT INTO
 | 
						|
		#KapcsopodoTantargyak
 | 
						|
	SELECT
 | 
						|
		 kt.ID
 | 
						|
		,kt.C_FOTARGYID
 | 
						|
		,kt.C_NEV
 | 
						|
    ,t.C_NEVNYOMTATVANYBAN
 | 
						|
		,kt.C_TARGYKATEGORIA
 | 
						|
		,kt.C_INTEZMENYID
 | 
						|
		,kt.C_TANEVID
 | 
						|
	FROM
 | 
						|
		dbo.fnGetKapcsolodoTantargyak(@intezmenyId, @tanevId, NULL) AS kt
 | 
						|
    INNER JOIN T_TANTARGY_OSSZES AS t ON t.ID = kt.ID;
 | 
						|
 | 
						|
  -- Összeszedjük minden tanuló-tanulócsoporthoz a tárgyakat
 | 
						|
	WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_TANULOID, C_TANULOCSOPORTID, C_INTEZMENYID, C_TANEVID)
 | 
						|
	AS (
 | 
						|
  -- TTF-es tárgyak
 | 
						|
	SELECT DISTINCT
 | 
						|
		Foglalkozas.C_TANTARGYID,
 | 
						|
		Tantargy.C_FOTARGYID,
 | 
						|
        f.ID as c_tanuloid,
 | 
						|
        tcsOsztaly.ID as c_tanulocsoportid,
 | 
						|
        Tantargy.C_INTEZMENYID,
 | 
						|
        Tantargy.C_TANEVID
 | 
						|
	FROM
 | 
						|
		T_FOGLALKOZAS_OSSZES Foglalkozas
 | 
						|
	    INNER JOIN
 | 
						|
		    T_TANTARGY_OSSZES Tantargy ON
 | 
						|
			    Tantargy.C_INTEZMENYID			= Foglalkozas.C_INTEZMENYID
 | 
						|
		    AND Tantargy.C_TANEVID				= Foglalkozas.C_TANEVID
 | 
						|
		    AND Tantargy.TOROLT					= 'F'
 | 
						|
		    AND	Tantargy.ID						= Foglalkozas.C_TANTARGYID
 | 
						|
	    INNER JOIN
 | 
						|
		    #OsztalyCsoportIdList OsztalyCsoport ON
 | 
						|
			    OsztalyCsoport.ID = Foglalkozas.C_OSZTALYCSOPORTID
 | 
						|
        INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON
 | 
						|
                tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
 | 
						|
                    AND tcs.TOROLT = 'F'
 | 
						|
        INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
 | 
						|
        INNER JOIN 
 | 
						|
            T_TANULOCSOPORT_OSSZES tcsOsztaly ON
 | 
						|
                tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId 
 | 
						|
                    AND tcsOsztaly.C_TANULOID = f.ID
 | 
						|
                    AND tcsOsztaly.TOROLT = 'F'
 | 
						|
	WHERE
 | 
						|
			Foglalkozas.C_INTEZMENYID		= @intezmenyId
 | 
						|
		AND Foglalkozas.C_TANEVID			= @tanevId
 | 
						|
		AND Foglalkozas.TOROLT				= 'F'
 | 
						|
 | 
						|
	UNION
 | 
						|
  -- ttf-ben nem szereplő tárgyak
 | 
						|
	SELECT DISTINCT
 | 
						|
		OrarendiOra.C_TANTARGYID,
 | 
						|
		Tantargy.C_FOTARGYID,
 | 
						|
        f.ID as c_tanuloid,
 | 
						|
        tcsOsztaly.ID as c_tanulocsoportid,
 | 
						|
		Tantargy.C_INTEZMENYID,
 | 
						|
		Tantargy.C_TANEVID
 | 
						|
	FROM
 | 
						|
		T_ORARENDIORA_OSSZES OrarendiOra
 | 
						|
		INNER JOIN
 | 
						|
			T_TANTARGY_OSSZES Tantargy ON
 | 
						|
				Tantargy.C_INTEZMENYID			= OrarendiOra.C_INTEZMENYID
 | 
						|
			AND Tantargy.C_TANEVID				= OrarendiOra.C_TANEVID
 | 
						|
			AND Tantargy.TOROLT					= 'F'
 | 
						|
			AND	Tantargy.ID						= OrarendiOra.C_TANTARGYID
 | 
						|
		INNER JOIN
 | 
						|
			#OsztalyCsoportIdList OsztalyCsoport ON
 | 
						|
				OsztalyCsoport.ID = OrarendiOra.C_OSZTALYCSOPORTID
 | 
						|
        INNER JOIN 
 | 
						|
            T_TANULOCSOPORT_OSSZES tcs ON
 | 
						|
                tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
 | 
						|
                AND (tcs.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
 | 
						|
                AND tcs.TOROLT = 'F'
 | 
						|
        INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
 | 
						|
        INNER JOIN 
 | 
						|
            T_TANULOCSOPORT_OSSZES tcsOsztaly ON
 | 
						|
                tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId
 | 
						|
                AND (tcsOsztaly.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcsOsztaly.C_KILEPESDATUM IS NULL OR tcsOsztaly.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
 | 
						|
                AND tcsOsztaly.C_TANULOID = f.ID
 | 
						|
                AND tcsOsztaly.TOROLT = 'F'
 | 
						|
	WHERE
 | 
						|
			OrarendiOra.C_INTEZMENYID		= @intezmenyId
 | 
						|
		AND OrarendiOra.C_TANEVID			= @tanevId
 | 
						|
		AND OrarendiOra.TOROLT				= 'F'
 | 
						|
 | 
						|
	UNION
 | 
						|
    -- Értékelést kapott tárgyak
 | 
						|
    SELECT DISTINCT
 | 
						|
		TanuloErtekeles.TantargyId,
 | 
						|
		TanuloErtekeles.FotargyId,
 | 
						|
        TanuloErtekeles.TanuloId,
 | 
						|
        TanuloErtekeles.TanuloCsoportId as C_TANULOCSOPORTID,
 | 
						|
		@intezmenyId,
 | 
						|
		@tanevId
 | 
						|
	FROM
 | 
						|
        fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyCsoportId, DEFAULT, DEFAULT, 1, DEFAULT) AS TanuloErtekeles
 | 
						|
 | 
						|
--			UNION ALL
 | 
						|
--      -- AMI-s értékelés
 | 
						|
---- összevonható-e az alap értékeléssel
 | 
						|
--        SELECT DISTINCT
 | 
						|
--				TanuloErtekeles.C_TANTARGYID,
 | 
						|
--				Tantargy.C_FOTARGYID,
 | 
						|
--        TanuloErtekeles.C_TANULOID,
 | 
						|
--        tcs.ID as C_TANULOCSOPORTID,
 | 
						|
--				Tantargy.C_INTEZMENYID,
 | 
						|
--				Tantargy.C_TANEVID
 | 
						|
--			FROM
 | 
						|
---- helyett az fnGetDokumentumErtekelesekOsztalyonkent
 | 
						|
--				T_TANULOERTEKELES_OSSZES TanuloErtekeles
 | 
						|
--			INNER JOIN
 | 
						|
--				T_TANTARGY_OSSZES Tantargy ON
 | 
						|
--					Tantargy.C_INTEZMENYID			= TanuloErtekeles.C_INTEZMENYID
 | 
						|
--				AND Tantargy.C_TANEVID				= TanuloErtekeles.C_TANEVID
 | 
						|
--				AND Tantargy.TOROLT					= 'F'
 | 
						|
--				AND	Tantargy.ID						= TanuloErtekeles.C_TANTARGYID
 | 
						|
--			INNER JOIN
 | 
						|
--				T_OSZTALYCSOPORT_OSSZES Osztaly ON
 | 
						|
--						Osztaly.C_INTEZMENYID		= TanuloErtekeles.C_INTEZMENYID
 | 
						|
--					AND Osztaly.C_TANEVID			= TanuloErtekeles.C_TANEVID
 | 
						|
--					AND	Osztaly.TOROLT				= 'F'
 | 
						|
--					AND	Osztaly.ID					= TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
--					AND Osztaly.C_EVFOLYAMTIPUSA	= @evfolyamTipusId
 | 
						|
--      INNER JOIN 
 | 
						|
--        T_TANULOCSOPORT_OSSZES tcs ON
 | 
						|
--          tcs.C_OSZTALYCSOPORTID = Osztaly.ID
 | 
						|
--          AND tcs.C_TANULOID = TanuloErtekeles.C_TANULOID
 | 
						|
---- and ertekels-datum between tcs.belépés and tcs. kilépés
 | 
						|
--			WHERE
 | 
						|
--					TanuloErtekeles.C_INTEZMENYID	= @intezmenyId
 | 
						|
--				AND TanuloErtekeles.C_TANEVID		= @tanevId
 | 
						|
--				AND TanuloErtekeles.TOROLT			= 'F'
 | 
						|
--				AND TanuloErtekeles.C_TANTARGYID IS NOT NULL
 | 
						|
--				AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
 | 
						|
	)
 | 
						|
SELECT
 | 
						|
	NULL,
 | 
						|
	NULL,
 | 
						|
	'Magatartás',
 | 
						|
    '',
 | 
						|
	0,
 | 
						|
    f.ID,
 | 
						|
    tcs.ID
 | 
						|
	,0
 | 
						|
    ,''
 | 
						|
	,0
 | 
						|
	,0
 | 
						|
	,''
 | 
						|
	,@intezmenyId
 | 
						|
	,@tanevId
 | 
						|
FROM T_TANULOCSOPORT_OSSZES tcs 
 | 
						|
    LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
 | 
						|
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT = 'F'
 | 
						|
 | 
						|
UNION
 | 
						|
 | 
						|
SELECT
 | 
						|
	NULL,
 | 
						|
	NULL,
 | 
						|
	'Szorgalom',
 | 
						|
    '',
 | 
						|
	0,
 | 
						|
    f.ID,
 | 
						|
    tcs.ID
 | 
						|
	,1
 | 
						|
    ,''
 | 
						|
	,0
 | 
						|
	,0
 | 
						|
	,''
 | 
						|
	,@intezmenyId
 | 
						|
	,@tanevId
 | 
						|
FROM T_TANULOCSOPORT_OSSZES tcs 
 | 
						|
    LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
 | 
						|
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT = 'F'
 | 
						|
 | 
						|
UNION
 | 
						|
 | 
						|
SELECT DISTINCT
 | 
						|
	KapcsopodoTantargy.ID,
 | 
						|
	KapcsopodoTantargy.C_FOTARGYID,
 | 
						|
	KapcsopodoTantargy.C_NEV,
 | 
						|
    KapcsopodoTantargy.C_NEVNYOMTATVANYBAN,
 | 
						|
	KapcsopodoTantargy.C_TARGYKATEGORIA,
 | 
						|
    tantargy_CTE.c_tanuloId,
 | 
						|
    tantargy_CTE.c_tanulocsoportid
 | 
						|
	,CASE WHEN KapcsopodoTantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END
 | 
						|
	,ISNULL(ISNULL(Fotargy.C_NEVNYOMTATVANYBAN, Fotargy.C_NEV), ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV)) AS RENDEZ2
 | 
						|
	,ISNULL(KapcsopodoTantargy.C_FOTARGYID, KapcsopodoTantargy.ID) AS RENDEZ3
 | 
						|
	,KapcsopodoTantargy.C_FOTARGYID AS RENDEZ4
 | 
						|
	,ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV) AS RENDEZ5
 | 
						|
	,KapcsopodoTantargy.C_INTEZMENYID
 | 
						|
	,KapcsopodoTantargy.C_TANEVID
 | 
						|
FROM tantargy_CTE
 | 
						|
	INNER JOIN
 | 
						|
		#KapcsopodoTantargyak KapcsopodoTantargy ON
 | 
						|
				tantargy_CTE.C_TANTARGYID = KapcsopodoTantargy.ID
 | 
						|
			 OR tantargy_CTE.C_FOTARGYID = KapcsopodoTantargy.ID
 | 
						|
	LEFT JOIN
 | 
						|
		T_TANTARGY_OSSZES Fotargy ON
 | 
						|
				Fotargy.C_INTEZMENYID					= tantargy_CTE.C_INTEZMENYID
 | 
						|
			AND Fotargy.C_TANEVID						= tantargy_CTE.C_TANEVID
 | 
						|
			AND Fotargy.TOROLT							= 'F'
 | 
						|
			AND Fotargy.ID								= tantargy_CTE.C_FOTARGYID 
 | 
						|
	LEFT JOIN 
 | 
						|
        T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON
 | 
						|
                TargyKategoriaDictionary.Id = KapcsopodoTantargy.C_TARGYKATEGORIA 
 | 
						|
			AND TargyKategoriaDictionary.TOROLT = 'F' 
 | 
						|
			AND TargyKategoriaDictionary.C_TANEVID = @tanevId
 | 
						|
	LEFT JOIN 
 | 
						|
        T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON 
 | 
						|
                FotargyKategoriaDictionary.ID = Fotargy.C_TARGYKATEGORIA 
 | 
						|
		    AND FotargyKategoriaDictionary.TOROLT = 'F' 
 | 
						|
		    AND FotargyKategoriaDictionary.C_TANEVID = Fotargy.C_TANEVID
 | 
						|
END
 | 
						|
GO
 |