kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190826150646_DB_910_fix/uspTanuloKereses.sql
2024-03-13 00:33:46 +01:00

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