DROP PROCEDURE IF EXISTS uspGetCsoportNaplo GO CREATE PROCEDURE uspGetCsoportNaplo @tanevId int ,@intezmenyid int ,@csoportId int ,@iskolaErdekuSzamit bit ,@isGyakorlatiTargyak bit ,@isElmeletiTargyak bit AS BEGIN SET NOCOUNT ON; SET DATEFIRST 1; -- Sets the first day of the week to a number from 1 (Monday) through 7 (Sunday). DECLARE @isreszletesmulasztasok bit = 0 ,@isGyakorlatVagyElmelet bit /*0 csak elmeleti || 1 csak gyakorlati || NULL elmeleti és gyakorlati*/ ,@isGyakorlatVagyElmeletFalse bit = NULL ,@UtolsoNapTanevRendje date ,@ElsoNapTanev date ,@UtolsoNapTanev date ,@isVegzos varchar (1) ,@datum date = GETDATE() ,@FelevVege date ,@VegzosUtolsoNap date DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId) DECLARE @TanitasiNapTipusok TABLE (Id INT) DECLARE @NapSorszam TABLE ( Datum date ,Sorszam nvarchar (4) ) CREATE TABLE #OraSorszam ( TanitasioraId int PRIMARY KEY ,OraSorszam int ) CREATE TABLE #hetek ( Het int ,HetEleje nvarchar (11) ,HetVege nvarchar (11) ,IsSzombatiMulasztas bit ,IsVasarnapiMulasztas bit ,PRIMARY KEY (Het) ) CREATE TABLE #hianyzasok ( C_HETSORSZAMA int ,C_NYOMTATASINEV nvarchar (255) ,TanuloId int ,Hetfo nvarchar (128) ,Kedd nvarchar (128) ,Szerda nvarchar (128) ,Csutortok nvarchar (128) ,Pentek nvarchar (128) ,Szombat nvarchar (128) ,Vasarnap nvarchar (128) ,Primary Key (C_HETSORSZAMA, TanuloId) ) DECLARE @TanuloCimTable TABLE ( FelhasznaloId int ,Cim nvarchar (max) ,Cimtipusa nvarchar (max) ) DECLARE @GondViseloCimTable TABLE ( GondviseloId int ,Cim nvarchar (max) ,Cimtipusa nvarchar (max) ) DECLARE @EmailCimTableTemp TABLE ( FelhasznaloId int ,EmailCim nvarchar (max) ,GondviseloId int ) DECLARE @EmailCimTanuloTable TABLE ( FelhasznaloId int ,EmailCim nvarchar (max) ) DECLARE @EmailCimGondviseloTable TABLE ( GondviseloId int ,EmailCim nvarchar (max) ) DECLARE @TelefonTableTemp TABLE ( FelhasznaloId int ,Telefon nvarchar (max) ,GondviseloId int ) DECLARE @TanuloTelefonTable TABLE ( FelhasznaloId int ,Telefon nvarchar (max) ) DECLARE @GondviseloTelefonTable TABLE ( GondviseloId int ,Telefon nvarchar (max) ) CREATE TABLE #Tantargyak ( ID int ,C_FOTARGYID int ,C_NEV nvarchar (255) COLLATE DATABASE_DEFAULT ,C_NEVNYOMTATVANYBAN nvarchar (255) COLLATE DATABASE_DEFAULT ,C_TARGYKATEGORIA int ,c_tanuloid int ,c_tanulocsoportid int ,RENDEZ1 int ,RENDEZ2 nvarchar (255) COLLATE DATABASE_DEFAULT ,RENDEZ3 int ,RENDEZ4 int ,RENDEZ5 nvarchar (255) COLLATE DATABASE_DEFAULT ,C_INTEZMENYID int ,C_TANEVID int ) DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1) ,Tanulo int ,Tipus int ) IF(@isGyakorlatiTargyak = 1) SET @isGyakorlatVagyElmelet = 1 IF(@isElmeletiTargyak = 1) SET @isGyakorlatVagyElmelet = 0 IF(@isGyakorlatiTargyak = 1 AND @isElmeletiTargyak = 1) SET @isGyakorlatVagyElmelet = NULL IF(@isGyakorlatiTargyak = 0 AND @isElmeletiTargyak = 0) SET @isGyakorlatVagyElmeletFalse = 0 SELECT TOP 1 @ElsoNapTanev = t.C_KEZDONAP ,@UtolsoNapTanev = t.C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES t WHERE t.ID = @tanevId AND t.TOROLT = 'F' SELECT TOP 1 @UtolsoNapTanevRendje = tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = 1395 AND tr.C_TANEVID = @tanevId AND tr.TOROLT = 'F' SELECT TOP 1 @VegzosUtolsoNap = tr.C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE tr.C_NAPTIPUSA = 1402 AND tr.C_TANEVID = @tanevId AND tr.TOROLT = 'F' 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' SELECT TOP 1 @isVegzos = o.C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES o WHERE o.ID = @csoportId --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 Csoport ,ocs.ID AS CsoportId ,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 ,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 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(felhasznaloNev.C_NYOMTATASINEV, '-') AS CsoportVezeto ,csoport.C_CSOPORTVEZETOID CsoportVezetoId FROM T_CSOPORT_OSSZES csoport INNER JOIN T_FELHASZNALO_OSSZES felhasznaloNev ON felhasznaloNev.id = csoport.C_CSOPORTVEZETOID WHERE csoport.id = @csoportId --Tanulók 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.AktualisOsztaly ,TanuloOsztalyai.Osztalynev 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 CROSS APPLY fnGetTanuloOsztalyString (ta.TanuloId, default, @kategoriaId, 0) TanuloOsztalyai SELECT Id ,Osztaly ,OktAzon ,TanuloNeve AS Nev ,BelepesDatum AS BelepesDatum FROM #studentsWithTanuloCsoport SELECT DISTINCT Id INTO #students FROM #studentsWithTanuloCsoport --Napló adatok INSERT INTO @TanitasiNapTipusok(Id) SELECT DISTINCT ID FROM T_DICTIONARYITEMBASE_OSSZES WHERE ID IN (1385, 1393, 1394, 1395, 1400, 1402, 1403, 1404) INSERT INTO @NapSorszam ( Datum ,Sorszam ) SELECT C_NAPDATUMA ,CAST(DENSE_RANK() OVER(ORDER BY C_NAPDATUMA) AS nvarchar (4)) FROM T_NAPTARINAP_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA IN (SELECT Id FROM @TanitasiNapTipusok) AND C_NAPDATUMA <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev) INSERT INTO #OraSorszam ( TanitasioraId ,OraSorszam ) EXEC sp_GetOraSorszamByOsztaly @osztalyCsoportId = @csoportId ,@datum = @datum ,@intezmenyId = @intezmenyId ,@tanevId = @tanevId SELECT tao.Id AS TanitasioraId ,tao.C_DATUM AS Datum ,CONVERT(varchar (5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar (5), tao.C_ORAVEGE, 108) AS KezdetVeg ,C_ORATULAJDONOSID AS PedagogusId ,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV) AS PedagogusNev ,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(nvarchar (max), OraSorszam),'-'), '-') AS OraSorszam ,IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(C_TEMA, char(0x0007),''), char(0x000B), ''), 'Elmaradt') AS Tema ,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(nvarchar (max), OraSorszam),'-') +'.: ' + REPLACE(REPLACE(C_TEMA, char(0x0007),''), char(0x000B), ''), 'Elmaradt') AS TemaOraSzammal ,tao.C_HETNAPJA AS HetNapja ,C_HETSORSZAMA AS HetSorszama ,C_MEGTARTOTT AS Megtartott ,C_TANTARGYID AS TantargyId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS Tantargynev ,C_OSZTALYCSOPORTID AS OsztalyCsoportId ,C_NAPSORSZAMA AS NapSorszama ,C_ORAKEZDETE AS Kezdete INTO #megtartottOrak FROM T_TANITASIORA_OSSZES tao INNER JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = tao.C_TANARID LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = tao.C_HELYETTESITOTANARID INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID AND (tantargy.C_GYAKORLATI = CASE @isGyakorlatVagyElmelet WHEN 1 THEN 'T' WHEN 0 THEN 'F' END OR @isGyakorlatVagyElmelet IS NULL) LEFT JOIN( SELECT DISTINCT OraSorszam ,TanitasioraId FROM #OraSorszam ) oraSorszam ON oraSorszam.TanitasioraId = tao.Id WHERE C_OSZTALYCSOPORTID = @csoportId AND tao.TOROLT = 'F' INSERT INTO #Hetek ( Het ,HetEleje ,HetVege ,IsSzombatiMulasztas ,IsVasarnapiMulasztas ) SELECT nn.C_HETSORSZAMA ,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') ,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') ,0 --default ,0 --default FROM T_NAPTARINAP_OSSZES nn WHERE nn.C_NAPDATUMA BETWEEN @ElsoNapTanev AND IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap, @UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)) 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) /* Naplo */ -- Hétfőtől vasárnapig kellenek, mert ez csak segédtábla SELECT DISTINCT nn.C_HETSORSZAMA AS Het ,NapDictionary.C_NAME AS Nap ,FORMAT(nn.C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu') AS Datum ,nn.C_NAPDATUMA 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 T_DICTIONARYITEMBASE_OSSZES NapDictionary ON NapDictionary.id = nn.C_ALAPHETNAPJA AND NapDictionary.C_TANEVID = @tanevId WHERE nn.c_napdatuma >= @ElsoNapTanev AND nn.c_napdatuma <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev) ORDER BY nn.C_HETSORSZAMA ,nn.C_NAPDATUMA SELECT mto.Datum AS C_NAPDATUMA ,FORMAT(mto.Datum, 'dddd', 'hu-hu') AS Napneve ,NULL AS C_MEGJEGYZES ,nh.C_HETKEZDONAPJA AS C_HETKEZDONAPJA ,nh.C_HETUTOLSONAPJA AS C_HETUTOLSONAPJA ,HetSorszama AS C_HETSORSZAMA ,KezdetVeg AS KezdetVeg ,nsz.Sorszam AS Napszam ,Tantargynev AS Tantargy ,PedagogusNev AS Tanar ,Tema AS Oraanyaga ,OraSorszam AS C_ORAEVESSORSZAM ,Kezdete AS Kezdete INTO #szoveges FROM #megtartottOrak mto INNER JOIN T_NAPTARIHET_OSSZES nh ON Datum BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.torolt='F' LEFT JOIN @NapSorszam nsz ON nsz.Datum = mto.Datum /* NaploAdatok */ IF (@isGyakorlatVagyElmeletFalse IS NULL) BEGIN IF ((@isGyakorlatVagyElmelet = 1) OR (@isGyakorlatVagyElmelet = 0) OR (@isGyakorlatVagyElmelet IS NULL)) BEGIN SELECT DISTINCT FORMAT(C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu') AS Datum ,napneve ,c_megjegyzes ,c_hetkezdonapja ,c_hetutolsonapja ,c_hetsorszama ,KezdetVeg ,napszam ,STUFF( ( SELECT ' | ' + CAST(bszov.TANTARGY AS nvarchar (max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.KezdetVeg = szov.KezdetVeg FOR XML PATH(''), TYPE ).value ('.', 'NVARCHAR(MAX)'), 1, 3, '' ) AS TANTARGY ,STUFF( ( SELECT ' | ' + CAST(bszov.TANAR AS nvarchar (max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.KezdetVeg = szov.KezdetVeg FOR XML PATH(''), TYPE ).value ('.', 'NVARCHAR(MAX)'), 1, 3, '' ) AS TANAR ,STUFF( ( SELECT ' | ' + CAST(bszov.ORAANYAGA AS nvarchar (max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.KezdetVeg = szov.KezdetVeg FOR XML PATH(''), TYPE ).value ('.', 'NVARCHAR(MAX)'), 1, 3, '' ) AS ORAANYAGA ,STUFF( ( SELECT ' | ' + CAST(bszov.C_ORAEVESSORSZAM AS nvarchar (max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA AND bszov.KezdetVeg = szov.KezdetVeg FOR XML PATH(''), TYPE ).value ('.', 'NVARCHAR(MAX)'), 1, 3, '' ) AS OraEvesSorszama ,Kezdete ,C_NAPDATUMA FROM #szoveges szov ORDER BY C_NAPDATUMA ,Kezdete END END ELSE BEGIN IF (@isGyakorlatVagyElmeletFalse = 0) BEGIN SELECT '' Datum ,'' AS napneve ,'' AS c_megjegyzes ,'' AS c_hetkezdonapja ,'' AS c_hetutolsonapja ,'' AS c_hetsorszama ,'' AS KezdetVeg ,'' AS napszam ,'' AS TANTARGY ,'' AS TANAR ,'' AS ORAANYAGA ,'' AS OraEvesSorszama ,'' AS Kezdete END END /*Hiányzások*/ INSERT INTO #hianyzasok ( C_HETSORSZAMA ,C_NYOMTATASINEV ,TanuloId ,Hetfo ,Kedd ,Szerda ,Csutortok ,Pentek ,Szombat ,Vasarnap ) SELECT C_HETSORSZAMA ,C_NYOMTATASINEV ,TanuloId ,MAX([1]) AS [Hetfo] ,MAX([2]) AS [Kedd] ,MAX([3]) AS [Szerda] ,MAX([4]) AS [Csutortok] ,MAX([5]) AS [Pentek] ,MAX([6]) AS [Szombat] ,MAX([7]) AS [Vasarnap] FROM ( SELECT C_HETSORSZAMA ,C_NYOMTATASINEV ,C_ORATANULOIID AS TanuloId ,[1] ,[2] ,[3] ,[4] ,[5] ,[6] ,[7] FROM ( SELECT DISTINCT n.C_NAPTARINAPID ,DATEPART(dw,n.C_DATUM) AS NAP ,t.C_NYOMTATASINEV ,C_ORATANULOIID ,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 INNER JOIN #students s ON s.Id = tm.C_ORATANULOIID LEFT JOIN (SELECT DISTINCT * 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 o.c_tanevId = @tanevId AND o.TOROLT = 'F' AND tm.C_TIPUS IN (1499, 1500) AND o.C_OSZTALYCSOPORTID = @csoportId 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 #students s ON s.Id = m.C_ORATANULOIID 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 m.C_TIPUS IN (1499, 1500) AND n.TOROLT = 'F' AND n.C_OSZTALYCSOPORTID = @csoportId GROUP BY n.C_NAPTARINAPID ,C_ORATANULOIID ,C_NYOMTATASINEV ,n.C_HETSORSZAMA ,n.C_DATUM ) AS SUB PIVOT ( MAX(HIANYZAS) FOR NAP IN ([1], [2], [3], [4], [5], [6], [7]) ) AS PivotTable ) AS ASD GROUP BY C_HETSORSZAMA ,C_NYOMTATASINEV ,TanuloId UPDATE #hetek SET #hetek.IsSzombatiMulasztas = h.Sz ,#hetek.IsVasarnapiMulasztas = h.V FROM ( SELECT C_HETSORSZAMA AS hetsorszama ,(CASE WHEN MAX(Szombat) IS NOT NULL THEN 1 ELSE 0 END) AS Sz ,(CASE WHEN MAX(Vasarnap) IS NOT NULL THEN 1 ELSE 0 END) AS V FROM #hianyzasok GROUP BY C_HETSORSZAMA ) AS h WHERE h.hetsorszama=#hetek.Het /* NaploMulasztas */ SELECT hi.C_HETSORSZAMA ,hi.C_NYOMTATASINEV ,hi.Hetfo ,hi.Kedd ,hi.Szerda ,hi.Csutortok ,hi.Pentek ,hi.Szombat ,hi.Vasarnap FROM #hianyzasok hi ORDER BY hi.C_HETSORSZAMA /* NaptariHetek */ SELECT h.Het ,h.HetEleje ,h.HetVege ,h.IsSzombatiMulasztas ,h.IsVasarnapiMulasztas FROM #hetek h ORDER BY h.Het /*TANULÓ adatai*/ SELECT Id AS TanuloId ,TanuloCsoportId ,Sorszam ,TorzslapSzam ,OktAzon ,TajSzam ,AnyjaNeve ,SzulHely ,SzulIdo ,SocAdat ,Kepzes ,TanuloNeve ,Allampolgarsaga ,DiakIgazolvanySzam ,KilepesDatum ,BeirasiNaploSorszam ,Osztaly ,OsztalyId ,BelepesDatum FROM #studentsWithTanuloCsoport /*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 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 Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId EXEC sp_GetDokumentumMulasztasokIdoszakonkent @tanevId = @tanevId ,@osztalyCsoportId = @csoportId ,@iskolaErdekuSzamit = @iskolaErdekuSzamit ,@isReszletesMulasztasok = @isreszletesmulasztasok DECLARE @gondviselok TABLE (Id INT) INSERT INTO @gondviselok SELECT GondviseloId FROM fnGetDokumentumGondviselok(@csoportId, @tanevId, 'F', '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 /*TANULÓ osztályzatai*/ SELECT Datum ,TipusId ,TanuloCsoportId ,ErtekelesSzoveg ,ErtekelesSzovegFormazott ,ErtekelesSzovegRovidNev ,ErtekelesOsztalyzatId ,ErtekelesOsztalyzatValue ,ErtekelesOsztalyzatNev ,ErtekelesSzazalek ,MagatartasOsztalyzatId ,MagatartasOsztalyzatNev ,MagatartasSzoveg ,MagatartasErtekId ,MagatartasErtek ,SzorgalomOsztalyzatId ,SzorgalomOsztalyzatNev ,SzorgalomSzoveg ,SzorgalomErtekId ,SzorgalomErtek ,TanuloId ,OsztalyCsoportId ,TantargyId ,TantargyNevZarojellel ,TantargyNev ,TantargyNevNyomtatvanyban ,TargyKategoriaId ,FotargyE ,FotargyId ,Altantargy ,ErtekelesTema ,Jeloles ,JelolesAndErtekelesTema ,isMagatartasSzorgalom ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 INTO #ErtekelesekTemp FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @csoportId, DEFAULT, 0, 1, DEFAULT, DEFAULT) WHERE OsztalyCsoportId = @csoportId EXEC sp_GetDokumentumErtekelesekIdoszakonkent @tanevId = @tanevId ,@osztalyCsoportId = @csoportid ,@ertekelesTipusa = NULL ,@csakTanorai = 0 ,@csakKivlasztottOsztalyCsoport = 1 ,@atsoroltTanuloErtekelesek = 0 ,@fuggolegesTantargyak = 0 ,@intezmenyId = @intezmenyid /*Szöveges minősítések*/ SELECT a.tanuloId ,a.TanuloCsoportId ,a.Honap ,a.Tantargy ,a.Ertekeles ,a.Tipus FROM ( SELECT s.Id tanuloId ,s.TanuloCsoportId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #studentsWithTanuloCsoport s LEFT JOIN ( SELECT TanuloId tanuloId ,TanuloCsoportId ,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap ,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) AS Tantargy ,ErtekelesSzovegFormazott + Jeloles AS Ertekeles ,ErtekelesTipusDictionary.C_NAME AS Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesSzoveg IS NOT NULL ) szoveges ON szoveges.TANULOID = s.Id AND s.TanuloCsoportId = szoveges.TanuloCsoportId ) a ORDER BY RendezHonap ,Tantargy SELECT COUNT(DISTINCT Id) TanulokSzama ,AktualisOsztaly as Osztaly FROM #studentsWithTanuloCsoport GROUP BY AktualisOsztaly --értékelésekhez tartozó feljegyzések SELECT DISTINCT TanuloId ,TanuloCsoportId ,STUFF( ( SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'), 1, 2, '' ) AS JelolesTemaval FROM #ErtekelesekTemp ErtekelesTemaval WHERE LEN(JelolesAndErtekelesTema) > 0 AND ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL --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 DROP TABLE #megtartottOrakSzama DROP TABLE #students DROP TABLE #Tantargyak END GO