﻿-- ===================================================================================================
-- 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 DISTINCT
     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
    ,fh.C_NYOMTATASINEV AS Bejegyzo
    ,fh.C_PROFILKEP AS ProfilKep
    ,IIF(ma.C_VEZETOIORASZAMOK = 6571, ma.C_MUNKAKORTIPUSA, ma.C_VEZETOIORASZAMOK)  AS Munkakor
  FROM T_TANULOESEMENY tes
    INNER JOIN T_FELHASZNALO fh ON tes.C_FELJEGYZOID = fh.ID AND fh.TOROLT = 'F'
    LEFT JOIN T_MUNKAUGYIADATOK ma ON ma.C_ALKALMAZOTTID = fh.ID AND ma.TOROLT = 'F' 
    LEFT JOIN T_TANULO_TANULOESEMENY ttes ON ttes.C_TANULOID = @pUserId AND ttes.C_TANULOESEMENYID = tes.ID
    LEFT JOIN T_OSZTALYCSOPORT_TANULOESEMENY ocstes ON ocstes.C_OSZTALYCSOPORTID IN (
      SELECT 
        tcs.C_OSZTALYCSOPORTID 
      FROM T_TANULOCSOPORT tcs
	  INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
      WHERE tcs.C_TANULOID = @pUserId
        AND tcs.C_BELEPESDATUM <= @pDate
        AND (tcs.C_KILEPESDATUM >= @pDate OR tcs.C_KILEPESDATUM IS NULL)
        AND tcs.TOROLT = 'F'
      ) 
      AND ocstes.C_TANULOESEMENYID = tes.ID
  WHERE (tes.C_MINDENKINEK = 'T' OR ocstes.C_OSZTALYCSOPORTID IS NOT NULL OR ttes.C_TANULOID = @pUserId)
    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' AND ttes.C_TANULOID = @pUserId OR tes.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzes)
  ORDER BY tes.C_KEZDETE DESC
END
GO
