﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

-- =============================================
-- Description:	<Felhasználóhoz tartozó faliújságbejegyzések és tanévrendje események lekérdezése>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFaliujsagBejegyzesek]
	 @pUserId								INT
	,@pDate									DATE
	,@pEsemenyTipusFaliujsagBejegyzes		INT

AS
BEGIN

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

	SELECT DISTINCT
		 T_TANULOESEMENY.ID							ID
		,T_TANULOESEMENY.C_KEZDETE					Erv_kezd
		,T_TANULOESEMENY.C_TARGY					Cim
		,T_TANULOESEMENY.C_TARTALOM					Szoveg
		,T_FELHASZNALO.C_NYOMTATASINEV				Bejegyzo
		,T_FELHASZNALO.C_PROFILKEP					ProfilKep
		,Statusz.StatuszId							Munkakor
	FROM
		T_TANULOESEMENY
	INNER JOIN 
		T_FELHASZNALO ON 
			T_TANULOESEMENY.C_FELJEGYZOID = T_FELHASZNALO.ID
	LEFT JOIN
		(SELECT
			 C_ALKALMAZOTTID								userId
			,MAX(T_MUNKAUGYIADATOK.C_MUNKAKORTIPUSA)		StatuszId 
		FROM 
			T_MUNKAUGYIADATOK
		WHERE 
			T_MUNKAUGYIADATOK.TOROLT = 'F' 
		GROUP BY 
			C_ALKALMAZOTTID) Statusz ON 
		Statusz.userId = T_FELHASZNALO.ID
	LEFT JOIN 
		T_TANULO_TANULOESEMENY ON 
				T_TANULO_TANULOESEMENY.C_TANULOID = @pUserId 
			AND T_TANULO_TANULOESEMENY.C_TANULOESEMENYID = T_TANULOESEMENY.ID
	LEFT JOIN 
		T_OSZTALYCSOPORT_TANULOESEMENY ON 
			T_OSZTALYCSOPORT_TANULOESEMENY.C_OSZTALYCSOPORTID IN
				(SELECT 
					C_OSZTALYCSOPORTID 
				FROM 
					T_TANULOCSOPORT 
				WHERE 
						T_TANULOCSOPORT.C_TANULOID = @pUserId
					AND T_TANULOCSOPORT.C_BELEPESDATUM <= @pDate
					AND (T_TANULOCSOPORT.C_KILEPESDATUM >= @pDate OR T_TANULOCSOPORT.C_KILEPESDATUM IS NULL)) 
			AND T_OSZTALYCSOPORT_TANULOESEMENY.C_TANULOESEMENYID = T_TANULOESEMENY.ID
	WHERE 
			(T_TANULOESEMENY.C_MINDENKINEK = 'T' OR T_OSZTALYCSOPORT_TANULOESEMENY.C_OSZTALYCSOPORTID IS NOT NULL OR T_TANULO_TANULOESEMENY.C_TANULOID = @pUserId)
		AND T_TANULOESEMENY.C_KEZDETE <= @pDate
		AND (T_TANULOESEMENY.C_VEGE IS NULL OR T_TANULOESEMENY.C_VEGE >= @pDate)
		AND T_TANULOESEMENY.TOROLT = 'F'
		AND (T_TANULOESEMENY.C_FALIUJSAGMEGJELENES = 'T' AND T_TANULO_TANULOESEMENY.C_TANULOID = @pUserId OR T_TANULOESEMENY.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzes)


END


GO