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 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 , 1 RENDEZ 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 = 1034) UNION 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 , 2 RENDEZ 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 = 1034) UNION 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 RENDEZ 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) UNION SELECT ERTEKELES.C_TANULOID TANULOID , ISNULL(TARGY.C_NEVNYOMTATVANYBAN, TARGY.TARGYNEV) 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 , TARGY.KAT RENDEZ FROM T_TANULOERTEKELES_OSSZES ERTEKELES INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID INNER JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT, C_ALTANTARGYKENTNYOMTATVANYBAN, C_FOTARGYE, C_NEVNYOMTATVANYBAN, C_TARGYKATEGORIA FROM T_TANTARGY_OSSZES WHERE TOROLT = 'F') TARGY ON TARGY.ID = ERTEKELES.C_TANTARGYID 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 = 1034) AND TARGY.C_TARGYKATEGORIA <> 1248 ORDER BY TANULOID, RENDEZ END GO