GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('sp_GetTorzslap') IS NOT NULL BEGIN DROP PROCEDURE sp_GetTorzslap END GO CREATE PROCEDURE sp_GetTorzslap @osztalyId INT, @tanevId INT, @ertekelesTipus INT, @kesesTipus INT, @elmeletiOraPercben INT = 45, @gyakorlatiOraPercben INT = 60, @iskolaErdekuSzamit BIT, @isNemet BIT AS BEGIN SET NOCOUNT ON; --Osztályhoz tartozó tanulók DECLARE @NaploSorszam TABLE ( TanuloId INT ,Sorszam INT ) INSERT INTO @NaploSorszam EXEC sp_GetDokumentumTanuloNaploSorszam @osztalyId = @osztalyId DECLARE @Tanulok TABLE (TanuloId int, KilepesDatum DATE, NaploSorszam INT) INSERT INTO @Tanulok SELECT t.TanuloId ,KilepesDatum ,n.Sorszam FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') t INNER JOIN @NaploSorszam n ON n.TanuloId = t.TanuloId --Intézmény, tanév SELECT DISTINCT ocs.C_NEV OsztalyNev ,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes ,o.C_OSZTALYFONOKID PartnerID ,IIF(@isNemet = 0, ofo.C_NYOMTATASINEV, ofo.C_UTONEV + ' ' + ofo.C_VEZETEKNEV) Osztalyfonok ,i.C_IGAZGATONEVE IntezmenyVezeto ,i.C_NEV IntezmenyNeve ,i.C_VAROS IntezmenyVaros ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime ,i.C_OMKOD IntezmenyOMKod ,IIF(@isNemet = 0, FORMAT(o.C_OSZTALYNAPLOMEGNYITASA, 'yyyy. MM. dd.'), FORMAT(o.C_OSZTALYNAPLOMEGNYITASA, 'dd. MM. yyyy')) NaploMegnyitasanakDatuma ,IIF(@isNemet = 0, FORMAT(o.C_OSZTALYNAPLOZARASA, 'yyyy. MM. dd.'), FORMAT(o.C_OSZTALYNAPLOZARASA, 'dd. MM. yyyy')) NaploZarasanakDatuma ,tanev.C_NEV TANEV ,(SELECT COUNT(TanuloId) FROM @Tanulok) TanuloSzam ,(SELECT MIN(NaploSorszam) FROM @Tanulok) MinNaploSorszam ,(SELECT MAX(NaploSorszam) FROM @Tanulok) MaxNaploSorszam FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID and o.torolt='F' LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = @tanevId INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = i.C_TANEVID and tanev.TOROLT = 'F' WHERE ocs.ID = @osztalyId --Osztály, évfolyam SELECT T_OSZTALYCSOPORT_OSSZES.C_NEV, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA FROM T_OSZTALYCSOPORT_OSSZES WHERE T_OSZTALYCSOPORT_OSSZES.ID = @osztalyId --Tanuló adatok SELECT DISTINCT felhasznalo.ID TanuloId, felhasznalo.Azonosito, IIF(@isNemet = 0, felhasznalo.Nev, felhasznalo.Elotag + ' ' + felhasznalo.VezetekNev) Nev, IIF(@isNemet = 0, FORMAT(felhasznalo.SzuletesiDatum, 'yyyy. MM. dd.'), FORMAT(felhasznalo.SzuletesiDatum, 'dd. MM. yyyy')) SzuletesiDatum, felhasznalo.SzuletesiHely, IIF(@isNemet = 0, allampolgarsag.C_NAME, dbo.fnGetDokumentumNemet(felhasznalo.Allampolgarsag)) Allampolgarsag, felhasznalo.Anyjaneve, IIF(@isNemet = 0, szorszag.C_NAME, dbo.fnGetDokumentumNemet(felhasznalo.SzuletesiOrszag)) SzuletesiOrszag, felhasznalo.TorzslapSzam, gondviselo.Gondviselok GondviseloNeve, naploSorszam.Sorszam NaploSorszam, Adatvaltozas.Feljegyzes Adatvaltozas, felhasznalo.KilepesDatum, felhasznalo.Nev Nev2 INTO #TanuloAdatok FROM ( SELECT T_FELHASZNALO_OSSZES.ID AS ID, T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO Azonosito, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV Nev, T_FELHASZNALO_OSSZES.C_VEZETEKNEV VezetekNev, T_FELHASZNALO_OSSZES.C_UTONEV Elotag, T_FELHASZNALO_OSSZES.C_SZULETESIDATUM SzuletesiDatum, T_FELHASZNALO_OSSZES.C_SZULETESIHELY SzuletesiHely, T_FELHASZNALO_OSSZES.C_SZULETESIORSZAG SzuletesiOrszag, T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA Allampolgarsag, IIF(@isNemet = 0, T_FELHASZNALO_OSSZES.C_ANYJANEVE, LTRIM(SUBSTRING(C_ANYJANEVE, C_ANYJANEVEELVALASZTO + 1 , LEN(C_ANYJANEVE)-C_ANYJANEVEELVALASZTO)) + ' ' + LTRIM(SUBSTRING(C_ANYJANEVE, 0, C_ANYJANEVEELVALASZTO + 1))) Anyjaneve, T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM TorzslapSzam, TANCSOPORT.KilepesDatum FROM T_FELHASZNALO_OSSZES INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = T_FELHASZNALO_OSSZES.ID WHERE T_FELHASZNALO_OSSZES.C_TANEVID = @tanevId ) felhasznalo INNER JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = felhasznalo.Allampolgarsag INNER JOIN T_DICTIONARYITEMBASE_OSSZES szorszag ON szorszag.ID = felhasznalo.SzuletesiOrszag LEFT JOIN ( SELECT DISTINCT g.C_TANULOID TanuloId ,STUFF((SELECT ' , ' + C_NEV + IIF(@isNemet = 0, ' (' + d.C_NAME +')', '') FROM T_GONDVISELO_OSSZES bg INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.ID = bg.C_ROKONSAGFOKA AND d.C_TANEVID = bg.C_TANEVID WHERE bg.C_TANULOID=g.C_TANULOID AND bg.TOROLT = 'F' FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,3,'') Gondviselok FROM T_GONDVISELO_OSSZES g ) gondviselo on felhasznalo.ID = gondviselo.TanuloId LEFT JOIN @NaploSorszam naploSorszam on naploSorszam.TanuloId = felhasznalo.ID LEFT JOIN (SELECT DISTINCT hatarozat.TanuloId ,STUFF((SELECT ' | ' + CAST(Tartalom AS VARCHAR(max)) FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) bhatarozat WHERE bhatarozat.TanuloId=hatarozat.TanuloId AND Tipusa = 1545 FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,' ') Feljegyzes FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) hatarozat WHERE Tipusa = 1545 --Feljegyzések személyi adatok változásához: ) Adatvaltozas on Adatvaltozas.TanuloId = felhasznalo.ID ORDER BY felhasznalo.Nev SELECT * FROM #TanuloAdatok ORDER BY NaploSorszam --Határozat SELECT DISTINCT C_TANULOID TanuloId ,tcs.C_ZARADEK Bejegyzes FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok) AND TOROLT = 'F' AND C_ZARADEK IS NOT NULL AND LEN(C_ZARADEK) > 0 AND C_TANEVID = @tanevId AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F') UNION SELECT DISTINCT C_TANULOID TanuloId ,tcs.C_VEGZARADEK Bejegyzes FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok) AND TOROLT = 'F' AND C_VEGZARADEK IS NOT NULL AND LEN(C_VEGZARADEK) > 0 AND C_TANEVID = @tanevId AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F') --Egyéb bejegyzések SELECT Tanuloid ,Bejegyzes ,Tipus_DNAME FROM ( SELECT bejegyzes.TanuloId TanuloId ,Tartalom Bejegyzes ,C_NAME Tipus_DNAME ,bejegyzes.Datum Datum FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) bejegyzes INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND C_TANEVID = @tanevId AND d.TOROLT = 'F' WHERE Tipusa IN (1539, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 5477, 5478, 5478, 5479, 5481, 5480) UNION SELECT s.TanuloId tanuloId , mentesseg.mentessegOka , ISNULL(IIF(mentesseg = '', '', LEFT(mentesseg, LEN(mentesseg)- 1)),' ') + ' (' + mentesseg.tantargyNev +')' , C_KEZDETE FROM @Tanulok s LEFT JOIN (SELECT DISTINCT mentesseg.C_TANULOID tanuloId , IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev , mentesseg.C_MENTESSEGOKA mentessegOka , IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg , mentesseg.C_KEZDETE FROM T_TANULOMENTESSEG_OSSZES mentesseg INNER JOIN T_TANTARGY_OSSZES t on t.ID = mentesseg.C_TANTARGYID INNER JOIN @Tanulok s ON s.TanuloId = mentesseg.C_TANULOID WHERE mentesseg.TOROLT='F' AND mentesseg.C_TANEVID = @tanevId ) mentesseg ON s.TanuloId=mentesseg.TANULOID )a ORDER BY Datum -- MULASZTÁSOK DECLARE @Mulasztasok TABLE ( TanuloId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,Osszes INT ) INSERT INTO @Mulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyId = @osztalyId, @tanevId = @tanevId, @elmeletGyakorlat = 0, @kesesTipus = @kesesTipus, @elmeletiOraPercben = @elmeletiOraPercben, @gyakorlatiOraPercben = @gyakorlatiOraPercben, @ertekelesTipus = @ertekelesTipus, @iskolaErdekuSzamit = @iskolaErdekuSzamit SELECT TanuloId ,Igazolt ,Igazolatlan ,ElmeletIgazolt ,ElmeletIgazolatlan ,GyakorlatIgazolt ,GyakorlatIgazolatlan ,Osszes FROM @Mulasztasok -- ÉRTÉKELÉSEK DECLARE @Ertekelesek TABLE ( TanuloId INT ,Targy NVARCHAR(MAX) ,Ertekeles NVARCHAR(MAX) ,Jegyzet NVARCHAR(MAX) ,ErtekelesJegyzettel NVARCHAR(MAX) ,SzovegesErtekeles NVARCHAR(MAX) ,Oraszam INT ,RENDEZ INT ) INSERT INTO @Ertekelesek EXEC sp_GetDokumentumErtekelesek @osztalyId = @osztalyId, @tanevId = @tanevId, @ertekelesTipus =@ertekelesTipus, @isNemet = @isNemet SELECT TanuloId , Targy , Ertekeles , Jegyzet , ErtekelesJegyzettel ,SzovegesErtekeles , Oraszam , RENDEZ FROM @Ertekelesek --Tanuló lista SELECT Nev ,NaploSorszam ,TorzslapSzam ,IIF(@isNemet = 0, FORMAT(KilepesDatum, 'yyyy. MM. dd.'), FORMAT(KilepesDatum, 'dd. MM. yyyy')) KilepesDatum FROM #TanuloAdatok /*WHERE KilepesDatum IS NULL OR KilepesDatum >= ISNULL((SELECT C_OSZTALYNAPLOZARASA FROM T_OSZTALY_OSSZES WHERE ID = @osztalyId), GETDATE())*/ ORDER BY NaploSorszam --Közösségi szolgálat SELECT TanuloId ,FORMAT(Datum, 'd', 'hu-hu') Datum ,ISNULL(' - ' + Megjegyzes, '') Megjegyzes ,Oraszam ,TeljesitesHelye ,FeljegyzoNeve ,Tipus FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) DROP TABLE #TanuloAdatok END