﻿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
-- =============================================
-- Author:		Kelemen Attila
-- Create date: 2016. 03. 06.
-- Description:	Felhasználóhoz tartozó faliújságbejegyzések és tanévrendje események lekérdezése
-- Modify:		Bata-Kovács Gábor
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFaliujsagBejegyzesek]
	@userID int,
	@date DateTime
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

SELECT T_TANULOESEMENY.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 = @userID 
	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 = @userID
				AND T_TANULOCSOPORT.C_BELEPESDATUM < @date
				AND (T_TANULOCSOPORT.C_KILEPESDATUM > @date 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 = @userID)
AND T_TANULOESEMENY.C_KEZDETE <= @date
AND (T_TANULOESEMENY.C_VEGE IS NULL OR T_TANULOESEMENY.C_VEGE >= @date)
AND T_TANULOESEMENY.TOROLT='F'
AND (T_TANULOESEMENY.C_FALIUJSAGMEGJELENES = 'T' OR T_TANULOESEMENY.C_TIPUS = 5483)

UNION

	select T_FALIUJSAGBEJEGYZES.ID,
T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGKEZDETE Erv_kezd,
T_FALIUJSAGBEJEGYZES.C_CIM Cim,
T_FALIUJSAGBEJEGYZES.C_BEJEGYZES Szoveg,
T_FELHASZNALO.C_NYOMTATASINEV Bejegyzo,
T_FELHASZNALO.C_PROFILKEP ProfilKep,
Statusz.StatuszID Munkakor
 from T_FALIUJSAGBEJEGYZES
 inner join T_FELHASZNALO ON T_FALIUJSAGBEJEGYZES.C_BEJEGYZOID = 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_CIMZETT_FALIUJSAGBEJEGYZES on T_FALIUJSAGBEJEGYZES.ID=T_CIMZETT_FALIUJSAGBEJEGYZES.C_FALIUJSAGBEJEGYZESID
WHERE (T_FALIUJSAGBEJEGYZES.C_GLOBALIS='T' OR T_CIMZETT_FALIUJSAGBEJEGYZES.C_CIMZETTID = @userID)
AND T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGKEZDETE <= @date
AND (T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE IS NULL OR T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE >= @date)
AND T_FALIUJSAGBEJEGYZES.TOROLT='F'

UNION

SELECT T_FALIUJSAGBEJEGYZES.ID,
T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGKEZDETE Erv_kezd,
T_FALIUJSAGBEJEGYZES.C_CIM Cim,
T_FALIUJSAGBEJEGYZES.C_BEJEGYZES Szoveg,
T_FELHASZNALO.C_NYOMTATASINEV Bejegyzo,
T_FELHASZNALO.C_PROFILKEP ProfilKep,
Statusz.StatuszID Munkakor
 FROM T_FALIUJSAGBEJEGYZES
inner join T_FELHASZNALO ON T_FALIUJSAGBEJEGYZES.C_BEJEGYZOID = 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
WHERE 
EXISTS (select 1 from T_TANULOCSOPORT

inner join T_OSZTALYCSOPORT_FALIUJSAGBEJE on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_FALIUJSAGBEJE.C_OSZTALYCSOPORTID
				where T_TANULOCSOPORT.TOROLT ='F'
				AND T_TANULOCSOPORT.C_TANULOID = @userID
				AND T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
				AND (T_TANULOCSOPORT.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
				AND T_OSZTALYCSOPORT_FALIUJSAGBEJE.C_FALIUJSAGBEJEGYZESID = T_FALIUJSAGBEJEGYZES.ID
				)

AND T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGKEZDETE <= @date
AND (T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE IS NULL OR T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE >= @date)
AND T_FALIUJSAGBEJEGYZES.TOROLT='F'

	ORDER BY Erv_kezd DESC
END

