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