SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('sp_GetErtesitesAltEsMulAdatok') IS NOT NULL BEGIN
  DROP PROCEDURE [sp_GetErtesitesAltEsMulAdatok] 
END  
GO

CREATE PROCEDURE [dbo].[sp_GetErtesitesAltEsMulAdatok]
	@pOsztalyId				INT,
	@pTanevId				INT,
	@pTankoteles			BIT,
	@pIskolaErdekuSzamit	BIT
AS
BEGIN
	SET NOCOUNT ON;

	--Mulasztasok
	DECLARE @Mulasztasok TABLE (
	TanuloId INT
	,Igazolt INT
	,Igazolatlan INT
	,ElmeletIgazolt INT
	,ElmeletIgazolatlan INT
	,GyakorlatIgazolt INT
	,GyakorlatIgazolatlan INT
	,Osszes INT		
	)

	INSERT INTO @Mulasztasok
	EXEC sp_GetDokumentumMulasztasok
		@osztalyId = @pOsztalyId,
		@tanevId = @pTanevId,
		@elmeletGyakorlat = 0,
		@kesesTipus = 1499,
		@elmeletiOraPercben = 45,
		@gyakorlatiOraPercben = 60,
		@ertekelesTipus = 1520, --évvégi
		@iskolaErdekuSzamit = @pIskolaErdekuSzamit

	--Tanulói adatok
		SELECT 
			tanulo.ID,
			tanulo.C_NYOMTATASINEV TANULONEV,
			tanulo.C_ANYJANEVE ANYJANEVE,
			tanulo.C_SZULETESIHELY SZULETESIHELY,
			tanulo.C_SZULETESIDATUM SZULETESIDATUM,
			tanulo.C_NYILVANTARTASISZAM TorzslapSzam,
			AllandoLakcim.IranyitoSzam1,
			AllandoLakcim.Varos1,
			AllandoLakcim.Kozterulet1,
			AllandoLakcim.KozteruletJellege1,
			AllandoLakcim.Hazszam1,
			AllandoLakcim.Emelet1,
			AllandoLakcim.Ajto1,
			TartozkodasiHely.IranyitoSzam2,
			TartozkodasiHely.Varos2,
			TartozkodasiHely.Kozterulet2,
			TartozkodasiHely.KozteruletJellege2,
			TartozkodasiHely.Hazszam2,
			TartozkodasiHely.Emelet2,
			TartozkodasiHely.Ajto2,
			Gondviselo.GondvNeve,
			Gondviselo.GondvTelefon,
			Gondviselo.GondvCim,
			T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE as INT_IGAZGATO_NEV,
			T_INTEZMENYADATOK_OSSZES.C_NEV as INT_NEV,
			T_INTEZMENYADATOK_OSSZES.C_OMKOD as INT_OMKOD,
			T_INTEZMENYADATOK_OSSZES.C_VAROS as INT_VAROS,
			dbo.fnGetDokumentumIntezmenyCime(@pTanevId) as INT_CIM,
			T_OSZTALYCSOPORT_OSSZES.C_NEV as OSZTALYCSOPORT_NEV,
			osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV as OSZTFO_NEV,
			ISNULL(mulasztas.Igazolt,0) IGAZOLT,
			ISNULL(mulasztas.Igazolatlan,0) IGAZOLATLAN
		FROM T_TANULOCSOPORT_OSSZES
			LEFT JOIN T_FELHASZNALO_OSSZES tanulo on tanulo.ID = T_TANULOCSOPORT_OSSZES.C_TANULOID AND tanulo.TOROLT = 'F'
			LEFT JOIN T_TANULO_OSSZES on T_TANULO_OSSZES.ID = tanulo.ID AND T_TANULO_OSSZES.TOROLT = 'F'
			LEFT JOIN T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
			LEFT JOIN T_INTEZMENYADATOK_OSSZES on T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID = T_TANULOCSOPORT_OSSZES.C_INTEZMENYID 
													AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = T_TANULOCSOPORT_OSSZES.C_TANEVID 
													AND T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
			LEFT JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID AND T_OSZTALY_OSSZES.TOROLT = 'F'
			LEFT JOIN T_FELHASZNALO_OSSZES osztf on osztf.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID AND osztf.TOROLT = 'F'
			LEFT JOIN --Állandó lakcím
				(SELECT
						T_CIM_OSSZES.C_FELHASZNALOID TanuloID,
						T_CIM_OSSZES.C_IRANYITOSZAM IranyitoSzam1,
						T_CIM_OSSZES.C_VAROS Varos1,
						T_CIM_OSSZES.C_KOZTERULET Kozterulet1,
						T_CIM_OSSZES.C_KOZTERULETJELLEGE KozteruletJellege1,
						T_CIM_OSSZES.C_HAZSZAM Hazszam1,
						T_CIM_OSSZES.C_EMELET Emelet1,
						T_CIM_OSSZES.C_AJTO Ajto1
					FROM T_CIM_OSSZES 
					WHERE 
						T_CIM_OSSZES.TOROLT = 'F' 
						AND T_CIM_OSSZES.C_CIMTIPUSA = 907
				) AllandoLakcim ON AllandoLakcim.TanuloID = tanulo.ID
			LEFT JOIN -- Tartózkodási hely
				(SELECT
					T_CIM_OSSZES.C_FELHASZNALOID TanuloID,
					T_CIM_OSSZES.C_IRANYITOSZAM IranyitoSzam2,
					T_CIM_OSSZES.C_VAROS Varos2,
					T_CIM_OSSZES.C_KOZTERULET Kozterulet2,
					T_CIM_OSSZES.C_KOZTERULETJELLEGE KozteruletJellege2,
					T_CIM_OSSZES.C_HAZSZAM Hazszam2,
					T_CIM_OSSZES.C_EMELET Emelet2,
					T_CIM_OSSZES.C_AJTO Ajto2
				FROM T_CIM_OSSZES 
				WHERE 
					T_CIM_OSSZES.TOROLT = 'F' 
					AND T_CIM_OSSZES.C_CIMTIPUSA = 909
				) TartozkodasiHely on TartozkodasiHely.TanuloID = tanulo.ID
			LEFT JOIN @Mulasztasok mulasztas on mulasztas.TanuloId = tanulo.ID --Mulasztások
			LEFT JOIN -- Gondviselő adatok
			(
				SELECT
					T_GONDVISELO_OSSZES.ID,
					T_GONDVISELO_OSSZES.C_TANULOID Tanulo, 
					T_GONDVISELO_OSSZES.C_NEV GondvNeve,
					ISNULL(T_TELEFON_OSSZES.C_TELEFONSZAM,'') GondvTelefon,
					ISNULL(T_CIM_OSSZES.C_OSSZETETTCIM,'') GondvCim
				FROM T_GONDVISELO_OSSZES
					LEFT JOIN T_TELEFON_OSSZES on T_TELEFON_OSSZES.C_GONDVISELOID = T_GONDVISELO_OSSZES.ID and T_TELEFON_OSSZES.TOROLT = 'F'
					LEFT JOIN T_CIM_OSSZES on T_CIM_OSSZES.C_GONDVISELOID = T_GONDVISELO_OSSZES.ID and T_CIM_OSSZES.TOROLT = 'F'
				WHERE
					T_GONDVISELO_OSSZES.TOROLT = 'F'
			) Gondviselo on Gondviselo.Tanulo = T_TANULO_OSSZES.ID 
		WHERE
			T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = @pOsztalyId  
			AND T_TANULOCSOPORT_OSSZES.C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F'))
			AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F' 
			AND T_TANULO_OSSZES.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T')
			AND T_TANULOCSOPORT_OSSZES.C_TANEVID = @pTanevId
		ORDER BY tanulo.C_NYOMTATASINEV


		--Mulasztások részletezése
		SELECT 
			* 
		FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit)
		WHERE 
			Igazolt = 'F'
	END

GO