kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20180123173741_KRETA_4872/sp_GetDokumentumErtekelesek.sql
2024-03-13 00:33:46 +01:00

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