kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170615161105_KRETA_1591_2/sp_GetFaliujsagBejegyzesek.sql
2024-03-13 00:33:46 +01:00

159 lines
4.8 KiB
Transact-SQL

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
-- =============================================
-- Description: <Felhasználóhoz tartozó faliújságbejegyzések és tanévrendje események lekérdezése>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFaliujsagBejegyzesek]
@pUserId INT
,@pDate DATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
T_TANULOESEMENY.ID 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 = @pUserId
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 = @pUserId
AND T_TANULOCSOPORT.C_BELEPESDATUM <= @pDate
AND (T_TANULOCSOPORT.C_KILEPESDATUM >= @pDate 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 = @pUserId)
AND T_TANULOESEMENY.C_KEZDETE <= @pDate
AND (T_TANULOESEMENY.C_VEGE IS NULL OR T_TANULOESEMENY.C_VEGE >= @pDate)
AND T_TANULOESEMENY.TOROLT = 'F'
AND (T_TANULOESEMENY.C_FALIUJSAGMEGJELENES = 'T' OR T_TANULOESEMENY.C_TIPUS = 5483)
UNION
SELECT
T_FALIUJSAGBEJEGYZES.ID 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 = @pUserId)
AND T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGKEZDETE <= @pDate
AND (T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE IS NULL OR T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE >= @pDate)
AND T_FALIUJSAGBEJEGYZES.TOROLT = 'F'
UNION
SELECT
T_FALIUJSAGBEJEGYZES.ID 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 = @pUserId
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 <= @pDate
AND (T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE IS NULL OR T_FALIUJSAGBEJEGYZES.C_ERVENYESSEGVEGE >= @pDate)
AND T_FALIUJSAGBEJEGYZES.TOROLT = 'F'
ORDER BY
Erv_kezd DESC
END
GO