DROP PROCEDURE IF EXISTS dbo.uspGetAmiTorzslap GO CREATE PROCEDURE dbo.uspGetAmiTorzslap @pTanevId int ,@pOsztalyId int ,@pErtekelesTipus int ,@pIskolaErdekuSzamit bit ,@kiiratkozottTanulokMegjelenitese bit = 1 ,@kellAtsorolasiZaradek bit = 1 ,@evfolyamTipusTypeId int = 37 ,@pSzorgalomErtekelesTipusTypeID int = 51 ,@elmeletiOraPercben int = 45 ,@gyakorlatiOraPercben int = 45 AS BEGIN SET NOCOUNT ON; DECLARE @IdoszakKezdete DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @pTanevId AND TOROLT = 'F') DECLARE @IdoszakVege DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @pTanevId AND TOROLT = 'F') DECLARE @idegenNyelvId int = 0 --magyar DECLARE @nyomtatvanyNyelvEnum int = 0 --magyar DECLARE @amiFeladatKategoriaId int = 7555 CREATE TABLE #Student ( TanuloId int ,NaploSorszam int ,TorzslapSzam nvarchar(500) ,TanuloCsoportId int ,BelepesDatum datetime ,KilepesDatum datetime ,BeirasiNaploSorszam nvarchar(100) ,OsztalyId INT ,RowNum int INDEX IX_01 CLUSTERED (TanuloId) ) CREATE TABLE #FejlecAdatok ( TanuloId int ,TanuloCsoportId int ,TorzslapSzam nvarchar(500) ,TanuloNeve nvarchar(120) ,TanuloNevElotag nvarchar(120) ,TanuloNevVezeteknev nvarchar(120) ,TanuloNevUtonev nvarchar(120) ,OktatasiAzonosito nvarchar(40) ,BeirasiNaploSorszam nvarchar(100) ,SzuletesiHely nvarchar(50) ,SzuletesiOrszag nvarchar(250) ,SzuletesiDatum datetime ,AnyjaNeve nvarchar(64) ,Allampolgarsag nvarchar(250) ,TartozkodasiJogCim nvarchar(255) ,OkiratSzam nvarchar(255) ,TanevNeve nvarchar(10) ,MufajNeve nvarchar(100) ,TanszakNeve nvarchar(100) ,EvfolyamNeve nvarchar(500) ) CREATE TABLE #TanuloTantargyErtekelesek ( TanuloId int ,TanuloCsoportId int ,TantargyId int ,OsztalyCsoportId int ,EvfolyamNeve nvarchar(500) ,AmiFotargyId int ,AmiTantargyKotelezosegId int ,TantargyNeve nvarchar(510) ,Sorszam int ,TagozatNeve nvarchar(500) ,MufajNeve nvarchar(100) ,TanszakNeve nvarchar(100) ,IsAtlagbaNemSzamitBe char(1) ,Ertekeles nvarchar(max) ,ErtekelesValue int ,ErtekelesSzoveg nvarchar(max) ,Jeloles nvarchar(max) ,IsSzoveges char(1) ,IsSzorgalom char(1) ,KapcsolodoFotargyId int ,MuveszetiAgId int ,ErtekelesId int ) CREATE TABLE #AlapZaroVizsga ( TanuloId int ,TanuloCsoportId int ,Ertekeles nvarchar(510) ,TipusId int ,Datum datetime ,MufajNeve nvarchar(510) ,TanszakNeve nvarchar(510) ,MuveszetiAgNeve nvarchar(510) ,TantargyNeve nvarchar(500) ,OsztalyCsoportId int ) CREATE TABLE #Mulasztasok ( TanuloId int ,TanuloCsoportId int ,TantargyId int ,MuveszetiAgId int ,MulasztasTipusId int ,IsIgazolt char(1) ,Darab int ) CREATE TABLE #FoglalkozasiNaplok ( TanuloId int ,TanuloTanuloCsoport int ,TanuloCsoportId int ,Naploszam nvarchar(100) ,OsztalyCsoportId int ) INSERT INTO #Student ( TanuloId ,NaploSorszam ,TorzslapSzam ,TanuloCsoportId ,BelepesDatum ,KilepesDatum ,BeirasiNaploSorszam ,OsztalyId ,RowNum ) SELECT OsztalyTanuloi.TanuloId AS TanuloId ,OsztalyTanuloi.NaploSorszam AS NaploSorszam ,OsztalyTanuloi.TorzslapSzam AS TorzslapSzam ,OsztalyTanuloi.TanuloCsoportId AS TanuloCsoportId ,OsztalyTanuloi.BelepesDatum AS BelepesDatum ,OsztalyTanuloi.KilepesDatum AS KilepesDatum ,OsztalyTanuloi.BeirasiNaploSorszam AS BeirasiNaploSorszam ,@pOsztalyId AS OsztalyId ,ROW_NUMBER() OVER(ORDER BY LEN(TorzslapSzam), TorzslapSzam) AS RowNum FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') OsztalyTanuloi LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = @pOsztalyId AND Osztaly.C_ALTANEVID = @pTanevId AND Osztaly.TOROLT = 'F' WHERE @kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum >= @IdoszakVege) --Fejléc adatok INSERT INTO #FejlecAdatok ( TanuloId ,TanuloCsoportId ,TorzslapSzam ,TanuloNeve ,TanuloNevElotag ,TanuloNevVezeteknev ,TanuloNevUtonev ,OktatasiAzonosito ,BeirasiNaploSorszam ,SzuletesiHely ,SzuletesiOrszag ,SzuletesiDatum ,AnyjaNeve ,Allampolgarsag ,TartozkodasiJogCim ,OkiratSzam ,TanevNeve ,MufajNeve ,TanszakNeve ,EvfolyamNeve ) SELECT felhasznalo.ID AS TanuloId ,OsztalyTanuloi.TanuloCsoportId AS TanuloCsoportId ,OsztalyTanuloi.TorzslapSzam AS TorzslapSzam ,felhasznalo.C_NYOMTATASINEV AS TanuloNeve ,felhasznalo.C_ELOTAG AS TanuloNevElotag ,felhasznalo.C_VEZETEKNEV AS TanuloNevVezeteknev ,felhasznalo.C_UTONEV AS TanuloNevUtonev ,felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito ,OsztalyTanuloi.BeirasiNaploSorszam AS BeirasiNaploSorszam ,felhasznalo.C_SZULETESIHELY AS SzuletesiHely ,szorszag.C_NAME AS SzuletesiOrszag ,felhasznalo.C_SZULETESIDATUM AS SzuletesiDatum ,felhasznalo.C_ANYJANEVE AS AnyjaNeve ,LOWER(allampolgarsag.C_NAME + IIF(allampolgarsag2.C_NAME IS NULL, '', ', ' + allampolgarsag2.C_NAME)) AS Allampolgarsag ,TartozkodasiJogCim.C_NAME AS TartozkodasiJogCim ,Tanulo.C_OKIRATSZAM AS OkiratSzam ,tanev.C_NEV AS TanevNeve ,FoTantargyFejlec.MufajNeve ,FoTantargyFejlec.TanszakNeve ,FoTantargyFejlec.EvfolyamNeve FROM #Student OsztalyTanuloi INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = OsztalyTanuloi.TanuloId AND Tanulo.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON OsztalyTanuloi.TanuloId = felhasznalo.ID AND felhasznalo.TOROLT = 'F' OUTER APPLY( SELECT mufaj.C_NAME AS MufajNeve ,tanszak.C_NAME AS TanszakNeve ,fat.EvfolyamNeve AS EvfolyamNeve FROM T_TANULOCSOPORT_OSSZES cs INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = cs.C_OSZTALYCSOPORTID AND f.C_TANEVID = cs.C_TANEVID AND f.TOROLT = 'F' INNER JOIN T_TANTARGY_OSSZES tt ON tt.id = f.C_TANTARGYID AND tt.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mufaj ON mufaj.ID = tt.C_MUFAJTIPUSID AND mufaj.C_TANEVID = tt.C_TANEVID AND mufaj.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanszak ON tanszak.ID = tt.C_TANSZAKTIPUSID AND tanszak.C_TANEVID = tt.C_TANEVID AND tanszak.TOROLT = 'F' LEFT JOIN ( SELECT C_AMIFOTARGYID ,evfolyam.C_NAME_1 AS EvfolyamNeve ,C_FOGLALKOZASID ,C_TANULOID ,ROW_NUMBER() OVER(PARTITION BY f.C_TANEVID, f.C_TANULOID ORDER BY f.ID) RowNum FROM T_FOGLALKOZASAMITANULO_OSSZES f LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = f.C_EVFOLYAMTIPUSID AND evfolyam.ID <> 1296 -- Na AND evfolyam.C_TANEVID = f.C_TANEVID AND evfolyam.TOROLT = 'F' INNER JOIN T_FOGLALKOZAS_OSSZES tta ON tta.ID = f.C_FOGLALKOZASID AND tta.TOROLT = 'F' INNER JOIN ( SELECT ID FROM fnGetKapcsolodoOsztalyCsoportok(@pOsztalyId) ) kapcsOcs ON kapcsOcs.ID = tta.C_OSZTALYCSOPORTID WHERE f.TOROLT = 'F' AND f.C_TANEVID = @pTanevId AND f.C_AMIFOTARGYID = 7671 ) fat ON fat.C_FOGLALKOZASID = f.ID AND fat.C_TANULOID = Tanulo.ID WHERE cs.C_TANULOID = Tanulo.ID AND cs.C_TANEVID = @pTanevId AND cs.TOROLT = 'F' AND fat.RowNum = 1 GROUP BY mufaj.C_NAME ,tanszak.C_NAME ,fat.EvfolyamNeve ) FoTantargyFejlec LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TartozkodasiJogCim ON TartozkodasiJogCim.ID = Tanulo.C_TARTOZKODASJOGCIMTIPUSID AND TartozkodasiJogCim.C_TANEVID = Tanulo.C_ALTANEVID AND TartozkodasiJogCim.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = felhasznalo.C_ALLAMPOLGARSAGA AND allampolgarsag.C_TANEVID = felhasznalo.C_TANEVID AND allampolgarsag.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag2 ON allampolgarsag2.ID = felhasznalo.C_ALLAMPOLGARSAGA2 AND allampolgarsag2.C_TANEVID = felhasznalo.C_TANEVID AND allampolgarsag2.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES szorszag ON szorszag.ID = felhasznalo.C_SZULETESIORSZAG AND szorszag.C_TANEVID = felhasznalo.C_TANEVID AND szorszag.TOROLT = 'F' INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = felhasznalo.C_TANEVID and tanev.TOROLT = 'F' WHERE felhasznalo.C_TANEVID = @pTanevId AND felhasznalo.TOROLT = 'F' ORDER BY TanuloNeve -- Közös adatok SELECT ocs.ID AS OsztalyId ,ocs.C_NEV AS OsztalyNeve ,tv.C_NEV AS TanevNeve ,ia.C_OMKOD AS OMKod ,ISNULL(mukh.C_VAROS, ia.C_VAROS) AS SzekhelyVaros FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_TANEV_OSSZES tv ON tv.ID = ocs.C_TANEVID AND tv.TOROLT = 'F' INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_TANEVID = ocs.C_TANEVID AND ia.TOROLT = 'F' LEFT JOIN T_MUKODESIHELY_OSSZES mukh ON mukh.C_TANEVID = ocs.C_TANEVID AND mukh.TOROLT = 'F' AND mukh.C_MUKODESIHELYTIPUSA = 5431 WHERE ocs.ID = @pOsztalyId AND ocs.TOROLT = 'F' -- Fejléc adatok SELECT TanuloId ,TanuloCsoportId ,OktatasiAzonosito ,TanuloNeve ,TanuloNevElotag ,TanuloNevUtonev ,TanuloNevVezeteknev ,BeirasiNaploSorszam ,SzuletesiDatum ,SzuletesiHely ,Allampolgarsag ,Anyjaneve ,SzuletesiOrszag ,TorzslapSzam ,TartozkodasiJogCim ,OkiratSzam ,TanszakNeve ,MufajNeve ,EvfolyamNeve FROM #FejlecAdatok ORDER BY LEN(TorzslapSzam), TorzslapSzam -- SNI SELECT s.TanuloId AS TanuloId ,s.TanuloCsoportId AS TanuloCsoportId ,ISNULL(SNIAdatok.C_KIALLITOSZAKBIZOTTSAGNEVE, '') AS SNIKiallitoIntezmenyNeve ,ISNULL(SNIAdatok.C_KIALLITOSZAKBIZOTTSAGCIME, '') AS SNIKiallitoIntezmenyCime ,SNIAdatok.C_KIALLITASDATUMA AS SNIKiallitasKelte ,SNIAdatok.C_SZAKVELEMENYSZAMA AS SNIOkmanyszamok --SNISzakvelemenySzama ,dbo.fnGetDokumentumDatumFormatum(SNIAdatok.C_KIALLITASDATUMA) AS SNIKezdete --SNIKiallitaKelte ,SNIAdatok.C_FELULVIZSGALATTANEVE AS SNIKontrolIdopont --SNIFelulvizsgalatTaneve FROM #Student s INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = s.TanuloId INNER JOIN T_TANULOSNI_OSSZES SNIAdatok ON SNIAdatok.C_TANULOID = s.TanuloId AND SNIAdatok.TOROLT ='F' WHERE Tanulo.C_SAJATOSNEVELESU = 'T' -- Záradékok DECLARE @tempZaradekTipusId int = (SELECT IIF(@kellAtsorolasiZaradek = 1, null, 1)) EXEC dbo.uspGetDokumentumTanuloZaradekai @tanevId = @pTanevId ,@osztalyId = @pOsztalyId ,@zaradekTipusId = @tempZaradekTipusId ,@idegenNyelvId = @idegenNyelvId ,@dokumentumTipusId = 2 ,@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum -- Törzslapon megjelenő feljegyzések SELECT bejegyzes.TanuloId AS TanuloId ,s.TanuloCsoportId AS TanuloCsoportId ,Tartalom AS Bejegyzes ,d.C_NAME AS Tipus_DNAME ,dny.C_NAME AS TipusIdegenNyelven ,bejegyzes.Datum AS Datum ,BejegyzesIdegenNyelven FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId, @idegenNyelvId) bejegyzes INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND C_TANEVID = @pTanevId AND d.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES dny ON dny.C_DICTIONARYITEMBASEID = Tipusa AND dny.C_NYELVID = @idegenNyelvId AND dny.TOROLT = 'F' AND dny.C_TANEVID = @pTanevId INNER JOIN #Student s ON s.TanuloId = bejegyzes.TanuloId WHERE Tipusa IN (1545, 1548, 1553) --KRETA-6062 Feljegyzések a személyi adatok változásához (törzslapon megjelenik), Év végi bizonyítványban megjelenő tantestületi feljegyzés, határozat (dicséret, felmentés stb.), Törzslapon megjelenő egyéb feljegyzés vagy határozat AND BelepesDatum <= Datum AND (KilepesDatum IS NULL OR KilepesDatum >= Datum) AND (RogziteskoriOsztalyId = @pOsztalyId OR RogziteskoriOsztalyId IS NULL) ORDER BY Datum -- Tanuló felmentései SELECT TanuloId ,TanuloCsoportId ,TantargyNevMentessegNelkul ,MentessegOka ,dbo.fnGetDokumentumDatumFormatum(Kezdete) AS Kezdete FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId, @nyomtatvanyNyelvEnum) -- Tanulói alap- és záróvizsga adatok INSERT INTO #AlapZaroVizsga SELECT t.TanuloId AS TanuloId ,t.TanuloCsoportId AS TanuloCsoportId ,REPLACE(LOWER(ertekelesd.C_NAME), '(', ' (') AS Ertekeles ,te.C_TIPUSID AS TipusId ,te.C_DATUM AS Datum ,mufaj.C_NAME AS MufajNeve ,tanszak.C_NAME AS TanszakNeve ,muvag.C_NAME AS MuveszetiAgNeve ,ISNULL(tt.C_NEVNYOMTATVANYBAN, tt.C_NEV) AS TantargyNeve ,te.C_OSZTALYCSOPORTID AS OsztalyCsoportId FROM T_TANULOERTEKELES_OSSZES te INNER JOIN #Student t ON t.TanuloId = te.C_TANULOID INNER JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesd ON ertekelesd.ID = te.C_ERTEKELESOSZTALYZATID AND ertekelesd.C_TANEVID = te.C_TANEVID AND ertekelesd.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = te.C_TANTARGYID AND tt.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mufaj ON mufaj.ID = tt.C_MUFAJTIPUSID AND mufaj.C_TANEVID = tt.C_TANEVID AND mufaj.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanszak ON tanszak.ID = tt.C_TANSZAKTIPUSID AND tanszak.C_TANEVID = tt.C_TANEVID AND tanszak.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES muvag ON muvag.ID = tt.C_MUVESZETIAGID AND muvag.C_TANEVID = tt.C_TANEVID AND muvag.TOROLT = 'F' WHERE te.C_TIPUSID in (7899, 7900) -- Művészeti alapvizsga, Művészeti záróvizsga AND te.TOROLT = 'F' AND te.C_TANEVID = @pTanevId SELECT azv.* FROM #AlapZaroVizsga azv LEFT JOIN ( SELECT ID ,C_TIPUSA ,C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = @pTanevID ) cs ON azv.OsztalyCsoportId = cs.ID WHERE (cs.C_TIPUSA NOT IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok OR cs.C_TIPUSA IS NULL) AND (azv.OsztalyCsoportId = @pOsztalyId OR cs.C_OSZTALYBONTASID = @pOsztalyId OR (cs.C_OSZTALYBONTASID IS NULL AND cs.ID IS NOT NULL)) UNION SELECT azv.* FROM #AlapZaroVizsga azv LEFT JOIN ( SELECT ID ,C_TIPUSA ,C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = @pTanevID ) cs ON azv.OsztalyCsoportId = cs.ID WHERE cs.C_TIPUSA IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok AND cs.C_OSZTALYBONTASID = @pOsztalyId -- Tantárgyak értékeléssel INSERT INTO #TanuloTantargyErtekelesek ( TanuloId ,TanuloCsoportId ,TantargyId ,OsztalyCsoportId ,EvfolyamNeve ,AmiFotargyId ,AmiTantargyKotelezosegId ,TantargyNeve ,Sorszam ,TagozatNeve ,MufajNeve ,TanszakNeve ,IsAtlagbaNemSzamitBe ,Ertekeles ,ErtekelesValue ,ErtekelesSzoveg ,Jeloles ,IsSzoveges ,IsSzorgalom ,KapcsolodoFotargyId ,MuveszetiAgId ,ErtekelesId) SELECT te.C_TANULOID ,tanulok.TanuloCsoportId ,ISNULL(te.C_TANTARGYID, -1) ,te.C_OSZTALYCSOPORTID ,fat.EvfolyamNeve ,fat.C_AMIFOTARGYID ,fat.C_AMITANTARGYKOTELEZOSEGID ,COALESCE(tt.C_NEVNYOMTATVANYBAN, tt.C_NEV, 'Szorgalom') ,ISNULL(tt.C_SORSZAM, -1) ,fat.TagozatNeve ,mufaj.C_NAME ,tanszak.C_NAME ,tt.C_ISTANULMANYIATLAGBANEMSZAMIT ,COALESCE( CONVERT(nvarchar(max) ,IIF(@nyomtatvanyNyelvEnum = 0 ,IIF(tt.C_TARGYKATEGORIA = 7688, LOWER(szorgkatjegy.C_NAME) + ' (' + CONVERT(nvarchar(max), jegy.C_VALUE) + ')', REPLACE(LOWER(jegy.C_NAME), '(', ' (')) ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, te.C_ERTEKELESOSZTALYZATID, @pTanevId) ) ) ,IIF(te.C_ERTEKELESSZOVEGFORMAZOTT IS NOT NULL, CONCAT(IIF(te.C_ERTEKELESSZOVEGROVIDNEV IS NOT NULL, te.C_ERTEKELESSZOVEGROVIDNEV, 'sz'), ''), NULL) ,CONVERT(nvarchar(max),te.C_ERTEKELESSZAZALEK) ,CONVERT(nvarchar(max) ,IIF(@nyomtatvanyNyelvEnum = 0 ,szg.C_NAME ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, te.C_SZORGALOMERTEKID , @pTanevId)) ) ,IIF(te.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL, 'sz' ,IIF(@nyomtatvanyNyelvEnum = 0 ,szet.C_NAME ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, te.C_SZORGALOMOSZTALYZATID, @pTanevId) ) ) ) AS Ertekeles ,jegy.C_VALUE ,COALESCE(te.C_ERTEKELESSZOVEGFORMAZOTT, te.C_ERTEKELESTEMA, te.C_SZORGALOMSZOVEGFORMAZOTT, te.C_SZORGALOMSZOVEG) ,CASE WHEN te.C_TIPUSID = 1518 THEN CASE WHEN te.C_ISMAGATARTASSZORGALOM = 'T' THEN CASE WHEN te.C_MAGATARTASSZOVEG IS NOT NULL THEN '' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_MAGATARTASSZOVEG IS NOT NULL, 1, 0) ORDER BY te.C_ROGZITESDATUM) AS NVARCHAR(10))+'' WHEN te.C_SZORGALOMSZOVEG IS NOT NULL THEN '' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_SZORGALOMSZOVEG IS NOT NULL, 1, 0) ORDER BY te.C_ROGZITESDATUM) AS NVARCHAR(10))+'' END WHEN te.C_ISMAGATARTASSZORGALOM = 'F' THEN '' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESSZOVEG IS NOT NULL, 1, 0) ORDER BY te.C_ROGZITESDATUM) AS NVARCHAR(10))+'' END WHEN te.C_ERTEKELESTEMA IS NOT NULL AND te.C_TIPUSID IN (1519, 1520) THEN '(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY te.C_DATUM) + 96) AS NVARCHAR(10))+')' WHEN (te.C_ERTEKELESSZOVEGFORMAZOTT IS NOT NULL OR te.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL) AND te.C_TIPUSID IN (1519, 1520) THEN '(' + CAST(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESSZOVEGFORMAZOTT IS NOT NULL OR te.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL, 1, 0) ORDER BY te.C_DATUM) AS NVARCHAR(10))+')' WHEN te.C_ERTEKELESTEMA IS NOT NULL AND te.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN '(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY te.C_TANULOID, te.C_TIPUSID, IIF(te.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY te.C_DATUM) + 96) AS NVARCHAR(10))+')' END ,IIF(te.C_ERTEKELESSZOVEGFORMAZOTT IS NULL, IIF(te.C_SZORGALOMSZOVEGFORMAZOTT IS NULL, 'F', 'T'), 'T') AS IsSzoveges ,IIF(tt.C_TARGYKATEGORIA = 7688, 'T', IIF(tt.ID IS NULL, 'T', 'F')) AS IsSzorgalom ,tt.C_FOTARGYID AS KapcsolodoFotargyId ,tt.C_MUVESZETIAGID AS MuveszetiAgId ,te.ID FROM T_TANULOERTEKELES_OSSZES te INNER JOIN #Student tanulok on tanulok.TanuloId = te.C_TANULOID AND te.C_DATUM >= tanulok.BelepesDatum AND (tanulok.KilepesDatum IS NULL or te.C_DATUM < tanulok.KilepesDatum) INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = te.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId AND ocs.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = te.C_TANTARGYID AND tt.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES jegy ON jegy.ID = te.C_ERTEKELESOSZTALYZATID AND jegy.C_TANEVID = te.C_TANEVID AND jegy.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szg ON szg.ID = te.C_SZORGALOMERTEKID AND szg.C_TANEVID = te.C_TANEVID AND szg.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szo ON szo.ID = te.C_SZORGALOMOSZTALYZATID AND szo.C_TANEVID = te.C_TANEVID AND szo.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szet ON (szet.C_VALUE + 1) = szo.C_VALUE AND szet.C_DICTIONARYTYPEID = 51 AND szet.C_TANEVID = te.C_TANEVID AND szet.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgkatjegy ON (szorgkatjegy.C_VALUE + 1) = jegy.C_VALUE AND szorgkatjegy.TOROLT = 'F' AND szorgkatjegy.C_TANEVID = jegy.C_TANEVID AND szorgkatjegy.C_DICTIONARYTYPEID = 51 LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mufaj ON mufaj.ID = tt.C_MUFAJTIPUSID AND mufaj.C_TANEVID = tt.C_TANEVID AND mufaj.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tanszak ON tanszak.ID = tt.C_TANSZAKTIPUSID AND tanszak.C_TANEVID = tt.C_TANEVID AND tanszak.TOROLT = 'F' LEFT JOIN T_TANULOCSOPORT_OSSZES tcs on tcs.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID AND tcs.C_TANULOID = te.C_TANULOID AND tcs.C_BELEPESDATUM >= tanulok.BelepesDatum AND (tcs.C_KILEPESDATUM IS NULL or tcs.C_KILEPESDATUM < tanulok.KilepesDatum) AND tcs.TOROLT = 'F' LEFT JOIN T_FOGLALKOZAS_OSSZES f on f.C_TANTARGYID = te.C_TANTARGYID AND f.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID AND f.C_TANARID = te.C_ERTEKELOID AND f.TOROLT = 'F' LEFT JOIN ( SELECT T_FOGLALKOZASAMITANULO_OSSZES.ID ,C_AMIFOTARGYID ,C_AMITAGOZATID ,C_AMITANTARGYKOTELEZOSEGID ,C_EVFOLYAMTIPUSID ,evfolyam.C_NAME_1 AS EvfolyamNeve ,tagozat.C_NAME AS TagozatNeve ,C_FOGLALKOZASID ,C_TANULOID FROM T_FOGLALKOZASAMITANULO_OSSZES LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_EVFOLYAMTIPUSID AND evfolyam.ID <> 1296 -- Na AND evfolyam.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID AND evfolyam.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tagozat ON tagozat.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_AMITAGOZATID AND tagozat.ID <> 7780 -- Na AND tagozat.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID AND tagozat.TOROLT = 'F' WHERE T_FOGLALKOZASAMITANULO_OSSZES.TOROLT = 'F' AND T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID = @pTanevID ) fat ON fat.C_FOGLALKOZASID = f.ID AND fat.C_TANULOID = te.C_TANULOID WHERE te.TOROLT = 'F' AND te.C_TANEVID = @pTanevId AND te.C_TIPUSID = 1520 -- Év végi értékelés -- Mulasztás adatok INSERT INTO #Mulasztasok ( TanuloId ,TanuloCsoportId ,TantargyId ,MuveszetiAgId ,MulasztasTipusId ,IsIgazolt ,Darab) SELECT mu.C_ORATANULOIID AS TanuloId ,Tanulok.TanuloCsoportId AS TanuloCsoportId ,t.ID AS TantargyId ,t.C_MUVESZETIAGID AS MuveszetiAgId ,mu.C_TIPUS AS MulasztasTipus ,mu.C_IGAZOLT AS IsIgazolt ,COUNT(1) AS Darab FROM T_TANULOMULASZTAS_OSSZES mu INNER JOIN #Student tanulok ON tanulok.TanuloId = mu.C_ORATANULOIID INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = mu.C_TANITASIORAKID AND tn.TOROLT = 'F' INNER JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@posztalyID, @ptanevId, 0, DEFAULT)) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID INNER JOIN T_TANTARGY_OSSZES t on t.id=tn.C_TANTARGYID AND t.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId AND ocs.Torolt = 'F' WHERE tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege AND mu.C_TANEVID = @pTanevId AND mu.Torolt ='F' AND mu.C_IGAZOLT IS NOT NULL AND (@pIskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL)) AND tcs.C_BELEPESDATUM <= tn.C_DATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tn.C_DATUM) AND tanulok.BelepesDatum <= tn.C_DATUM AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum >= tn.C_DATUM) AND mu.C_TIPUS = 1500 GROUP BY mu.C_ORATANULOIID, Tanulok.TanuloCsoportId, mu.C_TIPUS, t.ID, t.C_MUVESZETIAGID, mu.C_IGAZOLT UNION SELECT mu.C_ORATANULOIID AS tanuloId ,Tanulok.TanuloCsoportId AS TanuloCsoportId ,t.ID AS TantargyId ,t.C_MUVESZETIAGID AS MuveszetiAgId ,mu.C_TIPUS AS MulasztasTipus ,mu.C_IGAZOLT isIgazolt ,cast(SUM(cast(mu.C_KESESPERCBEN as float) / (CASE WHEN t.C_GYAKORLATI = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) as int) AS kesesOraban FROM T_TANULOMULASZTAS_OSSZES mu INNER JOIN #Student tanulok ON tanulok.TanuloId = mu.C_ORATANULOIID INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = mu.C_TANITASIORAKID AND tn.TOROLT = 'F' INNER JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyID, @pTanevId, 0, DEFAULT)) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID AND t.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId AND ocs.Torolt = 'F' WHERE mu.C_TANEVID = @pTanevId AND mu.C_TIPUS = 1499 AND mu.TOROLT = 'F' AND mu.C_IGAZOLT IS NOT NULL AND (@pIskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL)) AND tcs.C_BELEPESDATUM <= tn.C_DATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tn.C_DATUM) AND tanulok.BelepesDatum <= tn.C_DATUM AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum >= tn.C_DATUM) AND tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege GROUP BY mu.C_ORATANULOIID, Tanulok.TanuloCsoportId, t.ID, t.C_MUVESZETIAGID, mu.C_TIPUS, mu.C_IGAZOLT -- osztályban kapott jegyből az osztály csoportbontott ami egyéni csoportjának az adatai kerülnek bele UPDATE tte SET tte.AmiFotargyId = fat.C_AMIFOTARGYID ,tte.AmiTantargyKotelezosegId = fat.C_AMITANTARGYKOTELEZOSEGID ,tte.EvfolyamNeve = fat.EvfolyamNeve ,tte.TagozatNeve = fat.TagozatNeve FROM #TanuloTantargyErtekelesek tte INNER JOIN T_TANULOERTEKELES_OSSZES te ON te.ID = tte.ErtekelesId AND te.TOROLT = 'F' INNER JOIN T_TANTARGY_OSSZES t ON t.ID = te.C_TANTARGYID AND t.TOROLT = 'F' INNER JOIN T_CSOPORT_OSSZES cs ON cs.C_OSZTALYBONTASID = te.C_OSZTALYCSOPORTID AND cs.C_TIPUSA IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok AND cs.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = cs.ID AND tcs.C_TANULOID = te.C_TANULOID AND tcs.TOROLT = 'F' LEFT JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = te.C_ERTEKELOID AND f.C_TANTARGYID = te.C_TANTARGYID AND f.C_OSZTALYCSOPORTID = cs.ID AND f.TOROLT = 'F' LEFT JOIN ( SELECT T_FOGLALKOZASAMITANULO_OSSZES.ID ,C_AMIFOTARGYID ,C_AMITAGOZATID ,C_AMITANTARGYKOTELEZOSEGID ,C_EVFOLYAMTIPUSID ,evfolyam.C_NAME_1 AS EvfolyamNeve ,tagozat.C_NAME AS TagozatNeve ,C_FOGLALKOZASID ,C_TANULOID FROM T_FOGLALKOZASAMITANULO_OSSZES LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyam ON evfolyam.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_EVFOLYAMTIPUSID AND evfolyam.ID <> 1296 -- Na AND evfolyam.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID AND evfolyam.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tagozat ON tagozat.ID = T_FOGLALKOZASAMITANULO_OSSZES.C_AMITAGOZATID AND tagozat.ID <> 7780 -- Na AND tagozat.C_TANEVID = T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID AND tagozat.TOROLT = 'F' WHERE T_FOGLALKOZASAMITANULO_OSSZES.TOROLT = 'F' AND T_FOGLALKOZASAMITANULO_OSSZES.C_TANEVID = @pTanevID ) fat ON fat.C_FOGLALKOZASID = f.ID AND fat.C_TANULOID = te.C_TANULOID WHERE tte.AmiFotargyId IS NULL AND fat.ID IS NOT NULL SELECT ert.* FROM #TanuloTantargyErtekelesek ert LEFT JOIN ( SELECT ID ,C_TIPUSA ,C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = @pTanevID ) cs ON ert.OsztalyCsoportId = cs.ID WHERE (cs.C_TIPUSA NOT IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok OR cs.C_TIPUSA IS NULL) AND (ert.OsztalyCsoportId = @pOsztalyId OR cs.C_OSZTALYBONTASID = @pOsztalyId OR (cs.C_OSZTALYBONTASID IS NULL AND cs.ID IS NOT NULL)) UNION SELECT ert.* FROM #TanuloTantargyErtekelesek ert LEFT JOIN ( SELECT ID ,C_TIPUSA ,C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F' AND C_ALTANEVID = @pTanevID ) cs ON ert.OsztalyCsoportId = cs.ID WHERE cs.C_TIPUSA IN (1067, 6757, 6759, 6761) -- ami egyéni csoportok AND cs.C_OSZTALYBONTASID = @pOsztalyId SELECT TanuloId ,TanuloCsoportId ,TantargyId ,MuveszetiAgId ,IsIgazolt ,SUM(Darab) AS Darab FROM #Mulasztasok m WHERE IsIgazolt IS NOT NULL GROUP BY TanuloId, TanuloCsoportId, TantargyId, MuveszetiAgId, IsIgazolt INSERT INTO #FoglalkozasiNaplok ( TanuloId ,TanuloCsoportId ,TanuloTanuloCsoport ,Naploszam ,OsztalyCsoportId ) SELECT tcs.C_TANULOID AS TanuloId ,tcs.ID AS TanuloCsoportId ,tanulok.TanuloCsoportId AS TanuloTanuloCsoport ,ocs.C_NAPLOSZAM AS Naploszam ,ocs.ID FROM ( SELECT ID ,C_TANULOID ,C_OSZTALYCSOPORTID ,C_BELEPESDATUM ,C_KILEPESDATUM FROM T_TANULOCSOPORT_OSSZES WHERE TOROLT = 'F' AND (@kiiratkozottTanulokMegjelenitese = 1 OR (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM >= @IdoszakVege)) AND C_TANEVID = @pTanevID ) tcs INNER JOIN #Student tanulok ON tanulok.TanuloId = tcs.C_TANULOID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @amiFeladatKategoriaId AND ocs.TOROLT = 'F' SELECT fn.TanuloId ,fn.TanuloTanuloCsoport AS TanuloCsoportId ,1 AS IsOsztalyos ,fn.Naploszam ,tta.C_NAPLOSORSZAM AS Naplosorszam FROM #FoglalkozasiNaplok fn INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = fn.TanuloCsoportId AND tta.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o ON o.ID = fn.OsztalyCsoportId AND o.TOROLT = 'F' AND o.ID = @pOsztalyId UNION SELECT fn.TanuloId ,fn.TanuloTanuloCsoport AS TanuloCsoportId ,0 AS IsOsztalyos ,fn.Naploszam ,CAST(sorszam.RN as int) AS Naplosorszam FROM #FoglalkozasiNaplok fn INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = fn.OsztalyCsoportId AND (cs.C_OSZTALYBONTASID = @pOsztalyId OR (cs.C_OSZTALYBONTASID IS NULL AND cs.ID IS NOT NULL)) AND cs.TOROLT = 'F' LEFT JOIN ( SELECT fn.TanuloId ,fn.TanuloCsoportId ,ROW_NUMBER() OVER ( PARTITION BY fn.OsztalyCsoportId ORDER BY f.C_NYOMTATASINEV) as RN FROM #FoglalkozasiNaplok fn INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = fn.TanuloId AND f.TOROLT = 'F' INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = fn.OsztalyCsoportId AND cs.TOROLT = 'F' CROSS APPLY dbo.fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, fn.OsztalyCsoportId, 'T') csoptanuloi WHERE fn.TanuloId = csoptanuloi.TanuloId ) sorszam ON sorszam.TanuloId = fn.TanuloId AND sorszam.TanuloCsoportId = fn.TanuloCsoportId END