197 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS uspTanuloKereses
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[uspTanuloKereses]
 | 
						|
   @pTorolt char(1)
 | 
						|
  ,@pDatum datetime = NULL
 | 
						|
  ,@pTanuloBelepesNelkul bit = 0
 | 
						|
  ,@pNincsAllampolgarsag int = NULL
 | 
						|
  ,@pNincsAnyanyelv int = NULL
 | 
						|
  ,@pFelvetelEve int = NULL
 | 
						|
  ,@pTanevId int
 | 
						|
  ,@pFeladatKategoriaId int = NULL
 | 
						|
  ,@pTanuloNeve nvarchar(255) = NULL
 | 
						|
  ,@pNeme int = NULL
 | 
						|
  ,@pSzuletesiIdoKezdet datetime = NULL
 | 
						|
  ,@pSzuletesiIdoVeg datetime = NULL
 | 
						|
  ,@pSzuletesiHely nvarchar(50) = NULL
 | 
						|
  ,@pOktatasiAzonosito nvarchar(20) = NULL
 | 
						|
  ,@pOsztalyCsoportId int = NULL
 | 
						|
  ,@pVegzosEvfolyam char(1) = NULL
 | 
						|
  ,@pSNI char(1) = NULL
 | 
						|
  ,@pBTM char(1) = NULL
 | 
						|
  ,@pFeladatellatasiHelyId int = NULL
 | 
						|
  ,@pHatranyosHelyzetId int = NULL
 | 
						|
  ,@pEvfolyamTipusaId int = NULL
 | 
						|
  ,@pOsztalybaSoroltTantervNelkul bit = NULL
 | 
						|
  ,@pAktiv bit = NULL
 | 
						|
  ,@pMuveszetiAgId int = NULL
 | 
						|
AS BEGIN
 | 
						|
SET NOCOUNT ON
 | 
						|
  DECLARE @sql nvarchar(max);
 | 
						|
 | 
						|
IF (@pOsztalyCsoportId IS NOT NULL) BEGIN
 | 
						|
 | 
						|
  CREATE TABLE #TanugyiAdatok(
 | 
						|
     OsztalyId int
 | 
						|
    ,TantervNev nvarchar(255)
 | 
						|
    ,Osztaly nvarchar(255)
 | 
						|
    ,C_TANKOTELEZETT char(1)
 | 
						|
    ,C_MUVESZETIAGID int
 | 
						|
    ,TanuloId int PRIMARY KEY CLUSTERED
 | 
						|
    ,C_VEGZOSEVFOLYAM char(1)
 | 
						|
    ,C_FELADATKATEGORIAID int 
 | 
						|
  )
 | 
						|
    
 | 
						|
  INSERT INTO #TanugyiAdatok(
 | 
						|
     OsztalyId
 | 
						|
    ,TantervNev
 | 
						|
    ,Osztaly
 | 
						|
    ,C_TANKOTELEZETT
 | 
						|
    ,C_MUVESZETIAGID
 | 
						|
    ,TanuloId 
 | 
						|
    ,C_VEGZOSEVFOLYAM
 | 
						|
    ,C_FELADATKATEGORIAID
 | 
						|
  )
 | 
						|
  SELECT
 | 
						|
     ocs.ID
 | 
						|
    ,tr.C_NEV
 | 
						|
    ,ISNULL(ocs.C_NEV,(SELECT OsztalyNev FROM dbo.fnGetTanuloOsztalyString(tta.TanuloId,@pDatum,ISNULL(ocs.C_FELADATKATEGORIAID,ocso.C_FELADATKATEGORIAID),@pAktiv)))
 | 
						|
    ,tta.C_TANKOTELEZETT
 | 
						|
    ,ocs.C_MUVESZETIAGID
 | 
						|
    ,tta.TanuloId
 | 
						|
    ,ocs.C_VEGZOSEVFOLYAM
 | 
						|
    ,ISNULL(ocs.C_FELADATKATEGORIAID,ocso.C_FELADATKATEGORIAID)
 | 
						|
  FROM fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@pOsztalyCsoportId ,@pDatum) tta
 | 
						|
    LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID AND tcs.TOROLT='F'
 | 
						|
    LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT='F'
 | 
						|
    LEFT JOIN T_TANTERV_OSSZES tr ON tr.ID = tta.C_TANTERVID AND tr.TOROLT='F'
 | 
						|
    LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocso ON ocso.ID = @pOsztalyCsoportId AND ocso.TOROLT='F'
 | 
						|
 | 
						|
