SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetTanuloiAdatlapAdatok]') IS NOT NULL BEGIN
  DROP PROCEDURE [dbo].[sp_GetTanuloiAdatlapAdatok] 
END  
GO

CREATE PROCEDURE [dbo].[sp_GetTanuloiAdatlapAdatok]
	@osztCsopID int,
	@TanevId	int
AS
BEGIN

	SET NOCOUNT ON;

	--Fejléc
	SELECT 
		T_INTEZMENYADATOK_OSSZES.C_NEV				IntezmenyNeve,
		T_INTEZMENYADATOK_OSSZES.C_VAROS			IntezmenyVaros,
		dbo.fnGetDokumentumIntezmenyCime(@tanevId)	IntezmenyCime,
		T_INTEZMENYADATOK_OSSZES.C_OMKOD			OMKod,
		T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM		TELEFON,
		T_INTEZMENYADATOK_OSSZES.C_EMAILCIM			EMAILCIM,
		T_TANEV_OSSZES.C_NEV						TANEV,
		(SELECT T_OSZTALY_OSSZES.C_OSZTALYFONOKID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID=@osztCsopID and T_OSZTALY_OSSZES.TOROLT = 'F') PartnerID,
		(SELECT OFO.C_NYOMTATASINEV FROM T_OSZTALY_OSSZES INNER JOIN T_FELHASZNALO_OSSZES OFO 
			ON OFO.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID and OFO.TOROLT = 'F'
		 WHERE T_OSZTALY_OSSZES.ID=@osztCsopID and T_OSZTALY_OSSZES.TOROLT = 'F') OSZTALYFONOK,
		(SELECT to2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES to2 WHERE ID = @osztCsopID and to2.TOROLT = 'F') OSZTALYNEV
	FROM T_INTEZMENYADATOK_OSSZES
		INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and	T_TANEV_OSSZES.TOROLT = 'F'
	WHERE 
		T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
		AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @TanevId

	DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
	INSERT INTO @EmailCimTableTemp
	SELECT 
		TanuloId
		,C_EMAILCIM 
	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulo
		INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
	WHERE
		email.TOROLT = 'F'
		AND email.C_TANEVID = @TanevId
		AND LEN(C_EMAILCIM) > 0

	DECLARE @EmailCimTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
	INSERT INTO @EmailCimTable
	SELECT DISTINCT
		FelhasznaloId
		,STUFF((
			SELECT DISTINCT CAST(Btemp.EmailCim AS NVARCHAR(MAX))  + CHAR(13) + CHAR(10)
			FROM @EmailCimTableTemp btemp
			WHERE 
				temp.FelhasznaloId = btemp.FelhasznaloId
			FOR XML PATH(''), TYPE)
		.value('.','NVARCHAR(MAX)'),1,0,'') Email
	FROM @EmailCimTableTemp temp

	DECLARE @TelefonszamTableTemp TABLE (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
	INSERT INTO @TelefonszamTableTemp
	SELECT 
		TanuloId
		,C_TELEFONSZAM 
	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulo
		INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
	WHERE
		telefon.TOROLT = 'F'
		AND telefon.C_TANEVID = @TanevId
		AND LEN(C_TELEFONSZAM) > 0

	DECLARE @TelefonszamTable TABLE (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
	INSERT INTO @TelefonszamTable
	SELECT DISTINCT
		FelhasznaloId
		,STUFF((
			SELECT DISTINCT CAST(Btemp.Telefonszam AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
			FROM @TelefonszamTableTemp btemp
			WHERE 
				temp.FelhasznaloId = btemp.FelhasznaloId
			FOR XML PATH(''), TYPE)
		.value('.','NVARCHAR(MAX)'),1,0,'') Telefonszam
	FROM @TelefonszamTableTemp temp

	DECLARE @TartozkodasiHelyTableTemp TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX))
	INSERT INTO @TartozkodasiHelyTableTemp
	SELECT 
		TanuloId
		,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM
	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulo
		INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloId
		INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @TanevId
	WHERE
		cim.TOROLT = 'F'
		AND C_CIMTIPUSA = 909
		AND cim.C_TANEVID = @TanevId

	DECLARE @TartozkodasiHelyTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX))
	INSERT INTO @TartozkodasiHelyTable
	SELECT DISTINCT
		FelhasznaloId
		,STUFF((
			SELECT CAST(Btemp.Cim AS NVARCHAR(MAX))  + CHAR(13) + CHAR(10)
			FROM @TartozkodasiHelyTableTemp btemp
			WHERE 
				temp.FelhasznaloId = btemp.FelhasznaloId
			FOR XML PATH(''), TYPE)
		.value('.','NVARCHAR(MAX)'),1,0,'') Email
	FROM @TartozkodasiHelyTableTemp temp

	--Tanulók Adatai
	SELECT DISTINCT
		T_TANULO_OSSZES.C_BEIRASINAPLOSORSZAM,
		T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM,
		T_TANULO_OSSZES.C_NAPLOSORSZAM,
		T_TANEV_OSSZES.C_NEV TANEV,
		T_OSZTALYCSOPORT_OSSZES.C_NEV OSZTALYNEV,
		T_OSZTALY_OSSZES.C_KEPZESIFORMA Kepzesiforma,
		T_FELHASZNALO_OSSZES.C_NYOMTATASINEV NEV,
		T_GONDVISELO_OSSZES.C_NEV GONDVISELO,
		ISNULL('('+rokonsagiFoka.C_NAME+')', '') ROKONSAGIFOKA,
		T_FELHASZNALO_OSSZES.C_SZULETESINEV SZULETESINEV,
		T_FELHASZNALO_OSSZES.C_ANYJANEVE ANYJANEVE,
		T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO,
		T_FELHASZNALO_OSSZES.C_SZULETESIHELY,
		T_FELHASZNALO_OSSZES.C_SZULETESIORSZAG Szuletesiorszag,
		FORMAT(T_FELHASZNALO_OSSZES.C_SZULETESIDATUM, 'yyyy.MM.dd.') C_SZULETESIDATUM,
		T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA Allampolgarsag,
		T_FELHASZNALO_OSSZES.C_ANYANYELVE Anyanyelv,
		T_FELHASZNALO_OSSZES.C_NYILVANTARTASKEZDETE,
		T_TANULO_OSSZES.C_TANKOTELEZETT Tankotelezett,
		T_TANULO_OSSZES.C_TANKOTELEZETTSEGVEGE,
		T_TANULO_OSSZES.C_JOGVISZONYVARHATOBEFEJEZESE,
		T_TANULO_OSSZES.C_DIAKIGAZOLVANYSZAM,
		T_TANULO_OSSZES.C_DIAKIGAZOLVANYKELTE,
		T_TANULO_OSSZES.C_BANKSZAMLASZAM,

		AllandoLakcim.Cim,

		TartozkodasiHely.CIM TartozkodasiHely,

		telefon.Telefonszam C_TELEFONSZAM,
		email.EmailCim C_EMAILCIM,

		T_TANULO_OSSZES.C_BEJARO Bejaro,
		T_TANULO_OSSZES.C_SZAKMAIGYAKORLATON Szakmaigyak,
		T_TANULO_OSSZES.C_VENDEG Vendeg,
		T_TANULO_OSSZES.C_JOGVISZONYATSZUNETELTETO Jogviszonyszunetelteto,
		T_TANULO_OSSZES.C_MAGANTANULO Magantanulo,
		T_TANULO_OSSZES.C_MAGANTANULOSAGANAKOKA,
		T_TANULO_OSSZES.C_MAGANTANULOSAGKEZDETE,
		T_TANULO_OSSZES.C_SZAKKEPESITESSZAMA,
		T_TANULO_OSSZES.C_TANULOIJOGVISZONYOSELTARTOTT,
		T_TANULO_OSSZES.C_TOBBGYERMEKIGAZOLASSZAMA,
		T_TANULO_OSSZES.C_EVISMETLO Evismetlo,
		T_TANULO_OSSZES.C_SZOCIALISTAMOGATAS Szoctam,
		T_TANULO_OSSZES.C_HATRANYOSHELYZETU,
		T_TANULO_OSSZES.C_VESZELYEZTETETT Veszelyeztetett,
		T_TANULO_OSSZES.C_HALMOZOTTANFOGYATEKOS Halmfogyatekos,
		T_TANULO_OSSZES.C_ETKEZESIKEDVEZMENY,
		T_TANULO_OSSZES.C_TERITESIDIJATFIZETO Teriteses,
		T_TANULO_OSSZES.C_TANDIJATFIZETO Tandijas,
		T_TANULO_OSSZES.C_INGYENESTANKONVYELLATASA,
		T_TANULO_OSSZES.C_TANULOSZERZODESES Tanszerzodeses,
		T_TANULO_OSSZES.C_POLGARISZERZODESES Polgszerzodeses,
		T_TANULO_OSSZES.C_RENDSZERESGYERMEKVEDELMIKEDV,
		T_TANULO_OSSZES.C_ALLAMIGONDOZOTT Allamigond,
		T_TANULO_OSSZES.C_KOLLEGIUMIELLATASOS Kollegiumi,
		T_TANULO_OSSZES.C_TARTOSGYOGYKEZELESSZAMA,
		T_TANULO_OSSZES.C_SAJATOSNEVELESU Sajatosnevelesu,
		T_TANULO_OSSZES.C_SNILETSZAMSULY,
		T_TANULO_OSSZES.C_SNIKIALLITOINTEZMENY,
		FORMAT(T_TANULO_OSSZES.C_SNIOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') C_SNIOKMANYERVENYESSEGKEZDETE,
		T_TANULO_OSSZES.C_BTMPROBLEMAS Btmproblemas,
		T_TANULO_OSSZES.C_BTMLETSZAMSULY,
		T_TANULO_OSSZES.C_BTMHATAROZATOKMANYSZAM,
		FORMAT(T_TANULO_OSSZES.C_BTMOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') C_BTMOKMANYERVENYESSEGKEZDETE,
		T_TANULO_OSSZES.C_BTMKIALLITOINTEZMENY,
		T_TANULO_OSSZES.C_ELSOINTEZMENYOMKOD,
		T_FELHASZNALO_OSSZES.C_IGAZOLVANYSZAM,
		igazolvanyTipusa.C_NAME AS IgazolvanyTipusa
	--megjegyzés
	FROM T_FELHASZNALO_OSSZES
		INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulok ON tanulok.TanuloId = T_FELHASZNALO_OSSZES.Id
		INNER JOIN T_TANULO_OSSZES on T_TANULO_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
		INNER JOIN T_TANULOCSOPORT_OSSZES on T_TANULOCSOPORT_OSSZES.C_TANULOID = T_FELHASZNALO_OSSZES.ID
		LEFT JOIN T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID
		INNER JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
		LEFT JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
		LEFT JOIN T_GONDVISELO_OSSZES on T_GONDVISELO_OSSZES.C_TANULOID = T_FELHASZNALO_OSSZES.ID and T_GONDVISELO_OSSZES.TOROLT = 'F'
		LEFT JOIN @TelefonszamTable telefon on telefon.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
		LEFT JOIN @EmailCimTable email on email.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES igazolvanyTipusa ON T_FELHASZNALO_OSSZES.C_IGAZOLVANYTIPUSA = igazolvanyTipusa.ID AND igazolvanyTipusa.C_TANEVID = @TanevId
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES rokonsagiFoka ON T_GONDVISELO_OSSZES.C_ROKONSAGFOKA = rokonsagiFoka.ID AND rokonsagiFoka.C_TANEVID = @TanevId
	LEFT JOIN 
		(SELECT
			C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM	Cim
			, C_FELHASZNALOID	TanuloId
		FROM T_CIM_OSSZES 
			INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @tanevId
		WHERE T_CIM_OSSZES.TOROLT = 'F' AND T_CIM_OSSZES.C_CIMTIPUSA = 907 AND T_CIM_OSSZES.C_GONDVISELOID IS NULL
		) AllandoLakcim ON AllandoLakcim.TanuloID = T_FELHASZNALO_OSSZES.ID
	LEFT JOIN @TartozkodasiHelyTable TartozkodasiHely ON TartozkodasiHely.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
	WHERE 
		T_FELHASZNALO_OSSZES.TOROLT = 'F'
		AND T_TANEV_OSSZES.TOROLT = 'F'
		AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
		AND T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
	ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
END

GO