kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_GetFaliujsagBejegyzesek.sql
2024-03-13 00:33:46 +01:00

78 lines
2.9 KiB
Transact-SQL

-- ===================================================================================================
-- 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 DESC, y.ID DESC
END
GO