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

124 lines
4.7 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetHazifeladatCsatolmanyData
GO
CREATE PROCEDURE uspGetHazifeladatCsatolmanyData
@pTanevId int
,@pOraDatuma datetime = NULL
,@pOsztalyCsoportId int = NULL
,@pTanarId int = NULL
,@pTantargyId int = NULL
,@pFajlNeve nvarchar(max) = NULL
,@pFajlMeretTol int = NULL
,@pFajlMeretIg int = NULL
,@pFeltoltesDatumaTol datetime = NULL
,@pFeltoltesDatumaIg datetime = NULL
,@pHataridoTol datetime = NULL
,@pHataridoIg datetime = NULL
,@pFeladatKategoriaId int = NULL
,@pFeladatEllatasiHelyId int = NULL
,@pIsOnlineOra bit = NULL
AS BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
SET @sql = N'
SELECT
cs.ID AS ID
,ISNULL(tOra.C_DATUM, hf.C_DATUM) AS OraDatuma
,hf.C_ORASZAM AS OraSorszama
,ocs.C_NEV AS OsztalyCsoport
,ocs.ID AS OsztalyCsoportId
,f.C_NYOMTATASINEV AS Tanar
,f.ID AS TanarId
,ta.C_NEV AS Tantargy
,ta.ID AS TantargyId
,cs.C_FILENEV AS FajlNev
,cs.C_FILESIZEBYTE AS FajlMeret
,cs.C_FELTOLTESDATUM AS FeltoltesDatum
,hf.C_BEADASHATARIDO AS HaziFeladatHataridoDatuma
,cs.TOROLT AS Torolt
,torlo.C_NYOMTATASINEV AS TorloUser
,hfcs.DELETED AS TorlesDatum
,hf.ID AS HazifeladatId
,ISNULL(totOnlineOra.C_BOOLERTEK, ottOnlineOra.C_BOOLDEFAULT) AS IsOnlineOra
FROM T_DKT_FILE_OSSZES cs
INNER JOIN T_DKT_FELADATFILE_OSSZES hfcs ON hfcs.C_FILEID = cs.ID
INNER JOIN T_DKT_FELADAT_OSSZES hf ON hf.ID = hfcs.C_FELADATID AND hf.C_FELADATTIPUSID = 0
INNER JOIN T_TANTARGY_OSSZES ta ON ta.ID = hf.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = hf.C_OSZTALYCSOPORTID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = hf.C_ROGZITOALKALMAZOTTID
LEFT JOIN (
T_TANITASIORA_OSSZES tOra
INNER JOIN T_ORATULAJDONSAGTIPUS_OSSZES ottOnlineOra ON ottOnlineOra.TOROLT = ''F'' AND ottOnlineOra.C_ALTANEVID = tOra.C_TANEVID AND ottOnlineOra.ID = 8615
LEFT JOIN T_TANITASIORATULAJDONSAG_OSSZES totOnlineOra ON totOnlineOra.C_ORATULAJDONSAGID = ottOnlineOra.ID AND totOnlineOra.C_TANEVID = ottOnlineOra.C_ALTANEVID AND totOnlineOra.TOROLT = ''F'' AND totOnlineOra.C_TANITASIORAID = tOra.ID
) ON tOra.ID = hf.C_TANITASIORAID
LEFT JOIN T_FELHASZNALO_OSSZES torlo ON torlo.ID = hfcs.DELETER
WHERE cs.C_TANEVID = @pTanevId
'
SET @sql += IIF(@pOraDatuma IS NOT NULL, N'
AND ISNULL(tOra.C_DATUM, hf.C_ROGZITESIDOPONT) = @pOraDatuma', '')
SET @sql += IIF(@pTantargyId IS NOT NULL, N'
AND hf.C_TANTARGYID = @pTantargyId', '')
SET @sql += IIF(@pOsztalyCsoportId IS NOT NULL, N'
AND hf.C_OSZTALYCSOPORTID = @pOsztalyCsoportId', '')
SET @sql += IIF(@pFeladatKategoriaId IS NULL, N'', N'
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId')
SET @sql += IIF(@pFeladatEllatasiHelyId IS NULL, N'', N'
AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId')
SET @sql += IIF(@pTanarId IS NOT NULL, N'
AND hf.C_ROGZITOALKALMAZOTTID = @pTanarId', '')
SET @sql += IIF(@pFajlNeve IS NOT NULL, N'
AND cs.C_FILENEV LIKE ''%'' + @pFajlNeve + ''%''', '')
SET @sql += IIF(@pFajlMeretTol IS NOT NULL, N'
AND cs.C_FILESIZEBYTE >= @pFajlMeretTol', '')
SET @sql += IIF(@pFajlMeretIg IS NOT NULL, N'
AND cs.C_FILESIZEBYTE <= @pFajlMeretIg', '')
SET @sql += IIF(@pFeltoltesDatumaTol IS NOT NULL, N'
AND cs.C_FELTOLTESDATUM >= @pFeltoltesDatumaTol', '')
SET @sql += IIF(@pFeltoltesDatumaIg IS NOT NULL, N'
AND CONVERT(date, cs.C_FELTOLTESDATUM) <= @pFeltoltesDatumaIg', '')
SET @sql += IIF(@pHataridoTol IS NOT NULL, N'
AND hf.C_BEADASHATARIDO >= @pHataridoTol', '')
SET @sql += IIF(@pHataridoIg IS NOT NULL, N'
AND hf.C_BEADASHATARIDO <= @pHataridoIg', '')
SET @sql += IIF(@pIsOnlineOra IS NOT NULL, N'
AND ISNULL(totOnlineOra.C_BOOLERTEK, ottOnlineOra.C_BOOLDEFAULT) = ' + IIF(@pIsOnlineOra = 1, '''T''', '''F'''), '')
EXEC sp_executesql @sql
,N'
@pTanevId int
,@pOraDatuma datetime
,@pOsztalyCsoportId int
,@pTanarId int
,@pTantargyId int
,@pFajlNeve nvarchar(max)
,@pFajlMeretTol int
,@pFajlMeretIg int
,@pFeltoltesDatumaTol datetime
,@pFeltoltesDatumaIg datetime
,@pHataridoTol datetime
,@pHataridoIg datetime
,@pFeladatKategoriaId int
,@pFeladatEllatasiHelyId int
'
,@pTanevId = @pTanevId
,@pOraDatuma = @pOraDatuma
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTanarId = @pTanarId
,@pTantargyId = @pTantargyId
,@pFajlNeve = @pFajlNeve
,@pFajlMeretTol = @pFajlMeretTol
,@pFajlMeretIg = @pFajlMeretig
,@pFeltoltesDatumaTol = @pFeltoltesDatumaTol
,@pFeltoltesDatumaIg = @pFeltoltesDatumaIg
,@pHataridoTol = @pHataridoTol
,@pHataridoIg = @pHataridoIg
,@pFeladatKategoriaId = @pFeladatKategoriaId
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
END
GO