144 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
GO
 | 
						|
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('sp_GetDokumentumErtekelesek') IS NOT NULL BEGIN
 | 
						|
  DROP PROCEDURE [sp_GetDokumentumErtekelesek] 
 | 
						|
END  
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE sp_GetDokumentumErtekelesek
 | 
						|
	@osztalyId int,
 | 
						|
	@tanevId   int,
 | 
						|
	@ertekelesTipus int,
 | 
						|
	@isBizonyitvany int = 0
 | 
						|
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
	
 | 
						|
--Osztályhoz tartozó tanulók
 | 
						|
	DECLARE @Tanulok TABLE (TanuloId int)
 | 
						|
 | 
						|
	INSERT INTO @Tanulok
 | 
						|
	SELECT 
 | 
						|
		C_TANULOID
 | 
						|
	FROM T_TANULOCSOPORT 
 | 
						|
	WHERE 
 | 
						|
		C_OSZTALYCSOPORTID = @osztalyId
 | 
						|
		AND TOROLT='F'
 | 
						|
 | 
						|
--Tanulóhoz kapcsolódó óraszámok
 | 
						|
	DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam INT)
 | 
						|
 | 
						|
	INSERT INTO @Oraszamok
 | 
						|
	SELECT 
 | 
						|
		TanuloId
 | 
						|
		, TantargyId
 | 
						|
		, SUM(Oraszam)
 | 
						|
	FROM 
 | 
						|
		(
 | 
						|
		SELECT 
 | 
						|
			te.C_TANULOID TanuloId
 | 
						|
			, IIF(C_FOTARGYE = 'T', t.Id, C_FOTARGYID) TantargyId
 | 
						|
			, IIF((SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T', 30, 36) * fog.C_ORASZAM Oraszam
 | 
						|
		FROM T_TANULOERTEKELES_OSSZES te
 | 
						|
			INNER JOIN T_FOGLALKOZAS_OSSZES fog on fog.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID and fog.C_TANTARGYID = te.C_TANTARGYID
 | 
						|
			INNER JOIN T_TANTARGY_OSSZES t on t.ID = te.C_TANTARGYID 
 | 
						|
			INNER JOIN @Tanulok tanulok on tanulok.TanuloId = te.C_TANULOID
 | 
						|
		WHERE 
 | 
						|
			te.TOROLT = 'F'
 | 
						|
			AND te.C_TANEVID = @tanevId
 | 
						|
			AND te.C_ERTEKELESTIPUSA = @ertekelesTipus
 | 
						|
		) a
 | 
						|
	GROUP BY TanuloId, TantargyId
 | 
						|
 | 
						|
--Értékelések	
 | 
						|
	SELECT 
 | 
						|
			ERTEKELES.C_TANULOID	TANULOID
 | 
						|
			, 'MAGATARTAS'			TARGY
 | 
						|
			, ERT.C_NAME			Ertekeles
 | 
						|
			, NULL					Jegyzet
 | 
						|
			, ERT.C_NAME			ErtekelesJegyzettel
 | 
						|
			, ERT.C_NAME			SzovegesErtekeles
 | 
						|
			, NULL					Oraszam
 | 
						|
			, 1						RENDEZ
 | 
						|
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
 | 
						|
			INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
 | 
						|
																						  AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
 | 
						|
																						  AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
 | 
						|
				ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID
 | 
						|
			LEFT JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT
 | 
						|
				ON OSZTALYZAT.ID = ERTEKELES.ID
 | 
						|
			LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_MAGATARTAS AND ERT.C_TANEVID = @tanevId
 | 
						|
	WHERE 
 | 
						|
		TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId 
 | 
						|
		AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
 | 
						|
		AND (OSZTALYZAT.C_MAGATARTAS IS NOT NULL OR (LEN(ERTEKELES.C_ERTEKELESSZOVEG) > 0 AND ERTEKELES.C_TANTARGYID IS NULL) )
 | 
						|
		AND ERTEKELES.C_TANEVID = @tanevId
 | 
						|
		AND ERTEKELES.TOROLT='F'
 | 
						|
 | 
						|
	UNION
 | 
						|
 | 
						|
	SELECT 
 | 
						|
			ERTEKELES.C_TANULOID	TANULOID
 | 
						|
			, 'SZORGALOM'			TARGY
 | 
						|
			, ERT.C_NAME			Ertekeles
 | 
						|
			, NULL					Jegyzet
 | 
						|
			, ERT.C_NAME			ErtekelesJegyzettel
 | 
						|
			, ERT.C_NAME			SzovegesErtekeles
 | 
						|
			, NULL					Oraszam
 | 
						|
			, 2						RENDEZ
 | 
						|
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
 | 
						|
			INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
 | 
						|
																						  AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
 | 
						|
																						  AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
 | 
						|
			ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID
 | 
						|
			LEFT JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT
 | 
						|
			ON OSZTALYZAT.ID = ERTEKELES.ID
 | 
						|
			LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_SZORGALOM
 | 
						|
	WHERE 
 | 
						|
		TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
 | 
						|
		AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
 | 
						|
		AND OSZTALYZAT.C_SZORGALOM IS NOT NULL 
 | 
						|
		AND ERTEKELES.C_TANEVID = @TanevId
 | 
						|
		AND ERTEKELES.TOROLT='F'
 | 
						|
 | 
						|
	UNION 
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		   ERTEKELES.C_TANULOID				TANULOID
 | 
						|
		   , TARGY.TARGYNEV					TARGY
 | 
						|
		   , ERT.C_NAME						Ertekeles	   
 | 
						|
		   , ertekelesMegjegyzes.C_TEMA		Jegyzet
 | 
						|
		   , ERT.C_NAME + IIF(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA) ErtekelesJegyzettel
 | 
						|
		   , ERTEKELES.C_ERTEKELESSZOVEG	SzovegesErtekeles
 | 
						|
		   , Oraszam						Oraszam
 | 
						|
		   , TARGY.KAT						RENDEZ
 | 
						|
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
 | 
						|
			INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES 
 | 
						|
								WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
 | 
						|
										AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
 | 
						|
										AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
 | 
						|
			ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID 
 | 
						|
			INNER JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT, C_ALTANTARGYKENTNYOMTATVANYBAN, C_FOTARGYE FROM T_TANTARGY_OSSZES where TOROLT = 'F') TARGY 
 | 
						|
			ON TARGY.ID = ERTEKELES.C_TANTARGYID
 | 
						|
			LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=ERTEKELES.C_OSZTALYZAT AND ERT.C_TANEVID = @tanevId
 | 
						|
			LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES ertekelesMegjegyzes on ertekelesMegjegyzes.ID=ertekeles.Id
 | 
						|
			LEFT JOIN @Oraszamok oraszam ON 
 | 
						|
											oraszam.Tantargy = ERTEKELES.C_TANTARGYID
 | 
						|
											AND oraszam.TanuloId = ERTEKELES.C_TANULOID
 | 
						|
	WHERE 
 | 
						|
		TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId		
 | 
						|
		AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus 
 | 
						|
		AND ERTEKELES.C_TANEVID = @tanevId
 | 
						|
		AND ERTEKELES.TOROLT='F'
 | 
						|
		AND (TARGY.C_FOTARGYE = 'T' OR TARGY.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
 | 
						|
	ORDER BY TANULOID, RENDEZ
 | 
						|
	
 | 
						|
END
 | 
						|
 | 
						|
GO |