﻿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)
	,Allampolgarsaga nvarchar(500)
	,DiakIgazolvanySzam nvarchar(510)
	,KilepesDatum nvarchar(20) --formázás miatt
	,BeirasiNaploSorszam nvarchar(100)
	,AktualisOsztaly nvarchar(200)
	,AktualisOsztalyId int
	,BelepesDatum nvarchar(20) --formázás miatt
  )  
AS BEGIN 

DECLARE @tanugyiAdatok TABLE (TanuloId int,TanugyiId INT)
INSERT INTO @tanugyiAdatok (TanuloId,TanugyiId)
  SELECT TanuloId,TanugyiAdatokId FROM fnGetOsztalyCsoportTanuloinakTanugyiAdatai (@osztalyCsoportId,default)

INSERT INTO @tanuloAdatok
	SELECT DISTINCT 
		 TanuloId
		,TanuloCsoportId
		,Sorszam
		,TorzslapSzam
		,OktAzon
		,TajSzam
		,AnyjaNeve
		,SzulHely
		,dbo.fnGetDokumentumDatumFormatum(szulIdo) SzulIdo
		,SocAdat
		,Kepzes
		,TanuloNeve
		,Allampolgarsaga
		,DiakIgazolvanySzam
		,dbo.fnGetDokumentumDatumFormatum(KilepesDatum) KilepesDatum
		,BeirasiNaploSorszam
		,AktualisOsztaly
		,AktualisOsztalyId
		,dbo.fnGetDokumentumDatumFormatum(BelepesDatum) 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
		,IIF(tta.C_MAGANTANULO = 'T', 'Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME,'-') + ')', '') +
		 IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '') + 
		 IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '') + 
		 IIF(Tanulo.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', '') + 
		 IIF(tta.C_BEJARO = 'T', ', Bejáró', '') AS SocAdat
		,Tanterv.C_NEV AS Kepzes
		,Felhasznalo.C_NYOMTATASINEV AS TanuloNeve
		,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 /*TODO:Tobb Osztaly*//*OM-1653*/
		,dbo.fnGetDokumentumTanuloAktualisOsztalyId(OsztalyCsoportTanuloi.TanuloId) AS  AktualisOsztalyId
		,OsztalyCsoportTanuloi.BelepesDatum	AS BelepesDatum
	FROM T_TANULO_OSSZES Tanulo
		INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyCsoportTanuloi ON OsztalyCsoportTanuloi.TanuloId = Tanulo.ID
		INNER JOIN T_TANTERV_OSSZES Tanterv ON Tanterv.ID = Tanulo.C_TANTERVID AND Tanterv.TOROLT='F'
		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'
		LEFT JOIN @tanugyiAdatok ta ON ta.TanuloId=Tanulo.ID
		LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID=ta.TanugyiId AND tta.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