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 ,@negyedevreSzamoltMulasztasok bit = 1 ,@igazolasTipusTypeId int = 47 ,@osztalyzatTipusTypeID int = 44 ,@magatartasErtekelesTipusTypeID int = 50 ,@szorgalomErtekelesTipusTypeID int = 51 ,@isOsztalyTanuloOrarendbenNemLatszik bit = NULL ,@isDebug bit = 0 AS BEGIN SET NOCOUNT ON; DECLARE @TanevUtlsoNapja DATE = (SELECT C_UTOLSONAP FROM T_TANEV_OSSZES WHERE ID=@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 @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)) CREATE TABLE #szovegesTemp ( TanuloId int ,TanuloCsoportId int ,Honap nvarchar(100) ,Tantargy nvarchar(510) ,Ertekeles nvarchar(MAX) ,Tipus nvarchar(500) ,RendezHonap int ) 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 fnGetDokumentumKapcsolodoOsztalyCsoportokByDateRange (@osztalyId, @ElsoNap, @TanevUtlsoNapja, @intezmenyId, @tanevId) OsztalyCsoportok INNER JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) TanoraiCeluOsztalyCsoportok on TanoraiCeluOsztalyCsoportok.ID = OsztalyCsoportok.Id CREATE TABLE #RendkivuliTanitasiNapok (C_NAPDATUMA datetime ,C_ALAPHETNAPJA int ,C_HETNAPJA int ,C_TANEVID int ,TOROLT char ,C_HETSORSZAMA int) INSERT INTO #RendkivuliTanitasiNapok SELECT nn.C_NAPDATUMA ,nn.C_ALAPHETNAPJA ,nn.C_HETNAPJA ,nn.C_TANEVID ,nn.TOROLT ,nn.C_HETSORSZAMA FROM T_NAPTARINAP_OSSZES nn INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_TANEVID = nn.C_TANEVID AND tr.C_DATUM > @UtolsoNap AND tr.C_NAPTIPUSA=1406 /* Rendkívüli tanítási nap */ AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' WHERE nn.C_TANEVID=@tanevId AND nn.TOROLT='F' UNION SELECT nn.C_NAPDATUMA ,nn.C_ALAPHETNAPJA ,nn.C_HETNAPJA ,nn.C_TANEVID ,nn.TOROLT ,nn.C_HETSORSZAMA FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = ocstr.C_OSZTALYCSOPORTID INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.ID = ocstr.C_TANEVRENDJEID AND tr.C_DATUM > @UtolsoNap AND tr.C_NAPTIPUSA=1406 /* Rendkívüli tanítási nap */ AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' INNER JOIN T_NAPTARINAP_OSSZES nn ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_TANEVID = nn.C_TANEVID DECLARE @UtolsoRendkivuliTanitasiNap DATETIME = (SELECT MAX(C_NAPDATUMA) FROM #RendkivuliTanitasiNapok) DECLARE @VizsgaltNap DATE DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) 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 (@minTanoraSzam = 0 OR OrakSzama.OrakSzama IS NOT NULL) AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama >= @minTanoraSzam) SELECT TanuloId AS Id ,tanugyiAdatok.C_NAPLOSORSZAM AS NaploSorszam ,tanugyiAdatok.C_TORZSLAPSZAM AS TorzslapSzam ,TanuloCsoport.Id AS TanuloCsoportId ,OsztalyTanuloi.BelepesDatum AS BelepesDatum ,OsztalyTanuloi.KilepesDatum AS KilepesDatum ,tanugyiAdatok.C_TANULOEVFOLYAMTIPUSID AS EvfolyamTipusa --Á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 ,IIF(C_NEVSORREND = 'T', C_UTONEV + ' ' + C_VEZETEKNEV, C_VEZETEKNEV + ' ' + C_UTONEV) AS NevElotagNelkul INTO #mulasztasTmp FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @iskolaErdekuSzamit, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) TanulokMulasztasai INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = TanuloId 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 ,RogzitesDatum ,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 ,RENDEZ0 ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 INTO #ErtekelesekTemp FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, @osztalyzatTipusTypeID, @magatartasErtekelesTipusTypeID, @szorgalomErtekelesTipusTypeID) WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) CREATE CLUSTERED INDEX ci111 on #ErtekelesekTemp (datum, tanulocsoportid) 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 DECLARE @nap DATETIME = (SELECT COALESCE(@UtolsoRendkivuliTanitasiNap, @UtolsoNap)); INSERT INTO #OraSorszamTemp EXEC uspGetOraSorszamByOsztaly @osztalyCsoportId = @ocsId, @datum = @nap, @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 AS TanitasioraId ,tao.C_DATUM AS Datum ,IIF(tao.C_ORASZAM IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108), @tanevId), tao.C_ORASZAM) AS Oraszam ,pedagogus.ID AS PedagogusId ,IIF(C_MEGTARTOTT = 'T', IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV), '-') AS PedagogusNev ,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam) + '.','-'), '-') AS OraSorszam ,IIF(C_MEGTARTOTT = 'T' ,IIF(C_CSENGETESIRENDORAID IS NULL, '(' + CONVERT(VARCHAR(5), C_ORAKEZDETE, 108) + ' - ' + CONVERT(VARCHAR(5), C_ORAVEGE, 108) + ') ', '') + REPLACE(REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), CHAR(0x0002), '') + IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás: ' + helyettesito.C_NYOMTATASINEV +')', '') + IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), ' (Helyettesitve: ' + pedagogus.C_NYOMTATASINEV + IIF(tao.C_HELYETTESITESOKA IS NOT NULL, ' (' + tao.C_HELYETTESITESOKA + ')', '') + ')', '') ,'Elmaradt' + IIF(tao.C_MEGJEGYZES IS NOT NULL, ' - ' + tao.C_MEGJEGYZES, '') ) AS 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),'-') + '.: ' + REPLACE(REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), CHAR(0x0002), '') + IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás, ' + helyettesito.C_NYOMTATASINEV + ')', '') + IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), ' (Helyettesitve: ' + pedagogus.C_NYOMTATASINEV + IIF(tao.C_HELYETTESITESOKA IS NOT NULL, ' (' + tao.C_HELYETTESITESOKA + ')', '') + ')', '') ,'Elmaradt' + IIF(tao.C_MEGJEGYZES IS NOT NULL, ' - ' + tao.C_MEGJEGYZES, '') ) AS TemaOraSzammal ,tao.C_HETNAPJA AS HetNapja ,nh.C_HETSORSZAMA AS HetSorszama ,C_MEGTARTOTT AS Megtartott ,tao.C_TANTARGYID AS TantargyId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN, tantargy.C_NEV) AS Tantargynev ,tao.C_OSZTALYCSOPORTID AS OsztalyCsoportId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, IIF(LEN(C_NEVNYOMTATVANYBAN) + LEN(tantargy.C_NEV) < 90, C_NEVNYOMTATVANYBAN, C_NEVNYOMTATVANYBAN), tantargy.C_NEV) + '-' + CHAR(13) + CHAR(10) + REPLACE(REPLACE(pedagogus.C_NYOMTATASINEV , '[', '('), ']',')') AS TantargyPedagogussal ,nn.C_ALAPHETNAPJA AS AlapHetnapja 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 INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tao.C_DATUM AND nn.C_TANEVID = tao.C_TANEVID AND nn.TOROLT = 'F' WHERE tao.TOROLT = 'F' AND (@isOsztalyTanuloOrarendbenNemLatszik <> 1 OR @isOsztalyTanuloOrarendbenNemLatszik IS NULL OR tantargy.C_ISOSZTALYORARENDBENEMLATSZIK = '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) CREATE TABLE #HetAdatok (C_HETSORSZAMA INT, Hetesek NVARCHAR(MAX), KezdoDatum DATE, VegeDatum DATE, HetUtolsoNapja int) INSERT INTO #HetAdatok SELECT nn.C_HETSORSZAMA ,STUFF((SELECT ', ' ,IIF(C_NEVSORREND = 'T', fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV, fh.C_NYOMTATASINEV) as NevElotagNelkul 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 = nn.C_HETSORSZAMA AND h.C_TANEVID = @tanevId AND h.C_OSZTALYCSOPORTID = @osztalyId AND h.TOROLT = 'F' ORDER BY NevElotagNelkul FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,2,'') AS Hetesek ,MIN(nn.C_NAPDATUMA) AS KezdoDatum ,MAX(nn.C_NAPDATUMA) AS VegeDatum ,( SELECT MAX(HetNapja) FROM (VALUES (IIF(MAX(mo.AlapHetNapja) IS NULL OR MAX(mo.AlapHetNapja) <= 1412 , 1412, MAX(mo.AlapHetNapja))) ,(MAX(tr.C_HETNAPJA)) ,(MAX(trocs.C_HETNAPJA)) ,(MAX(rtn.C_ALAPHETNAPJA)) ) AS HetUtolsoNapja(HetNapja)) AS HetUtolsoNapja FROM T_NAPTARINAP_OSSZES nn LEFT JOIN #megtartottOrak mo ON mo.HetSorszama = nn.C_HETSORSZAMA LEFT JOIN #NapSorszam NapSorszam ON nn.C_NAPDATUMA = NapSorszam.Datum AND nn.C_TANEVID = @tanevId LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND (tr.C_HETNAPJA = 1413 OR tr.C_HETNAPJA = 1414) AND tr.C_NAPTIPUSA <> 1396 AND tr.C_TANEVID = @tanevId AND tr.TOROLT = 'F' LEFT JOIN T_TANEVRENDJE_OSSZES trocs ON trocs.C_DATUM = nn.C_NAPDATUMA AND trocs.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND (trocs.C_HETNAPJA = 1413 OR trocs.C_HETNAPJA = 1414) AND trocs.C_NAPTIPUSA <> 1396 AND trocs.C_TANEVID = @tanevId AND trocs.TOROLT = 'F' LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = trocs.ID AND ocstr.C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok tocs) LEFT JOIN #RendkivuliTanitasiNapok rtn ON rtn.C_NAPDATUMA = nn.C_NAPDATUMA WHERE nn.C_TANEVID = @tanevId AND nn.C_NAPDATUMA BETWEEN @ElsoNap AND COALESCE(@UtolsoRendkivuliTanitasiNap, @UtolsoNap) GROUP BY nn.C_HETSORSZAMA 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 AS Datum ,dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) AS FormatDate ,oraszam AS Oraszam ,ha.C_HETSORSZAMA AS HetSorszama ,AlapHetnapja.C_NAME AS 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 +')', '') AS Megjegyzes ,Sorszam FROM T_NAPTARINAP_OSSZES nn INNER JOIN #HetAdatok ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum AND nn.C_HETNAPJA BETWEEN 1407 AND ha.HetUtolsoNapja 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 ) NapAdatok INSERT INTO #OsszesOra SELECT Datum ,FormatDate ,Oraszam ,HetSorszama ,HetNapja ,IIF(RIGHT(Megjegyzes, 1) = ',', LEFT(Megjegyzes, LEN(Megjegyzes) - 1), Megjegyzes) AS Megjegyzes ,Sorszam FROM ( SELECT nn.C_NAPDATUMA AS Datum ,dbo.fnGetDokumentumDatumFormatum(nn.C_NAPDATUMA) AS FormatDate ,oraszam AS Oraszam ,nn.C_HETSORSZAMA AS HetSorszama ,AlapHetnapja.C_NAME AS 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 +')', '') AS Megjegyzes ,Sorszam FROM #RendkivuliTanitasiNapok nn INNER JOIN #HetAdatok ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum AND nn.C_ALAPHETNAPJA BETWEEN 1407 AND ha.HetUtolsoNapja 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 oraszam <= @MaxOraszam ) NapAdatok IF (@MinOraszam > 0) BEGIN DELETE FROM #OsszesOra WHERE Oraszam = 0 END DECLARE @TanulokSzama INT = (SELECT COUNT(DISTINCT TanuloId) FROM #ErtekelesekTemp WHERE TipusId = 1520) DECLARE @TanitasiNapokSzama INT = (SELECT MAX(CAST(Sorszam AS INT)) FROM #OsszesOra) IF @isDebug = 1 SELECT 'Result01' as [ResultSetName ] 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 AS Agazat ,o.C_SZAKMACSOPORT AS SzakmaCsoport ,o.C_SZAKKEPESITES AS Szakkepesites ,o.C_RESZSZAKKEPESITES AS Reszszakkepesites ,o.C_AGAZATUJSZKTTIPUSID AS UjSzktAgazat ,o.C_SZAKMATIPUSID AS UjSzktSzakma ,o.C_SZAKMAIRANYTIPUSID AS UjSzktSzakmairany ,o.C_TANULMANYITERULETNKTTIPUSID AS NktTanulmanyiTerulet ,o.C_SZAKKEPESITESNKTTIPUSID AS NktSzakkepesites ,o.C_SZAKIRANYNKTTIPUSID AS NktSzakirany ,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves ,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu ,ocs.C_ISTECHNIKAI 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 IF @isDebug = 1 SELECT 'Result02' as [ResultSetName ] SELECT DISTINCT targy.C_NEV AS TargyNev ,targy.C_NEVNYOMTATVANYBAN AS TargyNevNyomtatvanyban ,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev ,tanar.ID AS TanarId ,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon ,targy.C_SORSZAM AS RENDEZ0 ,CASE WHEN targy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END AS RENDEZ1 ,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, targy.C_NEV) AS RENDEZ2 ,ISNULL(targy.C_FOTARGYID, targy.ID) AS RENDEZ3 ,targy.C_FOTARGYID AS RENDEZ4 ,ISNULL(targy.C_NEVNYOMTATVANYBAN, targy.C_NEV) AS RENDEZ5 FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevID, @osztalyId, 'T') 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 AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId AND ocs.TOROLT = 'F' 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' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = targy.C_TARGYKATEGORIA AND TargyKategoriaDictionary.TOROLT = 'F' AND TargyKategoriaDictionary.C_TANEVID = @tanevId LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON targy.C_FOTARGYID = FotargyTable.ID AND FotargyTable.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.TOROLT = 'F' AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID WHERE fogl.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)) AND fogl.TOROLT = 'F' UNION -- Az olyan osztálybontott foglalkozások is kerüljenek bele a listába, ahol a csoportban nincs egy gyerek sem SELECT DISTINCT targy.C_NEV AS TargyNev ,targy.C_NEVNYOMTATVANYBAN AS TargyNevNyomtatvanyban ,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev ,tanar.ID AS TanarId ,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon ,targy.C_SORSZAM AS RENDEZ0 ,CASE WHEN targy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END AS RENDEZ1 ,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, targy.C_NEV) AS RENDEZ2 ,ISNULL(targy.C_FOTARGYID, targy.ID) AS RENDEZ3 ,targy.C_FOTARGYID AS RENDEZ4 ,ISNULL(targy.C_NEVNYOMTATVANYBAN, targy.C_NEV) AS RENDEZ5 FROM T_FOGLALKOZAS_OSSZES AS fogl INNER JOIN T_CSOPORT_OSSZES cs ON cs.C_OSZTALYBONTASID = @osztalyId AND cs.ID = fogl.C_OSZTALYCSOPORTID AND cs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = fogl.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId AND ocs.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' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = targy.C_TARGYKATEGORIA AND TargyKategoriaDictionary.TOROLT = 'F' AND TargyKategoriaDictionary.C_TANEVID = @tanevId LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON targy.C_FOTARGYID = FotargyTable.ID AND FotargyTable.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.TOROLT = 'F' AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID WHERE fogl.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)) AND fogl.TOROLT = 'F' ORDER BY RENDEZ0,RENDEZ1,RENDEZ2,RENDEZ3,RENDEZ4,RENDEZ5, IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) END ELSE BEGIN IF @isDebug = 1 SELECT 'Result03' as [ResultSetName ] SELECT DISTINCT Tanulok.Id AS TanuloId ,Tantargy.C_NEV AS TargyNev ,Tantargy.C_NEVNYOMTATVANYBAN AS TargyNevNyomtatvanyban ,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev ,Tantargy.C_SORSZAM as RENDEZ0 ,CASE WHEN Tantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1 ,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, Tantargy.C_NEV) as RENDEZ2 ,ISNULL(Tantargy.C_FOTARGYID, Tantargy.ID) as RENDEZ3 ,Tantargy.C_FOTARGYID as RENDEZ4 ,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) as RENDEZ5 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_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId AND ocs.TOROLT = 'F' 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 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 Tantargy ON Tantargy.Id = Foglalkozas.C_TANTARGYID AND Tantargy.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = Tantargy.C_TARGYKATEGORIA AND TargyKategoriaDictionary.TOROLT = 'F' AND TargyKategoriaDictionary.C_TANEVID = @tanevId LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON Tantargy.C_FOTARGYID = FotargyTable.ID AND FotargyTable.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.TOROLT = 'F' AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID ORDER BY RENDEZ0,RENDEZ1,RENDEZ2,RENDEZ3,RENDEZ4,RENDEZ5, IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', Tanar.C_NYOMTATASINEV) END -- Orarend IF @isDebug = 1 SELECT 'Result04' as [ResultSetName ] EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum, @isOsztalyTanuloOrarendbenNemLatszik -- 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 IF @isDebug = 1 SELECT 'Result05' as [ResultSetName ] SELECT NULL DATUM, NULL ORASZAM, NULL TARGYNEV, NULL LATOGATO, NULL LATOGATOBEOSZTAS, '' ESZREVETEL END ELSE BEGIN IF @isDebug = 1 SELECT 'Result06' as [ResultSetName ] SELECT DATUM, ORASZAM, TARGYNEV, LATOGATO, LATOGATOBEOSZTAS, ESZREVETEL FROM #Oralatogatas ORDER BY DATUM END -- Naploellenorzesek IF @isDebug = 1 SELECT 'Result07' as [ResultSetName ] 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 IF @isDebug = 1 SELECT 'Result08' as [ResultSetName ] SELECT NULL ELLENORZESDATUMA, NULL ELLENORZOSZEMELY, NULL ESZREVETEL END ELSE BEGIN IF @isDebug = 1 SELECT 'Result09' as [ResultSetName ] SELECT ELLENORZESDATUMA, ELLENORZOSZEMELY, ESZREVETEL FROM #NaploEllenorzes END /* Napló */ IF @isDebug = 1 SELECT 'Result10' as [ResultSetName ] SELECT ROW_NUMBER() OVER (ORDER BY ret.C_HETSORSZAMA) AS TanitasiHetSorszam ,ret.C_HETSORSZAMA ,ret.Hetesek ,dbo.fnGetDokumentumDatumFormatum(ret.KezdoDatum) ,dbo.fnGetDokumentumDatumFormatum(ret.VegeDatum) FROM ( SELECT DISTINCT ha.* FROM #HetAdatok ha INNER JOIN #NapSorszamTemp ns ON ns.Datum >= ha.KezdoDatum and ns.Datum <= ha.VegeDatum )ret UNION SELECT NULL AS TanitasiHetSorszam ,ret.C_HETSORSZAMA ,ret.Hetesek ,dbo.fnGetDokumentumDatumFormatum(ret.KezdoDatum) ,dbo.fnGetDokumentumDatumFormatum(ret.VegeDatum) FROM ( SELECT DISTINCT ha.* FROM #HetAdatok ha LEFT JOIN #NapSorszamTemp ns ON ns.Datum >= ha.KezdoDatum and ns.Datum <= ha.VegeDatum WHERE ns.Datum IS NULL ) ret ORDER BY ret.C_HETSORSZAMA 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, NevElotagNelkul 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 AS C_NAPDATUMA ,Hianyzas AS Mulasztas ,OsszesOra.Oraszam AS ORASZAM ,NULL AS T1ID ,NULL AS T2ID ,NULL AS T3ID ,Orarend.Tantargy AS TANTARGY ,OsszesOra.HetSorszama AS C_HETSORSZAMA ,OsszesOra.HetNapja AS C_HETNAPJA_DNAME ,ISNULL(OsszesOra.Sorszam, ''-'') AS NapSorszama ,OsszesOra.Megjegyzes AS Megjegyzes ,' + @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 IF @isDebug = 1 SELECT 'Result11' as [ResultSetName ] SELECT NULL C_NAPDATUMA ,NULL Mulasztas ,NULL Megjegyzes ,NULL ORASZAM ,NULL T1ID ,NULL T2ID ,NULL T3ID ,NULL TANTARGY ,NULL C_HETSORSZAMA ,NULL C_HETNAPJA_DNAME ,NULL NapSorszama END ELSE BEGIN IF @isDebug = 1 SELECT 'Result12' as [ResultSetName ] 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 AS C_NAPDATUMA ,OsszesOra.HetNapja AS Napneve ,OsszesOra.Megjegyzes AS C_MEGJEGYZES ,nh.C_HETKEZDONAPJA AS C_HETKEZDONAPJA ,nh.C_HETUTOLSONAPJA AS C_HETUTOLSONAPJA ,OsszesOra.HetSorszama AS C_HETSORSZAMA ,OsszesOra.Oraszam AS OraSorszam ,ISNULL(OsszesOra.Sorszam, '-') AS Napszam ,Tantargynev AS Tantargy ,PedagogusNev AS Tanar ,Tema AS Oraanyaga ,OraSorszam AS 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]) IF @isDebug = 1 SELECT 'Result13' as [ResultSetName ] 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*/ IF @isDebug = 1 SELECT 'Result14' as [ResultSetName ] SELECT NapiMulasztas.HetSorszama ,TanuloNeve ,NapiMulasztas.TanuloId ,MAX(Hetfo) AS Hetfo ,MAX(Kedd) AS Kedd ,MAX(Szerda) AS Szerda ,MAX(Csutortok) AS Csutortok ,MAX(Pentek) AS Pentek ,MAX(Szombat) AS Szombat ,HetiMulasztas FROM ( SELECT HetSorszama ,TanuloNeve ,NevElotagNelkul ,TanuloId ,TanuloCsoportId ,[1408] Hetfo ,[1409] Kedd ,[1410] Szerda ,[1411] Csutortok ,[1412] Pentek ,[1413] Szombat FROM ( SELECT DISTINCT HetSorszama ,C_NYOMTATASINEV TanuloNeve ,NevElotagNelkul ,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, MulasztasokKulso.NevElotagNelkul ) 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, NevElotagNelkul ORDER BY NevElotagNelkul END --SZÖVEGES OSZTÁLYNAPLÓ /*TANULÓ adatai*/ SELECT TanuloId ,ta.TanuloCsoportId ,Sorszam ,ta.TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,ta.NevElotagNelkul ,Allampolgarsaga ,DiakIgazolvanySzam ,ta.KilepesDatum ,BeirasiNaploSorszam ,AktualisOsztaly AS OsztalyNev ,dAgazat.C_NAME AS Agazat ,dSzakmacsop.C_NAME AS Szakmacsoport ,dSzakkep.C_NAME AS Szakkepesites ,dSzktAgazat.C_NAME AS SzktAgazat ,dSzktSzakmaTipus.C_NAME AS SzktSzakmaTipus ,dSzktSzakmaiIrany.C_NAME AS SzktSzakmaiIrany ,dNktSzakirany.C_NAME AS NktSzakirany ,dNktSzakkepesites.C_NAME AS NktSzakkepesites ,dNktTanulmanyiTerulet.C_NAME AS NktTanulmanyiTerulet ,AgazatReszszakmaTipus.C_NAME AS AgazatReszszakmaTipus ,ReszszakmaTipus.C_NAME AS ReszszakmaTipus ,SzakmaReszszakma.C_NAME AS SzakmaReszszakma -- Turai: itt azért a megnevezés1 került beállításra, mert jelenleg vannak olyan adatok a megnevezésben (amelyeket most igyekszünk kigyilkolni), amelyek nem jók, nem a jogszabálynak megfelelőek -- Összevont osztály esetén a tanuló évfolyamának megjelenítése, egyéb esetben az osztály/csoport évfolyama ,IIF(ocs.C_EVFOLYAMTIPUSA = 7366, dEvfolyamTipusTanulo.C_NAME_1, dEvfolyamTipusOsztalyCsoport.C_NAME_1) AS EvfolyamTipusa INTO #TanuloAlapAdatok FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) ta INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = ta.TanuloCsoportId AND tcs.TOROLT = 'F' INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tcs.ID = tta.C_TANULOCSOPORTID AND tta.TOROLT = 'F' --okj LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzakmacsop ON dSzakmacsop.ID = tta.C_SZAKMACSOPORTID 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 = tta.C_AGAZATID 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 = tta.C_SZAKKEPESITESID AND dSzakkep.TOROLT = 'F' AND dSzakkep.C_TANEVID = tcs.C_TANEVID AND dSzakkep.ID != 5527 /* Na */ --szkt LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzktAgazat ON dSzktAgazat.ID = tta.C_AGAZATUJSZKTTIPUSID AND dSzktAgazat.TOROLT = 'F' AND dSzktAgazat.C_TANEVID = tcs.C_TANEVID AND dSzktAgazat.ID != 7920 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzktSzakmaTipus ON dSzktSzakmaTipus.ID = tta.C_SZAKMATIPUSID AND dSzktSzakmaTipus.TOROLT = 'F' AND dSzktSzakmaTipus.C_TANEVID = tcs.C_TANEVID AND dSzktSzakmaTipus.ID != 7946 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzktSzakmaiIrany ON dSzktSzakmaiIrany.ID = tta.C_SZAKMAIRANYTIPUSID AND dSzktSzakmaiIrany.TOROLT = 'F' AND dSzktSzakmaiIrany.C_TANEVID = tcs.C_TANEVID AND dSzktSzakmaiIrany.ID != 8122 /* Na */ --nkt LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dNktSzakirany ON dNktSzakirany.ID = tta.C_SZAKIRANYNKTTIPUSID AND dNktSzakirany.TOROLT = 'F' AND dNktSzakirany.C_TANEVID = tcs.C_TANEVID AND dNktSzakirany.ID != 8493 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dNktSzakkepesites ON dNktSzakkepesites.ID = tta.C_SZAKKEPESITESNKTTIPUSID AND dNktSzakkepesites.TOROLT = 'F' AND dNktSzakkepesites.C_TANEVID = tcs.C_TANEVID AND dNktSzakkepesites.ID != 8464 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dNktTanulmanyiTerulet ON dNktTanulmanyiTerulet.ID = tta.C_TANULMANYITERULETNKTTIPUSID AND dNktTanulmanyiTerulet.TOROLT = 'F' AND dNktTanulmanyiTerulet.C_TANEVID = tcs.C_TANEVID AND dNktTanulmanyiTerulet.ID != 8459 /* Na */ --Résszakma LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AgazatReszszakmaTipus ON AgazatReszszakmaTipus.ID = tta.C_AGAZATRESZSZAKMATIPUSID AND AgazatReszszakmaTipus.TOROLT = 'F' AND AgazatReszszakmaTipus.C_TANEVID = tcs.C_TANEVID AND AgazatReszszakmaTipus.ID != 8832 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ReszszakmaTipus ON ReszszakmaTipus.ID = tta.C_RESZSZAKMATIPUSID AND ReszszakmaTipus.TOROLT = 'F' AND ReszszakmaTipus.C_TANEVID = tcs.C_TANEVID AND ReszszakmaTipus.ID != 8895 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES SzakmaReszszakma ON SzakmaReszszakma.ID = tta.C_SZAKMARESZSZAKMATIPUSID AND SzakmaReszszakma.TOROLT = 'F' AND SzakmaReszszakma.C_TANEVID = tcs.C_TANEVID AND SzakmaReszszakma.ID != 8850 /* Na */ /**/ LEFT JOIN #studentsWithTanuloCsoport s ON s.Id = ta.TanuloId AND s.TanuloCsoportId = tcs.ID LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dEvfolyamTipusOsztalyCsoport ON dEvfolyamTipusOsztalyCsoport.ID = ocs.C_EVFOLYAMTIPUSA AND dEvfolyamTipusOsztalyCsoport.TOROLT = 'F' AND dEvfolyamTipusOsztalyCsoport.C_TANEVID = tcs.C_TANEVID AND dEvfolyamTipusOsztalyCsoport.ID != 1296 /* Na */ LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dEvfolyamTipusTanulo ON dEvfolyamTipusTanulo.ID = s.EvfolyamTipusa AND dEvfolyamTipusTanulo.TOROLT = 'F' AND dEvfolyamTipusTanulo.C_TANEVID = tcs.C_TANEVID AND dEvfolyamTipusTanulo.ID != 1296 /* Na */ WHERE (@tanuloId IS NULL OR ta.TanuloId = @tanuloId) IF @isDebug = 1 SELECT 'Result15' as [ResultSetName ] SELECT TanuloId ,TanuloCsoportId ,Sorszam ,TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,NevElotagNelkul ,Allampolgarsaga ,DiakIgazolvanySzam ,KilepesDatum ,BeirasiNaploSorszam ,OsztalyNev ,Agazat ,Szakmacsoport ,Szakkepesites --szkt ,SzktAgazat ,SzktSzakmaiIrany ,SzktSzakmaTipus --nkt ,NktSzakirany ,NktSzakkepesites ,NktTanulmanyiTerulet --Részszakma ,AgazatReszszakmaTipus ,ReszszakmaTipus ,SzakmaReszszakma /**/ ,EvfolyamTipusa FROM #TanuloAlapAdatok ORDER BY CASE WHEN Sorszam IS NULL THEN 1 ELSE 0 END ASC, Sorszam ASC, NevElotagNelkul /*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, NULL, NULL) 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, NULL, NULL) 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, NULL, NULL) 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, NULL, NULL) 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, Alapertelmezett CHAR(1)) INSERT INTO #EmailCimTableTemp SELECT tanulo.Id ,C_EMAILCIM ,C_GONDVISELOID ,C_ALAPERTELMEZETT 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 ,C_ALAPERTELMEZETT 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 AND btemp.Alapertelmezett = 'T' FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Email FROM #EmailCimTableTemp temp WHERE GondviseloId IS NOT NULL AND Alapertelmezett = 'T' CREATE TABLE #TelefonTableTemp(FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT, index ix_Ci_telefon (FelhasznaloId), Alapertelmezett CHAR(1)) INSERT INTO #TelefonTableTemp SELECT tanulo.Id ,C_TELEFONSZAM ,C_GONDVISELOID ,C_ALAPERTELMEZETT 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 ,C_ALAPERTELMEZETT 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 btemp.GondviseloId IS NOT NULL AND btemp.Alapertelmezett = 'T' FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') FROM #TelefonTableTemp temp WHERE GondviseloId IS NOT NULL AND Alapertelmezett = 'T' IF @isDebug = 1 SELECT 'Result16' as [ResultSetName ] 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 */ IF @isDebug = 1 SELECT 'Result17' as [ResultSetName ] 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 */ IF @isDebug = 1 SELECT 'Result18' as [ResultSetName ] 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 */ IF @isDebug = 1 SELECT 'Result19' as [ResultSetName ] 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, 5482)) 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 OR Tipusa >= 100000 ) ORDER BY dbo.fnGetDokumentumDatumFormatum(Datum) /* TANULO mulasztása */ IF @isDebug = 1 SELECT 'Result20' as [ResultSetName ] EXEC sp_GetDokumentumMulasztasokIdoszakonkent @tanevId = @tanevId ,@osztalyCsoportId = @osztalyId ,@iskolaErdekuSzamit = @iskolaErdekuSzamit ,@isReszletesMulasztasok = @isReszletesMulasztasok ,@igazolasTipusTypeId = @igazolasTipusTypeId /*gondviselo elérhetoségei */ IF @isDebug = 1 SELECT 'Result21' as [ResultSetName ] 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 ,RENDEZ0 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 IF @isDebug = 1 SELECT 'Result22' as [ResultSetName ] EXEC uspGetDokumentumErtekelesekIdoszakonkent @tanevId = @tanevId ,@osztalyCsoportId = @osztalyId ,@ertekelesTipusa = NULL ,@csakTanorai = 1 ,@csakKivalasztottOsztalyCsoport = 0 ,@atsoroltTanuloErtekelesek = 0 ,@fuggolegesTantargyak = @fuggolegesTantargyak ,@intezmenyId = @intezmenyId ,@osztalyzatTipusTypeID = @osztalyzatTipusTypeID ,@magatartasErtekelesTipusTypeID = @magatartasErtekelesTipusTypeID ,@szorgalomErtekelesTipusTypeID = @szorgalomErtekelesTipusTypeID ,@pIsOsztalynaplobanNemJelenikMeg = 1 ,@pIsKellKapcsolodoOsztalyCsoportok = 1 ,@pIsTantargynevNyomtatvanyban = 1 /* TANULÓ záradékai */ CREATE TABLE #Zaradekok( TanuloId int ,TanuloCsoportId int ,KeltezesDatuma nvarchar(11) ,KeltezesHelye nvarchar(255) ,Bejegyzes nvarchar(max) ,BejegyzesIdegenNyelven nvarchar(max) ) INSERT INTO #Zaradekok ( TanuloId ,TanuloCsoportId ,KeltezesDatuma ,KeltezesHelye ,Bejegyzes ,BejegyzesIdegenNyelven ) EXEC dbo.uspGetDokumentumTanuloZaradekai @tanevId = @tanevId ,@osztalyId = @osztalyId ,@zaradekTipusId = null ,@idegenNyelvId = 0 ,@dokumentumTipusId = 1 IF @isDebug = 1 SELECT 'Result23' as [ResultSetName ] SELECT TanuloId ,TanuloCsoportId ,KeltezesDatuma ,KeltezesHelye ,Bejegyzes AS Zaradek FROM #Zaradekok WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) /*Szöveges minosítések*/ INSERT INTO #szovegesTemp SELECT a.tanuloId ,a.TanuloCsoportId ,a.Honap ,a.Tantargy ,a.Ertekeles ,a.Tipus ,a.RendezHonap 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 ,IIF(Jeloles IS NOT NULL AND TipusId = 1518, LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz')) + Jeloles + ' ', '') + 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 ,IIF(Jeloles IS NOT NULL AND TipusId = 1518, LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz')) + Jeloles + ' ', '') + 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 ,IIF(Jeloles IS NOT NULL AND TipusId = 1518, LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz')) + Jeloles + ' ', '') + 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 IF @isDebug = 1 SELECT 'Result24' as [ResultSetName ] SELECT DISTINCT kulso.TanuloId ,kulso.TanuloCsoportId ,kulso.Honap ,kulso.Tantargy ,STUFF(((SELECT '
|' + dbo.fnRemoveXmlEvilCharacters(belso.Ertekeles) FROM #szovegesTemp belso WHERE kulso.TanuloId = belso.TanuloId AND kulso.TanuloCsoportId = belso.TanuloCsoportId AND kulso.Honap = belso.Honap AND kulso.Tantargy = belso.Tantargy AND kulso.Tipus = belso.Tipus FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)')) ,1 ,5 ,'') AS Ertekeles ,kulso.Tipus ,kulso.RendezHonap FROM #szovegesTemp kulso ORDER BY kulso.TanuloId, kulso.RendezHonap, kulso.Tantargy --Közösségi szolgálat IF @isDebug = 1 SELECT 'Result25' as [ResultSetName ] SELECT TanuloId ,TanuloCsoportId ,Datum ,ISNULL(' - ' + Megjegyzes, '') Megjegyzes ,Oraszam ,TeljesitesHelye ,FeljegyzoNeve ,Tipus FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId, 0) KozossegiSzolgalat WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) AND KozossegiSzolgalatTanevId = @tanevId 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 ,@negyedevreSzamoltMulasztasok = @negyedevreSzamoltMulasztasok 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 ,@negyedevreSzamoltMulasztasok = @negyedevreSzamoltMulasztasok IF @isDebug = 1 SELECT 'Result26' as [ResultSetName ] 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 ,NevElotagNelkul AS NevElotagNelkul 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 NevElotagNelkul --értékelésekhez tartozó feljegyzések 1. félév IF @isDebug = 1 SELECT 'Result27' as [ResultSetName ] SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', ' + CASE WHEN TipusId = 1522 THEN '(I.): I. negyedéves értékelés' WHEN TipusId = 1523 THEN '(III.): III. negyedéves értékelés' WHEN TipusId = 1524 THEN '(II.): II. negyedéves értékelés' WHEN TipusId = 1525 THEN '(IV.): IV. negyedéves értékelés' END FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE TipusId IN (1522, 1523, 1524, 1525) AND (Datum <= @FelevVege) AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL) AND (ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId) AND (ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL) FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') AS JelolesTemaval FROM #ErtekelesekTemp ErtekelesTemaval WHERE TipusId IN (1522, 1523, 1524, 1525) AND (Datum <= @FelevVege) AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL) UNION ALL SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', ' + CASE WHEN TipusId = 1522 THEN '(I.)' WHEN TipusId = 1523 THEN '(III.)' WHEN TipusId = 1524 THEN '(II.)' WHEN TipusId = 1525 THEN '(IV.)' ELSE '' END + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND ((TipusId NOT IN (1519, 1520) AND Datum <= @FelevVege) OR (TipusId = 1519)) 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 ((TipusId NOT IN (1519, 1520) AND Datum <= @FelevVege) OR (TipusId = 1519)) 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 IF @isDebug = 1 SELECT 'Result28' as [ResultSetName ] SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', ' + CASE WHEN TipusId = 1522 THEN '(I.): I. negyedéves értékelés' WHEN TipusId = 1523 THEN '(III.): III. negyedéves értékelés' WHEN TipusId = 1524 THEN '(II.): II. negyedéves értékelés' WHEN TipusId = 1525 THEN '(IV.): IV. negyedéves értékelés' END FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE TipusId IN (1522, 1523, 1524, 1525) AND (Datum >= @FelevVege) AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL) AND (ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId) AND (ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL) FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') AS JelolesTemaval FROM #ErtekelesekTemp ErtekelesTemaval WHERE TipusId IN (1522, 1523, 1524, 1525) AND (Datum >= @FelevVege) AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL) UNION ALL SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', ' + CASE WHEN TipusId = 1522 THEN '(I.)' WHEN TipusId = 1523 THEN '(III.)' WHEN TipusId = 1524 THEN '(II.)' WHEN TipusId = 1525 THEN '(IV.)' ELSE '' END + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND (((Datum >= @FelevVege) AND (TipusId <> 1519)) OR (TipusId = 1520)) 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 (TipusId <> 1519)) OR (TipusId = 1520)) AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL) --értékelésekhez tartozó feljegyzések IF @isDebug = 1 SELECT 'Result29' as [ResultSetName ] SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF((SELECT DISTINCT ', '+ CASE WHEN TipusId = 1522 THEN '(I.)' WHEN TipusId = 1523 THEN '(III.)' WHEN TipusId = 1524 THEN '(II.)' WHEN TipusId = 1525 THEN '(IV.)' ELSE '' END + 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 IF @isDebug = 1 SELECT 'Result30' as [ResultSetName ] SELECT TanuloId ,TanuloCsoportId ,isTeljesitett ,Ertekeles ,Megjegyzes ,Datum FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@tanevId, @osztalyId) WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId) --Tanuló tanult tantárgyai IF @isDebug = 1 SELECT 'Result31' as [ResultSetName ] 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 INNER JOIN T_TANTARGY_OSSZES tant ON tant.ID = TANTARGYAK.ID AND tant.TOROLT = 'F' WHERE TANTARGYAK.c_tanulocsoportid = TANULO.TanuloCsoportId AND (tant.C_ISOSZTALYNAPLOBANEMLATSZIK = 'F' OR (tant.C_ISOSZTALYNAPLOBANEMLATSZIK = 'T' AND (EXISTS (SELECT 1 FROM #ErtekelesekTemp ert WHERE (ert.ErtekelesOsztalyzatId IS NOT NULL OR ert.ErtekelesSzazalek IS NOT NULL OR ert.ErtekelesSzoveg IS NOT NULL) AND ert.TantargyId = tant.ID AND ert.TanuloId = TANULO.Id AND ert.TanuloCsoportId = 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 IF @isDebug = 1 SELECT 'Result32' as [ResultSetName ] SELECT * FROM #osztalycsoportok WHERE OsztalyCsoportId != @osztalyId; -- gyors feljegyzés statisztikák -- Házifeladat hiány IF @isDebug = 1 SELECT 'Result33' as [ResultSetName ] 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 IF @isDebug = 1 SELECT 'Result34' as [ResultSetName ] 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 IF @isDebug = 1 SELECT 'Result35' as [ResultSetName ] 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 IF @isDebug = 1 SELECT 'Result36' as [ResultSetName ] 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