SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS sp_GetOsztalyNaplo GO CREATE PROCEDURE sp_GetOsztalyNaplo @intezmenyId INT, @tanevId INT, @osztalyId INT, @isSzovegesNaplo BIT = 0, @iskolaErdekuSzamit BIT, @fuggolegesTantargyak BIT, @aktivTanevId INT, @isReszletesMulasztasok BIT, @isEgyebFoglalkozasok BIT, @minTanoraSzam INT, @isEllenorzo BIT = 0, @orarendErvenyessegiDatum DATE, @tanuloId INT = NULL AS BEGIN SET NOCOUNT ON; DECLARE @ElsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @tanevId AND TOROLT = 'F') DECLARE @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F') DECLARE @ElsoNapTanev DATE = (SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F') DECLARE @UtolsoNapTanev DATE = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F') DECLARE @isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) DECLARE @VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F') DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F') DECLARE @ElsoNap DATE = ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) DECLARE @UtolsoNap DATE = IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap,@UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)) DECLARE @VizsgaltNap DATE IF (@tanevId = @AktivtanevId AND @orarendErvenyessegiDatum <= @UtolsoNapTanevRendje) BEGIN IF (@orarendErvenyessegiDatum <= @ElsoNapTanevRendje) BEGIN SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId) END ELSE BEGIN SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum) END END ELSE BEGIN SET @VizsgaltNap = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNapTanevRendje >= CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNapTanevRendje <= CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId) END CREATE TABLE #NapSorszamTemp ( Datum DATE ) INSERT INTO #NapSorszamTemp EXEC sp_GetDokumentumTanitasiNapokSorszama @tanevId = @tanevId, @osztalyId = @osztalyId CREATE TABLE #NapSorszam (Datum DATE, Sorszam NVARCHAR(4)) INSERT INTO #NapSorszam SELECT Sorszam.Datum Datum ,CAST(DENSE_RANK() OVER(ORDER BY Sorszam.Datum) AS NVARCHAR(4)) FROM #NapSorszamTemp Sorszam INNER JOIN fnGetDokumentumOsztalyMegtartottOrakSzama(@tanevId, @osztalyId) OrakSzama ON OrakSzama.Datum = Sorszam.Datum WHERE Sorszam.Datum <= @UtolsoNap AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama IS NOT NULL) AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama >= @minTanoraSzam) SELECT TanuloId Id ,tanugyiAdatok.C_NAPLOSORSZAM NaploSorszam ,tanugyiAdatok.C_TORZSLAPSZAM TorzslapSzam ,TanuloCsoport.Id TanuloCsoportId ,OsztalyTanuloi.BelepesDatum BelepesDatum ,OsztalyTanuloi.KilepesDatum KilepesDatum --ÁGAZAT ETC.... INTO #studentsWithTanuloCsoport FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.Id = OsztalyTanuloi.TanuloCsoportId INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tanugyiAdatok ON tanugyiAdatok.C_TANULOCSOPORTID = tanuloCsoport.ID AND tanugyiAdatok.TOROLT = 'F' WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) SELECT DISTINCT Id INTO #students FROM #studentsWithTanuloCsoport SELECT DATEPART(MONTH, Datum) Honap ,TantargyId Id ,Igazolt IgazoltE ,TanuloId TanuloId ,TanuloCsoportId TanuloCsoportId ,IgazolasTipusa IgazolasTipus ,Datum Datum ,Tipusa Tipus ,KesesPercben KesesPercben ,HetSorszama HetSorszama ,Oraszam Oraszam ,CAST(DATEPART(MONTH, Datum) AS NVARCHAR(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') ElmeletGyakorlat ,C_GYAKORLATI isGyakorlat INTO #mulasztasTmp FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @iskolaErdekuSzamit, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) TanulokMulasztasai INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) SELECT CAST(SUM(IIF(IgazoltE = 'T', 1, 0)) AS VARCHAR(5)) + '/' + CAST(SUM(IIF(IgazoltE = 'F', 1, 0)) AS VARCHAR(5)) HetiMulasztas ,HetSorszama ,TanuloId ,TanuloCsoportId INTO #HetiMulasztasok FROM #mulasztasTmp GROUP BY HetSorszama, TanuloId, TanuloCsoportId CREATE CLUSTERED INDEX ci1 on #mulasztasTmp (tanuloid, datum) CREATE CLUSTERED INDEX ci5 on #HetiMulasztasok (HetSorszama) CREATE TABLE #retTanuloErtekeles ( [ErtekelesId] INT PRIMARY KEY NOT NULL, [Datum] DATE, [TipusId] INT, [ErtekelesSzoveg] 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), [MagatartasSzovegRovidNev] NVARCHAR(3), [MagatartasErtekId] INT, [MagatartasErtek] NVARCHAR(MAX), [MagatartasErtekOsztalyzatkent] INT, [SzorgalomOsztalyzatId] INT, [SzorgalomOsztalyzatValue] INT, [SzorgalomOsztalyzatNev] NVARCHAR(MAX), [SzorgalomSzoveg] NVARCHAR(MAX), [SzorgalomSzovegRovidNev] NVARCHAR(3), [SzorgalomErtekId] INT, [SzorgalomErtek] NVARCHAR(MAX), [SzorgalomErtekOsztalyzatkent] INT, [TanuloId] INT, TanuloCsoportId int, [OsztalyCsoportId] INT, [TantargyId] INT, [TantargyNevZarojellel] NVARCHAR(MAX), [TantargyNevNyomtatvanyban] NVARCHAR(MAX), [TantargyNev] 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) ) SELECT [Datum], [TipusId], [ErtekelesSzoveg], [ErtekelesOsztalyzatId], [ErtekelesOsztalyzatValue], [ErtekelesOsztalyzatNev], [ErtekelesSzazalek], [MagatartasOsztalyzatId], [MagatartasOsztalyzatNev], [MagatartasSzoveg], [MagatartasErtekId], [MagatartasErtek], [SzorgalomOsztalyzatId], [SzorgalomOsztalyzatNev], [SzorgalomSzoveg], [SzorgalomErtekId], [SzorgalomErtek], [TanuloId], TanuloCsoportId, [OsztalyCsoportId], [TantargyId], [TantargyNevZarojellel], [TantargyNev], [TantargyNevNyomtatvanyban], [TargyKategoriaId], [FotargyE], [FotargyId], [Altantargy], [ErtekelesTema], [Jeloles], [JelolesAndErtekelesTema], [isMagatartasSzorgalom] INTO [#ErtekelesekTemp] FROM [fnGetDokumentumErtekelesekOsztalyonkent](@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT) WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) CREATE CLUSTERED INDEX ci111 on #ErtekelesekTemp (datum, tanulocsoportid) -- Naplo fooldal CREATE TABLE #osztalycsoportok (OsztalyCsoportId INT PRIMARY KEY, Kezdete DATE, Vege DATE) INSERT INTO #osztalycsoportok (OsztalyCsoportId, Kezdete, Vege) SELECT OsztalyCsoportok.Id ,OsztalyCsoportok.Kezdete ,OsztalyCsoportok.Vege FROM fnGetKopcsolodoOsztalyCsoportokByDateRange (@osztalyId, @ElsoNapTanevRendje,@UtolsoNapTanevRendje, @intezmenyId, @tanevId) OsztalyCsoportok INNER JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) TanoraiCeluOsztalyCsoportok on TanoraiCeluOsztalyCsoportok.ID = OsztalyCsoportok.Id CREATE TABLE #OraSorszamTemp (TanitasioraId INT, OraSorszam INT) CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT) DECLARE csoport_cursor CURSOR FOR SELECT OsztalyCsoportId FROM #osztalycsoportok DECLARE @ocsId int OPEN csoport_cursor FETCH NEXT FROM csoport_cursor INTO @ocsId WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #OraSorszamTemp EXEC sp_GetOraSorszamByOsztaly @osztalyCsoportId = @ocsId, @datum = @UtolsoNapTanevRendje, @intezmenyId = @intezmenyId, @tanevId = @tanevId FETCH NEXT FROM csoport_cursor INTO @ocsId END CLOSE csoport_cursor DEALLOCATE csoport_cursor INSERT INTO #OraSorszam SELECT DISTINCT TanitasioraId, OraSorszam FROM #OraSorszamTemp SELECT tao.Id TanitasioraId ,tao.C_DATUM Datum ,IIF(tao.C_ORASZAM IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108), @tanevId), tao.C_ORASZAM) Oraszam ,pedagogus.ID PedagogusId ,IIF(C_MEGTARTOTT = 'T', pedagogus.C_NYOMTATASINEV, '-') PedagogusNev ,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam) + '.','-'), '-') OraSorszam ,IIF(C_MEGTARTOTT = 'T', IIF(C_CSENGETESIRENDORAID IS NULL, '(' + CONVERT(VARCHAR(5), C_ORAKEZDETE, 108) + ' - ' + CONVERT(VARCHAR(5), C_ORAVEGE, 108) + ') ', '') + REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') + IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás: ' + helyettesito.C_NYOMTATASINEV +')', '') + IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), '(Helyettesitve: ' + helyettesito.C_NYOMTATASINEV +') ', '' ) Tema ,IIF(C_MEGTARTOTT = 'T', IIF(C_CSENGETESIRENDORAID IS NULL, '(' + CONVERT(VARCHAR(5), C_ORAKEZDETE, 108) + ' - ' + CONVERT(VARCHAR(5), C_ORAVEGE, 108) + ') ', '') + ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-') +'.: ' + IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás, ' + helyettesito.C_NYOMTATASINEV + ') ', '') + IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), '(Helyettesitve: ' + helyettesito.C_NYOMTATASINEV +') ', '' ) + REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), '') ,'Elmaradt') TemaOraSzammal ,tao.C_HETNAPJA HetNapja ,nh.C_HETSORSZAMA HetSorszama ,C_MEGTARTOTT Megtartott ,tao.C_TANTARGYID TantargyId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) Tantargynev ,tao.C_OSZTALYCSOPORTID OsztalyCsoportId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, IIF(LEN(C_NEVNYOMTATVANYBAN) + LEN(tantargy.C_NEV) < 90, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', C_NEVNYOMTATVANYBAN), tantargy.C_NEV) + '-' + CHAR(13) + CHAR(10) + REPLACE(REPLACE(pedagogus.C_NYOMTATASINEV , '[', '('), ']',')') TantargyPedagogussal INTO #megtartottOrak FROM T_TANITASIORA_OSSZES tao LEFT JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = tao.C_TANARID LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = tao.C_HELYETTESITOTANARID INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID LEFT JOIN (SELECT DISTINCT TanitasioraId, OraSorszam FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = tao.Id INNER JOIN T_NAPTARIHET_OSSZES nh ON tao.C_DATUM BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F' INNER JOIN #osztalycsoportok OsztalyCsoportok ON OsztalyCsoportok.OsztalyCsoportId = tao.C_OSZTALYCSOPORTID AND tao.C_DATUM BETWEEN OsztalyCsoportok.Kezdete AND OsztalyCsoportok.Vege WHERE tao.TOROLT = 'F' CREATE CLUSTERED INDEX ciMegtartottOrak on #megtartottOrak (Datum) DECLARE @MaxOraszam INT = (SELECT ISNULL(MAX(Oraszam), 4) FROM #megtartottOrak) DECLARE @MinOraszam INT = (SELECT ISNULL(MIN(Oraszam), 1) FROM #megtartottOrak) DECLARE @TanulokSzama INT = (SELECT COUNT(DISTINCT TanuloId) FROM #ErtekelesekTemp WHERE TipusId = 1520) DECLARE @TanitasiNapokSzama INT = (SELECT MAX(CAST(Sorszam AS INT)) FROM #NapSorszam) SELECT DISTINCT @osztalyId OsztalyId ,ocs.C_NEV OsztalyNev ,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes ,o.C_OSZTALYFONOKID PartnerID ,ofo.C_NYOMTATASINEV Osztalyfonok ,o.C_OFOHELYETTESID OsztalyfonokHelyettesId ,i.C_IGAZGATONEVE IntezmenyVezeto ,i.C_NEV IntezmenyNeve ,i.C_VAROS IntezmenyVaros ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime ,i.C_OMKOD IntezmenyOMKod ,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOMEGNYITASA) NaploMegnyitasanakDatuma ,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOZARASA) NaploZarasanakDatuma ,o.C_OSZTALYNAPLOZARASA NaplozarasDateFormat ,@TanulokSzama TanulokSzama ,@TanitasiNapokSzama TanitasiNapokSzama ,@MaxOraszam MaxOraszam ,@MinOraszam MinOraszam ,@tanevId TanevId ,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa ,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId ,o.C_TANTERVID TantervId ,o.C_KEPZESIFORMA KepzesiForma ,o.C_AGAZAT Agazat ,o.C_SZAKMACSOPORT SzakmaCsoport ,o.C_SZAKKEPESITES Szakkepesites ,o.C_RESZSZAKKEPESITES Reszszakkepesites ,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves ,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu ,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly ,o.C_NEMZETISEGI OJNemzetisegi ,o.C_KETTANNYELVU OJKettannyelvu ,o.C_NYELVIELOKESZITO OJNyelviElokeszito ,o.C_LOGOPEDIAI OJLogopediai ,o.C_SPORT OJSportOsztaly ,o.C_AJPROGRAM OJAranyJanosProgram ,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F' LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F' WHERE ocs.ID = @osztalyId -- Tanarok IF @isEllenorzo = 0 BEGIN SELECT targy.C_NEV TargyNev ,tanar.C_NYOMTATASINEV TanarNev ,targykategoria.C_ORDER ,tanar.ID TanarId ,tanar.C_OKTATASIAZONOSITO TanarOktAzon FROM T_FELHASZNALO_OSSZES tanar INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID and f.TOROLT='F' INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.TOROLT='F' INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = f.C_OSZTALYCSOPORTID INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId WHERE tanar.TOROLT = 'F' AND f.TOROLT = 'F' AND tanar.C_INTEZMENYID = @intezmenyId AND tanar.c_tanevId = @tanevId GROUP BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV, tanar.ID, tanar.C_OKTATASIAZONOSITO ORDER BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV END ELSE BEGIN SELECT DISTINCT Tanulok.Id TanuloId ,Tantargy.C_NEV TargyNev ,Tanar.C_NYOMTATASINEV TanarNev ,C_ORDER FROM #students Tanulok INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = Tanulok.Id AND TanuloCsoport.TOROLT = 'F' AND @VizsgaltNap BETWEEN C_BELEPESDATUM AND COALESCE(C_KILEPESDATUM, @UtolsoNapTanevRendje, @UtolsoNapTanev) INNER JOIN T_FOGLALKOZAS_OSSZES Foglalkozas ON Foglalkozas.C_OSZTALYCSOPORTID = TanuloCsoport.C_OSZTALYCSOPORTID AND Foglalkozas.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.Id = Foglalkozas.C_TANARID INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = Foglalkozas.C_TANTARGYID INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES TargyKategoria ON TargyKategoria.ID = Tantargy.C_TARGYKATEGORIA INNER JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoria_order ON TargyKategoria.ID = TargyKategoria_order.ID AND TargyKategoria_order.TOROLT = 'F' AND TargyKategoria_order.C_TANEVID = @tanevId ORDER BY C_ORDER END -- Orarend EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum -- Oralatogatasok SELECT dbo.fnGetDokumentumDatumFormatum(T_ORALATOGATAS_OSSZES.C_DATUM) DATUM ,TANITASIORA.C_ORASZAM ORASZAM ,TARGY.C_NEV TARGYNEV ,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV LATOGATO ,T_ORALATOGATAS_OSSZES.C_ORALATOGATOBEOSZTASA LATOGATOBEOSZTAS ,T_ORALATOGATAS_OSSZES.C_MEGJEGYZES ESZREVETEL INTO #Oralatogatas FROM T_ORALATOGATAS_OSSZES INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_ORALATOGATAS_OSSZES.C_ERTEKELOID INNER JOIN (SELECT ID, C_TANTARGYID, C_ORASZAM, C_OSZTALYCSOPORTID FROM T_TANITASIORA_OSSZES ) TANITASIORA ON TANITASIORA.ID = T_ORALATOGATAS_OSSZES.C_MEGTARTOTTORAID INNER JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = TANITASIORA.C_TANTARGYID INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = C_OSZTALYCSOPORTID WHERE T_ORALATOGATAS_OSSZES.TOROLT='F' AND T_ORALATOGATAS_OSSZES.c_tanevId = @tanevId AND T_ORALATOGATAS_OSSZES.C_INTEZMENYID = @intezmenyId ORDER BY T_ORALATOGATAS_OSSZES.C_DATUM, TANITASIORA.C_ORASZAM IF ((SELECT COUNT(1) FROM #Oralatogatas) = 0) BEGIN SELECT NULL DATUM, NULL ORASZAM, NULL TARGYNEV, NULL LATOGATO, NULL LATOGATOBEOSZTAS, '' ESZREVETEL END ELSE BEGIN SELECT DATUM, ORASZAM, TARGYNEV, LATOGATO, LATOGATOBEOSZTAS, ESZREVETEL FROM #Oralatogatas ORDER BY DATUM END -- Naploellenorzesek SELECT DISTINCT dbo.fnGetDokumentumDatumFormatum(C_ELLENORZESDATUMA) ELLENORZESDATUMA ,ELLENORZO.C_NYOMTATASINEV ELLENORZOSZEMELY ,T_NAPLOELLENORZES_OSSZES.C_ESZREVETEL ESZREVETEL INTO #NaploEllenorzes FROM T_NAPLOELLENORZES_OSSZES INNER JOIN T_FELHASZNALO_OSSZES ELLENORZO ON ELLENORZO.ID = T_NAPLOELLENORZES_OSSZES.C_ELLENORZOSZEMELYID WHERE C_OSZTALYID = @osztalyId AND T_NAPLOELLENORZES_OSSZES.TOROLT = 'F' AND T_NAPLOELLENORZES_OSSZES.c_tanevId=@tanevId IF ((SELECT COUNT(1) FROM #NaploEllenorzes) = 0) BEGIN SELECT NULL ELLENORZESDATUMA, NULL ELLENORZOSZEMELY, NULL ESZREVETEL END ELSE BEGIN SELECT ELLENORZESDATUMA, ELLENORZOSZEMELY, ESZREVETEL FROM #NaploEllenorzes END /* Napló */ DECLARE @HetUtolsoNapjaMegtartottOra INT = (SELECT IIF(MAX(HetNapja) IS NULL OR MAX(HetNapja) <= 1412 , 1412, MAX(HetNapja)) FROM #megtartottOrak) DECLARE @HetUtolsoNapjaTanevendje INT = (SELECT ISNULL(MAX(C_HETNAPJA), 1412) FROM #NapSorszam NapSorszam INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = NapSorszam.Datum AND NaptariNap.C_TANEVID = @tanevId ) DECLARE @HetUtolsoNapja INT = (SELECT IIF(@HetUtolsoNapjaMegtartottOra >= @HetUtolsoNapjaTanevendje, @HetUtolsoNapjaMegtartottOra, @HetUtolsoNapjaTanevendje)) SELECT nh.C_HETSORSZAMA ,dbo.fnGetDokumentumDatumFormatum(MIN(nn.C_NAPDATUMA)) ,dbo.fnGetDokumentumDatumFormatum(MAX(nn.C_NAPDATUMA)) FROM T_NAPTARINAP_OSSZES nn INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F' WHERE nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap AND nn.C_HETNAPJA BETWEEN 1407 AND @HetUtolsoNapja AND nn.TOROLT='F' AND nn.C_TANEVID = @tanevId GROUP BY nh.C_HETSORSZAMA ORDER BY MIN(nn.C_NAPDATUMA) CREATE TABLE #OsszesOra ( Datum DateTime ,FormatDate NVARCHAR(100) ,Oraszam INT ,HetSorszama INT ,HetNapja NVARCHAR(100) ,Megjegyzes NVARCHAR(1000) ,Sorszam NVARCHAR(30) ) INSERT INTO #OsszesOra SELECT Datum ,FormatDate ,Oraszam ,HetSorszama ,HetNapja ,IIF(RIGHT(Megjegyzes, 1) = ',', LEFT(Megjegyzes, LEN(Megjegyzes) - 1), Megjegyzes) Megjegyzes ,Sorszam FROM( SELECT C_NAPDATUMA Datum ,dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) FormatDate ,oraszam Oraszam ,nh.C_HETSORSZAMA HetSorszama ,AlapHetnapja.C_NAME HetNapja , ISNULL(trNaptipus.C_NAME + ',', '') + IIF(LEN(ISNULL(tr.C_MEGJEGYZES, '')) = 0, '', ' ' + tr.C_MEGJEGYZES + ',') + IIF(LEN(ISNULL(osztalyCsoportTanevRendje.Megjegyzes, '')) = 0, '', ' ' + osztalyCsoportTanevRendje.Megjegyzes + ',') + IIF(tr.C_HETNAPJA <> nn.C_ALAPHETNAPJA, ' (' + Hetnapja.C_NAME +')', '') Megjegyzes ,ISNULL(Sorszam,'-') Sorszam FROM T_NAPTARINAP_OSSZES nn INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F' LEFT JOIN #NapSorszam sorszam ON sorszam.Datum = nn.C_NAPDATUMA LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_TANEVID = nn.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' LEFT JOIN ( SELECT C_DATUM ,ISNULL(trNaptipus.C_NAME + ', ', '') + ISNULL('(' + HetNapja.C_NAME + ')', '') + ISNULL(C_MEGJEGYZES, '') Megjegyzes FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES HetNapja ON HetNapja.ID = tr.C_HETNAPJA AND HetNapja.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA AND trNaptipus.C_TANEVID = @tanevId AND tr.C_NAPTIPUSA <> 1385 WHERE C_OSZTALYCSOPORTID = @osztalyId AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' ) osztalyCsoportTanevRendje ON osztalyCsoportTanevRendje.C_DATUM = nn.C_NAPDATUMA LEFT JOIN T_DICTIONARYITEMBASE_OSSZES trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA AND trNaptipus.C_TANEVID = @tanevId AND tr.C_NAPTIPUSA <> 1385 LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AlapHetnapja ON AlapHetnapja.Id = nn.C_ALAPHETNAPJA AND AlapHetnapja.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Hetnapja ON Hetnapja.Id = nn.C_HETNAPJA AND Hetnapja.C_TANEVID = @tanevId CROSS JOIN (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25)) oraszam(oraszam) WHERE nn.C_TANEVID = @tanevId AND nn.TOROLT = 'F' AND nn.C_NAPDATUMA <= @UtolsoNap AND oraszam <= @MaxOraszam AND nn.C_HETNAPJA BETWEEN 1407 AND @HetUtolsoNapja ) NapAdatok IF (@MinOraszam > 0) BEGIN DELETE FROM #OsszesOra WHERE Oraszam = 0 END IF @isSzovegesNaplo = 0 BEGIN /* NORMÁL OSZTÁLYNAPLÓ */ DECLARE @selectList nvarchar(MAX), @pivotList nvarchar(MAX) SELECT MulasztasokKulso.Datum Datum ,Felhasznalo.C_NYOMTATASINEV + ' [' + STUFF(( SELECT ', ' + CAST(MulasztasokBelso.Oraszam AS VARCHAR(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '') FROM #mulasztasTmp MulasztasokBelso WHERE MulasztasokBelso.Datum = MulasztasokKulso.Datum AND MulasztasokBelso.TanuloId = MulasztasokKulso.TanuloId AND MulasztasokBelso.TanuloCsoportId = MulasztasokKulso.TanuloCsoportId ORDER BY Datum, Oraszam FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') + '] ' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'T', 1, 0)) AS VARCHAR(5)) + '/' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'F', 1, 0)) AS VARCHAR(5)) Hianyzas INTO #hianyzasokTMP FROM #mulasztasTmp MulasztasokKulso INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = MulasztasokKulso.TanuloId GROUP BY MulasztasokKulso.Datum, MulasztasokKulso.TanuloId, TanuloCsoportId, Felhasznalo.C_NYOMTATASINEV CREATE CLUSTERED INDEX ci2 on #hianyzasokTMP (datum) SELECT Datum ,STUFF(( SELECT CHAR(13) + CHAR(10) + Hianyzas FROM #hianyzasokTMP bHianyzasok WHERE Hianyzasok.Datum = bHianyzasok.Datum FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,2,'') AS Hianyzas INTO #hianyzasok FROM #hianyzasokTMP Hianyzasok SELECT DISTINCT Datum ,HetSorszama ,HetNapja ,Oraszam ,STUFF((SELECT CAST(bmto.TantargyNev AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM #megtartottOrak bmto WHERE bmto.Datum = mto.Datum AND bmto.Oraszam = mto.Oraszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Tantargy INTO #Orarend FROM #megtartottOrak mto SELECT DISTINCT Datum ,@MinOraszam Oraszam ,TantargyPedagogussal ,STUFF((SELECT DISTINCT CAST(bmto.TemaOraSzammal AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM #megtartottOrak bmto WHERE bmto.Datum = mto.Datum AND bmto.TantargyPedagogussal = mto.TantargyPedagogussal FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Tema INTO #1nap1TantargyTobbOra FROM #megtartottOrak mto DECLARE @tantargyakNevvel NVARCHAR(MAX) SELECT @tantargyakNevvel = ISNULL(@tantargyakNevvel + ', ', '') + '[' + IIF(LEN(TantargyPedagogussal) > 128, SUBSTRING(TantargyPedagogussal, 1, 120) + '...', TantargyPedagogussal) + ']' FROM (SELECT DISTINCT TantargyPedagogussal, C_TARGYKATEGORIA FROM #megtartottOrak m INNER JOIN T_TANTARGY_OSSZES t ON t.Id = m.TantargyId ) t ORDER BY C_TARGYKATEGORIA DECLARE @sql NVARCHAR(MAX) SET @sql = ' SELECT Datum ,Oraszam , ' + @tantargyakNevvel +' INTO #naplo FROM #1nap1TantargyTobbOra PIVOT (MAX(Tema) FOR TantargyPedagogussal IN (' + @tantargyakNevvel + ')) piv SELECT DISTINCT OsszesOra.FormatDate C_NAPDATUMA ,Hianyzas Mulasztas ,OsszesOra.Oraszam ORASZAM ,NULL T1ID ,NULL T2ID ,NULL T3ID ,Orarend.Tantargy TANTARGY ,OsszesOra.HetSorszama C_HETSORSZAMA ,OsszesOra.HetNapja C_HETNAPJA_DNAME ,OsszesOra.Sorszam NapSorszama ,OsszesOra.Megjegyzes Megjegyzés ,' + @tantargyakNevvel + ' FROM #OsszesOra OsszesOra LEFT JOIN #Orarend Orarend ON Orarend.Datum = OsszesOra.Datum AND Orarend.Oraszam = OsszesOra.Oraszam LEFT JOIN #naplo Naplo ON Naplo.Datum = OsszesOra.Datum AND Naplo.Oraszam = OsszesOra.Oraszam LEFT JOIN #hianyzasok Hianyzasok ON Hianyzasok.Datum = OsszesOra.Datum ORDER BY OsszesOra.FormatDate, Oraszam ' IF @sql IS NULL BEGIN SELECT NULL C_NAPDATUMA ,NULL Mulasztas ,NULL Megjegyzés ,NULL ORASZAM ,NULL T1ID ,NULL T2ID ,NULL T3ID ,NULL TANTARGY ,NULL C_HETSORSZAMA ,NULL C_HETNAPJA_DNAME ,NULL NapSorszama END ELSE BEGIN EXEC sp_executesql @sql END DROP TABLE #1nap1TantargyTobbOra DROP TABLE #OsszesOra DROP TABLE #hianyzasokTMP DROP TABLE #hianyzasok DROP TABLE #Orarend END -- NORMÁL OSZTÁLYNAPLÓ ELSE BEGIN -- SZÖVEGES OSZTÁLYNAPLÓ SELECT OsszesOra.Datum C_NAPDATUMA ,OsszesOra.HetNapja Napneve ,OsszesOra.Megjegyzes C_MEGJEGYZES ,nh.C_HETKEZDONAPJA C_HETKEZDONAPJA ,nh.C_HETUTOLSONAPJA C_HETUTOLSONAPJA ,OsszesOra.HetSorszama C_HETSORSZAMA ,OsszesOra.Oraszam OraSorszam ,OsszesOra.Sorszam Napszam ,Tantargynev Tantargy ,PedagogusNev Tanar ,Tema Oraanyaga ,OraSorszam C_ORAEVESSORSZAM INTO #szoveges FROM #OsszesOra OsszesOra LEFT JOIN #megtartottOrak mto ON mto.Datum = OsszesOra.Datum AND OsszesOra.Oraszam = mto.Oraszam INNER JOIN T_NAPTARIHET_OSSZES nh ON OsszesOra.Datum BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId and nh.torolt='F' CREATE CLUSTERED INDEX ci4 ON [#szoveges] ([C_NAPDATUMA]) SELECT DISTINCT dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) C_NAPDATUMA ,Napneve ,C_MEGJEGYZES ,C_HETKEZDONAPJA ,C_HETUTOLSONAPJA ,C_HETSORSZAMA ,OraSorszam ,Napszam ,(SELECT CAST(bszov.TANTARGY AS NVARCHAR(MAX)) + NCHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH('')) TANTARGY ,(SELECT CAST(bszov.TANAR AS NVARCHAR(MAX)) + NCHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH('')) TANAR ,(SELECT CAST(bszov.ORAANYAGA AS NVARCHAR(MAX)) + NCHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH('')) ORAANYAGA ,(SELECT CAST(bszov.C_ORAEVESSORSZAM AS NVARCHAR(MAX)) + NCHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH('')) OraEvesSorszama FROM #szoveges szov ORDER BY dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA), orasorszam /*Hiányzások*/ SELECT NapiMulasztas.HetSorszama ,TanuloNeve ,NapiMulasztas.TanuloId ,MAX(Hetfo) Hetfo ,MAX(Kedd) Kedd ,MAX(Szerda) Szerda ,MAX(Csutortok) Csutortok ,MAX(Pentek) Pentek ,MAX(Szombat) Szombat ,HetiMulasztas FROM ( SELECT HetSorszama ,TanuloNeve ,TanuloId ,TanuloCsoportId ,[1408] Hetfo ,[1409] Kedd ,[1410] Szerda ,[1411] Csutortok ,[1412] Pentek ,[1413] Szombat FROM ( SELECT DISTINCT HetSorszama ,C_NYOMTATASINEV TanuloNeve ,TanuloId ,TanuloCsoportId ,Datum ,C_ALAPHETNAPJA Hetnapja ,'[' + STUFF(( SELECT ', ' + CAST(MulasztasokBelso.Oraszam AS VARCHAR(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '') FROM #mulasztasTmp MulasztasokBelso WHERE MulasztasokBelso.Datum = MulasztasokKulso.Datum AND MulasztasokBelso.TanuloId = MulasztasokKulso.TanuloId AND MulasztasokBelso.TanuloCsoportId = MulasztasokKulso.TanuloCsoportId ORDER BY Datum, Oraszam FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 2, '') + '] ' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'T', 1, 0)) AS VARCHAR(5)) + '/' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'F', 1, 0)) AS VARCHAR(5)) Hianyzas FROM #mulasztasTmp MulasztasokKulso INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = MulasztasokKulso.TanuloId INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = MulasztasokKulso.Datum AND NaptariNap.C_TANEVID = @tanevId GROUP BY Hetsorszama, C_NYOMTATASINEV, TanuloId, TanuloCsoportId, Datum, C_ALAPHETNAPJA, TanuloId ) OsszefuzottMulasztasok PIVOT (MAX(Hianyzas) FOR HetNapja IN ([1408], [1409], [1410], [1411], [1412], [1413])) piv ) NapiMulasztas INNER JOIN #HetiMulasztasok HetiMulasztasok ON HetiMulasztasok.HetSorszama = NapiMulasztas.HetSorszama AND HetiMulasztasok.TanuloId = NapiMulasztas.TanuloId AND HetiMulasztasok.TanuloCsoportId = NapiMulasztas.TanuloCsoportId GROUP BY NapiMulasztas.HetSorszama,TanuloNeve,NapiMulasztas.TanuloId, HetiMulasztas END --SZÖVEGES OSZTÁLYNAPLÓ /*TANULÓ adatai*/ SELECT TanuloId ,TanuloCsoportId ,Sorszam ,TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,Allampolgarsaga ,DiakIgazolvanySzam ,KilepesDatum ,BeirasiNaploSorszam ,AktualisOsztaly AS OsztalyNev INTO #TanuloAlapAdatok FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) SELECT TanuloId ,TanuloCsoportId ,Sorszam ,TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,Allampolgarsaga ,DiakIgazolvanySzam ,KilepesDatum ,BeirasiNaploSorszam ,OsztalyNev FROM #TanuloAlapAdatok ORDER BY Sorszam /*TANULÓ elérhetoségei */ CREATE TABLE #Gondviselok (TanuloId INT, GondviseloId INT PRIMARY KEY CLUSTERED) INSERT INTO #Gondviselok SELECT TanuloId ,GondviseloId FROM fnGetDokumentumGondviselok (@osztalyId, @tanevId, 'F', 'T') WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) CREATE TABLE #TanuloCimTable (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX)) INSERT INTO #TanuloCimTable SELECT DISTINCT TanuloId ,STUFF(( SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @osztalyId) btemp WHERE temp.TanuloId = btemp.TanuloId AND temp.CimTipusa = btemp.CimTipusa FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,cimTipusa.C_NAME FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @osztalyId) temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa AND cimTipusa.C_TANEVID = @tanevId WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) CREATE TABLE #GondViseloCimTable (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX)) INSERT INTO #GondViseloCimTable SELECT GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @osztalyId) btemp WHERE temp.GondviseloId = btemp.GondviseloId AND temp.CimTipusa = btemp.CimTipusa FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,cimTipusa.C_NAME FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @osztalyId) temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa AND cimTipusa.C_TANEVID = @tanevId WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) CREATE TABLE #EmailCimTableTemp (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT) INSERT INTO #EmailCimTableTemp SELECT tanulo.Id ,C_EMAILCIM ,C_GONDVISELOID FROM #students tanulo INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = tanulo.Id WHERE email.TOROLT = 'F' AND email.C_TANEVID = @tanevId AND LEN(C_EMAILCIM) > 0 UNION SELECT TanuloId ,C_EMAILCIM ,GondviseloId FROM #Gondviselok INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId WHERE email.TOROLT = 'F' AND email.C_TANEVID = @tanevId AND LEN(C_EMAILCIM) > 0 CREATE TABLE #EmailCimTanuloTable(FelhasznaloId INT, EmailCim NVARCHAR(MAX), INDEX IX_EmailCimTanuloTable CLUSTERED (FelhasznaloId)) INSERT INTO #EmailCimTanuloTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM #EmailCimTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND btemp.GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Email FROM #EmailCimTableTemp temp WHERE GondviseloId IS NULL CREATE TABLE #EmailCimGondviseloTable(GondviseloId INT PRIMARY KEY CLUSTERED, EmailCim NVARCHAR(MAX)) INSERT INTO #EmailCimGondviseloTable SELECT DISTINCT GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM #EmailCimTableTemp btemp WHERE temp.GondviseloId = btemp.GondviseloId AND btemp.GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Email FROM #EmailCimTableTemp temp WHERE GondviseloId IS NOT NULL CREATE TABLE #TelefonTableTemp(FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT, index ix_Ci_telefon (FelhasznaloId)) INSERT INTO #TelefonTableTemp SELECT tanulo.Id ,C_TELEFONSZAM ,C_GONDVISELOID FROM #students tanulo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = tanulo.Id WHERE telefon.TOROLT = 'F' AND telefon.C_TANEVID = @tanevId AND LEN(telefon.C_TELEFONSZAM) > 0 UNION SELECT TanuloId ,C_TELEFONSZAM ,GondviseloId FROM #Gondviselok gondviselo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId WHERE telefon.TOROLT = 'F' AND telefon.C_TANEVID = @tanevId AND LEN(telefon.C_TELEFONSZAM) > 0 CREATE TABLE #TanuloTelefonTable(FelhasznaloId INT PRIMARY KEY CLUSTERED, Telefon NVARCHAR(MAX)) INSERT INTO #TanuloTelefonTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM #TelefonTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') FROM #TelefonTableTemp temp WHERE GondviseloId IS NULL CREATE TABLE #GondviseloTelefonTable(GondviseloId INT PRIMARY KEY CLUSTERED,Telefon NVARCHAR(MAX)) INSERT INTO #GondviseloTelefonTable SELECT DISTINCT GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM #TelefonTableTemp btemp WHERE temp.GondviseloId = btemp.GondviseloId AND temp.FelhasznaloId = btemp.FelhasznaloId AND GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') FROM #TelefonTableTemp temp WHERE GondviseloId IS NOT NULL SELECT s.ID tanuloid ,cim.Cimtipusa cimtipus ,cim.Cim ,email.EmailCim email ,telefon.Telefon telefonszam FROM #students s LEFT JOIN #TanuloCimTable cim ON cim.FelhasznaloId = s.ID LEFT JOIN #EmailCimTanuloTable email ON email.FelhasznaloId = s.ID LEFT JOIN #TanuloTelefonTable telefon ON telefon.FelhasznaloId = s.ID ORDER BY Cimtipusa /* TANULÓ mentesség */ SELECT TanuloId ,TanuloCsoportId ,ROW_NUMBER() OVER(PARTITION BY TanuloId, TanuloCsoportId ORDER BY TanuloId, TanuloCsoportId) Sorszam ,TantargyNev ,MentessegOka FROM fnGetDokumentumTanuloMentessegei(@tanevId, @osztalyId, DEFAULT) WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) /* TANULÓ határozatok */ SELECT s.ID as tanuloID ,s.TanuloCsoportId ,ROW_NUMBER() OVER(PARTITION BY s.ID, s.TanuloCsoportId ORDER BY s.ID, s.TanuloCsoportId) AS sorszam ,dbo.fnGetDokumentumDatumFormatum(Datum) as datum ,d.C_NAME as tipus ,Tartalom as tartalom ,FeljegyzoNeve as tanar FROM #studentsWithTanuloCsoport s INNER JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND d.C_TANEVID = @tanevId WHERE BelepesDatum <= feljegyzes.Datum AND (KilepesDatum IS NULL OR KilepesDatum >= feljegyzes.Datum) AND Tipusa IN (1543, 1544, 1547, 1548, 1549, 1550, 1551, 1552, 1553) /* TANULÓ feljegyzései */ SELECT s.ID TanuloID ,s.TanuloCsoportId TanuloCsoportId ,ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) Sorszam ,dbo.fnGetDokumentumDatumFormatum(Datum) Datum ,d.C_NAME Tipus ,Tartalom Tartalom ,FeljegyzoNeve Tanar FROM #studentsWithTanuloCsoport s INNER JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND d.C_TANEVID = @tanevId WHERE BelepesDatum <= feljegyzes.Datum AND (KilepesDatum IS NULL OR KilepesDatum >= feljegyzes.Datum) AND (@isEllenorzo = 1 OR (Tipusa IN ( --KRETA-5569 1535, 1536, 1540, 1541, 1542, 6491, 6906, 6907, 6950, 6970 ) ) OR Tipusa BETWEEN 5450 AND 5481 OR Tipusa BETWEEN 6312 AND 6328 OR Tipusa BETWEEN 6870 AND 6875 OR Tipusa BETWEEN 6945 AND 6947 ) ORDER BY dbo.fnGetDokumentumDatumFormatum(Datum) /* TANULO mulasztása */ EXEC sp_GetDokumentumMulasztasokIdoszakonkent @tanevId = @tanevId, @osztalyCsoportId = @osztalyId, @iskolaErdekuSzamit = @iskolaErdekuSzamit, @isReszletesMulasztasok = @isReszletesMulasztasok /*gondviselo elérhetoségei */ SELECT DISTINCT Gondviselok.TanuloId Id ,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' C_NEV ,cim.Cimtipusa C_CIMTIPUSA ,cim.cim C_OSSZETETTCIM ,telefon.telefon C_TELEFONSZAM ,email.emailcim C_EMAILCIM FROM fnGetDokumentumGondviselok (@osztalyId, @tanevId, 'F', 'T') Gondviselok INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = Gondviselok.RokonsagifokId AND RokonsagiFok.C_TANEVID = @tanevId LEFT JOIN #EmailCimGondviseloTable email ON email.GondviseloId = Gondviselok.GondviseloId LEFT JOIN #GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselok.GondviseloId LEFT JOIN #GondViseloCimTable cim ON cim.GondviseloId = Gondviselok.GondviseloId WHERE (@tanuloId IS NULL OR Gondviselok.TanuloId = @tanuloId) ORDER BY Cimtipusa /*TANULÓ osztályzatai*/ --Osztályhoz tartozó értékelések EXEC sp_GetDokumentumErtekelesekIdoszakonkent @tanevId = @tanevId, @osztalyCsoportId = @osztalyId, @ertekelesTipusa = NULL, @csakTanorai = 1, @csakKivlasztottOsztalyCsoport = 0, @atsoroltTanuloErtekelesek = 0, @fuggolegesTantargyak = @fuggolegesTantargyak /* TANULÓ záradékai */ SELECT TanuloId ,TanuloCsoportId ,Bejegyzes Zaradek FROM fnGetDokumentumTanuloZaradekai(@tanevId, @osztalyId) WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) /*Szöveges minosítések*/ SELECT a.tanuloId ,a.TanuloCsoportId ,a.Honap ,a.Tantargy ,a.Ertekeles ,a.Tipus FROM ( SELECT s.id tanuloId ,s.TanuloCsoportId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #studentsWithTanuloCsoport s INNER JOIN (SELECT TanuloId tanuloId ,TanuloCsoportId ,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap ,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) Tantargy ,ErtekelesSzoveg + ISNULL(' *' + ErtekelesTema, '') Ertekeles ,ErtekelesTipusDictionary.C_NAME Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesSzoveg IS NOT NULL ) szoveges on szoveges.TANULOID=s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId UNION SELECT s.id tanuloId ,s.TanuloCsoportId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #studentsWithTanuloCsoport s INNER JOIN (SELECT ErtekelesTemp.TanuloId tanuloId ,ErtekelesTemp.TanuloCsoportId ,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap ,'Magatartás' Tantargy ,ErtekelesTemp.MagatartasSzoveg + ISNULL(' *' + ErtekelesTema, '') Ertekeles ,ErtekelesTipusDictionary.C_NAME Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesTemp.MagatartasSzoveg IS NOT NULL ) szoveges on szoveges.TANULOID=s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId UNION SELECT s.id tanuloId ,s.TanuloCsoportId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #studentsWithTanuloCsoport s INNER JOIN (SELECT ErtekelesTemp.TanuloId tanuloId ,TanuloCsoportId ,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap ,'Szorgalom' Tantargy ,ErtekelesTemp.SzorgalomSzoveg + ISNULL(' *' + ErtekelesTema, '') Ertekeles ,ErtekelesTipusDictionary.C_NAME Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesTemp.SzorgalomSzoveg IS NOT NULL ) szoveges on szoveges.TANULOID = s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId )a ORDER BY RendezHonap, Tantargy --Közösségi szolgálat SELECT TanuloId ,TanuloCsoportId ,Datum ,ISNULL(' - ' + Megjegyzes, '') Megjegyzes ,Oraszam ,TeljesitesHelye ,FeljegyzoNeve ,Tipus FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) KozossegiSzolgalat WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) ORDER BY IntervallumKezdete --Félévi, év végi mulasztások CREATE TABLE #FeleviMulasztasok ( TanuloId INT ,TanuloCsoportId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,ElmeletOsszes INT ,GyakorlatOsszes INT ,Osszes INT ) INSERT INTO #FeleviMulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyId = @osztalyId, @tanevId = @tanevId, @elmeletGyakorlat = 1, @kesesTipus = 1499, @elmeletiOraPercben = 45, @gyakorlatiOraPercben = 45, @ertekelesTipus = 1519, @iskolaErdekuSzamit = @iskolaErdekuSzamit CREATE TABLE #EvVegiMulasztasok ( TanuloId INT ,TanuloCsoportId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,ElmeletOsszes INT ,GyakorlatOsszes INT ,Osszes INT ) INSERT INTO #EvVegiMulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyId = @osztalyId, @tanevId = @tanevId, @elmeletGyakorlat = 1, @kesesTipus = 1499, @elmeletiOraPercben = 45, @gyakorlatiOraPercben = 45, @ertekelesTipus = 1520, @iskolaErdekuSzamit = @iskolaErdekuSzamit SELECT TanuloAlapAdatok.tanuloId TanuloId ,ISNULL(FeleviMulasztasok.ElmeletIgazolt, 0) FeleviElmeletIgazolt ,ISNULL(FeleviMulasztasok.ElmeletIgazolatlan, 0) FeleviElmeletIgazolatlan ,ISNULL(FeleviMulasztasok.GyakorlatIgazolT, 0) FeleviGyakorlatIgazolt ,ISNULL(FeleviMulasztasok.GyakorlatIgazolatlan, 0) FeleviGyakorlatIgazolatlan ,ISNULL(FeleviMulasztasok.ElmeletIgazolt + FeleviMulasztasok.ElmeletIgazolatlan, 0) FeleviElmelet ,ISNULL(FeleviMulasztasok.GyakorlatIgazolt + FeleviMulasztasok.GyakorlatIgazolatlan, 0) FeleviGyakorlat ,ISNULL(EvVegiMulasztasok.ElmeletIgazolt, 0) EvVegiElmeletIgazolt ,ISNULL(EvVegiMulasztasok.ElmeletIgazolatlan, 0) EvVegiElmeletIgazolatlan ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt, 0) EvVegiGyakorlatIgazolt ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolatlan, 0) EvVegiGyakorlatIgazolatlan ,ISNULL(EvVegiMulasztasok.ElmeletIgazolt + EvVegiMulasztasok.ElmeletIgazolatlan, 0) EvVegiElmelet ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt + EvVegiMulasztasok.GyakorlatIgazolatlan, 0) EvVegiGyakorlat ,ISNULL(FeleviMulasztasok.Osszes, 0) FeleviOsszes ,ISNULL(FeleviMulasztasok.Igazolt, 0) FeleviIgazolt ,ISNULL(FeleviMulasztasok.Igazolatlan, 0) FeleviIgazolatlan ,ISNULL(EvVegiMulasztasok.Osszes, 0) EvVegiOsszes ,ISNULL(EvVegiMulasztasok.Igazolt, 0) EvVegiIgazolt ,ISNULL(EvVegiMulasztasok.Igazolatlan, 0) EvVegiIgazolatlan ,oktAzon oktAzon ,tanuloNeve tanuloNeve FROM #TanuloAlapAdatok TanuloAlapAdatok LEFT JOIN #EvVegiMulasztasok EvVegiMulasztasok ON EvVegiMulasztasok.TanuloId = TanuloAlapAdatok.TanuloId AND EvVegiMulasztasok.TanuloCsoportId = TanuloAlapAdatok.TanuloCsoportId LEFT JOIN #FeleviMulasztasok FeleviMulasztasok ON FeleviMulasztasok.TanuloId = TanuloAlapAdatok.TanuloId AND FeleviMulasztasok.TanuloCsoportId = TanuloAlapAdatok.TanuloCsoportId ORDER BY sorszam --értékelésekhez tartozó feljegyzések 1. félév SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND Datum <= @FelevVege AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId AND (ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL) FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') JelolesTemaval FROM #ErtekelesekTemp ErtekelesTemaval WHERE LEN(JelolesAndErtekelesTema) > 0 AND Datum <= @FelevVege AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL) --értékelésekhez tartozó feljegyzések 2. félév SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND Datum >= @FelevVege AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId AND (ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL) FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') JelolesTemaval FROM #ErtekelesekTemp ErtekelesTemaval WHERE LEN(JelolesAndErtekelesTema) > 0 AND Datum >= @FelevVege AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL) --értékelésekhez tartozó feljegyzések SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId AND (ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL) FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') JelolesTemaval FROM #ErtekelesekTemp ErtekelesTemaval WHERE LEN(JelolesAndErtekelesTema) > 0 AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL) --összefüggő szakmai gyakorlat SELECT TanuloId ,TanuloCsoportId ,isTeljesitett ,Ertekeles ,Megjegyzes ,Datum FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@tanevId, @osztalyId) WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) --Tanuló tanult tantárgyai SELECT DISTINCT TANULO.ID TanuloId ,TANULO.TanuloCsoportId TanuloCsoportId ,STUFF((SELECT ', ' + IIF(LEN(TantargyNev) > 128, SUBSTRING(TantargyNev,1,120) + '...' , TantargyNev) TantargyNev FROM fnGetDokumentumTanulokTanultTantargyai (@tanevId, @osztalyId) TANTARGYAK WHERE TANTARGYAK.TanuloId = TANULO.Id AND TANTARGYAK.TanuloCsoportId = TANULO.TanuloCsoportId ORDER BY TantargyNev FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') TantargyNev FROM #studentsWithTanuloCsoport TANULO -- Osztály és csoportok a naplóban, az iktatáskor szükséges többszörös Csoport név kulcsszóhoz select * from #osztalycsoportok where OsztalyCsoportId != @osztalyId; -- gyors feljegyzés statisztikák -- Házifeladat hiány SELECT s.ID AS TanuloId ,s.TanuloCsoportId ,feljegyzes.Tantargy ,feljegyzes.Szeptember ,feljegyzes.Oktober ,feljegyzes.November ,feljegyzes.December ,feljegyzes.Januar ,feljegyzes.Februar ,feljegyzes.Marcius ,feljegyzes.Aprilis ,feljegyzes.Majus ,feljegyzes.Junius ,feljegyzes.Felev ,feljegyzes.Ossz FROM #studentsWithTanuloCsoport s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 6325, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) feljegyzes WHERE feljegyzes.TanuloId = s.ID -- Felszerelés hiány SELECT s.ID AS TanuloId ,s.TanuloCsoportId ,feljegyzes.Tantargy ,feljegyzes.Szeptember ,feljegyzes.Oktober ,feljegyzes.November ,feljegyzes.December ,feljegyzes.Januar ,feljegyzes.Februar ,feljegyzes.Marcius ,feljegyzes.Aprilis ,feljegyzes.Majus ,feljegyzes.Junius ,feljegyzes.Felev ,feljegyzes.Ossz FROM #studentsWithTanuloCsoport s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 6324, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) feljegyzes WHERE feljegyzes.TanuloId = s.ID -- Felmentés SELECT s.ID AS TanuloId ,s.TanuloCsoportId ,feljegyzes.Tantargy ,feljegyzes.Szeptember ,feljegyzes.Oktober ,feljegyzes.November ,feljegyzes.December ,feljegyzes.Januar ,feljegyzes.Februar ,feljegyzes.Marcius ,feljegyzes.Aprilis ,feljegyzes.Majus ,feljegyzes.Junius ,feljegyzes.Felev ,feljegyzes.Ossz FROM #studentsWithTanuloCsoport s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 1542, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) feljegyzes WHERE feljegyzes.TanuloId = s.ID --Dicséret SELECT s.ID AS TanuloId ,s.TanuloCsoportId ,feljegyzes.Tantargy ,feljegyzes.Szeptember ,feljegyzes.Oktober ,feljegyzes.November ,feljegyzes.December ,feljegyzes.Januar ,feljegyzes.Februar ,feljegyzes.Marcius ,feljegyzes.Aprilis ,feljegyzes.Majus ,feljegyzes.Junius ,feljegyzes.Felev ,feljegyzes.Ossz FROM #studentsWithTanuloCsoport s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 1536, 1, @FelevVege, s.BelepesDatum, s.KilepesDatum) feljegyzes WHERE feljegyzes.TanuloId = s.ID END GO