170 lines
No EOL
7.9 KiB
Transact-SQL
170 lines
No EOL
7.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 #OsztalyCsoportTanuloi(ID int)
|
|
|
|
INSERT INTO #OsztalyCsoportTanuloi (ID)
|
|
SELECT
|
|
C_TANULOID
|
|
FROM T_TANULOCSOPORT_OSSZES
|
|
WHERE C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
|
AND C_BELEPESDATUM <= @pDatum
|
|
AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM > @pDatum)
|
|
AND 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.C_NEV 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 #OsztalyCsoportTanuloi ocst ON ocst.ID = T_FELHASZNALO_OSSZES.ID ', '') + '
|
|
LEFT JOIN
|
|
(SELECT
|
|
tanulo.ID TanuloId
|
|
,tta.C_TANKOTELEZETT
|
|
,tcso.C_OSZTALYCSOPORTID OsztalyId
|
|
,ocs.C_NEV
|
|
,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 ', '') +
|
|
+ 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 |