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

86 lines
4.1 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetSzakkepzesiMunkaszerzodesek
GO
CREATE PROCEDURE uspGetSzakkepzesiMunkaszerzodesek
@pTanevId int
,@pIntezmenyId int
,@pHonap nvarchar(255) = NULL
,@pNevSearch nvarchar(255) = NULL
,@pAnyjaNeve nvarchar(255) = NULL
,@pSzuletesiHely nvarchar(255) = NULL
,@pSzuletesiIdoTol datetime = NULL
,@pSzuletesiIdoIg datetime = NULL
,@pOktatasiAzonosito nvarchar(255) = NULL
,@pSzervezetIdListString nvarchar(255) = NULL
,@pDualisKepzohelyNev nvarchar(255) = NULL
,@pDualisKepzohelyAdoszama nvarchar(255) = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max) = ''
SET @sql = N'
SELECT DISTINCT
dk.ID
,dk.C_NYOMTATASINEV AS TanuloNev
,dk.C_ANYJANEVE AS AnyaNev
,dk.C_SZULETESIHELY AS SzuletesiHelye
,dk.C_SZULETESIDATUM AS SzuletesiDatum
,dk.C_OKTATASIAZONOSITO AS OktatasiAzonosito
,munkaszerzodes.C_BEVKEZD AS BevallasKezdete
,munkaugyiadatok.C_DUALISKEPZOHELYNEVE AS DualisKepzohelyNev
,munkaugyiadatok.C_DUALISKEPZOHELYADOSZAMA AS DualisKepzohelyAdoszama
,munkaszerzodes.Id AS MunkaSzerzodesId
FROM T_MUNKASZERZODES_OSSZES munkaszerzodes
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID = munkaszerzodes.C_TANULOTANUGYIADATOKID AND tta.TOROLT = ''F''
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID AND tcs.TOROLT = ''F''
INNER JOIN T_FELHASZNALO_OSSZES dk ON dk.ID = tcs.C_TANULOID AND dk.TOROLT = ''F''
INNER JOIN T_ALKALMAZOTT_OSSZES alkalmazott ON alkalmazott.ID = munkaszerzodes.C_ALKALMAZOTTID AND alkalmazott.TOROLT = ''F''
INNER JOIN T_MUNKAUGYIADATOK_OSSZES munkaugyiadatok ON munkaugyiadatok.C_ALKALMAZOTTID = munkaszerzodes.C_ALKALMAZOTTID AND munkaugyiadatok.TOROLT = ''F''
' + IIF(@pSzervezetIdListString IS NULL, N'LEFT', N'INNER') + N' JOIN T_SZERVEZET_OSSZES sz ON sz.ID = munkaugyiadatok.C_SZERVEZETID AND sz.TOROLT = ''F''
WHERE munkaszerzodes.C_TANEVID = @pTanevId
AND munkaszerzodes.C_INTEZMENYID = @pIntezmenyId
AND munkaszerzodes.TOROLT = ''F'''
SET @sql += N'
' + IIF(@pHonap IS NULL, N'', N' AND munkaszerzodes.C_BEVKEZD >= CONVERT(DATETIME, @pHonap) AND munkaszerzodes.C_BEVKEZD < DATEADD(MONTH, 1, CONVERT(DATETIME, @pHonap))') +N'
' + IIF(@pNevSearch IS NULL, N'', N' AND dk.C_NYOMTATASINEV LIKE ''%'' + @pNevSearch + ''%'' ') + N'
' + IIF(@pAnyjaNeve IS NULL, N'', N' AND dk.C_ANYJANEVE LIKE ''%'' + @pAnyjaNeve + ''%'' ') + N'
' + IIF(@pSzuletesiHely IS NULL, N'', N' AND dk.C_SZULETESIHELY LIKE ''%'' + @pSzuletesiHely + ''%'' ') + N'
' + IIF(@pSzuletesiIdoTol IS NULL, N'', N' AND dk.C_SZULETESIDATUM >= @pSzuletesiIdoTol ') + N'
' + IIF(@pSzuletesiIdoIg IS NULL, N'', N' AND dk.C_SZULETESIDATUM <= @pSzuletesiIdoIg ') + N'
' + IIF(@pOktatasiAzonosito IS NULL, N'', N' AND dk.C_OKTATASIAZONOSITO LIKE ''%'' + @pOktatasiAzonosito + ''%'' ') + N'
' + IIF(@pSzervezetIdListString IS NULL, N'', N' AND sz.ID IN (' + @pSzervezetIdListString + ')') + N'
' + IIF(@pDualisKepzohelyNev IS NULL, N'', N' AND IIF(sz.C_NEV IS NULL, munkaugyiadatok.C_DUALISKEPZOHELYNEVE, sz.C_NEV) LIKE ''%'' + @pDualisKepzohelyNev + ''%'' ') + N'
' + IIF(@pDualisKepzohelyAdoszama IS NULL, N'', N' AND IIF(sz.C_AZONOSITO IS NULL, munkaugyiadatok.C_DUALISKEPZOHELYADOSZAMA, sz.C_AZONOSITO) LIKE ''%'' + @pDualisKepzohelyAdoszama + ''%'' ')
EXEC sp_executesql @sql, N'
@pTanevId int
,@pIntezmenyId int
,@pHonap nvarchar(255)
,@pNevSearch nvarchar(255)
,@pAnyjaNeve nvarchar(255)
,@pSzuletesiHely nvarchar(255)
,@pSzuletesiIdoTol datetime
,@pSzuletesiIdoIg datetime
,@pOktatasiAzonosito nvarchar(255)
,@pDualisKepzohelyNev nvarchar(255)
,@pDualisKepzohelyAdoszama nvarchar(255)'
,@pTanevId = @pTanevId
,@pIntezmenyId = @pIntezmenyId
,@pHonap = @pHonap
,@pNevSearch = @pNevSearch
,@pAnyjaNeve = @pAnyjaNeve
,@pSzuletesiHely = @pSzuletesiHely
,@pSzuletesiIdoTol = @pSzuletesiIdoTol
,@pSzuletesiIdoIg = @pSzuletesiIdoIg
,@pOktatasiAzonosito = @pOktatasiAzonosito
,@pDualisKepzohelyNev = @pDualisKepzohelyNev
,@pDualisKepzohelyAdoszama = @pDualisKepzohelyAdoszama
END
GO