SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS uspGetOsztalyNaplo GO CREATE PROCEDURE uspGetOsztalyNaplo @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 @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F') DECLARE @UtolsoNapTanev DATE = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F') DECLARE @isVegzos CHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) DECLARE @VegzosUtolsoNap DATE = (SELECT dbo.fnGetOsztalyVegzosTanitasiNap(@osztalyId, @intezmenyId, @tanevId)) 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 = (SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F') DECLARE @UtolsoNap DATE = IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap, @UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)) DECLARE @VizsgaltNap DATE IF (@tanevId = @AktivtanevId AND @orarendErvenyessegiDatum <= @UtolsoNap) BEGIN IF (@orarendErvenyessegiDatum <= @ElsoNap) 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 @UtolsoNap >= CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap <= 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), [MagatartasSzovegFormazott] NVARCHAR(3), [MagatartasSzovegRovidNev] NVARCHAR(3), [MagatartasErtekId] INT, [MagatartasErtek] NVARCHAR(MAX), [MagatartasErtekOsztalyzatkent] INT, [SzorgalomOsztalyzatId] INT, [SzorgalomOsztalyzatValue] INT, [SzorgalomOsztalyzatNev] NVARCHAR(MAX), [SzorgalomSzoveg] NVARCHAR(MAX), [SzorgalomSzovegFormazott] NVARCHAR(3), [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 ,TanuloCsoportId ,ErtekelesSzoveg ,ErtekelesSzovegFormazott ,ErtekelesSzovegRovidNev ,ErtekelesOsztalyzatId ,ErtekelesOsztalyzatValue ,ErtekelesOsztalyzatNev ,ErtekelesSzazalek ,MagatartasOsztalyzatId ,MagatartasOsztalyzatNev ,MagatartasSzoveg ,MagatartasSzovegFormazott ,MagatartasSzovegRovidNev ,MagatartasErtekId ,MagatartasErtek ,SzorgalomOsztalyzatId ,SzorgalomOsztalyzatNev ,SzorgalomSzoveg ,SzorgalomSzovegFormazott ,SzorgalomSzovegRovidNev ,SzorgalomErtekId ,SzorgalomErtek ,TanuloId ,OsztalyCsoportId ,TantargyId ,TantargyNevZarojellel ,TantargyNev ,TantargyNevNyomtatvanyban ,TargyKategoriaId ,FotargyE ,FotargyId ,Altantargy ,ErtekelesTema ,Jeloles ,JelolesAndErtekelesTema ,isMagatartasSzorgalom ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 INTO #ErtekelesekTemp FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyId, DEFAULT, 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 fnGetKapcsolodoOsztalyCsoportokByDateRange (@osztalyId, @ElsoNap, @UtolsoNap, @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 = @UtolsoNap, @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 ,ocs.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 ,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai ,o.C_SPORT OJSportOsztaly ,o.C_AJPROGRAM OJAranyJanosProgram 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 DISTINCT targy.C_NEV AS TargyNev ,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev ,targykategoria.C_ORDER ,tanar.ID AS TanarId ,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevID, @osztalyId, 'T') AS tanulok INNER JOIN T_TANULOCSOPORT_OSSZES AS tcs ON tcs.C_TANULOID = tanulok.TanuloId AND tcs.C_BELEPESDATUM >= tanulok.BelepesDatum AND (tanulok.KilepesDatum is NULL or tcs.C_BELEPESDATUM < tanulok.KilepesDatum) AND tcs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID INNER JOIN T_FOGLALKOZAS_OSSZES AS fogl ON fogl.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID AND fogl.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES AS tanar ON fogl.C_TANARID = tanar.ID AND tanar.TOROLT='F' INNER JOIN T_MUNKAUGYIADATOK_OSSZES AS munkaugyiAdat ON munkaugyiAdat.C_ALKALMAZOTTID = tanar.ID AND munkaugyiAdat.TOROLT = 'F' INNER JOIN T_TANTARGY_OSSZES AS targy ON targy.ID = fogl.C_TANTARGYID AND targy.TOROLT = 'F' INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevID WHERE fogl.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)) ORDER BY targykategoria.C_ORDER, targy.C_NEV, IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', 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 ISNULL(C_KILEPESDATUM, @UtolsoNap) 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)) CREATE TABLE #HetAdatok (C_HETSORSZAMA INT, Hetesek NVARCHAR(MAX), KezdoDatum DATE, VegeDatum DATE) INSERT INTO #HetAdatok SELECT C_HETSORSZAMA ,STUFF((SELECT ', ' + fh.C_NYOMTATASINEV FROM T_HETES_OSSZES h INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = h.C_TANULOID AND fh.TOROLT = 'F' AND fh.C_TANEVID = h.C_TANEVID WHERE h.C_HETSORSZAMA = T_NAPTARINAP_OSSZES.C_HETSORSZAMA AND h.C_TANEVID = @tanevId AND h.C_OSZTALYCSOPORTID = @osztalyId AND h.TOROLT = 'F' ORDER BY fh.C_NYOMTATASINEV FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,2,'') AS Hetesek ,MIN(C_NAPDATUMA) AS KezdoDatum ,MAX(C_NAPDATUMA) AS VegeDatum FROM T_NAPTARINAP_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap GROUP BY C_HETSORSZAMA SELECT ha.C_HETSORSZAMA ,IIF(ha.Hetesek IS NOT NULL, 'Hetesek: ' + ha.Hetesek,'') + ' ' as Hetesek ,dbo.fnGetDokumentumDatumFormatum(ha.KezdoDatum) ,dbo.fnGetDokumentumDatumFormatum(ha.VegeDatum) FROM #HetAdatok ha 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 ,ha.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 #HetAdatok ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum 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 OsszesOra.Oraszam = @MinOraszam 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, N'@MinOraszam int', @MinOraszam 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 ,dAgazat.C_NAME AS Agazat ,dSzakmacsop.C_NAME AS Szakmacsoport ,dSzakkep.C_NAME AS Szakkepesites INTO #TanuloAlapAdatok FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = TanuloCsoportId AND tcs.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzakmacsop ON dSzakmacsop.ID = tcs.C_SZAKMACSOPORT AND dSzakmacsop.TOROLT = 'F' AND dSzakmacsop.C_TANEVID = tcs.C_TANEVID AND dSzakmacsop.ID != 6084 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dAgazat ON dAgazat.ID = tcs.C_AGAZAT AND dAgazat.TOROLT = 'F' AND dAgazat.C_TANEVID = tcs.C_TANEVID AND dAgazat.ID != 5484 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzakkep ON dSzakkep.ID = tcs.C_SZAKKEPESITES AND dSzakkep.TOROLT = 'F' AND dSzakkep.C_TANEVID = tcs.C_TANEVID AND dSzakkep.ID != 5527 /* Na */ 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 ,Agazat ,Szakmacsoport ,Szakkepesites 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, 0) 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, 0) 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 AND Tipusa NOT IN (1543, 1544, 1547, 1548, 1549, 1550, 1551, 1552, 1553)) 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*/ CREATE TABLE #Tantargyak( ID INT ,C_FOTARGYID INT ,C_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT ,C_NEVNYOMTATVANYBAN NVARCHAR(255) COLLATE DATABASE_DEFAULT ,C_TARGYKATEGORIA INT ,c_tanuloid int ,c_tanulocsoportid int ,RENDEZ1 int ,RENDEZ2 nvarchar(255) COLLATE DATABASE_DEFAULT ,RENDEZ3 int ,RENDEZ4 int ,RENDEZ5 nvarchar(255) COLLATE DATABASE_DEFAULT ,C_INTEZMENYID INT ,C_TANEVID INT ); --Osztályhoz tartozó értékelések EXEC uspGetDokumentumErtekelesekIdoszakonkent @tanevId = @tanevId, @osztalyCsoportId = @osztalyId, @ertekelesTipusa = NULL, @csakTanorai = 1, @csakKivalasztottOsztalyCsoport = 0, @atsoroltTanuloErtekelesek = 0, @fuggolegesTantargyak = @fuggolegesTantargyak, @intezmenyId = @intezmenyId /* TANULÓ záradékai */ SELECT TanuloId ,TanuloCsoportId ,Bejegyzes Zaradek FROM fnGetDokumentumTanuloZaradekai(@tanevId, @osztalyId, 1, 1, 0) 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 ,ErtekelesSzovegFormazott + 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 ErtekelesSzovegFormazott 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.MagatartasSzovegFormazott + 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.MagatartasSzovegFormazott 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.SzorgalomSzovegFormazott + 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.SzorgalomSzovegFormazott 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, 0) 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, @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, @elmeletiOraPercben = 45, @gyakorlatiOraPercben = 45, @ertekelesTipus = 1520, @iskolaErdekuSzamit = @iskolaErdekuSzamit SELECT TanuloAlapAdatok.tanuloId AS TanuloId ,ISNULL(FeleviMulasztasok.ElmeletIgazolt, 0) AS FeleviElmeletIgazolt ,ISNULL(FeleviMulasztasok.ElmeletIgazolatlan, 0) AS FeleviElmeletIgazolatlan ,ISNULL(FeleviMulasztasok.GyakorlatIgazolT, 0) AS FeleviGyakorlatIgazolt ,ISNULL(FeleviMulasztasok.GyakorlatIgazolatlan, 0) AS FeleviGyakorlatIgazolatlan ,ISNULL(FeleviMulasztasok.ElmeletIgazolt + FeleviMulasztasok.ElmeletIgazolatlan, 0) AS FeleviElmelet ,ISNULL(FeleviMulasztasok.GyakorlatIgazolt + FeleviMulasztasok.GyakorlatIgazolatlan, 0) AS FeleviGyakorlat ,ISNULL(EvVegiMulasztasok.ElmeletIgazolt, 0) AS EvVegiElmeletIgazolt ,ISNULL(EvVegiMulasztasok.ElmeletIgazolatlan, 0) AS EvVegiElmeletIgazolatlan ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt, 0) AS EvVegiGyakorlatIgazolt ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolatlan, 0) AS EvVegiGyakorlatIgazolatlan ,ISNULL(EvVegiMulasztasok.ElmeletIgazolt + EvVegiMulasztasok.ElmeletIgazolatlan, 0) AS EvVegiElmelet ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt + EvVegiMulasztasok.GyakorlatIgazolatlan, 0) AS EvVegiGyakorlat ,ISNULL(FeleviMulasztasok.Osszes, 0) AS FeleviOsszes ,ISNULL(FeleviMulasztasok.Igazolt, 0) AS FeleviIgazolt ,ISNULL(FeleviMulasztasok.Igazolatlan, 0) AS FeleviIgazolatlan ,ISNULL(EvVegiMulasztasok.Osszes, 0) AS EvVegiOsszes ,ISNULL(EvVegiMulasztasok.Igazolt, 0) AS EvVegiIgazolt ,ISNULL(EvVegiMulasztasok.Igazolatlan, 0) AS EvVegiIgazolatlan ,oktAzon AS oktAzon ,tanuloNeve AS 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 tanuloNeve --é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üggo 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(TANTARGYAK.C_NEV) > 128, SUBSTRING(TANTARGYAK.C_NEV,1,120) + '...' , TANTARGYAK.C_NEV) TantargyNev FROM #Tantargyak TANTARGYAK LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = TANTARGYAK.c_tanuloid AND tcs.C_OSZTALYCSOPORTID = @osztalyId WHERE TANTARGYAK.c_tanuloid = TANULO.Id AND tcs.ID = TANULO.TanuloCsoportId AND TANTARGYAK.C_NEV NOT IN ('Magatartás', 'Szorgalom') ORDER BY TANTARGYAK.C_NEV 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