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

91 lines
No EOL
4 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspTanuloKeresesForSzervezet
GO
CREATE PROCEDURE [dbo].[uspTanuloKeresesForSzervezet]
@pDatum DATETIME = NULL
,@pIntezmenyId INT
,@pTanevId INT
,@pTanuloNeve NVARCHAR(255) = NULL
,@pSzuletesiIdoKezdet DATETIME = NULL
,@pSzuletesiIdoVeg DATETIME = NULL
,@pSzuletesiHely NVARCHAR(50) = NULL
,@pOktatasiAzonosito NVARCHAR(20) = NULL
,@pOsztalyCsoportId INT = NULL
,@pAnyjaNeve NVARCHAR(64) = NULL
,@pSzervezetId INT = NULL
,@pSzervezetNev NVARCHAR(250) = NULL
,@pSzervezetAzonosito NVARCHAR(250) = NULL
,@pSzervezetekHalmaza INT
AS BEGIN
SET NOCOUNT ON
DECLARE @sql nvarchar(max);
SET @sql = N'
SELECT
fh.ID AS TanuloId
,fh.C_NYOMTATASINEV AS TanuloNeve
,fh.C_SZULETESIHELY AS SzuletesiHely
,fh.C_SZULETESIDATUM AS SzuletesiIdo
,tcs.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,sz.C_NEV AS SzervezetNev
,sz.C_AZONOSITO AS SzervezetAzonosito
,IIF(fh.C_NEVSORREND = ''T'',
fh.C_UTONEV + '' '' + fh.C_VEZETEKNEV,
fh.C_VEZETEKNEV + '' '' + fh.C_UTONEV) AS TanuloNeveElotagNelkul
,fh.c_anyjaneve AS AnyjaNeve
,fh.C_OKTATASIAZONOSITO AS OktatasiAzonosito
,STUFF((SELECT '','' + ocs2.C_NEV
FROM T_OSZTALYCSOPORT_OSSZES ocs2
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_OSZTALYCSOPORTID=ocs2.ID AND tcs.C_TANULOID = tcs2.C_TANULOID AND tcs2.TOROLT = ''F''
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs2.ID AND cs.C_SZERVEZETID = tta.C_SZERVEZETID AND cs.TOROLT = ''F''
WHERE ocs2.TOROLT = ''F''' + IIF(@pOsztalyCsoportId IS NOT NULL , N' AND ocs2.ID = @pOsztalyCsoportId ', '') +
N' FOR XML PATH(''''), TYPE).value(''.'', ''varchar(max)''),1,1,'''') as Osztaly
FROM T_TANULOTANUGYIADATOK_OSSZES tta
INNER JOIN (
T_SZERVEZET_OSSZES sz
INNER JOIN (
SELECT ID FROM dbo.fnGetLathatoSzervezetek(@pIntezmenyId, @pTanevId, @pSzervezetId, @pSzervezetekHalmaza)
) AS lathato ON lathato.ID = sz.ID
) ON sz.ID = tta.C_SZERVEZETID AND sz.C_TANEVID = tta.C_TANEVID AND sz.TOROLT = ''F''
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tta.C_TANULOCSOPORTID = tcs.ID AND tcs.C_TANEVID = tta.C_TANEVID AND tcs.TOROLT = ''F''
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = tcs.C_TANULOID AND fh.C_TANEVID = tcs.C_TANEVID AND fh.TOROLT = ''F''
WHERE tta.C_TANEVID = @pTanevId AND tta.TOROLT = ''F'''
+ IIF(@pTanuloNeve <> '', ' AND fh.C_NYOMTATASINEV LIKE ''%'' + @pTanuloNeve + ''%'' ', '') +
+ IIF(@pSzuletesiIdoKezdet IS NOT NULL, ' AND fh.C_SZULETESIDATUM >= @pSzuletesiIdoKezdet ', '') +
+ IIF(@pSzuletesiIdoVeg IS NOT NULL, ' AND fh.C_SZULETESIDATUM <= @pSzuletesiIdoVeg ', '') +
+ IIF(@pSzervezetNev <> '', ' AND sz.C_NEV LIKE ''%'' + @pSzervezetNev + ''%'' ', '') +
+ IIF(@pSzervezetAzonosito <> '', ' AND sz.C_AZONOSITO LIKE ''%'' + @pSzervezetAzonosito + ''%'' ', '') +
+ IIF(@pAnyjaNeve <> '', ' AND fh.C_ANYJANEVE LIKE ''%'' + @pAnyjaNeve + ''%'' ', '') +
+ IIF(@pSzuletesiHely <> '', ' AND fh.C_SZULETESIHELY LIKE ''%'' + @pSzuletesiHely + ''%'' ', '') +
+ IIF(@pOktatasiAzonosito <> '',' AND fh.C_OKTATASIAZONOSITO LIKE ''%'' + @pOktatasiAzonosito + ''%'' ', '')
EXEC sp_executesql @sql, N'
@pTanevId INT
,@pTanuloNeve NVARCHAR(255) = NULL
,@pSzuletesiIdoKezdet DATETIME = NULL
,@pSzuletesiIdoVeg DATETIME = NULL
,@pSzuletesiHely NVARCHAR(50) = NULL
,@pOktatasiAzonosito NVARCHAR(20) = NULL
,@pOsztalyCsoportId INT = NULL
,@pAnyjaNeve NVARCHAR(64) = NULL
,@pSzervezetId INT = NULL
,@pSzervezetNev NVARCHAR(250) = NULL
,@pSzervezetAzonosito NVARCHAR(250) = NULL
,@pSzervezetekHalmaza INT
,@pIntezmenyId INT'
,@pTanevId = @pTanevId
,@pTanuloNeve = @pTanuloNeve
,@pSzuletesiIdoKezdet = @pSzuletesiIdoKezdet
,@pSzuletesiIdoVeg = @pSzuletesiIdoVeg
,@pSzuletesiHely = @pSzuletesiHely
,@pOktatasiAzonosito = @pOktatasiAzonosito
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pAnyjaNeve = @pAnyjaNeve
,@pSzervezetId = @pSzervezetId
,@pSzervezetNev = @pSzervezetNev
,@pSzervezetAzonosito = @pSzervezetAzonosito
,@pSzervezetekHalmaza = @pSzervezetekHalmaza
,@pIntezmenyId = @pIntezmenyId
END
GO