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

100 lines
3.3 KiB
Transact-SQL

/* ===================================== */
/* Description: <Dinamikus sql az eszközök (T_ESZKOZ) lekérdezésére és/vagy exportjára> */
/* ===================================== */
DROP PROCEDURE IF EXISTS uspGetEszkoz
GO
CREATE PROCEDURE [dbo].[uspGetEszkoz]
@pTanevId int
,@pTeremId int = NULL
,@pFelelosId int = NULL
,@pKategoriaId int = NULL
,@pMinDarabszam int = NULL
,@pMaxDarabszam int = NULL
,@pNev nvarchar(255) = NULL
/* SimpleResult, Excel export */
,@SimpleResult bit = 0 -- ha true, akkor a visszaadott oszlopok szukebb listat adnak vissza, figyelve a join-ra és a where-re!
,@IsExport bit = 0
AS BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max) = ''
/* SELECT part */
SET @sql +=
+ N'
SELECT
e.ID AS ID
,e.C_NEV AS Nev
,e.C_TIPUS AS TipusId
,e.C_DARABSZAM AS Darabszam
' + IIF(@SimpleResult = 1, N'', N'
,e.C_BERELT AS IsBerelt
,e.C_BESZERZESDATUM AS BeszerzesDatum
,e.C_BESZERZESIAR AS BeszerzesiAr
,e.C_FOKONYVISZAM AS FokonyviSzam
,e.C_GYARISZAM AS GyariSzam
,e.C_GYARTASIEV AS GyartasiEv
,e.C_HALOZATIKAPCSOLAT AS IsHalozatiKapcsolat
,e.C_HORDOZHATO AS IsHordozhato
,e.C_INTERNETKAPCSOLAT AS IsInternetKapcsolat
,e.C_KATEGORIA AS KategoriaId
,e.C_LELTARISZAM AS LeltariSzam
,e.C_MEGJEGYZES AS Megjegyzes
,e.C_MULTIMEDIAS AS IsMultimedias
,e.C_NEMMUKODIK AS IsNemMukodik
,e.C_PEDAGOGUSHOZZAFERHET AS IsPedagogusHozzaferhet
,e.C_SZALLITO AS Szallito
,e.C_TANULOHOZZAFERHET AS IsTanuloHozzaferhet
,e.C_TARTOZEK AS IsTartozek
,e.C_TARTOZEKHIVATKOZAS AS TartozekHivatkozas
,t.ID AS TeremId
,t.C_NEV AS TeremNev
,f.ID AS FelelosId
,f.C_NYOMTATASINEV AS FelelosNev
,e.C_CELJA AS CeljaId
,e.C_JELLEGE AS JellegeId
,e.C_MENNYISEGIEGYSEG AS MennyisegiEgysegId
,e.C_VONALKOD AS Vonalkod
,f.C_SZULETESIDATUM AS FelelosSzuletesiIdo
,e.C_IMPORTALT AS Importalt') + N'
FROM T_ESZKOZ_OSSZES e
INNER JOIN T_TEREM_OSSZES t ON t.ID = e.C_TEREMID AND t.TOROLT = ''F'' AND t.C_TANEVID = e.C_TANEVID
' + IIF(@SimpleResult = 1, N'', N'
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = e.C_FELELOSID AND f.TOROLT = ''F'' AND f.C_TANEVID = e.C_TANEVID
')
/* WHERE part */
SET @sql += N'
WHERE
e.TOROLT = ''F'' AND e.C_TANEVID = @pTanevId
' + IIF(@pTeremId IS NULL, N'', N' AND e.C_TEREMID = @pTeremId') + N'
' + IIF(@pFelelosId IS NULL, N'', N' AND e.C_FELELOSID = @pFelelosId') + '
' + IIF(@pKategoriaId IS NULL, N'', N' AND e.C_KATEGORIA = @pKategoriaId') + '
' + IIF(@pMinDarabszam IS NULL, N'', N' AND @pMinDarabszam <= e.C_DARABSZAM') + '
' + IIF(@pMaxDarabszam IS NULL, N'', N' AND e.C_DARABSZAM <= @pMaxDarabszam') + '
' + IIF(@pNev IS NULL OR @pNev = '''', N'', N' AND e.C_NEV LIKE Concat(''%'',@pNev,''%'')') + ''
EXEC sp_executesql @sql, N'
@pTanevId int
,@pTeremId int
,@pFelelosId int
,@pKategoriaId int
,@pMinDarabszam int
,@pMaxDarabszam int
,@pNev nvarchar(255)
,@SimpleResult bit
,@IsExport bit'
,@pTanevId = @pTanevId
,@pTeremId = @pTeremId
,@pFelelosId = @pFelelosId
,@pKategoriaId = @pKategoriaId
,@pMinDarabszam = @pMinDarabszam
,@pMaxDarabszam = @pMaxDarabszam
,@pNev = @pNev
,@SimpleResult = @SimpleResult
,@IsExport = @IsExport
END
GO