IF OBJECT_ID('[dbo].[sp_GetCsoportNaplo]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetCsoportNaplo] END GO CREATE PROCEDURE [dbo].[sp_GetCsoportNaplo] @tanevId INT, @intezmenyid INT, @csoportId INT, @iskolaErdekuSzamit BIT AS BEGIN SET NOCOUNT ON; --Tanulók adatai, elérhetőségei DECLARE @tanulok TABLE ( Id int ,Nev nvarchar(max) ,Osztaly nvarchar(max) ,Sorszam nvarchar(max) ,Torzslapszam nvarchar(max) ,Allampolgarsaga nvarchar(max) ,DiakIg nvarchar(max) ,SzulHely nvarchar(max) ,SzulIdo nvarchar(max) ,Anyja nvarchar(max) ,Taj nvarchar(20) ,OktAzon nvarchar(20) ,Kilepes nvarchar(max) ,Kepzes nvarchar(max) ,TanuloCimTipus nvarchar(max) ,TanuloCim nvarchar(max) ,TanuloTelefon nvarchar(max) ,TanuloEmail nvarchar(max) ,szoc nvarchar(max) ) INSERT INTO @tanulok SELECT DISTINCT t.id Id ,iif(tcs.C_KILEPESDATUM is not null, f.C_NYOMTATASINEV + ' (kilépett)',f.c_nyomtatasinev) as Nev ,Osztaly.Osztaly as Osztaly ,t.c_naplosorszam as Sorszam ,t.c_beirasinaplosorszam as Torzslapszam ,Allampolgarsaga.C_NAME as Allampolgarsag ,t.c_diakigazolvanyszam as DiakIg ,f.c_szuletesihely as SzulHely ,FORMAT(f.c_szuletesidatum, 'yyyy. MMMM dd.', 'hu-hu') as SzulIdo ,f.c_anyjaneve as Anyja ,f.c_tajszam as Taj ,f.c_oktatasiazonosito as OktAzon ,FORMAT(tcs.c_kilepesdatum, 'yyyy. MMMM dd.', 'hu-hu') as Kilepes ,tt.c_nev as Kepzes ,cim.Tipus ,cim.cim ,tel.c_telefonszam ,email.c_emailcim as TanuloEmail ,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (eü. ok), ', '') + IIF(t.C_JOGVISZONYATSZUNETELTETO = 'T', 'Jogviszony szüneteltetve, ', '') + IIF(t.C_SZAKMAIGYAKORLATON = 'T', 'Szakmai gyakorlat, ', '') + IIF(t.C_SZOCIALISTAMOGATAS = 'T', 'Szociális támogatás, ', '') AS szoc FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_FELHASZNALO_OSSZES f ON f.id=tcs.c_tanuloid AND f.torolt='F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES Allampolgarsaga ON Allampolgarsaga.Id = f.c_allampolgarsaga AND Allampolgarsaga.C_TANEVID = f.C_TANEVID LEFT JOIN ( SELECT tcs.c_tanuloid TanuloId, ocs.c_nev as Osztaly, tcs.c_kilepesdatum Kilepes FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_OSZTALY_OSSZES o ON o.id=tcs.c_osztalycsoportid INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON o.id=ocs.id ) osztaly ON tcs.c_tanuloid=osztaly.TanuloId INNER JOIN T_TANTERV_OSSZES tt ON tt.c_intezmenyid=tcs.c_intezmenyid AND tt.c_intezmenyid=@intezmenyid AND tt.c_tanevid=@tanevid INNER JOIN T_TANULO_OSSZES t ON t.id=f.id INNER JOIN ( SELECT f.id Tanulo, dt.c_name Tipus, c.c_iranyitoszam+', '+c.c_varos+' '+c.c_kozterulet+' '+dj.c_name+' '+c.c_hazszam as Cim FROM t_cim_osszes c INNER JOIN (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d )dt ON dt.id=c.c_cimtipusa INNER JOIN T_FELHASZNALO_OSSZES f ON f.id=c.c_felhasznaloid INNER JOIN (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d)dj ON dj.id=c.c_kozteruletjellege WHERE c.c_cimtipusa = 907 AND c.c_gondviseloid is null AND c.torolt='F' AND c.c_tanevid=@tanevId ) cim ON cim.Tanulo=tcs.c_tanuloid LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid = f.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 = tcs.c_tanuloid AND email.c_gondviseloid IS NULL AND email.torolt = 'F' AND email.c_alapertelmezett = 'T' WHERE tcs.c_osztalycsoportid = @csoportId AND tcs.c_tanevid = @tanevid --Kezdőoldal SELECT ia.c_nev as IntezmenyNev ,ia.c_cime as IntezmenyCim ,ia.c_omkod as OMKOD ,ia.c_igazgatoneve as IntezmenyVezeto ,ocs.c_nev Csoport ,isnull(f.c_nyomtatasinev,'-') as CsoportVezeto ,isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras ,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas ,isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras ,ocs.c_nev RovidNev 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 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 AND ocs.id = @csoportId --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 --Tanulók SELECT DISTINCT Nev, Osztaly, OktAzon FROM @tanulok --Naplóhetek DECLARE @elsonap as date DECLARE @utolsonap as date select @elsonap=c_elsotanitasinap, @utolsonap=c_utolsotanitasinap from t_tanev_osszes where id=@tanevId SELECT n.c_hetsorszama as Het ,FORMAT(convert(date,min(c_napdatuma)), 'yyyy. MMMM dd.', 'hu-hu')as HetEleje ,FORMAT(convert(date,max(c_napdatuma)), 'yyyy. MMMM dd.', 'hu-hu') as HetVege FROM T_NAPTARINAP_OSSZES n WHERE n.c_napdatuma >= @elsonap AND n.c_napdatuma <= @utolsonap AND n.c_orarendinap = 'T' AND n.c_tanevid = @tanevid AND n.c_intezmenyid = @intezmenyid GROUP BY n.c_hetsorszama --Tanuló adatok SELECT * FROM @tanulok --Napló SELECT DISTINCT nn.c_hetsorszama as Het ,d.Nap as Nap ,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') as Datum 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 distinct d.id as ID, d.c_name Nap from T_DICTIONARYITEMBASE_OSSZES d) d ON d.id = nn.c_hetnapja LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id=tao.c_foglalkozasid AND fog.c_tanevid = @tanevid LEFT JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.c_foglalkozasokid=fog.id LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=ft.c_tanarokid AND f.torolt='F' WHERE nn.c_orarendinap='T' AND 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 DECLARE @Orak TABLE ( datum date ,Sorszam int ,Hetsorszam int ) INSERT INTO @Orak SELECT DISTINCT n.c_napdatuma datum ,sz.Oraszam ,n.c_hetsorszama FROM T_NAPTARINAP_OSSZES n CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) sz (Oraszam) WHERE n.c_napdatuma >= @elsonap AND n.c_napdatuma <= @utolsonap AND n.c_orarendinap = 'T' AND TOROLT = 'F' AND n.C_TANEVID = @tanevId DECLARE @oraSorszam TABLE (Id int, EvesSorszam int) INSERT INTO @oraSorszam (Id, EvesSorszam) SELECT DISTINCT s.Id ,s.EvesSorszam FROM ( SELECT DISTINCT tn.C_TANTARGYID, tn.C_OSZTALYCSOPORTID, ot.C_TANAROKID, tn.C_INTEZMENYID--, fh.C_NYOMTATASINEV FROM T_TANITASIORA_OSSZES tn INNER JOIN T_ORAK_TANAROK ot ON tn.ID = ot.C_ORAKID INNER JOIN T_FELHASZNALO fh ON fh.ID = ot.C_TANAROKID WHERE tn.C_OSZTALYCSOPORTID = @csoportid ) x CROSS APPLY dbo.fnGetEvesOraszamLista ( x.C_TANTARGYID ,x.C_OSZTALYCSOPORTID ,x.C_TANAROKID ,GETDATE() ,x.C_INTEZMENYID ,@tanevID ) s SELECT DISTINCT o.Hetsorszam as Het ,o.Sorszam as Oraszam ,FORMAT(o.Datum, 'yyyy. MMMM dd.', 'hu-hu') as Datum ,FORMAT(tao.c_orakezdete, 'hh:mm')as OraKezd ,fh.C_NYOMTATASINEV as Tanar ,os.EvesSorszam as Sorszam ,tao.c_tema as Tema FROM @Orak o LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = o.Datum AND tao.torolt = 'F' AND tao.c_oraszam = o.Sorszam AND tao.c_tanevid = @tanevid AND tao.c_osztalycsoportid = @csoportid LEFT JOIN @oraSorszam os ON os.Id = tao.ID LEFT JOIN T_ORAK_TANAROK ot ON tao.ID = ot.C_ORAKID LEFT JOIN T_FELHASZNALO fh ON fh.ID = ot.C_TANAROKID ORDER BY Oraszam --Napló mulasztás SELECT C_HETSORSZAMA Het, C_NYOMTATASINEV 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(o.C_ORASZAM AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1500, '', '(k)') FROM T_TANULOMULASZTAS_OSSZES tm INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.id=@csoportid WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID AND m.C_ORATANULOIID = tm.C_ORATANULOIID AND o.C_TANEVID = @tanevID AND tm.C_TANEVID = @tanevID AND TM.TOROLT='F' AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533) 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 = 'T' OR m.C_TIPUS = 1499, 0, 1)) 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 n.c_osztalycsoportid=@csoportId AND n.torolt='F' AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533) 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 x GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV ORDER BY C_HETSORSZAMA END GO