DROP FUNCTION IF EXISTS fnGetDokumentumTanulokAdatai GO CREATE FUNCTION fnGetDokumentumTanulokAdatai ( @tanevId int ,@osztalyCsoportId int ) RETURNS @tanuloAdatok TABLE ( TanuloId int ,TanuloCsoportId int ,Sorszam int ,TorzslapSzam varchar(1000) ,OktAzon nvarchar(40) ,TajSzam nvarchar(18) ,AnyjaNeve nvarchar(128) ,SzulHely nvarchar(100) ,SzulIdo nvarchar(20)--formázás miatt ,SocAdat nvarchar(200) ,Kepzes nvarchar(510) ,TanuloNeve nvarchar(510) ,NevElotagNelkul nvarchar(510) ,Allampolgarsaga nvarchar(500) ,DiakIgazolvanySzam nvarchar(510) ,KilepesDatum nvarchar(20) --formázás miatt ,BeirasiNaploSorszam nvarchar(100) ,AktualisOsztaly nvarchar(200) ,AktualisOsztalyId int ,AdottOsztaly nvarchar(200) ,AdottOsztalyId int ,BelepesDatum nvarchar(20) --formázás miatt ) AS BEGIN DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId) INSERT INTO @tanuloAdatok SELECT DISTINCT tmp.TanuloId ,tmp.TanuloCsoportId ,tmp.Sorszam ,tmp.TorzslapSzam ,tmp.OktAzon ,tmp.TajSzam ,tmp.AnyjaNeve ,tmp.SzulHely ,dbo.fnGetDokumentumDatumFormatum(tmp.szulIdo) AS SzulIdo ,tmp.SocAdat ,tmp.Kepzes ,tmp.TanuloNeve ,tmp.NevElotagNelkul ,tmp.Allampolgarsaga ,tmp.DiakIgazolvanySzam ,dbo.fnGetDokumentumDatumFormatum(tmp.KilepesDatum) AS KilepesDatum ,tmp.BeirasiNaploSorszam ,tmp.AktualisOsztaly ,tmp.AktualisOsztalyId ,tmp.AdottOsztaly ,tmp.AdottOsztalyId ,dbo.fnGetDokumentumDatumFormatum(tmp.BelepesDatum) AS BelepesDatum FROM ( SELECT OsztalyCsoportTanuloi.TanuloId AS TanuloId ,OsztalyCsoportTanuloi.TanuloCsoportId AS TanuloCsoportId ,tta.C_NAPLOSORSZAM AS Sorszam ,tta.C_TORZSLAPSZAM AS TorzslapSzam ,Felhasznalo.C_OKTATASIAZONOSITO AS OktAzon ,Felhasznalo.C_TAJSZAM AS TajSzam ,Felhasznalo.C_ANYJANEVE AS AnyjaNeve ,Felhasznalo.C_SZULETESIHELY AS SzulHely ,Felhasznalo.C_SZULETESIDATUM AS SzulIdo ,STUFF(IIF(tta.C_MAGANTANULO = 'T', N', Magántanuló / Egyéni munkarend (' + ISNULL(MagantanulosagOka.C_NAME, N'-') + N')', N'') + IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', N', Jogviszony szüneteltetve', N'') + IIF(tta.C_SZAKMAIGYAKORLATON = 'T', N', Szakmai gyakorlat', N'') + IIF(Tanulo.C_SZOCIALISTAMOGATAS = 'T', N', Szociális támogatás', N'') + IIF(tta.C_BEJARO = 'T', N', Bejáró', N''), 1, 2, '') AS SocAdat ,Tanterv.C_NEV AS Kepzes ,Felhasznalo.C_NYOMTATASINEV AS TanuloNeve ,IIF(C_NEVSORREND = 'T', C_UTONEV + ' ' + C_VEZETEKNEV, C_VEZETEKNEV + ' ' + C_UTONEV) AS NevElotagNelkul ,AllampolgarsagDic.C_NAME AS Allampolgarsaga ,Tanulo.C_DIAKIGAZOLVANYSZAM AS DiakIgazolvanySzam ,OsztalyCsoportTanuloi.KilepesDatum AS KilepesDatum ,tta.C_BEIRASINAPLOSORSZAM AS BeirasiNaploSorszam ,dbo.fnGetDokumentumTanuloAktualisOsztaly(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztaly ,dbo.fnGetDokumentumTanuloAktualisOsztalyId(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztalyId ,TanuloOsztaly.OsztalyNev AS AdottOsztaly ,TanuloOsztaly.ID AS AdottOsztalyId ,OsztalyCsoportTanuloi.BelepesDatum AS BelepesDatum FROM T_TANULO_OSSZES Tanulo INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyCsoportTanuloi ON OsztalyCsoportTanuloi.TanuloId = Tanulo.ID INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Tanulo.ID AND Felhasznalo.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES AllampolgarsagDic ON AllampolgarsagDic.ID = Felhasznalo.C_ALLAMPOLGARSAGA AND AllampolgarsagDic.C_TANEVID = Felhasznalo.C_TANEVID AND AllampolgarsagDic.TOROLT = 'F' OUTER APPLY ( SELECT TOP 1 ID ,OsztalyNev FROM dbo.fnGetTanuloOsztaly(OsztalyCsoportTanuloi.TanuloId, OsztalyCsoportTanuloi.KilepesDatum, @kategoriaId, 1, DEFAULT) ) TanuloOsztaly LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON OsztalyCsoportTanuloi.TanuloCsoportId = tta.C_TANULOCSOPORTID LEFT JOIN T_TANTERV_OSSZES AS Tanterv ON Tanterv.ID = tta.C_TANTERVID AND Tanterv.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID AND MagantanulosagOka.C_TANEVID = Felhasznalo.C_TANEVID AND MagantanulosagOka.TOROLT = 'F' WHERE Tanulo.TOROLT = 'F' ) tmp RETURN END GO