﻿DROP PROCEDURE IF EXISTS dbo.uspOsztondijElutasitasReszletek
GO

CREATE PROCEDURE dbo.uspOsztondijElutasitasReszletek(
    @IntezmenyGUID uniqueidentifier,
    @TanevSorszam int,
    @TanuloIDP uniqueidentifier,
    @VizsgaltHonap int,
    @Ok int = 0
)
AS
SET NOCOUNT ON;
DECLARE @IntezmenyId int, 
        @TanevId int, 
        @TanuloId int, 
        @HonapKezdet datetime,
        @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_OSSZES 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;

SELECT @ZaroDatum = COALESCE(CONVERT(datetime, CAST(@VizsgaltHonap AS varchar(6)) + FORMAT(ia.C_JUTTATASHATARNAP, 'dd'), 112), t.C_UTOLSOTANITASINAP)
FROM T_INTEZMENYADATOK ia
INNER JOIN T_TANEV t on t.ID = ia.C_TANEVID
WHERE ia.C_INTEZMENYID = @IntezmenyId
AND ia.C_TANEVID = @TanevId

SET @HonapKezdet = CONVERT(datetime, CONCAT(@VizsgaltHonap, '01'), 112);

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
    THROW 60000, N'Tanuló nem található', 1;

IF ISNULL(@Ok, 0) = 0 SET @Ok = POWER(2, 16) - 1;

-- NemTanuloiJogviszonyaVan = 1, SzakkepzesiJuttatasokResource.NemTanuloiJogviszonyaVan
IF @Ok & 1 = 1
SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    orig.C_NAME AS [Miről],
    curr.C_NAME AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES orig ON orig.ID = odh.C_ORIGINALVALUE and orig.C_TANEVID = odh.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES curr ON curr.ID = odh.C_CURRENTVALUE  and curr.C_TANEVID = odh.C_TANEVID
LEFT JOIN T_FELHASZNALO_OSSZES t ON t.ID = odh.C_ENTITYID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_JOGVISZONYTIPUSID'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum

UNION ALL

SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    orig.C_NAME AS [Miről],
    curr.C_NAME AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = odh.C_ENTITYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES orig on orig.ID = odh.C_ORIGINALVALUE and orig.C_TANEVID = odh.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES curr on curr.ID = odh.C_CURRENTVALUE  and curr.C_TANEVID = odh.C_TANEVID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOCSOPORT'
AND odo.OszlopNev = 'C_JOGVISZONYTIPUSID'
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
ORDER BY [Dátum]



-- AVizsgaltHonapbanNemVoltTanuloiJogviszonya = 2, SzakkepzesiJuttatasokResource.AVizsgaltHonapbanNemVoltTanuloiJogviszonya
IF @Ok & 2 = 2
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' 
         WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' 
         WHEN odh.C_PROPERTYNAME IN ('C_BELEPESDATUM', 'C_KILEPESDATUM') THEN CONVERT(nvarchar(10), CONVERT(date, odh.C_ORIGINALVALUE, 126), 102) + '.'
         ELSE odh.C_ORIGINALVALUE
    END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T' THEN 'Igen' 
         WHEN odh.C_CURRENTVALUE = 'F' THEN 'Nem' 
         WHEN odh.C_PROPERTYNAME IN ('C_BELEPESDATUM', 'C_KILEPESDATUM') THEN CONVERT(nvarchar(10), CONVERT(date, odh.C_CURRENTVALUE, 126), 102) + '.'
         ELSE odh.C_CURRENTVALUE
    END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = odh.C_ENTITYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOCSOPORT'
AND odo.OszlopNev IN ('C_BELEPESDATUM', 'C_KILEPESDATUM', 'TOROLT')
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
ORDER BY [Dátum]



