IF OBJECT_ID('[dbo].[sp_GetNapkozisNaplo]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetNapkozisNaplo] END GO CREATE PROCEDURE [dbo].[sp_GetNapkozisNaplo] @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, TanuloCsoportId INT, Nev nvarchar(max), Osztaly nvarchar(max), 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) ) INSERT INTO @tanulok SELECT DISTINCT tanulok.TanuloId Id ,tanulok.TanuloCsoportId ,iif(KilepesDatum IS NOT NULL,f.C_NYOMTATASINEV+' (kilépett)', f.C_NYOMTATASINEV) as Nev ,dbo.fnGetDokumentumTanuloAktualisOsztaly(t.Id) as Osztaly ,NaploSorszam ,t.C_BEIRASINAPLOSORSZAM as beirasiSorszam ,Torzslapszam ,Allampolgarsaga.Allampolgarsaga 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(KilepesDatum, 'yyyy.MM.dd.') as Kilepes ,tt.c_nev as Kepzes ,cim.Tipus ,cim.cim ,email.c_emailcim as TanuloEmail ,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (' + MagantanulosagOka.C_NAME + '), ', '') + 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 fnGetDokumentumOsztalyokCsoportokTanuloi (@tanevId, @csoportId, 'T') tanulok INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.TanuloId AND f.torolt='F' INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID AND tt.TOROLT = 'F' AND tt.C_TANEVID = @tanevId INNER JOIN (SELECT distinct d.id Id, d.c_name Allampolgarsaga FROM T_DICTIONARYITEMBASE_OSSZES d) Allampolgarsaga ON Allampolgarsaga.Id=f.c_allampolgarsaga INNER JOIN ( SELECT DISTINCT TanuloId TanuloId ,cimTipusa.C_NAME Tipus ,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,'') Cim FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @csoportid) temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa )cim ON cim.TanuloId=tanulok.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=tanulok.TanuloId AND email.c_gondviseloid is null AND email.torolt='F' AND email.c_alapertelmezett='T' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka on MagantanulosagOka.ID = t.C_MAGANTANULOSAGANAKOKA AND MagantanulosagOka.C_TANEVID = f.C_TANEVID --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 NapkozisCsoport, iif(len(ocs.c_nev)>17, SUBSTRING (ocs.c_nev, 1 , 17)+'...', ocs.c_nev) 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 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 FROM @tanulok ORDER BY Nev --Naplóhetek DECLARE @elsonap as date DECLARE @utolsonap as date 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=1394 WHERE c_osztalycsoportid=@csoportid ) IS NULL begin SET @elsonap= (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1394 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T') END ELSE BEGIN SET @elsonap = ( SELECT top 1 tr.C_DATUM FROM T_OSZTALYCSOPORT_TANEVRENDJE otr INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394 WHERE c_osztalycsoportid=@csoportid) END 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 BEGIN SET @utolsonap = (SELECT top 1 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') END ELSE BEGIN SET @utolsonap = ( SELECT top 1 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) END SELECT nn.C_HETSORSZAMA Het ,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetEleje ,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetVege FROM T_NAPTARINAP_OSSZES nn WHERE nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap AND nn.C_HETNAPJA BETWEEN 1407 AND 1413 AND nn.TOROLT='F' AND nn.c_tanevId = @tanevId GROUP BY nn.C_HETSORSZAMA ORDER BY MIN(nn.C_NAPDATUMA) --Tanuló adatok SELECT * FROM @tanulok ORDER BY Nev --Mulasztások DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1), Tanulo int, Tipus int) DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F') SELECT DATEPART(MONTH, Datum) Honap ,TantargyId Id ,Igazolt IgazoltE ,TanuloId TanuloId ,TanuloCsoportId TanuloCsoportId ,IgazolasTipusa IgazolasTipus ,Datum Datum ,Tipusa Tipus ,KesesPercben KesesPercben ,HetSorszama HetSorszama ,Oraszam Oraszam ,CAST(DATEPART(MONTH, Datum) AS NVARCHAR(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') ElmeletGyakorlat ,C_GYAKORLATI isGyakorlat INTO #mulasztasTmp FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId SELECT TanuloId Id ,TanuloCsoportId ,Sorszam ,TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,Allampolgarsaga ,DiakIgazolvanySzam ,KilepesDatum ,BeirasiNaploSorszam ,AktualisOsztaly Osztaly INTO #studentsWithTanuloCsoport FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) EXEC sp_GetDokumentumMulasztasokIdoszakonkent @tanevId = @tanevId, @osztalyCsoportId = @csoportId, @iskolaErdekuSzamit = @iskolaErdekuSzamit, @isReszletesMulasztasok = 0 --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_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 DECLARE @datum DATE = GETDATE() CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT) INSERT INTO #OraSorszam EXEC sp_GetOraSorszamByOsztaly @osztalyCsoportId = @csoportId, @datum = @datum, @intezmenyId = @intezmenyId, @tanevId = @tanevId SELECT DISTINCT tao.C_ORASZAM Oraszam ,tao.C_HETSORSZAMA Het ,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') Datum ,CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(VARCHAR(5), tao.C_ORAVEGE, 108) DatumKezdettel ,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, f.C_NYOMTATASINEV) Tanar ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN -- + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) TantargyNev ,tao.C_TEMA Tema ,OraSorszam ,C_ORAKEZDETE 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) oraSorszam ON oraSorszam.TanitasioraId = tao.Id WHERE tao.C_OSZTALYCSOPORTID = @csoportid AND tao.TOROLT = 'F' ORDER BY tao.C_ORAKEZDETE, tao.C_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(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) 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 WHERE C_OSZTALYCSOPORTID = @csoportId AND te.TOROLT = 'F' AND C_TIPUS <> 1534 --Tanuló gondviselői SELECT 'Gondviselő ('+Rokonsag.Rokonsag+'):' as Fejlec, tcs.c_tanuloid Tanulo, g.c_nev Gondviselo, gcim.Tipus Tipus,gcim.Cim as Cim, gtel.c_telefonszam Telefon, gemail.C_EMAILCIM Email FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_GONDVISELO_OSSZES g ON g.c_tanuloid=tcs.c_tanuloid AND g.torolt='F' LEFT JOIN ( SELECT DISTINCT GondviseloId GondviseloId ,cimTipusa.C_NAME Tipus ,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,'') Cim FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa )gcim ON gcim.GondviseloId=g.id LEFT JOIN T_TELEFON_OSSZES gtel ON gtel.c_gondviseloid=g.id AND gtel.torolt='F' LEFT JOIN T_EMAIL_OSSZES gemail ON gemail.c_gondviseloid=g.id AND gemail.torolt='F' LEFT JOIN (SELECT distinct d.id Id, d.c_name Rokonsag FROM T_DICTIONARYITEMBASE_OSSZES d) Rokonsag ON Rokonsag.Id=g.c_rokonsagfoka WHERE tcs.c_osztalycsoportid=@csoportId AND tcs.c_tanevid=@tanevid AND tcs.torolt='F' END GO