316 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			316 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
DROP PROCEDURE IF EXISTS [dbo].[sp_GetDokumentumErtekelesek] 
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_GetDokumentumErtekelesek]
 | 
						|
	@osztalyId			INT,
 | 
						|
	@tanevId			INT,
 | 
						|
	@ertekelesTipus		INT,
 | 
						|
	@isBizonyitvany		INT = 0,
 | 
						|
	@nyomtatvanyNyelvEnum		INT = 0,
 | 
						|
	@isMuveszetOktatasi	BIT = 0,
 | 
						|
	@tanitasiHetekSzamaVegzos		INT = 32,
 | 
						|
	@tanitasiHetekSzamaNemVegzos	INT = 36,
 | 
						|
	@isAltantargyBeszamitasa BIT = 0
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
 | 
						|
--Osztályhoz tartozó tanulók
 | 
						|
	DECLARE @TANULO TABLE (TanuloId INT, TanuloCsoportId INT, BelepesDatum DATE, KilepesDatum DATE)
 | 
						|
	INSERT INTO @TANULO
 | 
						|
	SELECT 
 | 
						|
		 TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,BelepesDatum
 | 
						|
		,KilepesDatum 
 | 
						|
	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') 
 | 
						|
 | 
						|
--Osztályhoz tartozó értékelések
 | 
						|
	CREATE TABLE #ErtekelesekTemp
 | 
						|
	(
 | 
						|
		ErtekelesId INT primary key NOT NULL,
 | 
						|
		Datum DATE,
 | 
						|
		TipusId INT,
 | 
						|
		ErtekelesSzoveg NVARCHAR(MAX),
 | 
						|
		ErtekelesSzovegRovidNev NVARCHAR(3),
 | 
						|
		ErtekelesOsztalyzatId INT,
 | 
						|
		ErtekelesOsztalyzatValue INT, 
 | 
						|
		ErtekelesOsztalyzatNev NVARCHAR(MAX),
 | 
						|
		ErtekelesSzazalek NVARCHAR(MAX),
 | 
						|
		MagatartasOsztalyzatId INT,
 | 
						|
		MagatartasOsztalyzatValue INT, 
 | 
						|
		MagatartasOsztalyzatNev NVARCHAR(MAX),
 | 
						|
		MagatartasSzoveg NVARCHAR(MAX),
 | 
						|
		MagatartasSzovegRovidNev NVARCHAR(3),
 | 
						|
		MagatartasErtekId INT,
 | 
						|
		MagatartasErtek NVARCHAR(MAX),
 | 
						|
		MagatartasErtekOsztalyzatkent INT,
 | 
						|
		SzorgalomOsztalyzatId INT,
 | 
						|
		SzorgalomOsztalyzatValue INT, 
 | 
						|
		SzorgalomOsztalyzatNev NVARCHAR(MAX),
 | 
						|
		SzorgalomSzoveg NVARCHAR(MAX),
 | 
						|
		SzorgalomSzovegRovidNev NVARCHAR(3),
 | 
						|
		SzorgalomErtekId INT,
 | 
						|
		SzorgalomErtek NVARCHAR(MAX),
 | 
						|
		SzorgalomErtekOsztalyzatkent INT,
 | 
						|
		TanuloId INT,
 | 
						|
		OsztalyCsoportId INT,
 | 
						|
		TantargyId INT,
 | 
						|
		TantargyNevZarojellel NVARCHAR(MAX),
 | 
						|
		TantargyNevNyomtatvanyban NVARCHAR(MAX),
 | 
						|
		TantargyNev NVARCHAR(MAX),
 | 
						|
		TantargyAngolNev NVARCHAR(MAX),
 | 
						|
		TantargyNemetNev NVARCHAR(MAX),
 | 
						|
		TargyKategoriaId INT,
 | 
						|
		FotargyE CHAR(1),
 | 
						|
		Altantargy CHAR(1),
 | 
						|
		FotargyId INT,
 | 
						|
		ErtekelesTema NVARCHAR(MAX),
 | 
						|
		ErtekeloId INT,
 | 
						|
		ErtekelesModjaId INT,
 | 
						|
		IsMagatartasSzorgalom CHAR(1),
 | 
						|
		Jeloles NVARCHAR(MAX),
 | 
						|
		JelolesAndErtekelesTema NVARCHAR(MAX),
 | 
						|
		RENDEZ1							INT,
 | 
						|
		RENDEZ2							NVARCHAR(MAX),
 | 
						|
		RENDEZ3							INT,
 | 
						|
		RENDEZ4							INT,
 | 
						|
		RENDEZ5							NVARCHAR(MAX)
 | 
						|
	)
 | 
						|
 | 
						|
	IF (@isMuveszetOktatasi = 0)
 | 
						|
	BEGIN
 | 
						|
	INSERT INTO #ErtekelesekTemp
 | 
						|
	SELECT 
 | 
						|
		ErtekelesId 
 | 
						|
		,Datum 
 | 
						|
		,TipusId
 | 
						|
		,ErtekelesSzoveg 
 | 
						|
		,ErtekelesSzovegRovidNev 
 | 
						|
		,ErtekelesOsztalyzatId
 | 
						|
		,ErtekelesOsztalyzatValue 
 | 
						|
		,ErtekelesOsztalyzatNev
 | 
						|
		,ErtekelesSzazalek 
 | 
						|
		,MagatartasOsztalyzatId
 | 
						|
		,MagatartasOsztalyzatValue 
 | 
						|
		,MagatartasOsztalyzatNev 
 | 
						|
		,MagatartasSzoveg 
 | 
						|
		,MagatartasSzovegRovidNev
 | 
						|
		,MagatartasErtekId 
 | 
						|
		,MagatartasErtek 
 | 
						|
		,MagatartasErtekOsztalyzatkent
 | 
						|
		,SzorgalomOsztalyzatId
 | 
						|
		,SzorgalomOsztalyzatValue
 | 
						|
		,SzorgalomOsztalyzatNev
 | 
						|
		,SzorgalomSzoveg 
 | 
						|
		,SzorgalomSzovegRovidNev
 | 
						|
		,SzorgalomErtekId
 | 
						|
		,SzorgalomErtek 
 | 
						|
		,SzorgalomErtekOsztalyzatkent 
 | 
						|
		,TanuloId
 | 
						|
		,OsztalyCsoportId
 | 
						|
		,TantargyId 
 | 
						|
		,TantargyNevZarojellel 
 | 
						|
		,TantargyNevNyomtatvanyban 
 | 
						|
		,TantargyNev
 | 
						|
		,TantargyAngolNev
 | 
						|
		,TantargyNemetNev
 | 
						|
		,TargyKategoriaId
 | 
						|
		,FotargyE
 | 
						|
		,Altantargy
 | 
						|
		,FotargyId 
 | 
						|
		,ErtekelesTema 
 | 
						|
		,ErtekeloId 
 | 
						|
		,ErtekelesModjaId 
 | 
						|
		,IsMagatartasSzorgalom 
 | 
						|
		,Jeloles
 | 
						|
		,JelolesAndErtekelesTema
 | 
						|
		,RENDEZ1							
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
 | 
						|
	END
 | 
						|
	ELSE
 | 
						|
	BEGIN
 | 
						|
	INSERT INTO #ErtekelesekTemp
 | 
						|
	SELECT 
 | 
						|
		ErtekelesId 
 | 
						|
		,Datum 
 | 
						|
		,TipusId
 | 
						|
		,ErtekelesSzoveg 
 | 
						|
		,ErtekelesSzovegRovidNev 
 | 
						|
		,ErtekelesOsztalyzatId
 | 
						|
		,ErtekelesOsztalyzatValue 
 | 
						|
		,ErtekelesOsztalyzatNev
 | 
						|
		,ErtekelesSzazalek 
 | 
						|
		,MagatartasOsztalyzatId
 | 
						|
		,MagatartasOsztalyzatValue 
 | 
						|
		,MagatartasOsztalyzatNev 
 | 
						|
		,MagatartasSzoveg 
 | 
						|
		,MagatartasSzovegRovidNev
 | 
						|
		,MagatartasErtekId 
 | 
						|
		,MagatartasErtek 
 | 
						|
		,MagatartasErtekOsztalyzatkent
 | 
						|
		,SzorgalomOsztalyzatId
 | 
						|
		,SzorgalomOsztalyzatValue
 | 
						|
		,SzorgalomOsztalyzatNev
 | 
						|
		,SzorgalomSzoveg 
 | 
						|
		,SzorgalomSzovegRovidNev
 | 
						|
		,SzorgalomErtekId
 | 
						|
		,SzorgalomErtek 
 | 
						|
		,SzorgalomErtekOsztalyzatkent 
 | 
						|
		,TanuloId
 | 
						|
		,OsztalyCsoportId
 | 
						|
		,TantargyId 
 | 
						|
		,TantargyNevZarojellel 
 | 
						|
		,TantargyNevNyomtatvanyban 
 | 
						|
		,TantargyNev
 | 
						|
		,NULL
 | 
						|
		,NULL
 | 
						|
		,TargyKategoriaId
 | 
						|
		,FotargyE
 | 
						|
		,Altantargy
 | 
						|
		,FotargyId 
 | 
						|
		,ErtekelesTema 
 | 
						|
		,ErtekeloId 
 | 
						|
		,ErtekelesModjaId 
 | 
						|
		,IsMagatartasSzorgalom 
 | 
						|
		,Jeloles
 | 
						|
		,JelolesAndErtekelesTema
 | 
						|
		,RENDEZ1							
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (@tanevId, @osztalyId, DEFAULT, 0, DEFAULT, 2)
 | 
						|
	END
 | 
						|
 | 
						|
