﻿-- ===================================================================================================
-- Description:  <Felhasználóhoz tartozó faliújságbejegyzések és tanévrendje események lekérdezése>
-- ===================================================================================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFaliujsagBejegyzesek] 
GO

CREATE PROCEDURE [dbo].[sp_GetFaliujsagBejegyzesek]
   @pUserId int
  ,@pDate datetime
  ,@pEsemenyTipusFaliujsagBejegyzes int
  ,@pFeladatKategoriaId int
AS
BEGIN
  SET NOCOUNT ON;
  SELECT
     y.ID AS ID
    ,y.Erv_kezd AS Erv_kezd
	  ,y.Erv_vege AS Erv_vege
    ,y.Cim AS Cim
    ,y.Szoveg AS Szoveg
    ,y.SzovegWeb AS SzovegWeb
    ,fh.C_NYOMTATASINEV AS Bejegyzo
    ,fh.C_PROFILKEP AS ProfilKep
    ,IIF(ma.C_VEZETOIORASZAMOK = 6571, ma.C_MUNKAKORTIPUSA, ISNULL(ma.C_VEZETOIORASZAMOK, 6331))  AS Munkakor
    ,y.C_MINDENKINEK
  FROM (
    SELECT
       tes.ID AS ID
      ,tes.C_KEZDETE AS Erv_kezd
	    ,tes.C_VEGE AS Erv_vege
      ,tes.C_TARGY AS Cim
      ,tes.C_TARTALOM AS Szoveg
      ,tes.C_TARTALOMWEB AS SzovegWeb
      ,tes.C_FELJEGYZOID
      ,tes.C_MINDENKINEK
    FROM T_TANULOESEMENY tes
      INNER JOIN T_OSZTALYCSOPORT_TANULOESEMENY ocstes ON ocstes.C_TANULOESEMENYID = tes.ID
	    INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = ocstes.C_OSZTALYCSOPORTID
        AND (ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
      INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID
        AND tcs.C_TANULOID = @pUserId
        AND tcs.C_BELEPESDATUM <= @pDate
        AND (tcs.C_KILEPESDATUM >= @pDate OR tcs.C_KILEPESDATUM IS NULL)
        AND tcs.TOROLT = 'F'
      LEFT JOIN T_TANULO_TANULOESEMENY ttes ON tes.ID = ttes.C_TANULOESEMENYID 
    WHERE tes.C_KEZDETE <= @pDate
      AND (tes.C_VEGE IS NULL OR tes.C_VEGE >= @pDate)
      AND tes.TOROLT = 'F'
      AND (tes.C_FALIUJSAGMEGJELENES = 'T' OR tes.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzes)
      AND (ttes.C_TANULOID IS NULL OR ttes.C_TANULOID = @pUserId)
    UNION
    SELECT
       tes.ID AS ID
      ,tes.C_KEZDETE AS Erv_kezd
      ,tes.C_VEGE AS Erv_vege
      ,tes.C_TARGY AS Cim
      ,tes.C_TARTALOM AS Szoveg
      ,tes.C_TARTALOMWEB AS SzovegWeb
      ,tes.C_FELJEGYZOID
      ,tes.C_MINDENKINEK
    FROM T_TANULOESEMENY tes
      INNER JOIN T_TANULO_TANULOESEMENY ttes ON tes.ID = ttes.C_TANULOESEMENYID 
    WHERE tes.C_MINDENKINEK = 'T'
      AND tes.C_KEZDETE <= @pDate
      AND (tes.C_VEGE IS NULL OR tes.C_VEGE >= @pDate)
      AND tes.TOROLT = 'F'
      AND (tes.C_FALIUJSAGMEGJELENES = 'T' OR tes.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzes)
      AND ttes.C_TANULOID = @pUserId
    ) y 
    INNER JOIN T_FELHASZNALO fh ON y.C_FELJEGYZOID = fh.ID
      AND fh.TOROLT = 'F'
    LEFT JOIN T_MUNKAUGYIADATOK ma ON ma.C_ALKALMAZOTTID = fh.ID
      AND ma.TOROLT = 'F'
    ORDER BY y.Erv_kezd, y.ID DESC

END
GO
