DROP PROCEDURE IF EXISTS uspGetTanoranKivuliNaplo GO CREATE PROCEDURE uspGetTanoranKivuliNaplo @tanevId int ,@intezmenyId int ,@csoportId int ,@iskolaErdekuSzamit bit ,@pDatum date AS BEGIN SET NOCOUNT ON; DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId AND TOROLT = 'F') DECLARE @tanevUtolsoNapja datetime = (SELECT DATEADD(DAY,-1,C_UTOLSONAP) FROM T_TANEV_OSSZES WHERE ID = @tanevId) DECLARE @letszam int CREATE TABLE #students ( Id int ,OktAzon nvarchar (max) ,TajSzam nvarchar (max) ,AnyjaNeve nvarchar (max) ,SzulHely nvarchar (max) ,SzulIdo nvarchar (max) ,SocAdat nvarchar(max) ,Kepzes nvarchar(max) ,TanuloNeve nvarchar(max) ,Allampolgarsaga nvarchar (max) ,DiakIgazolvanySzam nvarchar (max) ,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 SELECT tcs.C_TANULOID ,f.C_OKTATASIAZONOSITO ,f.C_TAJSZAM ,f.C_ANYJANEVE ,f.C_SZULETESIHELY ,FORMAT(f.C_SZULETESIDATUM, 'yyyy. MM. dd.') ,IIF(tta.C_MAGANTANULO = 'T', N'Magántanuló / Egyéni munkarend (' + ISNULL(MagantanulosagOka.C_NAME, N'-') + N')', N'') + IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', N', Jogviszony szüneteltetve', N'') + IIF(tta.C_SZAKMAIGYAKORLATON = 'T', N', Szakmai gyakorlat', N'') + IIF(Tanulo.C_SZOCIALISTAMOGATAS = 'T', N', Szociális támogatás', N'') + IIF(tta.C_BEJARO = 'T', N', Bejáró', N'') ,tanterv.C_NEV ,f.C_NYOMTATASINEV ,allampolgarsag.C_NAME ,tanulo.C_DIAKIGAZOLVANYSZAM ,ocso.C_NEV ,ocso.ID ,tcs.C_BELEPESDATUM FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tcs.C_TANULOID AND tcso.TOROLT = 'F' AND tcso.C_BELEPESDATUM <= ISNULL(tcs.C_KILEPESDATUM,@pDatum) AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM >= ISNULL(tcs.C_KILEPESDATUM,@tanevUtolsoNapja)) INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcso.C_OSZTALYCSOPORTID AND o.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocso ON ocso.ID = o.ID AND ocso.TOROLT = 'F' AND ocso.C_FELADATKATEGORIAID = @feladatKategoriaId INNER JOIN T_TANULO_OSSZES tanulo ON tanulo.ID = tcs.C_TANULOID AND tanulo.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES f on f.ID = tanulo.ID AND f.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = f.C_ALLAMPOLGARSAGA AND allampolgarsag.TOROLT = 'F' AND allampolgarsag.C_TANEVID = @tanevId LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tcs.ID = tta.C_TANULOCSOPORTID AND tta.TOROLT = 'F' AND tta.C_TANEVID = tcs.C_TANEVID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID AND MagantanulosagOka.C_TANEVID = f.C_TANEVID AND MagantanulosagOka.TOROLT = 'F' LEFT JOIN T_TANTERV_OSSZES AS tanterv ON Tanterv.ID = tta.C_TANTERVID AND tanterv.TOROLT = 'F' AND tanterv.C_TANEVID = tcs.C_TANEVID WHERE tcs.TOROLT = 'F' AND tcs.C_TANEVID = @tanevId AND tcs.C_OSZTALYCSOPORTID = @csoportId --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 uspGetOraSorszamByOsztaly @osztalyCsoportId = @csoportId ,@datum = @pDatum ,@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' + IIF(tao.C_MEGJEGYZES IS NOT NULL, ' - ' + tao.C_MEGJEGYZES, ''), 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 Id AS TanuloId ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,Allampolgarsaga ,DiakIgazolvanySzam ,Osztaly AS Osztalya ,BelepesDatum FROM #students /*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, 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, @csoportid, NULL, NULL) 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, 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, @csoportid, NULL, NULL) 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