-- NemAMegjeloltEvfolyamraVanBesorolva = 4, SzakkepzesiJuttatasokResource.NemAMegjeloltEvfolyamraVanBesorolva
IF @Ok & 4 = 4
-- Az uniformitás kedvéért egy üres sor
SELECT TOP 0
    CAST(NULL AS NVARCHAR(100)) AS [Azonosító],
    CAST(NULL AS NVARCHAR(100)) AS [Tulajdonság],
    CAST(NULL AS NVARCHAR(100)) AS [Státusz],
    CAST(NULL AS NVARCHAR(100)) AS [Miről],
    CAST(NULL AS NVARCHAR(100)) AS [Mire],
    CAST(NULL AS NVARCHAR(100)) AS [Dátum],
    CAST(NULL AS NVARCHAR(100)) AS [Felhasználó]



-- MasodikVagyTobbesSzakmatSzerzo = 8, SzakkepzesiJuttatasokResource.MasodikVagyTobbesSzakmatSzerzo
IF @Ok & 8 = 8
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOTANUGYIADATOK'
AND odo.OszlopNev = 'C_ISMASODIKTOBBSZAKMA'
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
/*
UNION ALL

SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, 'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t ON t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_ISMASODIKTOBBSZAKMA'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
*/
ORDER BY [Dátum]


-- Evismetlo = 16, SzakkepzesiJuttatasokResource.Evismetlo
IF @Ok & 16 = 16
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOTANUGYIADATOK'
AND odo.OszlopNev = 'C_EVISMETLO'
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
/*
UNION ALL

SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, 'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t ON t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_EVISMETLO'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
*/
ORDER BY [Dátum]



--IgazolatlanMulasztasokSzama = 32, SzakkepzesiJuttatasokResource.IgazolatlanMulasztasokSzama
IF @Ok & 32 = 32
SELECT
    t.[Azonosító],
    t.[Tulajdonság],
    t.[Státusz],
    ISNULL(t.[Miről] + ' (Igazolatlanok:' + CAST(LAG([IgazolatlanokSzama], 1, '') OVER(ORDER BY t.C_ALTERATIONDATE, t.CREATED, t.OszlopNev) AS NVARCHAR(10)) + ')', '-') AS [Miről],
    ISNULL(t.[Mire] + ' (Igazolatlanok:' + CAST([IgazolatlanokSzama] AS NVARCHAR(10)) + ')', '-') AS [Mire],
    t.C_ALTERATIONDATE as [Dátum],
    t.[Felhasználó]
FROM (
    SELECT
        CONCAT(CONVERT(NVARCHAR(10), tto.C_DATUM, 102), '. (', CONVERT(nvarchar(5), tto.C_ORAKEZDETE, 108), ' - ' + CAST(tto.C_ORASZAM AS NVARCHAR(10)) + '. óra' , ')') AS [Azonosító],
        odo.Alias AS [Tulajdonság],
        CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
        CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
        CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
        odh.C_ALTERATIONDATE,
        SUM(
            CASE WHEN (odh.C_PROPERTYNAME = 'C_IGAZOLT' AND odh.C_CURRENTVALUE = 'F') THEN 1                                 -- Ha egy mulasztás NEM igazolttá válik, akkor NŐ az igazolatlanok száma
                 WHEN (odh.C_PROPERTYNAME = 'C_IGAZOLT' AND odh.C_ORIGINALVALUE = 'F' AND odh.C_CURRENTVALUE = 'T') THEN -1  -- Ha egy mulasztás igazolt lesz NEM igazoltból, akkor CSÖKKEN az igazolatlanok száma
                 WHEN (odh.C_PROPERTYNAME = 'TOROLT' AND odh.C_CURRENTVALUE = 'T' AND tm.C_IGAZOLT = 'F') THEN -1            -- Ha egy mulasztás TÖRÖLT lesz - úgy, hogy IGAZOLATLAN -, akkor CSÖKKEN az igazolatlanok száma
                 ELSE 0
            END 
        ) OVER(ORDER BY odh.C_ALTERATIONDATE, tm.CREATED, odo.OszlopNev) AS [IgazolatlanokSzama],
        ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó],
        tm.CREATED,
        odo.OszlopNev
    FROM T_OSZTONDIJHISTORY_OSSZES odh
    INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
    INNER JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.ID = odh.C_ENTITYID
    INNER JOIN T_TANITASIORA_OSSZES tto ON tto.ID = tm.C_TANITASIORAKID
    LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
    WHERE odh.C_TANEVID = @TanevId
    AND odo.TablaNev = 'T_TANULOMULASZTAS'
    AND odo.OszlopNev IN ('C_IGAZOLT', 'TOROLT')
    AND tm.C_ORATANULOIID = @TanuloId
    AND tm.C_TIPUS = 1500
    AND odh.C_ALTERATIONDATE <= @ZaroDatum
    AND tto.C_DATUM < @HonapKezdet
) t
ORDER BY t.C_ALTERATIONDATE, t.CREATED