--Tanulóhoz kapcsolódó óraszámok
 | 
						|
	DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam FLOAT)
 | 
						|
 | 
						|
	INSERT INTO @Oraszamok
 | 
						|
	SELECT TanuloId, TantargyId, Oraszam FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevId, @osztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
 | 
						|
 | 
						|
--Értékelések	
 | 
						|
	CREATE TABLE #temp
 | 
						|
	(
 | 
						|
		 TANULOID				INT
 | 
						|
		,TANULOCSOPORTID		INT
 | 
						|
		,TARGY					NVARCHAR(MAX)
 | 
						|
		,Jegyzet				NVARCHAR(MAX)
 | 
						|
		,Ertekeles				NVARCHAR(MAX)
 | 
						|
		,ErtekelesValue			INT
 | 
						|
		,ErtekelesJegyzettel	NVARCHAR(MAX)
 | 
						|
		,Oraszam				FLOAT
 | 
						|
		,RENDEZ1				INT
 | 
						|
		,RENDEZ2				NVARCHAR(MAX)
 | 
						|
		,RENDEZ3				INT
 | 
						|
		,RENDEZ4				INT
 | 
						|
		,RENDEZ5				NVARCHAR(MAX)
 | 
						|
	)
 | 
						|
 | 
						|
	DECLARE @NyelvesitettMagatartasNev NVARCHAR(MAX) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'MAGATARTAS' WHEN 1 THEN 'Betragen' WHEN 2 THEN 'Conduct' END
 | 
						|
	INSERT INTO #temp
 | 
						|
	SELECT 
 | 
						|
		 ErtekelesTemp.TanuloId				TANULOID
 | 
						|
		,TanuloTable.TanuloCsoportId		TanuloCsoportId
 | 
						|
		,@NyelvesitettMagatartasNev			TARGY
 | 
						|
		,NULL
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId))))
 | 
						|
		,NULL
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId)))) ErtekelesJegyzettel
 | 
						|
		,NULL					Oraszam
 | 
						|
		,-2							
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM #ErtekelesekTemp ErtekelesTemp
 | 
						|
		INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
 | 
						|
	WHERE
 | 
						|
		(KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
 | 
						|
		AND (MagatartasErtek IS NOT NULL OR MagatartasSzoveg IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
 | 
						|
		AND TipusId = @ertekelesTipus --????
 | 
						|
 | 
						|
	
 | 
						|
	DECLARE @NyelvesitettSzorgalomNev NVARCHAR(MAX)	= CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'SZORGALOM' WHEN 1 THEN 'Fleiss' WHEN 2 THEN 'Effort' END   
 | 
						|
	INSERT INTO #TEMP
 | 
						|
	SELECT 
 | 
						|
		 ErtekelesTemp.TanuloId				TANULOID
 | 
						|
		 ,TanuloTable.TanuloCsoportId		TanuloCsoportId
 | 
						|
		,@NyelvesitettSzorgalomNev			TARGY
 | 
						|
		,NULL															
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId))))
 | 
						|
		,NULL
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId)))) ErtekelesJegyzettel
 | 
						|
		,NULL					Oraszam
 | 
						|
		,-1							
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM #ErtekelesekTemp ErtekelesTemp
 | 
						|
		INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
 | 
						|
	WHERE
 | 
						|
		(KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
 | 
						|
		AND (SzorgalomErtek IS NOT NULL OR SzorgalomSzoveg IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
 | 
						|
		AND TipusId = @ertekelesTipus --????
 | 
						|
 | 
						|
	INSERT INTO #TEMP	
 | 
						|
	SELECT 
 | 
						|
		 ErtekelesTemp.TanuloId															TANULOID
 | 
						|
		,TanuloTable.TanuloCsoportId							TanuloCsoportId
 | 
						|
		,CASE 
 | 
						|
			WHEN @nyomtatvanyNyelvEnum = 0 THEN
 | 
						|
				ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)
 | 
						|
			WHEN @nyomtatvanyNyelvEnum = 1 THEN
 | 
						|
				ISNULL(TantargyNemetNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
 | 
						|
			WHEN @nyomtatvanyNyelvEnum = 2 THEN
 | 
						|
				ISNULL(TantargyAngolNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
 | 
						|
		 END TARGY   
 | 
						|
		,ErtekelesTemp.ErtekelesTema
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek)))
 | 
						|
		,ErtekelesTemp.ErtekelesOsztalyzatValue
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek))) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema) ErtekelesJegyzettel
 | 
						|
		,Oraszam											Oraszam
 | 
						|
		,RENDEZ1							
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM #ErtekelesekTemp ErtekelesTemp
 | 
						|
		INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
 | 
						|
		LEFT JOIN @Oraszamok OraszamTable ON OraszamTable.Tantargy = ErtekelesTemp.TantargyId AND OraszamTable.TanuloId = ErtekelesTemp.TanuloId
 | 
						|
	WHERE 	
 | 
						|
		ErtekelesTemp.TipusId = @ertekelesTipus 
 | 
						|
		AND (ErtekelesTemp.FotargyE = 'T' OR ErtekelesTemp.Altantargy = 'T')
 | 
						|
		AND (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
 | 
						|
		AND ErtekelesTemp.TargyKategoriaId <> 1248
 | 
						|
		AND ErtekelesTemp.isMagatartasSzorgalom = 'F'
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		TANULOID 
 | 
						|
		,TanuloCsoportId
 | 
						|
		,TARGY 
 | 
						|
		,Jegyzet
 | 
						|
		,REPLACE(Ertekeles, '(', ' (')
 | 
						|
		,ErtekelesValue	
 | 
						|
		,REPLACE(ErtekelesJegyzettel, '(', ' (') 
 | 
						|
		,Oraszam 
 | 
						|
		,RENDEZ1 
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM #temp
 | 
						|
	ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
 | 
						|
END
 | 
						|
 | 
						|
GO |