SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS [dbo].[sp_GetDokumentumErtekelesek] GO CREATE PROCEDURE [dbo].[sp_GetDokumentumErtekelesek] @osztalyId INT, @tanevId INT, @ertekelesTipus INT, @isBizonyitvany INT = 0, @nyomtatvanyNyelvEnum INT = 0, @isMuveszetOktatasi BIT = 0, @tanitasiHetekSzamaVegzos INT = 32, @tanitasiHetekSzamaNemVegzos INT = 36, @isAltantargyBeszamitasa BIT = 0 AS BEGIN SET NOCOUNT ON; --Osztályhoz tartozó tanulók DECLARE @TANULO TABLE (TanuloId INT, TanuloCsoportId INT, BelepesDatum DATE, KilepesDatum DATE) INSERT INTO @TANULO SELECT TanuloId ,TanuloCsoportId ,BelepesDatum ,KilepesDatum FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') --Osztályhoz tartozó értékelések CREATE TABLE #ErtekelesekTemp ( ErtekelesId INT primary key NOT NULL, Datum DATE, TipusId INT, ErtekelesSzoveg NVARCHAR(MAX), ErtekelesSzovegFormazott NVARCHAR(MAX), ErtekelesSzovegRovidNev NVARCHAR(3), ErtekelesOsztalyzatId INT, ErtekelesOsztalyzatValue INT, ErtekelesOsztalyzatNev NVARCHAR(MAX), ErtekelesSzazalek NVARCHAR(MAX), MagatartasOsztalyzatId INT, MagatartasOsztalyzatValue INT, MagatartasOsztalyzatNev NVARCHAR(MAX), MagatartasSzoveg NVARCHAR(MAX), MagatartasSzovegFormazott NVARCHAR(MAX), MagatartasSzovegRovidNev NVARCHAR(3), MagatartasErtekId INT, MagatartasErtek NVARCHAR(MAX), MagatartasErtekOsztalyzatkent INT, SzorgalomOsztalyzatId INT, SzorgalomOsztalyzatValue INT, SzorgalomOsztalyzatNev NVARCHAR(MAX), SzorgalomSzoveg NVARCHAR(MAX), SzorgalomSzovegFormazott NVARCHAR(MAX), SzorgalomSzovegRovidNev NVARCHAR(3), SzorgalomErtekId INT, SzorgalomErtek NVARCHAR(MAX), SzorgalomErtekOsztalyzatkent INT, TanuloId INT, OsztalyCsoportId INT, TantargyId INT, TantargyNevZarojellel NVARCHAR(MAX), TantargyNevNyomtatvanyban NVARCHAR(MAX), TantargyNev NVARCHAR(MAX), TantargyAngolNev NVARCHAR(MAX), TantargyNemetNev NVARCHAR(MAX), TargyKategoriaId INT, FotargyE CHAR(1), Altantargy CHAR(1), FotargyId INT, ErtekelesTema NVARCHAR(MAX), ErtekeloId INT, ErtekelesModjaId INT, IsMagatartasSzorgalom CHAR(1), Jeloles NVARCHAR(MAX), JelolesAndErtekelesTema NVARCHAR(MAX), RENDEZ1 INT, RENDEZ2 NVARCHAR(MAX), RENDEZ3 INT, RENDEZ4 INT, RENDEZ5 NVARCHAR(MAX) ) IF (@isMuveszetOktatasi = 0) BEGIN INSERT INTO #ErtekelesekTemp SELECT ErtekelesId ,Datum ,TipusId ,ErtekelesSzoveg ,ErtekelesSzovegFormazott ,ErtekelesSzovegRovidNev ,ErtekelesOsztalyzatId ,ErtekelesOsztalyzatValue ,ErtekelesOsztalyzatNev ,ErtekelesSzazalek ,MagatartasOsztalyzatId ,MagatartasOsztalyzatValue ,MagatartasOsztalyzatNev ,MagatartasSzoveg ,MagatartasSzovegFormazott ,MagatartasSzovegRovidNev ,MagatartasErtekId ,MagatartasErtek ,MagatartasErtekOsztalyzatkent ,SzorgalomOsztalyzatId ,SzorgalomOsztalyzatValue ,SzorgalomOsztalyzatNev ,SzorgalomSzoveg ,SzorgalomSzovegFormazott ,SzorgalomSzovegRovidNev ,SzorgalomErtekId ,SzorgalomErtek ,SzorgalomErtekOsztalyzatkent ,TanuloId ,OsztalyCsoportId ,TantargyId ,TantargyNevZarojellel ,TantargyNevNyomtatvanyban ,TantargyNev ,TantargyAngolNev ,TantargyNemetNev ,TargyKategoriaId ,FotargyE ,Altantargy ,FotargyId ,ErtekelesTema ,ErtekeloId ,ErtekelesModjaId ,IsMagatartasSzorgalom ,Jeloles ,JelolesAndErtekelesTema ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) END ELSE BEGIN INSERT INTO #ErtekelesekTemp SELECT ErtekelesId ,Datum ,TipusId ,ErtekelesSzoveg ,ErtekelesSzovegFormazott ,ErtekelesSzovegRovidNev ,ErtekelesOsztalyzatId ,ErtekelesOsztalyzatValue ,ErtekelesOsztalyzatNev ,ErtekelesSzazalek ,MagatartasOsztalyzatId ,MagatartasOsztalyzatValue ,MagatartasOsztalyzatNev ,MagatartasSzoveg ,MagatartasSzovegFormazott ,MagatartasSzovegRovidNev ,MagatartasErtekId ,MagatartasErtek ,MagatartasErtekOsztalyzatkent ,SzorgalomOsztalyzatId ,SzorgalomOsztalyzatValue ,SzorgalomOsztalyzatNev ,SzorgalomSzoveg ,SzorgalomSzovegFormazott ,SzorgalomSzovegRovidNev ,SzorgalomErtekId ,SzorgalomErtek ,SzorgalomErtekOsztalyzatkent ,TanuloId ,OsztalyCsoportId ,TantargyId ,TantargyNevZarojellel ,TantargyNevNyomtatvanyban ,TantargyNev ,NULL ,NULL ,TargyKategoriaId ,FotargyE ,Altantargy ,FotargyId ,ErtekelesTema ,ErtekeloId ,ErtekelesModjaId ,IsMagatartasSzorgalom ,Jeloles ,JelolesAndErtekelesTema ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 FROM fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (@tanevId, @osztalyId, DEFAULT, 0, DEFAULT, 2) END --Tanulóhoz kapcsolódó óraszámok DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam FLOAT) INSERT INTO @Oraszamok SELECT TanuloId, TantargyId, Oraszam FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevId, @osztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa) --Értékelések CREATE TABLE #temp ( TANULOID INT ,TANULOCSOPORTID INT ,TARGY NVARCHAR(MAX) ,Jegyzet NVARCHAR(MAX) ,Ertekeles NVARCHAR(MAX) ,ErtekelesValue INT ,ErtekelesJegyzettel NVARCHAR(MAX) ,Oraszam FLOAT ,RENDEZ1 INT ,RENDEZ2 NVARCHAR(MAX) ,RENDEZ3 INT ,RENDEZ4 INT ,RENDEZ5 NVARCHAR(MAX) ) DECLARE @NyelvesitettMagatartasNev NVARCHAR(MAX) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'MAGATARTAS' WHEN 1 THEN 'Betragen' WHEN 2 THEN 'Conduct' END INSERT INTO #temp SELECT ErtekelesTemp.TanuloId TANULOID ,TanuloTable.TanuloCsoportId TanuloCsoportId ,@NyelvesitettMagatartasNev TARGY ,NULL ,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId)))) ,NULL ,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId)))) ErtekelesJegyzettel ,NULL Oraszam ,-2 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId WHERE (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum) AND (MagatartasErtek IS NOT NULL OR MagatartasSzovegFormazott IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL) AND TipusId = @ertekelesTipus --???? DECLARE @NyelvesitettSzorgalomNev NVARCHAR(MAX) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'SZORGALOM' WHEN 1 THEN 'Fleiss' WHEN 2 THEN 'Effort' END INSERT INTO #TEMP SELECT ErtekelesTemp.TanuloId TANULOID ,TanuloTable.TanuloCsoportId TanuloCsoportId ,@NyelvesitettSzorgalomNev TARGY ,NULL ,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId)))) ,NULL ,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId)))) ErtekelesJegyzettel ,NULL Oraszam ,-1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId WHERE (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum) AND (SzorgalomErtek IS NOT NULL OR SzorgalomSzovegFormazott IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL) AND TipusId = @ertekelesTipus --???? INSERT INTO #TEMP SELECT ErtekelesTemp.TanuloId TANULOID ,TanuloTable.TanuloCsoportId TanuloCsoportId ,CASE WHEN @nyomtatvanyNyelvEnum = 0 THEN ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev) WHEN @nyomtatvanyNyelvEnum = 1 THEN ISNULL(TantargyNemetNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)) WHEN @nyomtatvanyNyelvEnum = 2 THEN ISNULL(TantargyAngolNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)) END TARGY ,ErtekelesTemp.ErtekelesTema ,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzovegFormazott, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek))) ,ErtekelesTemp.ErtekelesOsztalyzatValue ,CASE WHEN TargyKategoriaId = 7688 AND ErtekelesOsztalyzatId IS NOT NULL THEN CASE WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1502 THEN 'Hanyag(2)' WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1503 THEN 'Változó(3)' WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1504 THEN 'Jó(4)' WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1505 THEN 'Példás(5)' END ELSE ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzovegFormazott, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek))) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema) END ErtekelesJegyzettel ,Oraszam Oraszam ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId LEFT JOIN @Oraszamok OraszamTable ON OraszamTable.Tantargy = ErtekelesTemp.TantargyId AND OraszamTable.TanuloId = ErtekelesTemp.TanuloId 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 ,TanuloCsoportId ,TARGY ,Jegyzet ,REPLACE(Ertekeles, '(', ' (') ,ErtekelesValue ,REPLACE(ErtekelesJegyzettel, '(', ' (') ,Oraszam ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 FROM #temp ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5 END GO