END
 | 
						|
 | 
						|
SET @sql = N'
 | 
						|
SELECT
 | 
						|
   NEWID() AS ID
 | 
						|
  ,T_FELHASZNALO_OSSZES.ID AS TanuloId
 | 
						|
  ,tanugyiAdatok.OsztalyId AS OsztalyCsoportId
 | 
						|
  ,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS TanuloNeve
 | 
						|
  ,IIF(T_FELHASZNALO_OSSZES.C_NEVSORREND = ''T'',
 | 
						|
    T_FELHASZNALO_OSSZES.C_UTONEV + '' '' + T_FELHASZNALO_OSSZES.C_VEZETEKNEV,
 | 
						|
    T_FELHASZNALO_OSSZES.C_VEZETEKNEV + '' '' + T_FELHASZNALO_OSSZES.C_UTONEV) AS TanuloNeveElotagNelkul
 | 
						|
  ,T_FELHASZNALO_OSSZES.c_anyjaneve AS AnyjaNeve
 | 
						|
  ,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO AS OktatasiAzonosito
 | 
						|
  ,ISNULL(tanugyiAdatok.TantervNev, tanterv.C_NEV) AS Tanterv
 | 
						|
  ,tanugyiAdatok.Osztaly AS Osztaly
 | 
						|
  ,T_FELHASZNALO_OSSZES.C_SZULETESIHELY AS SzuletesiHely
 | 
						|
  ,T_FELHASZNALO_OSSZES.C_SZULETESIDATUM AS SzuletesiIdo
 | 
						|
  ,ISNULL(tanugyiAdatok.C_TANKOTELEZETT, T_TANULO_OSSZES.C_TANKOTELEZETT) AS Tankotelezett
 | 
						|
  ,tanugyiAdatok.C_MUVESZETIAGID as MuveszetiAgId
 | 
						|
FROM T_FELHASZNALO_OSSZES' 
 | 
						|
+ IIF(@pOsztalyCsoportId IS NOT NULL, '
 | 
						|
  INNER JOIN #TanugyiAdatok tanugyiAdatok ON tanugyiAdatok.TanuloId = T_FELHASZNALO_OSSZES.ID ', '
 | 
						|
  LEFT JOIN
 | 
						|
    (SELECT 
 | 
						|
       tanulo.ID TanuloId
 | 
						|
      ,tta.C_TANKOTELEZETT
 | 
						|
      ,tcso.C_OSZTALYCSOPORTID OsztalyId
 | 
						|
      ,ocs.C_NEV Osztaly
 | 
						|
      ,ocs.C_MUVESZETIAGID
 | 
						|
      ,tanterv.C_NEV TantervNev
 | 
						|
      ,ocs.C_VEGZOSEVFOLYAM
 | 
						|
      ,ocs.C_FELADATELLATASIHELYID
 | 
						|
      ,ocs.C_FELADATKATEGORIAID
 | 
						|
      ,ocs.C_EVFOLYAMTIPUSA
 | 
						|
    FROM T_TANULO_OSSZES tanulo
 | 
						|
      INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tanulo.ID 
 | 
						|
        AND tcso.TOROLT=''F'' 
 | 
						|
        AND tcso.C_BELEPESDATUM <= @pDatum  
 | 
						|
        AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM > @pDatum )
 | 
						|
      INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcso.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F''
 | 
						|
      INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcso.ID AND tta.TOROLT=''F''
 | 
						|
      INNER JOIN T_TANTERV_OSSZES tanterv on tanterv.ID = tta.C_TANTERVID AND tanterv.TOROLT = ''F''
 | 
						|
    WHERE tanulo.C_ALTANEVID =  @pTanevId
 | 
						|
    ) as tanugyiAdatok ON tanugyiAdatok.TanuloId = T_FELHASZNALO_OSSZES.ID ') + '
 | 
						|
  INNER JOIN T_TANULO_OSSZES ON T_FELHASZNALO_OSSZES.ID=T_TANULO_OSSZES.ID
 | 
						|
  INNER JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_TANULO_OSSZES.C_FELVETELTANEVEID
 | 
						|
  INNER JOIN T_TANTERV_OSSZES tanterv on tanterv.ID = T_TANULO_OSSZES.C_TANTERVID AND tanterv.TOROLT = ''F'' '
 | 
						|
 | 
						|
