GO
/****** Object:  StoredProcedure [dbo].[sp_GetErtesitesek]    Script Date: 2016.03.08. 13:05:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Kelemen Attila
-- Create date: 2016. 03. 07.
-- Description:	Felhasználóhoz tartozó értesítések lekérdezése
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetErtesitesek]
	@userID int,
	@gondviseloID int,
	@date DateTime
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	--Ha gondviselőhöz kérdezzük le
IF @gondviseloID > 0
SELECT DISTINCT
	T_ERTESITES.ID,
	T_ERTESITES.C_ERVENYESSEGKEZDETE Erv_kezd,  
	FELERT.C_ERVENYESSEGVEGE Erv_veg,  
	T_ERTESITES.C_LETREHOZASDATUM LetrehozasDatum,
	T_ERTESITES.C_SZINTIPUS Szin,
	T_ERTESITES.C_TIPUS Tipus,
	T_ERTESITES.C_TOROLHETO Torolheto,
	T_ERTESITES.C_UZENET Szoveg,
	FELERT.ID FGErtesitesID
FROM T_ERTESITES
	LEFT JOIN T_GONDVISELOERTESITES FELERT on FELERT.C_ERTESITESID = T_ERTESITES.ID
WHERE T_ERTESITES.TOROLT = 'F' 
     AND T_ERTESITES.C_ERVENYESSEGKEZDETE <= @date
	 AND (T_ERTESITES.C_GLOBALISERVENYESSEGVEGE IS NULL OR T_ERTESITES.C_GLOBALISERVENYESSEGVEGE >= @date)
	 AND (((T_ERTESITES.C_GLOBALIS = 'T'
			AND NOT EXISTS (select 1 from T_GONDVISELOERTESITES 
						where TOROLT = 'F' 
								AND (C_ERVENYESSEGVEGE < @date)
								AND C_ERTESITESID = T_ERTESITES.ID AND C_GONDVISELOID = @gondviseloID)
				      )  
			 )  
	      OR  (T_ERTESITES.C_GLOBALIS = 'F' 
					AND FELERT.TOROLT = 'F' 
					AND (FELERT.C_ERVENYESSEGVEGE IS NULL OR FELERT.C_ERVENYESSEGVEGE >= @date)
					AND FELERT.C_GONDVISELOID = @gondviseloID))
 ORDER BY T_ERTESITES.C_LETREHOZASDATUM DESC
	 
ELSE
	SELECT DISTINCT
	T_ERTESITES.ID,
	T_ERTESITES.C_ERVENYESSEGKEZDETE Erv_kezd,  
	FELERT.C_ERVENYESSEGVEGE Erv_veg,
	T_ERTESITES.C_LETREHOZASDATUM LetrehozasDatum,
	T_ERTESITES.C_SZINTIPUS Szin,
	T_ERTESITES.C_TIPUS Tipus,
	T_ERTESITES.C_TOROLHETO Torolheto,
	T_ERTESITES.C_UZENET Szoveg,
	FELERT.ID FGErtesitesID
FROM T_ERTESITES
	LEFT JOIN T_FELHASZNALOERTESITES FELERT on FELERT.C_ERTESITESID = T_ERTESITES.ID
WHERE T_ERTESITES.TOROLT = 'F' 
     AND T_ERTESITES.C_ERVENYESSEGKEZDETE <= @date
	 AND (T_ERTESITES.C_GLOBALISERVENYESSEGVEGE IS NULL OR T_ERTESITES.C_GLOBALISERVENYESSEGVEGE >= @date)
	 AND (((T_ERTESITES.C_GLOBALIS = 'T'
			AND NOT EXISTS (select 1 from T_FELHASZNALOERTESITES 
						where TOROLT = 'F' 
								AND (C_ERVENYESSEGVEGE < @date)
								AND C_ERTESITESID = T_ERTESITES.ID AND C_FELHASZNALOID = @userID)
				      )  
			 )  
	      OR  (T_ERTESITES.C_GLOBALIS = 'F' 
					AND FELERT.TOROLT = 'F' 
					AND (FELERT.C_ERVENYESSEGVEGE IS NULL OR FELERT.C_ERVENYESSEGVEGE >= @date)
					AND FELERT.C_FELHASZNALOID = @userID))
 ORDER BY T_ERTESITES.C_LETREHOZASDATUM DESC
END
