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 = 45, @iskolaErdekuSzamit BIT, @nyomtatvanyNyelvEnum INT, @isKozossegiSzolgalat BIT, @tanitasiHetekSzamaVegzos INT, @tanitasiHetekSzamaNemVegzos INT, @isAltantargyBeszamitasa BIT AS BEGIN SET NOCOUNT ON; SELECT OsztalyTanuloi.TanuloId TanuloId ,OsztalyTanuloi.NaploSorszam NaploSorszam ,OsztalyTanuloi.TorzslapSzam TorzslapSzam ,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId ,OsztalyTanuloi.BelepesDatum BelepesDatum ,OsztalyTanuloi.KilepesDatum KilepesDatum ,Agazat.C_NAME Agazat ,IIF(Szakkep.ID = 5527, '', Szakkep.C_NAME + '(szakképesítés)') Szakkepesites ,IIF(ReszSzakkep.ID = 6108, '', ReszSzakkep.C_NAME + '(részszakképesítés)') ReszSzakkepesites ,SzakmaCsop.C_NAME SzakmaCsoport INTO #students FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Agazat ON Agazat.ID = OsztalyTanuloi.AgazatId AND Agazat.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Szakkep ON Szakkep.ID = OsztalyTanuloi.SzakkepesitesId AND Szakkep.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ReszSzakkep ON ReszSzakkep.ID = OsztalyTanuloi.ReszSzakkepeitesId AND ReszSzakkep.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES SzakmaCsop ON SzakmaCsop.ID = OsztalyTanuloi.SzakmaCsoportId AND SzakmaCsop.C_TANEVID = @tanevId --Intézmény, tanév SELECT DISTINCT OsztalyCsoport.C_NEV OsztalyNev ,Osztaly.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes ,Osztaly.C_OSZTALYFONOKID PartnerID ,IIF(@nyomtatvanyNyelvEnum = 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(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(Osztaly.C_OSZTALYNAPLOMEGNYITASA), FORMAT(Osztaly.C_OSZTALYNAPLOMEGNYITASA, 'dd. MM. yyyy')) NaploMegnyitasanakDatuma ,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(Osztaly.C_OSZTALYNAPLOZARASA), FORMAT(Osztaly.C_OSZTALYNAPLOZARASA, 'dd. MM. yyyy')) NaploZarasanakDatuma ,tanev.C_NEV Tanev ,(SELECT COUNT(TanuloId) FROM #students) TanuloSzam ,(SELECT MIN(NaploSorszam) FROM #students) MinNaploSorszam ,(SELECT MAX(NaploSorszam) FROM #students) MaxNaploSorszam FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport INNER JOIN T_OSZTALY_OSSZES Osztaly ON OsztalyCsoport.ID = Osztaly.ID AND Osztaly.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = Osztaly.C_OSZTALYFONOKID INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = OsztalyCsoport.C_INTEZMENYID AND i.C_TANEVID = @tanevId INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = i.C_TANEVID and tanev.TOROLT = 'F' WHERE OsztalyCsoport.ID = @osztalyId --Osztály, évfolyam SELECT OsztalyCsoport.C_NEV ,EvfolyamTipusa.C_NAME C_EVFOLYAMTIPUSA_DNAME FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport INNER JOIN T_DICTIONARYITEMBASE_OSSZES EvfolyamTipusa ON EvfolyamTipusa.Id = OsztalyCsoport.C_EVFOLYAMTIPUSA WHERE OsztalyCsoport.ID = @osztalyId AND EvfolyamTipusa.C_TANEVID = @tanevId --Tanuló adatok SELECT felhasznalo.ID TanuloId ,felhasznalo.Azonosito Azonosito ,IIF(@nyomtatvanyNyelvEnum = 0, felhasznalo.Nev, felhasznalo.Elotag + ' ' + felhasznalo.VezetekNev) Nev ,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(felhasznalo.SzuletesiDatum), FORMAT(felhasznalo.SzuletesiDatum, 'dd. MM. yyyy')) SzuletesiDatum ,felhasznalo.SzuletesiHely SzuletesiHely ,IIF(@nyomtatvanyNyelvEnum = 0, LOWER(allampolgarsag.C_NAME), dbo.fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, felhasznalo.Allampolgarsag)) Allampolgarsag ,felhasznalo.Anyjaneve AnyjaNeve ,IIF(@nyomtatvanyNyelvEnum = 0, szorszag.C_NAME, dbo.fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, felhasznalo.SzuletesiOrszag)) SzuletesiOrszag ,OsztalyTanuloi.TorzslapSzam TorzslapSzam ,gondviselo.Gondviselok GondviseloNeve ,OsztalyTanuloi.NaploSorszam NaploSorszam ,felhasznalo.Nev Nev2 ,Tanulo.C_SAJATOSNEVELESU SajatosNevelesu ,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId ,OsztalyTanuloi.BelepesDatum BelepesDatum ,OsztalyTanuloi.KilepesDatum KilepesDatum ,OsztalyTanuloi.Agazat Agazat ,OsztalyTanuloi.Szakkepesites Szakkepesites ,OsztalyTanuloi.ReszSzakkepesites ReszSzakkepesites ,OsztalyTanuloi.SzakmaCsoport SzakmaCsoport INTO #TanuloAdatok FROM ( SELECT ID ID ,C_OKTATASIAZONOSITO Azonosito ,C_NYOMTATASINEV Nev ,C_VEZETEKNEV VezetekNev ,C_UTONEV Elotag ,C_SZULETESIDATUM SzuletesiDatum ,C_SZULETESIHELY SzuletesiHely ,C_SZULETESIORSZAG SzuletesiOrszag ,C_ALLAMPOLGARSAGA Allampolgarsag ,IIF(@nyomtatvanyNyelvEnum = 0, C_ANYJANEVE, LTRIM(SUBSTRING(C_ANYJANEVE, C_ANYJANEVEELVALASZTO + 1 , LEN(C_ANYJANEVE) - C_ANYJANEVEELVALASZTO)) + ' ' + LTRIM(SUBSTRING(C_ANYJANEVE, 0, C_ANYJANEVEELVALASZTO + 1))) Anyjaneve FROM T_FELHASZNALO_OSSZES ) felhasznalo INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = felhasznalo.Id INNER JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = felhasznalo.Allampolgarsag AND allampolgarsag.C_TANEVID = @tanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES szorszag ON szorszag.ID = felhasznalo.SzuletesiOrszag AND szorszag.C_TANEVID = @tanevId LEFT JOIN ( SELECT g.C_TANULOID TanuloId ,STUFF((SELECT C_NEV + IIF(@nyomtatvanyNyelvEnum = 0, ' (' + LOWER(d.C_NAME) +')', '') + CHAR(13) + CHAR(10) 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.C_ISTORVENYESKEPVISELO = 'T' AND bg.TOROLT = 'F' AND g.C_TANEVID = @tanevId FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Gondviselok FROM T_GONDVISELO_OSSZES g WHERE g.TOROLT = 'F' AND g.C_ISTORVENYESKEPVISELO = 'T' AND g.C_TANEVID = @tanevId ) gondviselo on felhasznalo.ID = gondviselo.TanuloId INNER JOIN #students OsztalyTanuloi ON OsztalyTanuloi.TanuloId = felhasznalo.ID ORDER BY felhasznalo.Nev SELECT TanuloId ,Azonosito ,Nev ,SzuletesiDatum ,SzuletesiHely ,Allampolgarsag ,Anyjaneve ,SzuletesiOrszag ,TorzslapSzam ,GondviseloNeve ,NaploSorszam ,Nev2 ,SajatosNevelesu ,TanuloCsoportId ,BelepesDatum ,KilepesDatum ,Szakkepesites ,ReszSzakkepesites FROM #TanuloAdatok ORDER BY LEN(TorzslapSzam), TorzslapSzam --Határozat SELECT TanuloId ,TanuloCsoportId ,Bejegyzes FROM fnGetDokumentumTanuloZaradekai(@tanevId, @osztalyId) --Egyéb bejegyzések SELECT Tanuloid ,TanuloCsoportId ,Bejegyzes ,Tipus_DNAME FROM ( SELECT bejegyzes.TanuloId TanuloId ,s.TanuloCsoportId ,Tartalom Bejegyzes ,C_NAME Tipus_DNAME ,dbo.fnGetDokumentumDatumFormatum(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' INNER JOIN #students s ON s.TanuloId = bejegyzes.TanuloId WHERE Tipusa IN (1539, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 5477, 5478, 5478, 5479, 5481, 5480) AND BelepesDatum <= Datum AND (KilepesDatum IS NULL OR KilepesDatum >= Datum) UNION SELECT TanuloId ,TanuloCsoportId ,TantargyNev ,MentessegOka ,dbo.fnGetDokumentumDatumFormatum(Kezdete) FROM fnGetDokumentumTanuloMentessegei(@tanevId, @osztalyId) )a ORDER BY Datum -- MULASZTÁSOK DECLARE @Mulasztasok TABLE ( TanuloId INT ,TanuloCsoportId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,ElmeletOsszes INT ,GyakorlatOsszes 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 TanuloTable.TanuloId ,TanuloTable.TanuloCsoportId ,Igazolt ,Igazolatlan ,ElmeletIgazolt ,ElmeletIgazolatlan ,GyakorlatIgazolt ,GyakorlatIgazolatlan ,ElmeletOsszes ,GyakorlatOsszes ,Osszes FROM @Mulasztasok mulasztasok INNER JOIN #students TanuloTable ON mulasztasok.TanuloId = TanuloTable.TanuloId AND TanuloTable.TanuloCsoportId = mulasztasok.TanuloCsoportId -- ÉRTÉKELÉSEK DECLARE @Ertekelesek TABLE ( TanuloId INT ,TanuloCsoportId INT ,Targy NVARCHAR(MAX) ,Jegyzet NVARCHAR(MAX) ,Ertekeles NVARCHAR(MAX) ,ErtekelesValue INT ,ErtekelesJegyzettel NVARCHAR(MAX) ,Oraszam FLOAT ,RENDEZ1 INT ,RENDEZ2 NVARCHAR(MAX) ,RENDEZ3 INT ,RENDEZ4 INT ,RENDEZ5 NVARCHAR(MAX) ) INSERT INTO @Ertekelesek EXEC sp_GetDokumentumErtekelesek @osztalyId = @osztalyId, @tanevId = @tanevId, @ertekelesTipus =@ertekelesTipus, @nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum, @tanitasiHetekSzamaVegzos = @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos = @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa = @isAltantargyBeszamitasa SELECT TanuloId ,TanuloCsoportId ,Targy ,Jegyzet ,Ertekeles ,ErtekelesJegyzettel ,Oraszam ,RENDEZ1 RENDEZ FROM @Ertekelesek ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5 --Tanuló lista SELECT Nev ,NaploSorszam ,TorzslapSzam ,dbo.fnGetDokumentumDatumFormatum (KilepesDatum) KilepesDatum FROM #TanuloAdatok ORDER BY LEN(TorzslapSzam), TorzslapSzam --Közösségi szolgálat SELECT DISTINCT OsztalyTanuloi.TanuloId ,OsztalyTanuloi.TanuloCsoportId ,dbo.fnGetDokumentumDatumFormatum(Datum) Datum ,ISNULL(' - ' + Megjegyzes, '') Megjegyzes ,Oraszam ,TeljesitesHelye ,FeljegyzoNeve ,Tipus ,KozossegiSzolgalatId FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) KozossegiSzolgalat INNER JOIN #students OsztalyTanuloi ON OsztalyTanuloi.TanuloId = KozossegiSzolgalat.TanuloId WHERE BelepesDatum <= Datum AND (OsztalyTanuloi.KilepesDatum IS NULL OR OsztalyTanuloi.KilepesDatum >= Datum) AND @isKozossegiSzolgalat = 1 ORDER BY Datum SELECT s.TanuloId TanuloId ,s.TanuloCsoportId TanuloCsoportId ,ISNULL(Tanulo.C_SNIKIALLITOINTEZMENY, '') SNIKiallitoIntezmeny ,dbo.fnGetDokumentumDatumFormatum(Tanulo.C_SNIOKMANYERVENYESSEGKEZDETE) SNIKezdete ,dbo.fnGetDokumentumDatumFormatum(Tanulo.C_SNIKONTROLLIDOPONT) SNIKontrolIdopont ,ISNULL(Tanulo.C_ERTELMIFOGYATEKOSOKMANYSZAM + '(Értelmi fogyatékos okmányszám) ', '') +ISNULL(Tanulo.C_LATASSERULTOKMANYSZAM + '(Látássérült okmányszám) ', '') +ISNULL(Tanulo.C_HALLASSERULTOKMANYSZAM + '(Hallássérült okmányszám) ', '') +ISNULL(Tanulo.C_BESZEDFOGYATEKOSOKMANYSZAM + '(Beszédfogyatékos okmányszám) ', '') +ISNULL(Tanulo.C_MOZGASSERULTOKMANYSZAM + '(Mozgáskorlátozott okmányszám) ', '') +ISNULL(Tanulo.C_DISZGRAFIAOKMANYSZAM + '(Diszlexia okmányszám) ', '') +ISNULL(Tanulo.C_DISZKALKULIAOKMANYSZAM + '(Diszkalkulina okmányszám) ', '') +ISNULL(Tanulo.C_DISZLEXIAOKMANYSZAM + '(Diszgráfia okmányszám) ', '') SNIOkmanyszamok ,ISNULL(Tanulo.C_BEILLESZKEDESIPROBLEMAVALKUZ, '') BTM FROM #students s INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = s.TanuloId WHERE Tanulo.C_SAJATOSNEVELESU = 'T' DROP TABLE #students DROP TABLE #TanuloAdatok END