﻿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

