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

90 lines
No EOL
3.1 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetFaliujsagBejegyzesekData
GO
CREATE PROCEDURE dbo.uspGetFaliujsagBejegyzesekData
@pTanevId int
,@pOktNevKatTipus int = NULL
,@pFeladatEllatasiHelyId int = NULL
,@pOsztalyCsoportId int = NULL
,@pIsKellKapcsolodoCsoportok bit
,@pFeljegyzoId int = NULL
,@pDatumTol datetime = NULL
,@pDatumIg datetime = NULL
,@pTipus int
AS BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
SET @sql = N'
SELECT DISTINCT
te.ID AS ID
,te.C_ESEMENYDATUMA AS Datum
,te.C_MEGJEGYZES AS Megjegyzes
,te.C_TARTALOM AS Tartalom
,te.C_TIPUS AS Tipus
,te.C_FELJEGYZOID AS FeljegyzoId
,te.C_TANTARGYID AS TantargyId
,FELJEGYZO.C_NYOMTATASINEV AS FeljegyzoNev
,IIF(FELJEGYZO.C_NEVSORREND = ''T'',
FELJEGYZO.C_UTONEV + '' '' + FELJEGYZO.C_VEZETEKNEV,
FELJEGYZO.C_VEZETEKNEV + '' '' + FELJEGYZO.C_UTONEV) AS FeljegyzoNevElotagNelkul
,ocs.ID AS OsztalyCsoportId
,ocs.C_NEV AS OsztalyCsoport
,ocs.C_FELADATKATEGORIAID AS OktNevKategoriaTipusId
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,te.C_KEZDETE AS Kezdete
,te.C_TARGY AS Cim
,te.C_FALIUJSAGMEGJELENES AS FaliujsagMegjelenes
,te.C_MINDENKINEK AS Mindenkinek
,te.C_VEGE AS Vege
,targy.C_NEV AS TantargyNev
FROM T_TANULOESEMENY_OSSZES te
INNER JOIN T_OSZTALYCSOPORT_TANULOESEMENY ON T_OSZTALYCSOPORT_TANULOESEMENY.C_TANULOESEMENYID = te.ID
INNER JOIN T_FELHASZNALO_OSSZES FELJEGYZO ON FELJEGYZO.ID = te.C_FELJEGYZOID AND FELJEGYZO.TOROLT = ''F''
LEFT JOIN T_TANTARGY_OSSZES targy ON targy.ID = te.C_TANTARGYID AND targy.TOROLT = ''F''
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = T_OSZTALYCSOPORT_TANULOESEMENY.C_OSZTALYCSOPORTID
AND ocs.TOROLT = ''F'''
SET @sql += IIF(@pOktNevKatTipus IS NOT NULL, N'
AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus', '')
SET @sql += IIF(@pFeladatEllatasiHelyId IS NOT NULL, N'
AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId', '')
IF @pOsztalyCsoportId IS NOT NULL BEGIN
SET @sql += IIF(@pIsKellKapcsolodoCsoportok = 1, N'
AND ocs.ID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId))', N'
AND ocs.ID = @pOsztalyCsoportId')
END
SET @sql += N'
WHERE te.TOROLT = ''F''
AND te.C_TANEVID = @pTanevId
'
SET @sql += IIF(@pFeljegyzoId IS NOT NULL, N'
AND te.C_FELJEGYZOID = @pFeljegyzoId', '')
SET @sql += IIF(@pDatumTol IS NOT NULL, N'
AND te.C_ESEMENYDATUMA >= @pDatumTol', '')
SET @sql += IIF(@pDatumIg IS NOT NULL, N'
AND te.C_ESEMENYDATUMA <= @pDatumIg', '')
SET @sql += N'
AND te.C_TIPUS = @pTipus'
EXEC sp_executesql @sql
,N'
@pOktNevKatTipus int
,@pFeladatEllatasiHelyId int
,@pOsztalyCsoportId int
,@pTanevId int
,@pFeljegyzoId int
,@pDatumTol datetime
,@pDatumIg datetime
,@pTipus int
'
,@pOktNevKatTipus = @pOktNevKatTipus
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTanevId = @pTanevId
,@pFeljegyzoId = @pFeljegyzoId
,@pDatumTol = @pDatumTol
,@pDatumIg = @pDatumIg
,@pTipus = @pTipus
END