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 @ElsoNapTanevRendje date ,@UtolsoNapTanevRendje date ,@ElsoNapTanev date ,@UtolsoNapTanev date ,@isVegzos varchar (1) ,@FelevVege date ,@ElsoNap date ,@UtolsoNap date ,@VizsgaltNap date ,@VegzosUtolsoNap date ,@ocsId int ,@MaxOraszam int ,@MinOraszam int ,@TanitasiNapokSzama int ,@TanulokSzama int ,@HetUtolsoNapjaMegtartottOra int ,@HetUtolsoNapjaTanevendje int ,@HetUtolsoNapja int ,@selectList nvarchar (max) ,@pivotList nvarchar (max) ,@tantargyakNevvel nvarchar (max) ,@sql nvarchar (max) CREATE TABLE #Gondviselok ( TanuloId int ,GondviseloId int PRIMARY KEY CLUSTERED ) CREATE TABLE #HetAdatok ( C_HETSORSZAMA int ,KezdoDatum date ,VegeDatum date ) 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 ) 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 ) CREATE TABLE #NapSorszamTemp (Datum date) CREATE TABLE #NapSorszam ( Datum date ,Sorszam nvarchar(4) ) CREATE TABLE #OsszesOra ( Datum datetime ,FormatDate nvarchar (100) ,Oraszam int ,HetSorszama int ,HetNapja nvarchar (100) ,Megjegyzes nvarchar (1000) ,Sorszam nvarchar (30) ) DECLARE @TanuloCimTable TABLE ( FelhasznaloId int ,Cim nvarchar (max) ,Cimtipusa nvarchar (max) ) DECLARE @GondViseloCimTable TABLE ( GondviseloId int ,Cim nvarchar (max) ,Cimtipusa nvarchar (max) ) DECLARE @EmailCimTableTemp TABLE ( FelhasznaloId int ,EmailCim nvarchar (max) ,GondviseloId int ) DECLARE @EmailCimTanuloTable TABLE ( FelhasznaloId int ,EmailCim nvarchar (max) ) DECLARE @EmailCimGondviseloTable TABLE ( GondviseloId int ,EmailCim nvarchar (max) ) DECLARE @TelefonTableTemp TABLE ( FelhasznaloId int ,Telefon nvarchar (max) ,GondviseloId int ) DECLARE @TanuloTelefonTable TABLE ( FelhasznaloId int ,Telefon nvarchar (max) ) DECLARE @GondviseloTelefonTable TABLE ( GondviseloId int ,Telefon nvarchar (max) ) 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 ) CREATE TABLE #retTanuloErtekeles ( ErtekelesId int PRIMARY KEY NOT NULL ,Datum date ,TipusId int ,ErtekelesSzoveg nvarchar (max) ,ErtekelesSzovegRovidNev nvarchar (3) ,ErtekelesOsztalyzatId int ,ErtekelesOsztalyzatValue int ,ErtekelesOsztalyzatNev nvarchar (max) ,ErtekelesSzazalek nvarchar (max) ,MagatartasOsztalyzatId int ,MagatartasOsztalyzatValue int ,MagatartasOsztalyzatNev nvarchar (max) ,MagatartasSzoveg nvarchar (max) ,MagatartasSzovegRovidNev nvarchar (3) ,MagatartasErtekId int ,MagatartasErtek nvarchar (max) ,MagatartasErtekOsztalyzatkent int ,SzorgalomOsztalyzatId int ,SzorgalomOsztalyzatValue int ,SzorgalomOsztalyzatNev nvarchar (max) ,SzorgalomSzoveg nvarchar (max) ,SzorgalomSzovegRovidNev nvarchar (3) ,SzorgalomErtekId int ,SzorgalomErtek nvarchar (max) ,SzorgalomErtekOsztalyzatkent int ,TanuloId int ,TanuloCsoportId int ,OsztalyCsoportId int ,TantargyId int ,TantargyNevZarojellel nvarchar (max) ,TantargyNevNyomtatvanyban nvarchar (max) ,TantargyNev nvarchar (max) ,TargyKategoriaId int ,FotargyE char(1) ,Altantargy char(1) ,FotargyId int ,ErtekelesTema nvarchar (max) ,ErtekeloId int ,ErtekelesModjaId int ,IsMagatartasSzorgalom char(1) ,Jeloles nvarchar (max) ,JelolesAndErtekelesTema nvarchar (max) ) CREATE TABLE #osztalycsoportok ( OsztalyCsoportId int PRIMARY KEY ,Kezdete date ,Vege date ) CREATE TABLE #OraSorszamTemp ( TanitasioraId int ,OraSorszam int ) CREATE TABLE #OraSorszam ( TanitasioraId int PRIMARY KEY ,OraSorszam int ) SELECT TOP 1 @ElsoNapTanev = t.C_ELSOTANITASINAP ,@UtolsoNapTanev = t.C_UTOLSOTANITASINAP FROM t.T_TANEV_OSSZES t WHERE t.ID = @tanevId AND t.TOROLT = 'F' SELECT TOP 1 @ElsoNapTanevRendje = tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = 1394 AND tr.C_TANEVID = @tanevId AND tr.TOROLT = 'F' SELECT TOP 1 @UtolsoNapTanevRendje = tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = 1395 AND tr.C_TANEVID = @tanevId AND tr.TOROLT = 'F' SELECT TOP 1 @isVegzos = o.C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES o WHERE o.ID = @osztalyId SELECT TOP 1 @FelevVege = tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = 1400 AND tr.C_TANEVID = @tanevId AND tr.TOROLT = 'F' SET @VegzosUtolsoNap = (SELECT dbo.fnGetOsztalyVegzosTanitasiNap(@osztalyId, @intezmenyId, @tanevId)) SET @ElsoNap = ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) SET @UtolsoNap = IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap, @UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)) IF @tanevId = @AktivtanevId AND @orarendErvenyessegiDatum <= @UtolsoNap IF @orarendErvenyessegiDatum <= @ElsoNap SET @VizsgaltNap = ( SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId ) ELSE SET @VizsgaltNap = CONVERT(date, @orarendErvenyessegiDatum) ELSE SET @VizsgaltNap = ( SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES AS nh WHERE @UtolsoNap >= CONVERT(date, nh.C_HETKEZDONAPJA) AND @UtolsoNap <= CONVERT(date, nh.C_HETUTOLSONAPJA) AND nh.TOROLT = 'F' AND nh.C_TANEVID = @tanevId ) INSERT INTO #NapSorszamTemp (Datum) EXEC sp_GetDokumentumTanitasiNapokSorszama @tanevId = @tanevId ,@osztalyId = @osztalyId INSERT INTO #NapSorszam ( Datum ,Sorszam ) SELECT Sorszam.Datum AS Datum ,CAST(DENSE_RANK() OVER(ORDER BY Sorszam.Datum) AS nvarchar(4)) FROM #NapSorszamTemp AS Sorszam INNER JOIN fnGetDokumentumOsztalyMegtartottOrakSzama(@tanevId, @osztalyId) AS OrakSzama ON OrakSzama.Datum = Sorszam.Datum WHERE Sorszam.Datum <= @UtolsoNap AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama IS NOT NULL 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 INTO #studentsWithTanuloCsoport FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') AS 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) AS Honap ,TantargyId AS Id ,Igazolt AS IgazoltE ,TanuloId AS TanuloId ,TanuloCsoportId AS TanuloCsoportId ,IgazolasTipusa AS IgazolasTipus ,Datum AS Datum ,Tipusa AS Tipus ,KesesPercben AS KesesPercben ,HetSorszama AS HetSorszama ,Oraszam AS Oraszam ,CAST(DATEPART(MONTH, Datum) AS nvarchar(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') AS ElmeletGyakorlat ,C_GYAKORLATI AS isGyakorlat INTO #mulasztasTmp FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @iskolaErdekuSzamit, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) AS 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)) AS 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) SELECT Datum ,TipusId ,ErtekelesSzoveg ,ErtekelesSzovegRovidNev ,ErtekelesOsztalyzatId ,ErtekelesOsztalyzatValue ,ErtekelesOsztalyzatNev ,ErtekelesSzazalek ,MagatartasOsztalyzatId ,MagatartasOsztalyzatNev ,MagatartasSzoveg ,MagatartasErtekId ,MagatartasErtek ,SzorgalomOsztalyzatId ,SzorgalomOsztalyzatNev ,SzorgalomSzoveg ,SzorgalomErtekId ,SzorgalomErtek ,TanuloId ,TanuloCsoportId ,OsztalyCsoportId ,TantargyId ,TantargyNevZarojellel ,TantargyNev ,TantargyNevNyomtatvanyban ,TargyKategoriaId ,FotargyE ,FotargyId ,Altantargy ,ErtekelesTema ,Jeloles ,JelolesAndErtekelesTema ,isMagatartasSzorgalom ,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 INSERT INTO #osztalycsoportok ( OsztalyCsoportId ,Kezdete ,Vege ) SELECT OsztalyCsoportok.Id ,OsztalyCsoportok.Kezdete ,OsztalyCsoportok.Vege FROM fnGetKapcsolodoOsztalyCsoportokByDateRange(@osztalyId, @ElsoNap, @UtolsoNap, @intezmenyId, @tanevId) AS OsztalyCsoportok INNER JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) AS TanoraiCeluOsztalyCsoportok ON TanoraiCeluOsztalyCsoportok.ID = OsztalyCsoportok.Id DECLARE csoport_cursor CURSOR FOR SELECT OsztalyCsoportId FROM #osztalycsoportok 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 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', 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(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 + ') ', '') 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), '-') + '.: ' + 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') 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 + ')', 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 + ' (' + tantargy.C_NEV + ')', C_NEVNYOMTATVANYBAN), tantargy.C_NEV) + '-' + CHAR(13) + CHAR(10) + REPLACE(REPLACE(pedagogus.C_NYOMTATASINEV, '[', '('), ']', ')') AS 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 ) AS 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) SELECT @MaxOraszam = ISNULL(MAX(Oraszam), 4) ,@MinOraszam = ISNULL(MIN(Oraszam), 1) FROM #megtartottOrak SELECT @TanulokSzama = COUNT(DISTINCT TanuloId) FROM #ErtekelesekTemp WHERE TipusId = 1520 SELECT @TanitasiNapokSzama = MAX(CAST(Sorszam AS int)) FROM #NapSorszam SELECT DISTINCT @osztalyId AS OsztalyId ,ocs.C_NEV AS OsztalyNev ,o.C_OSZTALYNAPLOLEIRASA AS OsztalyMegjegyzes ,o.C_OSZTALYFONOKID AS PartnerID ,ofo.C_NYOMTATASINEV AS Osztalyfonok ,o.C_OFOHELYETTESID AS OsztalyfonokHelyettesId ,i.C_IGAZGATONEVE AS IntezmenyVezeto ,i.C_NEV AS IntezmenyNeve ,i.C_VAROS AS IntezmenyVaros ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCime ,i.C_OMKOD AS IntezmenyOMKod ,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOMEGNYITASA) AS NaploMegnyitasanakDatuma ,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOZARASA) AS NaploZarasanakDatuma ,o.C_OSZTALYNAPLOZARASA AS NaplozarasDateFormat ,@TanulokSzama AS TanulokSzama ,@TanitasiNapokSzama AS TanitasiNapokSzama ,@MaxOraszam AS MaxOraszam ,@MinOraszam AS MinOraszam ,@tanevId AS TanevId ,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId ,o.C_TANTERVID AS TantervId ,o.C_KEPZESIFORMA AS KepzesiForma ,o.C_AGAZAT AS Agazat ,o.C_SZAKMACSOPORT AS SzakmaCsoport ,o.C_SZAKKEPESITES AS Szakkepesites ,o.C_RESZSZAKKEPESITES AS Reszszakkepesites ,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves ,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu ,o.C_TECHNIKAIOSZTALY AS OJTechnikaiOsztaly ,o.C_NEMZETISEGI AS OJNemzetisegi ,o.C_KETTANNYELVU AS OJKettannyelvu ,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito ,o.C_LOGOPEDIAI AS OJLogopediai ,o.C_SPORT AS OJSportOsztaly ,o.C_AJPROGRAM AS OJAranyJanosProgram ,o.C_GYOGYPEDAGOGIAI AS OJGyogypedagogiai FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt = 'F' LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID INNER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F' WHERE ocs.ID = @osztalyId -- Tanarok IF @isEllenorzo = 0 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) ELSE SELECT DISTINCT Tanulok.Id AS TanuloId ,Tantargy.C_NEV AS TargyNev ,Tanar.C_NYOMTATASINEV AS TanarNev ,C_ORDER FROM #students AS Tanulok INNER JOIN T_TANULOCSOPORT_OSSZES AS 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 AS Foglalkozas ON Foglalkozas.C_OSZTALYCSOPORTID = TanuloCsoport.C_OSZTALYCSOPORTID AND Foglalkozas.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES AS Tanar ON Tanar.Id = Foglalkozas.C_TANARID INNER JOIN T_TANTARGY_OSSZES AS Tantargy ON Tantargy.Id = Foglalkozas.C_TANTARGYID INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES AS TargyKategoria ON TargyKategoria.ID = Tantargy.C_TARGYKATEGORIA INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS TargyKategoria_order ON TargyKategoria.ID = TargyKategoria_order.ID AND TargyKategoria_order.TOROLT = 'F' AND TargyKategoria_order.C_TANEVID = @tanevId ORDER BY C_ORDER -- Orarend EXEC sp_GetOrarendOsztalyonkent @intezmenyId ,@tanevID ,@osztalyid ,@aktivTanevId ,@isEgyebFoglalkozasok ,@orarendErvenyessegiDatum -- Oralatogatasok SELECT dbo.fnGetDokumentumDatumFormatum(T_ORALATOGATAS_OSSZES.C_DATUM) AS DATUM ,TANITASIORA.C_ORASZAM AS ORASZAM ,TARGY.C_NEV AS TARGYNEV ,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS LATOGATO ,T_ORALATOGATAS_OSSZES.C_ORALATOGATOBEOSZTASA AS LATOGATOBEOSZTAS ,T_ORALATOGATAS_OSSZES.C_MEGJEGYZES AS 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 ) AS TANITASIORA ON TANITASIORA.ID = T_ORALATOGATAS_OSSZES.C_MEGTARTOTTORAID INNER JOIN T_TANTARGY_OSSZES AS TARGY ON TARGY.ID = TANITASIORA.C_TANTARGYID INNER JOIN #osztalycsoportok AS 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 SELECT NULL AS DATUM ,NULL AS ORASZAM ,NULL AS TARGYNEV ,NULL AS LATOGATO ,NULL AS LATOGATOBEOSZTAS ,'' AS ESZREVETEL ELSE SELECT DATUM ,ORASZAM ,TARGYNEV ,LATOGATO ,LATOGATOBEOSZTAS ,ESZREVETEL FROM #Oralatogatas ORDER BY DATUM -- Naploellenorzesek SELECT DISTINCT dbo.fnGetDokumentumDatumFormatum(C_ELLENORZESDATUMA) AS ELLENORZESDATUMA ,ELLENORZO.C_NYOMTATASINEV AS ELLENORZOSZEMELY ,T_NAPLOELLENORZES_OSSZES.C_ESZREVETEL AS ESZREVETEL INTO #NaploEllenorzes FROM T_NAPLOELLENORZES_OSSZES INNER JOIN T_FELHASZNALO_OSSZES AS 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 SELECT NULL AS ELLENORZESDATUMA ,NULL AS ELLENORZOSZEMELY ,NULL AS ESZREVETEL ELSE SELECT ELLENORZESDATUMA ,ELLENORZOSZEMELY ,ESZREVETEL FROM #NaploEllenorzes SELECT @HetUtolsoNapjaMegtartottOra = IIF(MAX(HetNapja) IS NULL OR MAX(HetNapja) <= 1412, 1412, MAX(HetNapja)) FROM #megtartottOrak SELECT @HetUtolsoNapjaTanevendje = ISNULL(MAX(C_HETNAPJA), 1412) FROM #NapSorszam AS NapSorszam INNER JOIN T_NAPTARINAP_OSSZES AS NaptariNap ON NaptariNap.C_NAPDATUMA = NapSorszam.Datum AND NaptariNap.C_TANEVID = @tanevId SET @HetUtolsoNapja = IIF(@HetUtolsoNapjaMegtartottOra >= @HetUtolsoNapjaTanevendje, @HetUtolsoNapjaMegtartottOra, @HetUtolsoNapjaTanevendje) INSERT INTO #HetAdatok ( C_HETSORSZAMA ,KezdoDatum ,VegeDatum ) SELECT nh.C_HETSORSZAMA ,MIN(nn.C_NAPDATUMA) AS HetKezdete ,IIF(ISNULL(MAX(tr.C_DATUM), MAX(nn.C_NAPDATUMA)) > MAX(nn.C_NAPDATUMA), MAX(tr.C_DATUM), MAX(nn.C_NAPDATUMA)) AS HetVege FROM T_NAPTARIHET_OSSZES AS nh INNER JOIN T_NAPTARINAP_OSSZES AS nn ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nn.C_INTEZMENYID = @intezmenyId AND nn.C_TANEVID = @tanevId AND nn.C_ALAPHETNAPJA <= 1412 AND nn.C_HETSORSZAMA = nh.C_HETSORSZAMA AND nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap AND nn.TOROLT = 'F' LEFT JOIN T_TANEVRENDJE_OSSZES AS tr ON tr.C_INTEZMENYID = @intezmenyId AND tr.C_TANEVID = @tanevId AND tr.TOROLT = 'F' AND tr.C_DATUM BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA WHERE nh.TOROLT = 'F' AND nh.C_TANEVID = @tanevId AND nh.C_INTEZMENYID = @intezmenyId GROUP BY nh.C_HETSORSZAMA ORDER BY nh.C_HETSORSZAMA SELECT ha.C_HETSORSZAMA ,dbo.fnGetDokumentumDatumFormatum(ha.KezdoDatum) ,dbo.fnGetDokumentumDatumFormatum(ha.VegeDatum) FROM #HetAdatok AS ha INSERT INTO #OsszesOra ( Datum ,FormatDate ,Oraszam ,HetSorszama ,HetNapja ,Megjegyzes ,Sorszam ) SELECT Datum ,FormatDate ,Oraszam ,HetSorszama ,HetNapja ,IIF(RIGHT(Megjegyzes, 1) = ',', LEFT(Megjegyzes, LEN(Megjegyzes) - 1), Megjegyzes) AS 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 ,ISNULL(Sorszam, '-') AS Sorszam FROM T_NAPTARINAP_OSSZES AS nn INNER JOIN #HetAdatok AS ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum LEFT JOIN #NapSorszam AS sorszam ON sorszam.Datum = nn.C_NAPDATUMA LEFT JOIN T_TANEVRENDJE_OSSZES AS 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, '') AS Megjegyzes FROM T_OSZTALYCSOPORT_TANEVRENDJE AS ocstr INNER JOIN T_TANEVRENDJE_OSSZES AS tr ON tr.Id = ocstr.C_TANEVRENDJEID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS HetNapja ON HetNapja.ID = tr.C_HETNAPJA AND HetNapja.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS 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' ) AS osztalyCsoportTanevRendje ON osztalyCsoportTanevRendje.C_DATUM = nn.C_NAPDATUMA LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA AND trNaptipus.C_TANEVID = @tanevId AND tr.C_NAPTIPUSA <> 1385 LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS AlapHetnapja ON AlapHetnapja.Id = nn.C_ALAPHETNAPJA AND AlapHetnapja.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS 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)) AS 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 ) AS NapAdatok IF @MinOraszam > 0 DELETE FROM #OsszesOra WHERE Oraszam = 0 IF @isSzovegesNaplo = 0 BEGIN /* NORMÁL OSZTÁLYNAPLÓ */ SELECT MulasztasokKulso.Datum AS Datum ,Felhasznalo.C_NYOMTATASINEV + ' [' + STUFF( ( SELECT ', ' + CAST(MulasztasokBelso.Oraszam AS varchar(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '') FROM #mulasztasTmp AS 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)) AS Hianyzas INTO #hianyzasokTMP FROM #mulasztasTmp AS MulasztasokKulso INNER JOIN T_FELHASZNALO_OSSZES AS 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 AS bHianyzasok WHERE Hianyzasok.Datum = bHianyzasok.Datum FOR XML PATH(''), TYPE ) .value ('.', 'NVARCHAR(MAX)'), 1, 2, '' ) AS Hianyzas INTO #hianyzasok FROM #hianyzasokTMP AS Hianyzasok SELECT DISTINCT Datum ,HetSorszama ,HetNapja ,Oraszam ,STUFF( ( SELECT CAST(bmto.TantargyNev AS nvarchar(max)) + CHAR(13) + CHAR(10) FROM #megtartottOrak AS bmto WHERE bmto.Datum = mto.Datum AND bmto.Oraszam = mto.Oraszam FOR XML PATH(''), TYPE ) .value ('.', 'NVARCHAR(MAX)'), 1, 0, '' ) AS Tantargy INTO #Orarend FROM #megtartottOrak AS mto SELECT DISTINCT Datum ,@MinOraszam AS Oraszam ,TantargyPedagogussal ,STUFF( ( SELECT DISTINCT CAST(bmto.TemaOraSzammal AS nvarchar(max)) + CHAR(13) + CHAR(10) FROM #megtartottOrak AS bmto WHERE bmto.Datum = mto.Datum AND bmto.TantargyPedagogussal = mto.TantargyPedagogussal FOR XML PATH(''), TYPE ) .value ('.', 'NVARCHAR(MAX)'), 1, 0, '' ) AS Tema INTO #1nap1TantargyTobbOra FROM #megtartottOrak AS mto SELECT @tantargyakNevvel = ISNULL(@tantargyakNevvel + ', ', '') + '[' + IIF(LEN(TantargyPedagogussal) > 128, SUBSTRING(TantargyPedagogussal, 1, 120) + '...', TantargyPedagogussal) + ']' FROM ( SELECT DISTINCT TantargyPedagogussal ,C_TARGYKATEGORIA FROM #megtartottOrak AS m INNER JOIN T_TANTARGY_OSSZES AS t ON t.Id = m.TantargyId ) AS t ORDER BY C_TARGYKATEGORIA 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 ,OsszesOra.Sorszam AS NapSorszama ,OsszesOra.Megjegyzes AS 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 SELECT NULL AS C_NAPDATUMA ,NULL AS Mulasztas ,NULL AS Megjegyzés ,NULL AS ORASZAM ,NULL AS T1ID ,NULL AS T2ID ,NULL AS T3ID ,NULL AS TANTARGY ,NULL AS C_HETSORSZAMA ,NULL AS C_HETNAPJA_DNAME ,NULL AS NapSorszama ELSE EXEC sp_executesql @sql ,N'@MinOraszam int' ,@MinOraszam 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 ,OsszesOra.Sorszam AS Napszam ,Tantargynev AS Tantargy ,PedagogusNev AS Tanar ,Tema AS Oraanyaga ,OraSorszam AS C_ORAEVESSORSZAM INTO #szoveges FROM #OsszesOra AS OsszesOra LEFT JOIN #megtartottOrak AS mto ON mto.Datum = OsszesOra.Datum AND OsszesOra.Oraszam = mto.Oraszam INNER JOIN T_NAPTARIHET_OSSZES AS 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) AS C_NAPDATUMA ,Napneve ,C_MEGJEGYZES ,C_HETKEZDONAPJA ,C_HETUTOLSONAPJA ,C_HETSORSZAMA ,OraSorszam ,Napszam ,( SELECT CAST(bszov.TANTARGY AS nvarchar (max)) + NCHAR(10) FROM #szoveges AS bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.ORASORSZAM = szov.ORASORSZAM AND bszov.napszam = szov.napszam FOR XML PATH('') ) AS TANTARGY ,( SELECT CAST(bszov.TANAR AS nvarchar (max)) + NCHAR(10) FROM #szoveges AS bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.ORASORSZAM = szov.ORASORSZAM AND bszov.napszam = szov.napszam FOR XML PATH('') ) AS TANAR ,( SELECT CAST(bszov.ORAANYAGA AS nvarchar (max)) + NCHAR(10) FROM #szoveges AS bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.ORASORSZAM = szov.ORASORSZAM AND bszov.napszam = szov.napszam FOR XML PATH('') ) AS ORAANYAGA ,( SELECT CAST(bszov.C_ORAEVESSORSZAM AS nvarchar (max)) + NCHAR(10) FROM #szoveges AS bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.ORASORSZAM = szov.ORASORSZAM AND bszov.napszam = szov.napszam FOR XML PATH('') ) AS OraEvesSorszama FROM #szoveges AS szov ORDER BY dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) ,orasorszam /*Hiányzások*/ 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 ,TanuloId ,TanuloCsoportId ,[1408] AS Hetfo ,[1409] AS Kedd ,[1410] AS Szerda ,[1411] AS Csutortok ,[1412] AS Pentek ,[1413] AS Szombat FROM ( SELECT DISTINCT HetSorszama ,C_NYOMTATASINEV AS TanuloNeve ,TanuloId ,TanuloCsoportId ,Datum ,C_ALAPHETNAPJA AS Hetnapja ,'[' + STUFF( ( SELECT ', ' + CAST(MulasztasokBelso.Oraszam AS varchar(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '') FROM #mulasztasTmp AS 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)) AS Hianyzas FROM #mulasztasTmp AS MulasztasokKulso INNER JOIN T_FELHASZNALO_OSSZES AS Felhasznalo ON Felhasznalo.Id = MulasztasokKulso.TanuloId INNER JOIN T_NAPTARINAP_OSSZES AS NaptariNap ON NaptariNap.C_NAPDATUMA = MulasztasokKulso.Datum AND NaptariNap.C_TANEVID = @tanevId GROUP BY Hetsorszama ,C_NYOMTATASINEV ,TanuloId ,TanuloCsoportId ,Datum ,C_ALAPHETNAPJA ,TanuloId ) AS OsszefuzottMulasztasok PIVOT(MAX(Hianyzas) FOR HetNapja IN( [1408] ,[1409] ,[1410] ,[1411] ,[1412] ,[1413])) piv ) AS NapiMulasztas INNER JOIN #HetiMulasztasok AS 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 /*TANULÓ adatai*/ SELECT TanuloId ,TanuloCsoportId ,Sorszam ,TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,Allampolgarsaga ,DiakIgazolvanySzam ,KilepesDatum ,BeirasiNaploSorszam ,AktualisOsztaly AS OsztalyNev INTO #TanuloAlapAdatok FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) WHERE @tanuloId IS NULL OR TanuloId = @tanuloId SELECT TanuloId ,TanuloCsoportId ,Sorszam ,TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,Allampolgarsaga ,DiakIgazolvanySzam ,KilepesDatum ,BeirasiNaploSorszam ,OsztalyNev FROM #TanuloAlapAdatok ORDER BY Sorszam INSERT INTO #Gondviselok ( TanuloId ,GondviseloId ) SELECT TanuloId ,GondviseloId FROM fnGetDokumentumGondviselok(@osztalyId, @tanevId, 'F', 'T') WHERE @tanuloId IS NULL OR TanuloId = @tanuloId /*TANULÓ elérhetőségei */ INSERT INTO @TanuloCimTable ( FelhasznaloId ,Cim ,Cimtipusa ) 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 INSERT INTO @GondViseloCimTable ( GondviseloId ,Cim ,Cimtipusa ) SELECT DISTINCT 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 INSERT INTO @EmailCimTableTemp ( FelhasznaloId ,EmailCim ,GondviseloId ) SELECT TanuloId ,C_EMAILCIM ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId WHERE email.TOROLT = 'F' AND email.C_TANEVID = @tanevId AND LEN(C_EMAILCIM) > 0 INSERT INTO @EmailCimTanuloTable ( FelhasznaloId ,EmailCim ) 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 INSERT INTO @EmailCimGondviseloTable ( GondviseloId ,EmailCim ) 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 INSERT INTO @TelefonTableTemp ( FelhasznaloId ,Telefon ,GondviseloId ) SELECT TanuloId ,C_TELEFONSZAM ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId WHERE telefon.TOROLT = 'F' AND telefon.C_TANEVID = @tanevId AND LEN(telefon.C_TELEFONSZAM) > 0 INSERT INTO @TanuloTelefonTable ( FelhasznaloId ,Telefon ) 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 INSERT INTO @GondviseloTelefonTable ( GondviseloId ,Telefon ) 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 AS tanuloid ,cim.Cimtipusa AS cimtipus ,cim.Cim ,email.EmailCim AS email ,telefon.Telefon AS 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) AS 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 AS s INNER JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) AS feljegyzes ON feljegyzes.TanuloId = s.ID INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS 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 AS TanuloID ,s.TanuloCsoportId AS TanuloCsoportId ,ROW_NUMBER() OVER(PARTITION BY s.ID, s.TanuloCsoportId ORDER BY s.ID, s.TanuloCsoportId) AS Sorszam ,dbo.fnGetDokumentumDatumFormatum(Datum) AS Datum ,d.C_NAME AS Tipus ,Tartalom AS Tartalom ,FeljegyzoNeve AS Tanar FROM #studentsWithTanuloCsoport s INNER JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND d.C_TANEVID = @tanevId WHERE BelepesDatum <= feljegyzes.Datum AND (KilepesDatum IS NULL OR KilepesDatum >= feljegyzes.Datum) AND (@isEllenorzo = 1 AND Tipusa NOT IN ( 1543 ,1544 ,1547 ,1548 ,1549 ,1550 ,1551 ,1552 ,1553 ) OR Tipusa IN ( 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 /*gondviselő elérhetőségei */ SELECT DISTINCT Gondviselok.TanuloId AS TanuloId ,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV ,cim.Cimtipusa AS C_CIMTIPUSA ,cim.cim AS C_OSSZETETTCIM ,telefon.telefon AS C_TELEFONSZAM ,email.emailcim AS 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 ORDER BY cim.Cimtipusa /*TANULÓ osztályzatai*/ --Osztályhoz tartozó értékelések EXEC sp_GetDokumentumErtekelesekIdoszakonkent @tanevId = @tanevId ,@osztalyCsoportId = @osztalyId ,@ertekelesTipusa = NULL ,@csakTanorai = 1 ,@csakKivlasztottOsztalyCsoport = 0 ,@atsoroltTanuloErtekelesek = 0 ,@fuggolegesTantargyak = @fuggolegesTantargyak ,@intezmenyId = @intezmenyId /* TANULÓ záradékai */ SELECT TanuloId ,TanuloCsoportId ,Bejegyzes AS Zaradek FROM fnGetDokumentumTanuloZaradekai(@tanevId, @osztalyId, @isEllenorzo) 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 AS tanuloId ,s.TanuloCsoportId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #studentsWithTanuloCsoport AS s INNER JOIN ( SELECT TanuloId AS tanuloId ,TanuloCsoportId ,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap ,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) AS Tantargy ,ErtekelesSzoveg + ISNULL(' *' + ErtekelesTema,'') AS Ertekeles ,ErtekelesTipusDictionary.C_NAME AS Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesSzoveg IS NOT NULL ) AS szoveges ON szoveges.TANULOID = s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId UNION SELECT s.id AS tanuloId ,s.TanuloCsoportId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #studentsWithTanuloCsoport AS s INNER JOIN ( SELECT ErtekelesTemp.TanuloId AS tanuloId ,ErtekelesTemp.TanuloCsoportId ,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap ,'Magatartás' AS Tantargy ,ErtekelesTemp.MagatartasSzoveg + ISNULL(' *' + ErtekelesTema, '') AS Ertekeles ,ErtekelesTipusDictionary.C_NAME AS Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesTemp.MagatartasSzoveg IS NOT NULL ) AS szoveges ON szoveges.TANULOID = s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId UNION SELECT s.id AS tanuloId ,s.TanuloCsoportId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #studentsWithTanuloCsoport AS s INNER JOIN ( SELECT ErtekelesTemp.TanuloId AS tanuloId ,TanuloCsoportId ,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap ,'Szorgalom' AS Tantargy ,ErtekelesTemp.SzorgalomSzoveg + ISNULL(' *' + ErtekelesTema, '') AS Ertekeles ,ErtekelesTipusDictionary.C_NAME AS Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesTemp.SzorgalomSzoveg IS NOT NULL ) AS szoveges ON szoveges.TANULOID = s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId ) AS a ORDER BY RendezHonap ,Tantargy --Közösségi szolgálat SELECT TanuloId ,TanuloCsoportId ,Datum ,ISNULL(' - ' + Megjegyzes, '') AS Megjegyzes ,Oraszam ,TeljesitesHelye ,FeljegyzoNeve ,Tipus FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) AS KozossegiSzolgalat WHERE @tanuloId IS NULL OR TanuloId = @tanuloId ORDER BY IntervallumKezdete --Félévi, év végi mulasztások INSERT INTO #FeleviMulasztasok ( TanuloId ,TanuloCsoportId ,Igazolt ,Igazolatlan ,ElmeletIgazolt ,ElmeletIgazolatlan ,GyakorlatIgazolt ,GyakorlatIgazolatlan ,ElmeletOsszes ,GyakorlatOsszes ,Osszes ) EXEC sp_GetDokumentumMulasztasok @osztalyId = @osztalyId ,@tanevId = @tanevId ,@elmeletiOraPercben = 45 ,@gyakorlatiOraPercben = 45 ,@ertekelesTipus = 1519 ,@iskolaErdekuSzamit = @iskolaErdekuSzamit INSERT INTO #EvVegiMulasztasok ( TanuloId ,TanuloCsoportId ,Igazolt ,Igazolatlan ,ElmeletIgazolt ,ElmeletIgazolatlan ,GyakorlatIgazolt ,GyakorlatIgazolatlan ,ElmeletOsszes ,GyakorlatOsszes ,Osszes ) 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 sorszam --értékelésekhez tartozó feljegyzések 1. félév SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF( ( SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp AS 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, '' ) AS JelolesTemaval FROM #ErtekelesekTemp AS 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 AS 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, '' ) AS JelolesTemaval FROM #ErtekelesekTemp AS 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 AS 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, '' ) AS JelolesTemaval FROM #ErtekelesekTemp AS ErtekelesTemaval WHERE LEN(JelolesAndErtekelesTema) > 0 AND ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL --összefüggő szakmai gyakorlat SELECT TanuloId ,TanuloCsoportId ,isTeljesitett ,Ertekeles ,Megjegyzes ,Datum FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@tanevId, @osztalyId) WHERE @tanuloId IS NULL OR TanuloId = @tanuloId --Tanuló tanult tantárgyai SELECT DISTINCT TANULO.ID AS TanuloId ,TANULO.TanuloCsoportId AS TanuloCsoportId ,STUFF( ( SELECT ', ' + IIF(LEN(TANTARGYAK.C_NEV) > 128, SUBSTRING(TANTARGYAK.C_NEV, 1, 120) + '...', TANTARGYAK.C_NEV) AS TantargyNev FROM #Tantargyak AS TANTARGYAK LEFT JOIN T_TANULOCSOPORT_OSSZES AS 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, '' ) AS TantargyNev FROM #studentsWithTanuloCsoport AS 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 AS s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 6325, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS 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 AS s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 6324, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS 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 AS s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1542, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS 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 AS s CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1536, 1, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS feljegyzes WHERE feljegyzes.TanuloId = s.ID END GO