﻿-- =============================================
-- Description:	<Előszedjük a tanuló értékeléseket magatartás/szorgalom alapján>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDataSetByMagatartasSzorgalom]
GO

CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDataSetByMagatartasSzorgalom]
	 @pIntezmenyId		INT
	,@pTanevId			INT
	,@pTanarId			INT
	,@pOsztalyCsoportId	INT
	,@pDatum			DATE = NULL
AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
	SET NOCOUNT ON;
	
	IF @pDatum IS NULL
		SET @pDatum = CONVERT(DATE, GETDATE())

	DECLARE @TanuloOsztalyEvfolyamTipusIdList TABLE(
  		  TanuloId			INT PRIMARY KEY
  		 ,EvfolyamTipusId	INT
	)
	INSERT INTO 
		@TanuloOsztalyEvfolyamTipusIdList
	SELECT 
		 TanuloId
		,EvfolyamTipusId 
	FROM 
		dbo.fnGetOsztalyCsoportTanuloOsztalyList(@pIntezmenyId, @pTanevId, @pOsztalyCsoportId, @pDatum)

	SELECT
		 FelhasznaloTanulo.ID													TanuloId
		,NULL																	TantargyId

		,FelhasznaloTanulo.C_NYOMTATASINEV										TanuloNev
		,IIF(FelhasznaloTanulo.C_NEVSORREND = 'T',								--
            FelhasznaloTanulo.C_UTONEV + ' '+ FelhasznaloTanulo.C_VEZETEKNEV,	--
            FelhasznaloTanulo.C_VEZETEKNEV + ' ' + FelhasznaloTanulo.C_UTONEV)	TanuloNevElotagNelkul
		,FelhasznaloTanulo.C_ANYJANEVE											AnyjaNeve
		,FelhasznaloTanulo.C_SZULETESIDATUM										SzuletesiIdo
		,OsztalyCsoport.C_NEV													OsztalyNev

		,TanuloErtekeles.ID														ID
		,TanuloErtekeles.C_DATUM												Datum
		,TanuloErtekeles.C_TIPUSID												TipusId
		,FelhasznaloErtekelo.C_NYOMTATASINEV									ErtekeloNyomtatasiNev
		,IIF(TanuloErtekeles.ID IS NULL,										--
				NULL,															--
				CASE															--
					WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId				--
						THEN 'T'												--
						ELSE 'F'												--
				END																--
		)																		Modosithato
		,TanuloErtekeles.C_ISMAGATARTASSZORGALOM								IsMagatartasSzorgalom

		,TanuloErtekeles.C_MAGATARTASOSZTALYZATID								MagatartasOsztalyzatId
		,TanuloErtekeles.C_MAGATARTASSZOVEG										MagatartasSzoveg
		,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV								MagatartasSzovegRovidNev
		,TanuloErtekeles.C_MAGATARTASERTEKID									MagatartasErtekId
		,TanuloErtekeles.C_SZORGALOMOSZTALYZATID								SzorgalomOsztalyzatId
		,TanuloErtekeles.C_SZORGALOMSZOVEG										SzorgalomSzoveg
		,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV								SzorgalomSzovegRovidNev
		,TanuloErtekeles.C_SZORGALOMERTEKID										SzorgalomErtekId
	FROM 
		T_TANULOCSOPORT_OSSZES TanuloCsoport
	INNER JOIN
		T_FELHASZNALO_OSSZES FelhasznaloTanulo ON
				FelhasznaloTanulo.C_INTEZMENYID			= TanuloCsoport.C_INTEZMENYID
			AND FelhasznaloTanulo.C_TANEVID				= TanuloCsoport.C_TANEVID
			AND FelhasznaloTanulo.TOROLT				= 'F'
			AND FelhasznaloTanulo.ID					= TanuloCsoport.C_TANULOID
	LEFT JOIN
		T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
				OsztalyCsoport.C_INTEZMENYID			= TanuloCsoport.C_INTEZMENYID
			AND OsztalyCsoport.C_TANEVID				= TanuloCsoport.C_TANEVID
			AND OsztalyCsoport.TOROLT					= 'F'
			AND	OsztalyCsoport.ID						= TanuloCsoport.C_OSZTALYCSOPORTID 
	LEFT JOIN
		T_TANULOERTEKELES_OSSZES TanuloErtekeles ON
				TanuloErtekeles.C_INTEZMENYID			= TanuloCsoport.C_INTEZMENYID
			AND TanuloErtekeles.C_TANEVID				= TanuloCsoport.C_TANEVID
			AND TanuloErtekeles.TOROLT					= 'F'
			AND TanuloErtekeles.C_TANTARGYID IS NULL
			AND TanuloErtekeles.C_TANULOID				= TanuloCsoport.C_TANULOID
	LEFT JOIN
		T_OSZTALYCSOPORT_OSSZES Osztaly ON
				Osztaly.C_INTEZMENYID					= TanuloErtekeles.C_INTEZMENYID
			AND Osztaly.C_TANEVID						= TanuloErtekeles.C_TANEVID
			AND Osztaly.TOROLT							= 'F'
			AND Osztaly.ID								= TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
			AND	Osztaly.C_EVFOLYAMTIPUSA				= (SELECT EvfolyamTipusId FROM @TanuloOsztalyEvfolyamTipusIdList WHERE TanuloId = TanuloErtekeles.C_TANULOID)
	LEFT JOIN
		T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON
				FelhasznaloErtekelo.C_INTEZMENYID		= TanuloCsoport.C_INTEZMENYID
			AND FelhasznaloErtekelo.C_TANEVID			= TanuloCsoport.C_TANEVID
			AND FelhasznaloErtekelo.TOROLT				= 'F'
			AND FelhasznaloErtekelo.ID					= TanuloErtekeles.C_ERTEKELOID
	WHERE
			TanuloCsoport.C_INTEZMENYID					= @pIntezmenyId
		AND TanuloCsoport.C_TANEVID						= @pTanevId
		AND TanuloCsoport.TOROLT						= 'F'
		AND TanuloCsoport.C_OSZTALYCSOPORTID			= @pOsztalyCsoportId
		AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
		AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= @pDatum)

END


GO

