250 lines
No EOL
11 KiB
Transact-SQL
250 lines
No EOL
11 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[sp_GetDokumentumErtekelesek]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[sp_GetDokumentumErtekelesek]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[sp_GetDokumentumErtekelesek]
|
|
@osztalyId INT,
|
|
@tanevId INT,
|
|
@ertekelesTipus INT,
|
|
@isBizonyitvany INT = 0,
|
|
@isNemet BIT = 0
|
|
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
--Osztályhoz tartozó tanulók
|
|
DECLARE @Tanulok TABLE (TanuloId INT PRIMARY KEY, KilepesDatum DATE)
|
|
INSERT INTO @Tanulok
|
|
SELECT TanuloId, KilepesDatum FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
|
|
|
|
--Osztályhoz tartozó értékelések
|
|
SELECT
|
|
Datum
|
|
,TipusId
|
|
,ErtekelesSzoveg
|
|
,ErtekelesOsztalyzatId
|
|
,ErtekelesOsztalyzatValue
|
|
,ErtekelesOsztalyzatNev
|
|
,ErtekelesSzazalek
|
|
,MagatartasOsztalyzatId
|
|
,MagatartasOsztalyzatNev
|
|
,MagatartasSzoveg
|
|
,MagatartasErtekId
|
|
,MagatartasErtek
|
|
,SzorgalomOsztalyzatId
|
|
,SzorgalomOsztalyzatNev
|
|
,SzorgalomSzoveg
|
|
,SzorgalomErtekId
|
|
,SzorgalomErtek
|
|
,TanuloId
|
|
,OsztalyCsoportId
|
|
,TantargyId
|
|
,TantargyNevZarojellel
|
|
,TantargyNev
|
|
,TantargyNevNyomtatvanyban
|
|
,TargyKategoriaId
|
|
,FotargyE
|
|
,FotargyId
|
|
,Altantargy
|
|
,ErtekelesTema
|
|
,Jeloles
|
|
,JelolesAndErtekelesTema
|
|
,isMagatartasSzorgalom
|
|
INTO #ErtekelesekTemp
|
|
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
|
|
|
|
--Tanulóhoz kapcsolódó óraszámok
|
|
DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam INT)
|
|
|
|
INSERT INTO @Oraszamok
|
|
SELECT * FROM fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet(@tanevId, @osztalyId)
|
|
|
|
--Értékelések
|
|
CREATE TABLE #temp
|
|
(
|
|
TANULOID INT
|
|
,TARGY NVARCHAR(MAX)
|
|
,Jegyzet NVARCHAR(MAX)
|
|
,Ertekeles NVARCHAR(MAX)
|
|
,ErtekelesJegyzettel NVARCHAR(MAX)
|
|
,Oraszam INT
|
|
,RENDEZ1 INT
|
|
,RENDEZ2 NVARCHAR(MAX)
|
|
,RENDEZ3 INT
|
|
,RENDEZ4 INT
|
|
,RENDEZ5 NVARCHAR(MAX)
|
|
)
|
|
|
|
INSERT INTO #temp
|
|
SELECT
|
|
ErtekelesTemp.TanuloId TANULOID
|
|
,IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen') TARGY
|
|
,NULL
|
|
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, MagatartasErtek, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))), ISNULL(MagatartasSzoveg, IIF(@isNemet = 0, MagatartasOsztalyzatNev, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))))
|
|
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, MagatartasErtek, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))), ISNULL(MagatartasSzoveg, IIF(@isNemet = 0, MagatartasOsztalyzatNev, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId)))) ErtekelesJegyzettel
|
|
,NULL Oraszam
|
|
,-2 RENDEZ1
|
|
,NULL RENDEZ2
|
|
,NULL RENDEZ3
|
|
,NULL RENDEZ4
|
|
,NULL RENDEZ5
|
|
FROM #ErtekelesekTemp ErtekelesTemp
|
|
INNER JOIN @Tanulok 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 --????
|
|
|
|
|
|
INSERT INTO #TEMP
|
|
SELECT
|
|
ErtekelesTemp.TanuloId TANULOID
|
|
,IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss') TARGY
|
|
,NULL
|
|
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, SzorgalomErtek, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))), ISNULL(SzorgalomSzoveg, IIF(@isNemet = 0, SzorgalomOsztalyzatNev, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))))
|
|
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, SzorgalomErtek, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))), ISNULL(SzorgalomSzoveg, IIF(@isNemet = 0, SzorgalomOsztalyzatNev, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId)))) ErtekelesJegyzettel
|
|
,NULL Oraszam
|
|
,-2 RENDEZ1
|
|
,NULL RENDEZ2
|
|
,NULL RENDEZ3
|
|
,NULL RENDEZ4
|
|
,NULL RENDEZ5
|
|
FROM #ErtekelesekTemp ErtekelesTemp
|
|
INNER JOIN @Tanulok 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
|
|
ERTEKELES.C_TANULOID TANULOID
|
|
, IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen') TARGY
|
|
, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) Ertekeles
|
|
, NULL Jegyzet
|
|
, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) ErtekelesJegyzettel
|
|
, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) SzovegesErtekeles
|
|
, NULL Oraszam
|
|
, -2 RENDEZ1
|
|
, NULL RENDEZ2
|
|
, NULL RENDEZ3
|
|
, NULL RENDEZ4
|
|
, NULL RENDEZ5
|
|
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
|
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
|
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
|
WHERE
|
|
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
|
AND ERTEKELES.C_TANEVID = @TanevId
|
|
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
|
AND ERTEKELES.TOROLT='F'
|
|
AND OSZTALYZAT.TOROLT = 'F'
|
|
AND C_ERTEKELESSZOVEG IS NOT NULL
|
|
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
|
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
|
|
|
INSERT INTO #TEMP
|
|
SELECT
|
|
ERTEKELES.C_TANULOID TANULOID
|
|
, IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss') TARGY
|
|
, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) Ertekeles
|
|
, NULL Jegyzet
|
|
, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) ErtekelesJegyzettel
|
|
, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) SzovegesErtekeles
|
|
, NULL Oraszam
|
|
, -1 RENDEZ1
|
|
, NULL RENDEZ2
|
|
, NULL RENDEZ3
|
|
, NULL RENDEZ4
|
|
, NULL RENDEZ5
|
|
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
|
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
|
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
|
WHERE
|
|
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
|
AND ERTEKELES.C_TANEVID = @TanevId
|
|
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
|
AND ERTEKELES.TOROLT='F'
|
|
AND OSZTALYZAT.TOROLT = 'F'
|
|
AND C_ERTEKELESSZOVEG IS NOT NULL
|
|
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
|
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
|
|
|
|
|
INSERT INTO #TEMP
|
|
SELECT
|
|
ERTEKELES.C_TANULOID TANULOID
|
|
, IIF(@isNemet = 0, 'Magatartás / Szorgalom', 'Betragen / Fleiss') TARGY
|
|
, ERTEKELES.C_ERTEKELESSZOVEG Ertekeles
|
|
, NULL Jegyzet
|
|
, ERTEKELES.C_ERTEKELESSZOVEG ErtekelesJegyzettel
|
|
, ERTEKELES.C_ERTEKELESSZOVEG SzovegesErtekeles
|
|
, NULL Oraszam
|
|
, -3 RENDEZ1
|
|
, NULL RENDEZ2
|
|
, NULL RENDEZ3
|
|
, NULL RENDEZ4
|
|
, NULL RENDEZ5
|
|
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
|
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
|
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
|
WHERE
|
|
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
|
AND ERTEKELES.C_TANEVID = @TanevId
|
|
AND ERTEKELES.TOROLT='F'
|
|
AND OSZTALYZAT.TOROLT = 'F'
|
|
AND C_ERTEKELESSZOVEG IS NOT NULL
|
|
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
|
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) NOT IN ('rossz', 'változó', 'jó', 'példás')
|
|
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) NOT IN ('hanyag', 'változó', 'jó', 'példás')
|
|
|
|
*/
|
|
|
|
INSERT INTO #TEMP
|
|
SELECT
|
|
ErtekelesTemp.TanuloId TANULOID
|
|
,ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev) TARGY
|
|
,ErtekelesTemp.ErtekelesTema
|
|
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, dbo.fnGetDokumentumNemet(ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek)+' % '))
|
|
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, dbo.fnGetDokumentumNemet(ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek)+' % ')) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema) ErtekelesJegyzettel
|
|
,Oraszam Oraszam
|
|
,CASE WHEN ErtekelesTemp.FotargyId IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END
|
|
,ISNULL(ISNULL(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV), ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
|
|
,ISNULL(ErtekelesTemp.FotargyId, ErtekelesTemp.TantargyId)
|
|
,ErtekelesTemp.FotargyId
|
|
,ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)
|
|
FROM #ErtekelesekTemp ErtekelesTemp
|
|
INNER JOIN @Tanulok TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
|
|
LEFT JOIN @Oraszamok OraszamTable ON OraszamTable.Tantargy = ErtekelesTemp.TantargyId AND OraszamTable.TanuloId = ErtekelesTemp.TanuloId
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = ErtekelesTemp.TargyKategoriaId AND TargyKategoriaDictionary.TOROLT = 'F' AND TargyKategoriaDictionary.C_TANEVID = @tanevId
|
|
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON Ertekelestemp.FotargyId = FotargyTable.ID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
|
|
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
|
|
,TARGY
|
|
,Jegyzet
|
|
,Ertekeles
|
|
,ErtekelesJegyzettel
|
|
,Oraszam
|
|
,RENDEZ1
|
|
FROM #temp
|
|
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
|
|
END
|
|
|
|
GO |