kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20200429154825_KRETA2_4067/uspGetOrarendExcelExportData.sql
2024-03-13 00:33:46 +01:00

82 lines
3 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[uspGetOrarendExcelExportData]
GO
CREATE PROCEDURE [dbo].[uspGetOrarendExcelExportData]
@pTanevId int
,@pErvenyessegKezdete date
,@pErvenyessegVege date
,@pIsOraErvenyessegiIdovel bit
,@pIsNapiredExport bit
,@pIsIdoszakonKivuliElemekMegjelenitese bit
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
SET @sql = N'
SELECT '
IF @pIsOraErvenyessegiIdovel = 1 BEGIN
SET @sql += N'
oo.C_ORAERVENYESSEGKEZDETE AS ''Óra érvényességének kezdete'',
oo.C_ORAERVENYESSEGVEGE AS ''Óra érvényességének vége'', '
END
SET @sql += N'
hr.C_NAME As ''Hetirend'',
hn.C_NAME AS ''Nap'', '
IF @pIsNapiredExport = 0 BEGIN
SET @sql += N' oo.C_ORASZAM AS ''Óra (adott napon belül)'', '
END
ELSE BEGIN
SET @sql += N'
oo.C_ORAKEZDETE AS ''Foglalkozás kezdete'',
oo.C_ORAVEGE AS ''Foglalkozás vége'', '
END
SET @sql += N'
IIF(o.ID IS NOT NULL,ocs.C_NEV,'''') AS ''Osztály'',
IIF(cs.ID IS NOT NULL,ocs.C_NEV,'''') AS ''Csoport'',
tgy.C_NEV as ''Tantárgy'',
f.C_NYOMTATASINEV as ''Tanár'',
t.C_NEV AS ''Helyiség'' '
SET @sql += N'
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN T_TEREM_OSSZES t ON t.ID = oo.C_TEREMID AND t.TOROLT = ''F''
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = oo.C_TANTARGYID AND tgy.TOROLT = ''F''
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = oo.C_TANARID AND f.TOROLT = ''F''
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hr ON hr.ID = oo.C_HETIREND AND hr.TOROLT = ''F'' AND hr.C_TANEVID = @pTanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hn ON hn.ID = oo.C_HETNAPJA AND hn.TOROLT = ''F'' AND hn.C_TANEVID = @pTanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F''
LEFT JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = ''F''
LEFT JOIN T_CSOPORT_OSSZES cs ON ocs.ID = cs.ID AND cs.TOROLT = ''F'''
IF @pIsIdoszakonKivuliElemekMegjelenitese = 0 BEGIN
SET @sql += N'
WHERE oo.TOROLT = ''F''
AND oo.C_ORAERVENYESSEGKEZDETE >= @pErvenyessegKezdete
AND (oo.C_ORAERVENYESSEGVEGE <= @pErvenyessegVege OR oo.C_ORAERVENYESSEGVEGE IS NULL)
AND oo.C_TANEVID = @pTanevId '
END
ELSE BEGIN
SET @sql += N'
WHERE oo.TOROLT = ''F''
AND oo.C_TANEVID = @pTanevId
AND (oo.C_ORAERVENYESSEGVEGE > @pErvenyessegKezdete AND oo.C_ORAERVENYESSEGKEZDETE <= @pErvenyessegVege)'
END
IF @pIsNapiredExport = 0 BEGIN
SET @sql += N' AND oo.C_CSENGETESIRENDID IS NOT NULL '
END
ELSE BEGIN
SET @sql += N' AND oo.C_CSENGETESIRENDID IS NULL '
END
EXEC sp_executesql @sql, N'
@pTanevId int
,@pErvenyessegKezdete date
,@pErvenyessegVege date'
,@pTanevId = @pTanevId
,@pErvenyessegKezdete = @pErvenyessegKezdete
,@pErvenyessegVege = @pErvenyessegVege
END
GO