DROP PROCEDURE IF EXISTS uspGetNapkozisNaplo GO CREATE PROCEDURE uspGetNapkozisNaplo @tanevId int ,@intezmenyId int ,@csoportId int ,@iskolaErdekuSzamit bit ,@pDatum date ,@igazolasTipusTypeId int = 47 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 @elsonap date ,@utolsonap date ,@FelevVege date ,@datum date = @pDatum CREATE TABLE #OraSorszam ( TanitasioraId int PRIMARY KEY ,OraSorszam int ) --Tanulók adatai, elérhetőségei CREATE TABLE #tanulok ( Id int ,TanuloCsoportId int ,Nev nvarchar (max) ,Osztaly nvarchar (max) ,OsztalyId int ,Sorszam nvarchar (max) ,beirasiSorszam nvarchar (max) ,Torzslapszam nvarchar (max) ,Allampolgarsaga nvarchar (max) ,DiakIg nvarchar (max) ,SzulHely nvarchar (max) ,SzulIdo nvarchar (max) ,Anyja nvarchar (max) ,Taj nvarchar (max) ,OktAzon nvarchar (max) ,Kilepes nvarchar (max) ,Kepzes nvarchar (max) ,TanuloCimTipus nvarchar (max) ,TanuloCim nvarchar (max) ,TanuloEmail nvarchar (max) ,szoc nvarchar (max) ,BelepesDatum datetime ) DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar (1) ,Tanulo int ,Tipus int ) DECLARE @GondViseloCimTable TABLE ( GondviseloId int ,Cim nvarchar (max) ,Cimtipusa nvarchar (max) ) DECLARE @EmailCimTableTemp TABLE ( FelhasznaloId int ,EmailCim nvarchar (max) ,GondviseloId int ,Alapertelmezett char(1) ) DECLARE @EmailCimGondviseloTable TABLE ( GondviseloId int ,EmailCim nvarchar (max) ) DECLARE @TelefonTableTemp TABLE ( FelhasznaloId int ,Telefon nvarchar (max) ,GondviseloId int ,Alapertelmezett char(1) ) DECLARE @GondviseloTelefonTable TABLE ( GondviseloId int ,Telefon nvarchar (max) ) 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' INSERT INTO #tanulok ( Id ,TanuloCsoportId ,Nev ,Osztaly ,OsztalyId ,Sorszam ,beirasiSorszam ,Torzslapszam ,Allampolgarsaga ,DiakIg ,SzulHely ,SzulIdo ,Anyja ,Taj ,OktAzon ,Kilepes ,Kepzes ,TanuloCimTipus ,TanuloCim ,TanuloEmail ,szoc ,BelepesDatum ) SELECT tcs.C_TANULOID AS Id ,tcs.ID AS TanuloCsoportId ,IIF(tcs.C_KILEPESDATUM IS NOT NULL, f.C_NYOMTATASINEV + ' (kilépett)', f.C_NYOMTATASINEV) AS Nev ,osztaly.OsztalyNev Osztaly ,osztaly.ID AS OsztalyId ,tta.C_NAPLOSORSZAM AS NaploSorszam ,tta.C_BEIRASINAPLOSORSZAM AS beirasiSorszam ,tta.C_TORZSLAPSZAM AS TorzsLapSzam ,Allapolgarasaga.C_NAME AS Allampolgarsag ,t.C_DIAKIGAZOLVANYSZAM AS DiakIg ,f.C_SZULETESIHELY AS SzulHely ,FORMAT(f.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS SzulIdo ,f.C_ANYJANEVE AS Anyja ,f.C_TAJSZAM AS Taj ,f.C_OKTATASIAZONOSITO AS OktAzon ,FORMAT(tcs.C_KILEPESDATUM, 'yyyy.MM.dd.') AS Kilepes ,tt.c_nev AS Kepzes ,cim.Tipus ,cim.cim ,email.c_emailcim AS TanuloEmail ,STUFF( IIF(tta.C_MAGANTANULO = 'T', ', Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME, '-') + ')', '') + IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '') + IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '') + IIF(t.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', ''), 1, 2, '' ) AS szoc ,tcs.C_BELEPESDATUM AS BelepesDatum FROM T_TANULOCSOPORT_OSSZES tcs CROSS APPLY fnGetTanuloOsztaly(tcs.C_TANULOID, ISNULL(DATEADD(DAY,-1, tcs.C_KILEPESDATUM), @tanevUtolsoNapja), @feladatKategoriaId, 1, DEFAULT) osztaly INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID INNER JOIN T_TANULO_OSSZES t ON t.ID = tcs.C_TANULOID CROSS APPLY fnGetOsztalyCsoportTanuloinakTanugyiAdatai(osztaly.ID, osztaly.BelepesDatuma) tta INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = tta.C_TANTERVID AND tt.TOROLT = 'F' AND tt.C_TANEVID = @tanevId LEFT JOIN ( SELECT DISTINCT TanuloId AS TanuloId ,cimTipusa.C_NAME AS Tipus ,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, '' ) AS Cim FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @csoportid, NULL, NULL) temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS cimTipusa ON cimTipusa.Id = temp.CimTipusa AND cimTipusa.C_TANEVID = @tanevId AND cimTipusa.TOROLT = 'F' WHERE temp.CimTipusa = 907 ) AS cim ON cim.TanuloId = t.ID LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid = t.ID AND tel.c_gondviseloid IS NULL AND tel.torolt = 'F' AND tel.c_alapertelmezett = 'T' LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid = t.ID AND email.c_gondviseloid IS NULL AND email.torolt = 'F' AND email.c_alapertelmezett = 'T' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID AND MagantanulosagOka.C_TANEVID = tt.C_TANEVID AND MagantanulosagOka.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Allapolgarasaga ON Allapolgarasaga.ID = f.C_ALLAMPOLGARSAGA AND Allapolgarasaga.C_TANEVID = tt.C_TANEVID AND Allapolgarasaga.TOROLT = 'F' WHERE tcs.C_TANEVID = @tanevId AND tcs.C_OSZTALYCSOPORTID = @csoportId AND tta.TanuloId = t.ID --Kezdőoldal 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 NapkozisCsoport ,IIF(LEN(ocs.c_nev) > 17, SUBSTRING(ocs.c_nev, 1, 17) + '...', ocs.c_nev) AS RovidNev ,ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto ,ISNULL(cs.c_csoportnaploleiras, '-') AS CsoportNaploLeiras ,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy.MM.dd.') AS Megnyitas ,ISNULL(FORMAT(cs.c_csoportnaplozarasa, 'yyyy.MM.dd.'), '-') AS Lezaras ,ocs.ID AS NapkozisCsoportId ,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 AND ocs.c_tanevid = @tanevid AND ocs.id = @csoportId INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid WHERE i.id = @intezmenyid AND ia.c_tanevid = @tanevid --Csoportot vezette SELECT ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto FROM T_CSOPORT_OSSZES cs LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid WHERE cs.id = @csoportId AND cs.c_altanevid = @tanevid AND cs.c_alintezmenyid = @intezmenyid --Tanulók SELECT DISTINCT Nev ,Osztaly ,OktAzon ,OsztalyId ,BelepesDatum FROM #tanulok ORDER BY Nev --Naplóhetek SELECT TOP 1 @elsonap = t.C_KEZDONAP FROM T_TANEV_OSSZES t WHERE t.ID = @tanevId AND t.TOROLT = 'F' IF ( SELECT c_osztalycsoportid FROM T_OSZTALYCSOPORT_TANEVRENDJE otr INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid AND tr.c_naptipusa = 1395 WHERE c_osztalycsoportid = @csoportid ) IS NULL SELECT TOP 1 @utolsonap = tr.c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa = 1395 AND c_tanevid = @tanevId AND c_intezmenyid = @intezmenyId AND torolt = 'F' AND c_osszescsoportravonatkozik = 'T' ELSE SELECT TOP 1 @utolsonap = tr.c_datum FROM T_OSZTALYCSOPORT_TANEVRENDJE otr INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid AND tr.c_naptipusa = 1395 WHERE c_osztalycsoportid = @csoportid CREATE TABLE #NapSorszamTemp ( Datum DATE ) INSERT INTO #NapSorszamTemp EXEC sp_GetDokumentumTanitasiNapokSorszama @tanevId = @tanevId ,@osztalyId = @csoportId SELECT ROW_NUMBER() OVER (ORDER BY ret.Het) AS TanitasiHetSorszam ,ret.Het ,dbo.fnGetDokumentumDatumFormatum(ret.HetEleje) AS HetEleje ,dbo.fnGetDokumentumDatumFormatum(ret.HetVege) AS HetVege FROM ( SELECT DISTINCT ha.* FROM ( SELECT nn.C_HETSORSZAMA AS Het ,MIN(nn.C_NAPDATUMA) AS HetEleje ,MAX(nn.C_NAPDATUMA) AS HetVege FROM T_NAPTARINAP_OSSZES nn WHERE nn.C_NAPDATUMA BETWEEN @elsonap AND @utolsonap AND nn.TOROLT='F' AND nn.c_tanevId = @tanevId GROUP BY nn.C_HETSORSZAMA ) ha INNER JOIN #NapSorszamTemp ns ON ns.Datum >= ha.HetEleje and ns.Datum <= ha.HetVege ) ret UNION SELECT NULL AS TanitasiHetSorszam ,ret.Het ,dbo.fnGetDokumentumDatumFormatum(ret.HetEleje) AS HetEleje ,dbo.fnGetDokumentumDatumFormatum(ret.HetVege) AS HetVege FROM ( SELECT DISTINCT ha.* FROM ( SELECT nn.C_HETSORSZAMA AS Het ,MIN(nn.C_NAPDATUMA) AS HetEleje ,MAX(nn.C_NAPDATUMA) AS HetVege FROM T_NAPTARINAP_OSSZES nn WHERE nn.C_NAPDATUMA BETWEEN @elsonap AND @utolsonap AND nn.TOROLT='F' AND nn.c_tanevId = @tanevId GROUP BY nn.C_HETSORSZAMA ) ha LEFT JOIN #NapSorszamTemp ns ON ns.Datum >= ha.HetEleje and ns.Datum <= ha.HetVege WHERE ns.Datum IS NULL ) ret ORDER BY ret.Het --Tanuló adatok SELECT * FROM #tanulok ORDER BY Nev 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, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai INNER JOIN T_TANTARGY_OSSZES AS Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId SELECT ta.TanuloId AS Id ,ta.TanuloCsoportId ,ta.Sorszam ,ta.TorzslapSzam ,ta.OktAzon ,ta.TajSzam ,ta.AnyjaNeve ,ta.SzulHely ,ta.SzulIdo ,ta.SocAdat ,ta.Kepzes ,ta.TanuloNeve ,ta.Allampolgarsaga ,ta.DiakIgazolvanySzam ,ta.KilepesDatum ,ta.BeirasiNaploSorszam ,ta.AdottOsztaly AS Osztaly ,ta.AdottOsztalyId AS OsztalyId ,CONVERT(DATE, LEFT(ta.BelepesDatum, LEN(ta.BelepesDatum) - 1), 102) AS BelepesDatum INTO #studentsWithTanuloCsoport FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta EXEC sp_GetDokumentumMulasztasokIdoszakonkent @tanevId = @tanevId ,@osztalyCsoportId = @csoportId ,@iskolaErdekuSzamit = @iskolaErdekuSzamit ,@isReszletesMulasztasok = 0 ,@igazolasTipusTypeId = @igazolasTipusTypeId --Napló SELECT DISTINCT nn.c_hetsorszama AS Het ,d.c_name AS Nap ,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') AS Datum ,ISNULL(osztalyCsoportTanevRendje.NapTipusa + IIF(osztalyCsoportTanevRendje.HetNapja <> nn.C_ALAPHETNAPJA, ' (' + osztalyCsoportTanevRendje.ElteroNap +')', '') + osztalyCsoportTanevRendje.Megjegyzes, '') AS Megjegyzes FROM T_NAPTARINAP_OSSZES nn LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = nn.c_napdatuma AND tao.c_osztalycsoportid = @csoportid AND tao.torolt = 'F' LEFT JOIN ( SELECT C_DATUM ,tr.C_HETNAPJA AS HetNapja ,elteroNap.C_NAME AS ElteroNap ,ISNULL(trNaptipus.C_NAME, '') AS NapTipusa ,ISNULL(', ' + C_MEGJEGYZES, '') AS Megjegyzes FROM T_TANEVRENDJE_OSSZES tr LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.Id = ocstr.C_TANEVRENDJEID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA AND trNaptipus.C_TANEVID = @tanevId AND trNaptipus.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES elteroNap ON elteroNap.ID = tr.C_HETNAPJA AND elteroNap.C_TANEVID = @tanevId AND elteroNap.TOROLT = 'F' WHERE tr.TOROLT = 'F' AND tr.C_TANEVID = @tanevId AND (tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' OR C_OSZTALYCSOPORTID = @csoportId) ) osztalyCsoportTanevRendje ON osztalyCsoportTanevRendje.C_DATUM = nn.C_NAPDATUMA LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = nn.c_hetnapja AND d.C_TANEVID = @tanevId AND d.TOROLT = 'F' LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.c_foglalkozasid AND fog.c_tanevid = @tanevid LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = fog.c_tanarid AND f.torolt = 'F' WHERE nn.c_napdatuma >= @elsonap AND nn.c_napdatuma <= @utolsonap ORDER BY nn.c_hetsorszama ,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') --Napló adatok INSERT INTO #OraSorszam ( TanitasioraId ,OraSorszam ) EXEC uspGetOraSorszamByOsztaly @osztalyCsoportId = @csoportId ,@datum = @pDatum ,@intezmenyId = @intezmenyId ,@tanevId = @tanevId SELECT DISTINCT tao.C_ORASZAM AS Oraszam ,tao.C_HETSORSZAMA AS Het ,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') AS Datum ,CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS DatumKezdettel ,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV + IIF(tao.C_HELYETTESITESOKA IS NOT NULL, ' (' + tao.C_HELYETTESITESOKA + ')', ''), f.C_NYOMTATASINEV) AS Tanar ,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 ,tao.C_TEMA AS Tema ,OraSorszam ,C_ORAKEZDETE INTO #megtartottOrak FROM T_TANITASIORA_OSSZES tao LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.C_FOGLALKOZASID AND fog.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_TANARID AND f.TOROLT = 'F' 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 OraSorszam ,TanitasioraId FROM #OraSorszam ) AS oraSorszam ON oraSorszam.TanitasioraId = tao.Id WHERE tao.C_OSZTALYCSOPORTID = @csoportid AND tao.TOROLT = 'F' ORDER BY tao.C_ORAKEZDETE ,tao.C_ORASZAM SELECT * FROM #megtartottOrak --Napló mulasztás SELECT C_HETSORSZAMA AS Het ,C_NYOMTATASINEV AS Tanulo ,MAX([1]) AS Hetfo ,MAX([2]) AS Kedd ,MAX([3]) AS Szerda ,MAX([4]) AS Csutortok ,MAX([5]) AS Pentek ,MAX([6]) AS Szombat FROM ( SELECT C_HETSORSZAMA ,C_NYOMTATASINEV ,[0] ,[1] ,[2] ,[3] ,[4] ,[5] ,[6] FROM ( SELECT DISTINCT n.C_NAPTARINAPID ,DATEPART(dw, n.C_DATUM) AS NAP ,t.C_NYOMTATASINEV ,n.C_HETSORSZAMA ,'[' + STUFF( ( SELECT ', ' + CAST(OraSorszam AS varchar(3)) + IIF(tm.C_TIPUS = 1499, '(k)', '') FROM T_TANULOMULASZTAS_OSSZES tm INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID LEFT JOIN ( SELECT DISTINCT OraSorszam ,TanitasioraId FROM #OraSorszam ) AS oraSorszam ON oraSorszam.TanitasioraId = o.Id WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID AND m.C_ORATANULOIID = tm.C_ORATANULOIID AND tm.C_TANEVID = @tanevId AND tm.torolt = 'F' AND tm.c_intezmenyId = @intezmenyId AND o.c_tanevId = @tanevId AND o.C_OSZTALYCSOPORTID = @csoportId AND o.TOROLT = 'F' ORDER BY o.C_NAPTARINAPID ,o.C_ORASZAM FOR XML PATH(''), TYPE ) .value ('.', 'varchar(max)'), 1, 2, '' ) + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas FROM T_TANITASIORA_OSSZES n INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID AND m.torolt = 'F' INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID WHERE n.C_TANEVID = @tanevId AND m.C_TANEVID = @tanevId AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533) AND n.C_OSZTALYCSOPORTID = @csoportId AND n.TOROLT = 'F' GROUP BY n.C_NAPTARINAPID ,C_ORATANULOIID ,C_NYOMTATASINEV ,n.C_HETSORSZAMA ,n.C_DATUM ) AS SUB PIVOT(MAX(HIANYZAS) FOR NAP IN( [0] ,[1] ,[2] ,[3] ,[4] ,[5] ,[6])) AS PivotTable ) AS ASD GROUP BY C_HETSORSZAMA ,C_NYOMTATASINEV ORDER BY C_HETSORSZAMA --Tanuló feljegyzései SELECT tte.C_TANULOID AS Tanulo ,FORMAT(tao.c_datum, 'yyyy.MM.dd.') AS Idopont ,d.C_NAME AS Tipus ,te.C_TARTALOM AS Feljegyzes ,f.C_NYOMTATASINEV AS Feljegyzo FROM T_TANULO_TANULOESEMENY tte INNER JOIN T_TANULOESEMENY_OSSZES te ON te.Id = tte.C_TANULOESEMENYID INNER JOIN T_TANITASIORA_OSSZES tao ON tao.Id = te.C_TANITASIORAID INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = te.C_FELJEGYZOID INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.Id = te.C_TIPUS AND d.C_TANEVID = @tanevId AND d.TOROLT = 'F' WHERE C_OSZTALYCSOPORTID = @csoportId AND te.TOROLT = 'F' AND C_TIPUS <> 1534 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 ,Alapertelmezett ) SELECT TanuloId ,C_EMAILCIM ,C_GONDVISELOID ,C_ALAPERTELMEZETT 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 @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 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' INSERT INTO @TelefonTableTemp ( FelhasznaloId ,Telefon ,GondviseloId ,Alapertelmezett ) SELECT TanuloId ,C_TELEFONSZAM ,C_GONDVISELOID ,C_ALAPERTELMEZETT 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 @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 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' /*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