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ó', '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 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