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

91 lines
4.2 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS dbo.uspOsztondijTanuloAdatok
GO
CREATE PROCEDURE dbo.uspOsztondijTanuloAdatok(
@IntezmenyGUID uniqueidentifier,
@TanevSorszam int,
@TanuloIDP uniqueidentifier = NULL,
@VizsgaltHonap int = NULL,
@JuttatasTipus int = 7888
)
AS
SET NOCOUNT ON;
DECLARE @IntezmenyId int,
@TanevId int,
@TanuloId int,
@ZaroDatum datetime;
SELECT @IntezmenyId = ID
FROM T_INTEZMENY
WHERE C_GUID = @IntezmenyGUID;
SELECT @TanevId = ID
FROM T_TANEV
WHERE C_INTEZMENYID = @IntezmenyId
AND C_SORSZAM = @TanevSorszam;
SELECT @TanuloId = f.ID
FROM T_FELHASZNALO f
INNER JOIN T_TANULO t on t.ID = f.ID
WHERE f.TOROLT = 'F'
AND t.TOROLT = 'F'
AND f.C_INTEZMENYID = @IntezmenyId
AND f.C_TANEVID = @TanevId
AND f.C_IDPEGYEDIAZONOSITO = @TanuloIDP;
IF @IntezmenyId IS NULL
THROW 60000, N'Intézmény nem található', 1;
IF @TanevId IS NULL
THROW 60000, N'Tanév nem található', 1;
IF @TanuloId IS NULL AND @TanuloIDP IS NOT NULL
THROW 60000, N'Tanuló nem található', 1;
SELECT
j.C_TANULOID AS TanuloId,
f.C_IDPEGYEDIAZONOSITO AS TanuloIDP,
f.C_NYOMTATASINEV AS TanuloNeve,
f.C_OKTATASIAZONOSITO AS OktatasiAzonosito,
f.C_SZULETESIDATUM AS SzuletesiIdo,
ocs.C_NEV AS Osztaly,
d.C_NAME AS [Evfolyam],
CASE WHEN j.C_ISJOGOSULT = 'T' THEN 'Igen' ELSE 'Nem' END AS [Jogosultsag],
j.C_ELUTASITASOKA AS [ElutasitasOkok],
STUFF(
CASE WHEN j.C_ELUTASITASOKA & 1 = 1 THEN N'|Nem tanulói jogviszonnyal rendelkezik' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 2 = 2 THEN N'|A vizsgált hónapban nem volt tanulói jogviszonya' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 4 = 4 THEN N'|' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 8 = 8 THEN N'|Második vagy többes szakmát szerző ' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 16 = 16 THEN N'|Évismétlő' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 32 = 32 THEN N'|Igazolatlan mulasztások száma meghaladja a megengedett maximálist' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 64 = 64 THEN N'|Duális képzésben vesz részt' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 128 = 128 THEN N'|Átlag minimum alatt' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 256 = 256 THEN N'|Technikai osztály tagja' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 512 = 512 THEN N'|Vendégtanuló' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 1024 = 1024 THEN N'|Jogviszony szünetelése' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 2048 = 2048 THEN N'|Keresztféléves osztály tagja' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 4096 = 4096 THEN N'|Ösztöndíjból kizárva' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 8192 = 8192 THEN N'|Véglegesen kizárt, mert elérte a maximális igazolatlan hiányzások számát' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 16384 = 16384 THEN N'|Nem Szakmajegyzék szerinti képzés van megadva' ELSE '' END +
CASE WHEN j.C_ELUTASITASOKA & 32768 = 32768 THEN N'|Nem állam által ingyenesen biztosított képzésben résztvevő' ELSE '' END
, 1, 1, '') AS [NemJogosultagOka],
j.C_OSSZEG AS [JuttatasOsszege],
j.C_GENERALTHONAP AS [VizsgaltHonap]
FROM T_JUTTATAS_OSSZES j
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = j.C_TANULOID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = j.C_TANULOID AND tcs.C_TANEVID = j.C_TANEVID AND tcs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.ID = ocs.C_EVFOLYAMTIPUSA AND d.C_TANEVID = ocs.C_TANEVID AND d.TOROLT = 'F' AND d.C_TYPE = 'EvfolyamTipus'
WHERE j.C_INTEZMENYID = @IntezmenyId
AND j.C_TANEVID = @TanevId
AND j.C_TANULOID = CASE WHEN @TanuloId > 0 THEN @TanuloId ELSE j.C_TANULOID END
AND j.C_GENERALTHONAP = CASE WHEN @VizsgaltHonap > 0 THEN @VizsgaltHonap ELSE j.C_GENERALTHONAP END
AND j.TOROLT = 'F'
AND j.C_JUTTATASTIPUSID = CASE WHEN @JuttatasTipus > 0 THEN @JuttatasTipus ELSE j.C_JUTTATASTIPUSID END
--AND j.C_ISAKTIV = 'T' -- ??? így nincs eredmény
--AND j.C_ELUTASITASOKA > 0 -- ??? csak azok kellenek, ahol van elutasítás?
ORDER BY j.C_GENERALTHONAP
GO