DROP PROCEDURE IF EXISTS uspGetTanoranKivuliNaplo GO CREATE PROCEDURE uspGetTanoranKivuliNaplo @tanevId int ,@intezmenyId int ,@csoportId int ,@iskolaErdekuSzamit bit AS BEGIN SET NOCOUNT ON; DECLARE @datum date = GETDATE() ,@letszam int CREATE TABLE #students ( ID int ,Osztaly nvarchar (max) ,OsztalyId int ,BelepesDatum datetime ) CREATE TABLE #OraSorszam ( TanitasioraId int ,OraSorszam nvarchar (100) ) CREATE TABLE #TanuloCimTable ( FelhasznaloId int ,Cim nvarchar (max) ,Cimtipusa nvarchar (max) ) CREATE TABLE #GondViseloCimTable ( GondviseloId int ,Cim nvarchar (max) ,Cimtipusa nvarchar (max) ) CREATE TABLE #EmailCimTableTemp ( FelhasznaloId int ,EmailCim nvarchar (max) ,GondviseloId int ) CREATE TABLE #EmailCimTanuloTable( FelhasznaloId int ,EmailCim nvarchar (max) ) CREATE TABLE #EmailCimGondviseloTable ( GondviseloId int ,EmailCim nvarchar (max) ) CREATE TABLE #TelefonTableTemp( FelhasznaloId int ,Telefon nvarchar (max) ,GondviseloId int ) CREATE TABLE #TanuloTelefonTable( FelhasznaloId int ,Telefon nvarchar (max) ) CREATE TABLE #GondviseloTelefonTable ( GondviseloId int ,Telefon nvarchar (max) ) SELECT @letszam = COUNT(tcs.C_TANULOID) FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @csoportId AND tcs.TOROLT='F' --Fejlecoldal (Fejléc) SELECT ia.C_NEV AS IntezmenyNev ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCim ,ia.C_OMKOD AS OMKOD ,ia.C_IGAZGATONEVE AS IntezmenyVezeto ,ocs.C_NEV AS Csoport ,ocs.ID AS CsoportId ,ISNULL(f.C_NYOMTATASINEV,'-') AS CsoportVezeto ,ISNULL(cs.C_CSOPORTNAPLOLEIRAS,'-') AS CsoportNaploLeiras ,dbo.fnGetDokumentumDatumFormatum(cs.C_CSOPORTNAPLOMEGNYITASA) AS Megnyitas ,ISNULL(dbo.fnGetDokumentumDatumFormatum(cs.C_CSOPORTNAPLOZARASA),'-') AS Lezaras ,t.C_NEV AS Tanev ,cs.C_CSOPORTNAPLOLEIRAS AS Megjegyzes ,f.ID AS CsoportVezetoId ,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId ,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves ,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu ,cs.C_TIPUSA AS CsoportTipusa FROM T_INTEZMENY_OSSZES i INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID = i.ID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_INTEZMENYID = i.ID INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = cs.C_CSOPORTVEZETOID INNER JOIN T_TANEV_OSSZES t ON t.ID = ia.C_TANEVID WHERE ia.C_TANEVID = @tanevid AND ocs.ID = @csoportId INSERT INTO #students ( ID ,Osztaly ,OsztalyId ,BelepesDatum ) SELECT TanuloId ,dbo.fnGetDokumentumTanuloAktualisOsztaly(TanuloId) AS Osztaly ,dbo.fnGetDokumentumTanuloAktualisOsztalyId(TanuloId) AS OsztalyId ,BelepesDatum AS BelepesDatum FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportId, 'T') --Osztaly (Csoport tanulóinak osztályai) SELECT COUNT(Id) AS Tanulo ,Osztaly ,OsztalyId FROM #students GROUP BY Osztaly ,OsztalyId --Napló INSERT INTO #OraSorszam ( TanitasioraId ,OraSorszam ) EXEC sp_GetOraSorszamByOsztaly @osztalyCsoportId = @csoportId ,@datum = @datum ,@intezmenyId = @intezmenyId ,@tanevId = @tanevId SELECT dbo.fnGetDokumentumDatumFormatum(tao.C_ORAKEZDETE) + CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS Datum ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS TantargyNev ,tao.C_TANTARGYID AS TantargyId ,tao.C_MEGTARTOTT AS Megtartott ,IIF(C_MEGTARTOTT = 'F', 'Elmaradt', tao.C_TEMA) AS Tema ,@letszam - ISNULL(hianyzo.Hianyzok, 0) AS Letszam ,IIF(C_MEGTARTOTT = 'F', '-', f.C_NYOMTATASINEV) AS Pedagogus ,Terem.C_NEV AS TeremNev ,ISNULL(Oraszam.OraSorszam + '.', '-') AS OraSorszam ,tao.C_ORAKEZDETE AS OraKezdete INTO #megtartottOrak FROM T_TANITASIORA_OSSZES tao LEFT JOIN ( SELECT tm.C_TANITASIORAKID AS Tanitasiora ,COUNT(tm.C_ORATANULOIID) AS Hianyzok FROM T_TANULOMULASZTAS_OSSZES tm WHERE tm.torolt = 'F' AND C_TIPUS IN (1499, 1500) GROUP BY tm.C_TANITASIORAKID ) hianyzo ON hianyzo.Tanitasiora = tao.ID LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_ORATULAJDONOSID INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID LEFT JOIN T_TEREM_OSSZES Terem ON Terem.Id = tao.C_TEREMID LEFT JOIN #OraSorszam Oraszam ON Oraszam.TanitasioraId = tao.Id WHERE tao.C_OSZTALYCSOPORTID = @csoportId AND tao.TOROLT='F' SELECT Datum ,TantargyNev ,TantargyId ,Megtartott ,Tema ,Letszam ,Pedagogus ,TeremNev ,OraSorszam ,OraKezdete FROM #megtartottOrak ORDER BY OraKezdete /*TANULÓ adatai*/ SELECT DISTINCT ta.TanuloId ,ta.OktAzon ,ta.TajSzam ,ta.AnyjaNeve ,ta.SzulHely ,ta.SzulIdo ,ta.SocAdat ,ta.Kepzes ,ta.TanuloNeve ,ta.Allampolgarsaga ,ta.DiakIgazolvanySzam ,ta.AktualisOsztaly Osztalya ,ta.BelepesDatum FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta ORDER BY TanuloNeve /*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, @csoportid) 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, @csoportid) 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, @csoportid) 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, @csoportid) 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, @csoportid, '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, @csoportid, '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 /*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 (@csoportId, @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 --megtartott órák száma SELECT COUNT(mo.TantargyId) AS TantargyOraszam ,mo.Tantargynev AS TantargyNev INTO #megtartottOrakSzama FROM #megtartottOrak mo WHERE mo.Megtartott = 'T' GROUP BY mo.TantargyId ,mo.TantargyNev SELECT DISTINCT SUM(tmp.TantargyOraszam) AS OsszesTantargySzam ,STUFF( ( SELECT DISTINCT ', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS nvarchar (max)) + ')' FROM #megtartottOrakSzama btmp FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'), 1 , 2, '' ) AS Tantargyak FROM #megtartottOrakSzama tmp -- Csoport tanárai SELECT targy.C_NEV AS TargyNev ,tanar.C_NYOMTATASINEV AS TanarNev ,targykategoria.C_ORDER ,tanar.ID TanarId ,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon FROM T_FELHASZNALO_OSSZES tanar INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID AND f.TOROLT='F' AND f.C_OSZTALYCSOPORTID = @csoportId INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID AND targy.TOROLT='F' INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId WHERE tanar.TOROLT = 'F' AND tanar.C_INTEZMENYID = @intezmenyid AND tanar.c_tanevId = @tanevId GROUP BY C_ORDER ,targy.C_NEV ,tanar.C_NYOMTATASINEV ,tanar.ID ,tanar.C_OKTATASIAZONOSITO ORDER BY C_ORDER ,targy.C_NEV ,tanar.C_NYOMTATASINEV END GO