-- DualisOktatas = 64, SzakkepzesiJuttatasokResource.DualisOktatas
IF @Ok & 64 = 64
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOTANUGYIADATOK'
AND odo.OszlopNev IN ('C_TANULOSZERZODESES', 'C_ISSZAKKEPZESIMUNKASZERZODESS')
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
/*
UNION ALL

SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, 'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t ON t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev IN ('C_TANULOSZERZODESES', 'C_ISSZAKKEPZESIMUNKASZERZODESS')
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
*/
ORDER BY [Dátum]



--AtlagMinimumAlatt = 128, SzakkepzesiJuttatasokResource.AtlagMinimumAlatt
IF @Ok & 128 = 128
SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    odh.C_ORIGINALVALUE AS [Miről],
    odh.C_CURRENTVALUE AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t ON t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev IN ('C_KEZIATLAG', 'C_SZAMITOTTATLAG')
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
ORDER BY [Dátum]



--TechnikaiOsztalyTagja = 256, SzakkepzesiJuttatasokResource.TechnikaiOsztalyTagja
IF @Ok & 256 = 256
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE  = 'T' THEN 'Igen' WHEN odh.C_CURRENTVALUE  = 'F' THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_OSZTALYCSOPORT'
AND odo.OszlopNev = 'C_ISTECHNIKAI'
AND ocs.C_FELADATKATEGORIAID = 7553
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum



-- VendegTanulo = 512, SzakkepzesiJuttatasokResource.VendegTanulo
IF @Ok & 512 = 512
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOTANUGYIADATOK'
AND odo.OszlopNev = 'C_VENDEG'
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
/*
UNION ALL

SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, 'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t on t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_VENDEG'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
*/
ORDER BY [Dátum]



-- JogviszonySzuneteltetese = 1024, SzakkepzesiJuttatasokResource.JogviszonySzuneteltetese
IF @Ok & 1024 = 1024
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOTANUGYIADATOK'
AND odo.OszlopNev = 'C_JOGVISZONYATSZUNETELTETO'
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
/*
UNION ALL

SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, 'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t ON t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_JOGVISZONYATSZUNETELTETO'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
*/
ORDER BY [Dátum]



-- KeresztfelevesOsztalyTagja = 2048, SzakkepzesiJuttatasokResource.KeresztfelevesOsztalyTagja
IF @Ok & 2048 = 2048
SELECT
    CONCAT(N'Jogviszony (', ocs.C_NEV, ')') AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE  = 'T' THEN 'Igen' WHEN odh.C_CURRENTVALUE  = 'F' THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_OSZTALYCSOPORT'
AND odo.OszlopNev = 'C_KERESZTFELEVES'
AND ocs.C_FELADATKATEGORIAID = 7553
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum



