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