Files
2024-03-13 00:33:46 +01:00

238 lines
12 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,
@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')
--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)
,Ertekeles NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,ErtekelesJegyzettel NVARCHAR(MAX)
,SzovegesErtekeles NVARCHAR(MAX)
,Oraszam INT
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(MAX)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(MAX)
)
INSERT INTO #temp
SELECT
ERTEKELES.C_TANULOID TANULOID
, IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen') TARGY
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
, NULL Jegyzet
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) ErtekelesJegyzettel
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) SzovegesErtekeles
, NULL Oraszam
, -2 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
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_MAGATARTAS AND ERT.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
WHERE
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
AND ERTEKELES.C_TANEVID = @tanevId
AND ERTEKELES.TOROLT='F'
AND OSZTALYZAT.TOROLT = 'F'
AND C_ERTEKELESSZOVEG IS NULL
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
INSERT INTO #TEMP
SELECT
ERTEKELES.C_TANULOID TANULOID
, IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss') TARGY
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
, NULL Jegyzet
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) ErtekelesJegyzettel
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) SzovegesErtekeles
, NULL Oraszam
, -1 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
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_SZORGALOM AND ERT.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
WHERE
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
AND ERTEKELES.C_TANEVID = @TanevId
AND ERTEKELES.TOROLT='F'
AND OSZTALYZAT.TOROLT = 'F'
AND C_ERTEKELESSZOVEG IS NULL
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
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ó', '', '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ó', '', '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ó', '', '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ó', '', '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ó', '', 'példás')
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) NOT IN ('hanyag', 'változó', '', 'példás')
INSERT INTO #TEMP
SELECT
ERTEKELES.C_TANULOID TANULOID
, ISNULL(TARGY.C_NEVNYOMTATVANYBAN, TARGY.C_NEV) TARGY
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) Ertekeles
, ertekelesMegjegyzes.C_TEMA Jegyzet
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) + IIF(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA) ErtekelesJegyzettel
, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))) SzovegesErtekeles
, Oraszam Oraszam
, CASE WHEN TARGY.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END
, ISNULL(fotargy.C_NEV, TARGY.C_NEV)
, ISNULL(TARGY.C_FOTARGYID, Targy.ID)
, TARGY.C_FOTARGYID
, TARGY.C_NEV
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
INNER JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = ERTEKELES.C_TANTARGYID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary on TARGY.C_TARGYKATEGORIA = TargyKategoriaDictionary.Id and TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES fotargy ON TARGY.C_FOTARGYID = fotargy.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = fotargy.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.C_INTEZMENYID = fotargy.C_INTEZMENYID AND FotargyKategoriaDictionary.C_TANEVID = fotargy.C_TANEVID
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
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
WHERE
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
AND ERTEKELES.C_TANEVID = @tanevId
AND ERTEKELES.TOROLT='F'
AND (TARGY.C_FOTARGYE = 'T' OR TARGY.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
AND TARGY.C_TARGYKATEGORIA <> 1248
SELECT
TANULOID
,TARGY
,Ertekeles
,Jegyzet
,ErtekelesJegyzettel
,SzovegesErtekeles
,Oraszam
,RENDEZ1
FROM #temp
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
END
GO