-- OsztondijbolKizarva = 4096, SzakkepzesiJuttatasokResource.OsztondijbolKizarva
IF @Ok & 4096 = 4096
SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE as [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t on t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_ISOSZTONDIJBOLKIZARVA'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
ORDER BY [Dátum]



-- MulasztasMiattKizart = 8192, SzakkepzesiJuttatasokResource.MulasztasMiattKizart
IF @Ok & 8192 = 8192
SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE as [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t on t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_ISMULASZTASMIATTKIZART'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
ORDER BY [Dátum]



-- NemSzakmajegyzekSzerintiKepzes = 16384, SzakkepzesiJuttatasokResource.NemSzakmajegyzekSzerintiKepzes
IF @Ok & 16384 = 16384
--T_TANULOTANUGYIADATOK: C_AGAZATUJSZKTTIPUSID, C_SZAKMATIPUSID, C_TANULOEVFOLYAMTIPUSID, C_ISBESZAMITASOS
SELECT
    'Jogviszony (' + ocs.C_NEV + ')' AS [Azonosító],
    odo.Alias +
        CASE WHEN odh.C_PROPERTYNAME = 'C_TANULOEVFOLYAMTIPUSID' AND evf.C_ISOSSZEVONT = 'T' THEN N' (Összevont)'
             WHEN odh.C_PROPERTYNAME = 'C_TANULOEVFOLYAMTIPUSID' AND evf.C_ISOSSZEVONT = 'F' THEN N' (Nem összevont)'
             ELSE ''
        END AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE 
        WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' 
        WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' 
        ELSE COALESCE(orig1.C_NAME, orig2.C_NAME, orig3.C_NAME, odh.C_ORIGINALVALUE) 
    END AS [Miről],
    CASE 
        WHEN odh.C_CURRENTVALUE = 'T' THEN 'Igen' 
        WHEN odh.C_CURRENTVALUE = 'F' THEN 'Nem' 
        ELSE COALESCE(curr1.C_NAME, curr2.C_NAME, curr3.C_NAME, odh.C_CURRENTVALUE) 
    END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES orig1 ON orig1.ID = TRY_CAST(odh.C_ORIGINALVALUE AS INT) AND orig1.C_TANEVID = odh.C_TANEVID AND orig1.TOROLT = 'F' AND orig1.C_TYPE = 'AgazatUjSzktTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES curr1 ON curr1.ID = TRY_CAST(odh.C_CURRENTVALUE AS INT)  AND curr1.C_TANEVID = odh.C_TANEVID AND curr1.TOROLT = 'F' AND curr1.C_TYPE = 'AgazatUjSzktTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES orig2 ON orig2.ID = TRY_CAST(odh.C_ORIGINALVALUE AS INT) AND orig2.C_TANEVID = odh.C_TANEVID AND orig2.TOROLT = 'F' AND orig2.C_TYPE = 'SzakmaTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES curr2 ON curr2.ID = TRY_CAST(odh.C_CURRENTVALUE AS INT)  AND curr2.C_TANEVID = odh.C_TANEVID AND curr2.TOROLT = 'F' AND curr2.C_TYPE = 'SzakmaTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES orig3 ON orig3.ID = TRY_CAST(odh.C_ORIGINALVALUE AS INT) AND orig3.C_TANEVID = odh.C_TANEVID AND orig3.TOROLT = 'F' AND orig3.C_TYPE = 'EvfolyamTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES curr3 ON curr3.ID = TRY_CAST(odh.C_CURRENTVALUE AS INT)  AND curr3.C_TANEVID = odh.C_TANEVID AND curr3.TOROLT = 'F' AND curr3.C_TYPE = 'EvfolyamTipus'
LEFT JOIN T_EVFOLYAMTIPUS evf ON evf.ID = tta.C_TANULOEVFOLYAMTIPUSID and evf.C_ALTANEVID = tta.C_TANEVID and evf.TOROLT = 'F'
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULOTANUGYIADATOK'
AND odo.OszlopNev IN ('C_AGAZATUJSZKTTIPUSID', 'C_SZAKMATIPUSID', 'C_TANULOEVFOLYAMTIPUSID', 'C_ISBESZAMITASOS')
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum

UNION ALL
--T_OSZTALYCSOPORT: C_EVFOLYAMTIPUSA
SELECT
    N'Osztály (' + ocs.C_NEV + ')' AS [Azonosító],
    odo.Alias +
        CASE WHEN odh.C_PROPERTYNAME = 'C_EVFOLYAMTIPUSA' AND evf.C_ISOSSZEVONT = 'T' THEN N' (Összevont)'
             WHEN odh.C_PROPERTYNAME = 'C_EVFOLYAMTIPUSA' AND evf.C_ISOSSZEVONT = 'F' THEN N' (Nem összevont)'
             ELSE ''
        END AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE 
        WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' 
        WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' 
        ELSE COALESCE(orig3.C_NAME, odh.C_ORIGINALVALUE) 
    END AS [Miről],
    CASE 
        WHEN odh.C_CURRENTVALUE = 'T' THEN 'Igen' 
        WHEN odh.C_CURRENTVALUE = 'F' THEN 'Nem' 
        ELSE COALESCE(curr3.C_NAME, odh.C_CURRENTVALUE) 
    END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = odh.C_ENTITYID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = odh.C_ENTITYID
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES orig3 ON orig3.ID = TRY_CAST(odh.C_ORIGINALVALUE AS INT) AND orig3.C_TANEVID = odh.C_TANEVID AND orig3.TOROLT = 'F' AND orig3.C_TYPE = 'EvfolyamTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES curr3 ON curr3.ID = TRY_CAST(odh.C_CURRENTVALUE AS INT)  AND curr3.C_TANEVID = odh.C_TANEVID AND curr3.TOROLT = 'F' AND curr3.C_TYPE = 'EvfolyamTipus'
LEFT JOIN T_EVFOLYAMTIPUS_OSSZES evf ON evf.ID = ocs.C_EVFOLYAMTIPUSA AND evf.C_ALTANEVID = ocs.C_TANEVID AND evf.TOROLT = 'F'
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_OSZTALYCSOPORT'
AND odo.OszlopNev = 'C_EVFOLYAMTIPUSA'
AND tcs.C_TANULOID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum

UNION ALL
--T_TANULO: C_ISBESZAMITASOS
SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE AS [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t ON t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_ISBESZAMITASOS'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
ORDER BY [Dátum]


-- NemIngyenesKepzesenResztvevo = 32768, SzakkepzesiJuttatasokResource.NemIngyenesKepzesenResztvevo
IF @Ok & 32768 = 32768
SELECT
    t.C_NYOMTATASINEV AS [Azonosító],
    odo.Alias AS [Tulajdonság],
    CHOOSE(odh.C_REASONID, N'Új', N'Törlés', N'Módosítás') AS [Státusz],
    CASE WHEN odh.C_ORIGINALVALUE = 'T' THEN 'Igen' WHEN odh.C_ORIGINALVALUE = 'F' THEN 'Nem' ELSE odh.C_ORIGINALVALUE END AS [Miről],
    CASE WHEN odh.C_CURRENTVALUE = 'T'  THEN 'Igen' WHEN odh.C_CURRENTVALUE = 'F'  THEN 'Nem' ELSE odh.C_CURRENTVALUE  END AS [Mire],
    odh.C_ALTERATIONDATE as [Dátum],
    ISNULL(f.C_NYOMTATASINEV, N'Kréta Rendszer') AS [Felhasználó]
FROM T_OSZTONDIJHISTORY_OSSZES odh
INNER JOIN dbo.fnOsztondijHistoryOszlopok() odo ON odo.TablaId = odh.C_TABLEID AND odo.OszlopNev = odh.C_PROPERTYNAME
LEFT JOIN T_FELHASZNALO_OSSZES t on t.ID = odh.C_ENTITYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = odh.C_FELHASZNALOID
WHERE odh.C_TANEVID = @TanevId
AND odo.TablaNev = 'T_TANULO'
AND odo.OszlopNev = 'C_ISINGYENESKEPZES'
AND odh.C_ENTITYID = @TanuloId
AND odh.C_ALTERATIONDATE <= @ZaroDatum
ORDER BY [Dátum]
GO