﻿-- =============================================
-- Description:	<Megvizsgáljuk, hogy van-e a tanulóknak az adott időpontra tanuló mentessége>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

CREATE PROCEDURE [dbo].[uspValidateTanuloListTanuloMenessegToErtekeles]
	 @pTanuloIdList		XML
	,@pTantargyId		INT
	,@pErtekelesDatum	DATE
AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @tempTanuloIdList TABLE (tanuloId INT)

	INSERT INTO @tempTanuloIdList
	SELECT DISTINCT tanuloId = tanuloId.value('(.)[1]', 'INT')
	FROM @pTanuloIdList.nodes('tanuloIdList/tanuloId') as tanuloIdList(tanuloId)

	SELECT 
		 felhasznalo.ID								ID
		,felhasznalo.C_NYOMTATASINEV				Nev
		,tanuloMentesseg.C_ERTEKELESMENTESITES		ErtkelesMentesseg
		,tanuloMentesseg.C_SZOVEGESENERTEKELHETO	SzovegesenErtekelheto
	FROM 
		T_FELHASZNALO felhasznalo
	LEFT JOIN 
		T_TANULOMENTESSEG tanuloMentesseg ON 
				tanuloMentesseg.C_TANULOID = felhasznalo.ID
			AND tanuloMentesseg.TOROLT = 'F'
			AND tanuloMentesseg.C_TANTARGYID = @pTantargyId
			AND (tanuloMentesseg.C_KEZDETE IS NULL OR tanuloMentesseg.C_KEZDETE <= @pErtekelesDatum)
			AND	(tanuloMentesseg.C_VEGE IS NULL OR tanuloMentesseg.C_VEGE >= @pErtekelesDatum)
	WHERE 
			felhasznalo.ID IN (SELECT tanuloId FROM @tempTanuloIdList)
		AND felhasznalo.TOROLT = 'F'

END


GO