SET @sql += N' 
 | 
						|
WHERE T_FELHASZNALO_OSSZES.TOROLT= @pTorolt
 | 
						|
  AND T_TANULO_OSSZES.TOROLT= @pTorolt
 | 
						|
  AND tanterv.TOROLT=''F''
 | 
						|
  AND T_FELHASZNALO_OSSZES.C_TANEVID =  @pTanevId '
 | 
						|
  + IIF(@pTanuloNeve IS NOT NULL AND @pTanuloNeve <> '', ' AND T_FELHASZNALO_OSSZES.C_NYOMTATASINEV LIKE ''%'' + @pTanuloNeve + ''%'' ', '') + 
 | 
						|
  + IIF(@pNeme IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_NEME = @pNeme ', '') + 
 | 
						|
  + IIF(@pSzuletesiIdoKezdet IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_SZULETESIDATUM >= @pSzuletesiIdoKezdet ', '') + 
 | 
						|
  + IIF(@pSzuletesiIdoVeg IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_SZULETESIDATUM <= @pSzuletesiIdoVeg ', '') + 
 | 
						|
  + IIF(@pSzuletesiHely IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_SZULETESIHELY LIKE ''%'' + @pSzuletesiHely + ''%'' ', '') + 
 | 
						|
  + IIF(@pOktatasiAzonosito IS NOT NULL AND @pOktatasiAzonosito <> '',' AND T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO LIKE ''%'' + @pOktatasiAzonosito + ''%'' ', '') + 
 | 
						|
  + IIF(@pVegzosEvfolyam IS NOT NULL AND @pVegzosEvfolyam <> '', ' AND tanugyiAdatok.C_VEGZOSEVFOLYAM = @pVegzosEvfolyam ', '') + 
 | 
						|
  + IIF(@pSNI IS NOT NULL AND @pSNI <> '', ' AND T_TANULO_OSSZES.C_SAJATOSNEVELESU = @pSNI ', '') + 
 | 
						|
  + IIF(@pBTM IS NOT NULL AND @pBTM <> '', ' AND T_TANULO_OSSZES.C_BTMPROBLEMAS = @pBTM ', '') + 
 | 
						|
  + IIF(@pFeladatellatasiHelyId IS NOT NULL, ' AND tanugyiAdatok.C_FELADATELLATASIHELYID = @pFeladatellatasiHelyId ', '') + 
 | 
						|
  + IIF(@pHatranyosHelyzetId IS NOT NULL, ' AND T_TANULO_OSSZES.C_HATRANYOSHELYZETU = @pHatranyosHelyzetId ', '') + 
 | 
						|
  + IIF(@pEvfolyamTipusaId IS NOT NULL, ' AND tanugyiAdatok.C_EVFOLYAMTIPUSA = @pEvfolyamTipusaId ', '') + 
 | 
						|
  + IIF(@pOsztalybaSoroltTantervNelkul IS NOT NULL AND @pOsztalybaSoroltTantervNelkul = 1, '  AND T_TANULO_OSSZES.C_TANTERVID IS NULL AND tanugyiAdatok.OsztalyId IS NOT NULL ', '') + 
 | 
						|
  + IIF(@pAktiv = 1, '  AND tanugyiAdatok.OsztalyId IS NOT NULL ', '') + 
 | 
						|
  + IIF(@pFeladatKategoriaId IS NOT NULL, ' AND tanugyiAdatok.C_FELADATKATEGORIAID = @pFeladatKategoriaId ', '') + 
 | 
						|
  + IIF(@pMuveszetiAgId IS NOT NULL, ' AND tanugyiAdatok.C_MUVESZETIAGID = @pMuveszetiAgId ', '') + 
 | 
						|
  + IIF(@pNincsAllampolgarsag IS NOT NULL, ' AND T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA = @pNincsAllampolgarsag ', '') + 
 | 
						|
  + IIF(@pNincsAnyanyelv IS NOT NULL, ' AND (T_FELHASZNALO_OSSZES.C_ANYANYELVE = @pNincsAnyanyelv OR T_FELHASZNALO_OSSZES.C_ANYANYELVE IS NULL) ', '') + 
 | 
						|
  + IIF(@pTanuloBelepesNelkul = 1, ' AND NOT EXISTS(SELECT C_FELHASZNALOID FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fb.C_FELHASZNALOID = T_FELHASZNALO_OSSZES.ID AND fb.TOROLT = ''F'' AND fb.C_GONDVISELOID IS NULL) ', '') + 
 | 
						|
  + IIF(@pFelvetelEve IS NOT NULL, ' AND T_TANEV_OSSZES.ID = @pFelvetelEve ', '') + 
 | 
						|
  ' AND T_TANULO_OSSZES.C_ALTANEVID =  @pTanevId '
 | 
						|
 | 
						|
EXEC sp_executesql @sql, N'
 | 
						|
     @pTorolt char(1)
 | 
						|
    ,@pDatum datetime = NULL
 | 
						|
    ,@pTanuloBelepesNelkul bit = 0
 | 
						|
    ,@pNincsAllampolgarsag int = NULL
 | 
						|
    ,@pNincsAnyanyelv int = NULL
 | 
						|
    ,@pFelvetelEve int = NULL
 | 
						|
    ,@pTanevId int
 | 
						|
    ,@pFeladatKategoriaId int = NULL
 | 
						|
    ,@pTanuloNeve nvarchar(255) = NULL
 | 
						|
    ,@pNeme int = NULL
 | 
						|
    ,@pSzuletesiIdoKezdet datetime = NULL
 | 
						|
    ,@pSzuletesiIdoVeg datetime = NULL
 | 
						|
    ,@pSzuletesiHely nvarchar(50) = NULL
 | 
						|
    ,@pOktatasiAzonosito nvarchar(20) = NULL
 | 
						|
    ,@pOsztalyCsoportId int = NULL
 | 
						|
    ,@pVegzosEvfolyam char(1) = NULL
 | 
						|
    ,@pSNI char(1) = NULL
 | 
						|
    ,@pBTM char(1) = NULL
 | 
						|
    ,@pFeladatellatasiHelyId int = NULL
 | 
						|
    ,@pHatranyosHelyzetId int = NULL
 | 
						|
    ,@pEvfolyamTipusaId int = NULL
 | 
						|
    ,@pOsztalybaSoroltTantervNelkul bit = NULL
 | 
						|
    ,@pAktiv bit = NULL
 | 
						|
    ,@pMuveszetiAgId int = NULL '
 | 
						|
    ,@pTorolt = @pTorolt
 | 
						|
    ,@pDatum = @pDatum
 | 
						|
    ,@pTanuloBelepesNelkul = @pTanuloBelepesNelkul
 | 
						|
    ,@pNincsAllampolgarsag = @pNincsAllampolgarsag
 | 
						|
    ,@pNincsAnyanyelv = @pNincsAnyanyelv
 | 
						|
    ,@pFelvetelEve = @pFelvetelEve
 | 
						|
    ,@pTanevId = @pTanevId
 | 
						|
    ,@pFeladatKategoriaId = @pFeladatKategoriaId
 | 
						|
    ,@pTanuloNeve = @pTanuloNeve
 | 
						|
    ,@pNeme = @pNeme
 | 
						|
    ,@pSzuletesiIdoKezdet = @pSzuletesiIdoKezdet
 | 
						|
    ,@pSzuletesiIdoVeg = @pSzuletesiIdoVeg
 | 
						|
    ,@pSzuletesiHely = @pSzuletesiHely
 | 
						|
    ,@pOktatasiAzonosito = @pOktatasiAzonosito
 | 
						|
    ,@pOsztalyCsoportId  = @pOsztalyCsoportId
 | 
						|
    ,@pVegzosEvfolyam = @pVegzosEvfolyam
 | 
						|
    ,@pSNI = @pSNI
 | 
						|
    ,@pBTM = @pBTM
 | 
						|
    ,@pFeladatellatasiHelyId = @pFeladatellatasiHelyId
 | 
						|
    ,@pHatranyosHelyzetId = @pHatranyosHelyzetId
 | 
						|
    ,@pEvfolyamTipusaId = @pEvfolyamTipusaId
 | 
						|
    ,@pOsztalybaSoroltTantervNelkul = @pOsztalybaSoroltTantervNelkul
 | 
						|
    ,@pAktiv = @pAktiv
 | 
						|
    ,@pMuveszetiAgId = @pMuveszetiAgId
 | 
						|
END
 | 
						|
GO
 |