Files
2024-03-13 00:33:46 +01:00

76 lines
3.2 KiB
Transact-SQL

DECLARE intezmenytanevekCursor CURSOR LOCAL FOR
SELECT
ia.C_INTEZMENYID
,ia.C_TANEVID
FROM T_INTEZMENYADATOK ia
JOIN T_TANEV t ON t.ID = ia.C_TANEVID AND t.TOROLT = 'F'
JOIN T_INTEZMENY i ON i.ID = ia.C_INTEZMENYID AND i.TOROLT = 'F'
WHERE ia.TOROLT = 'F' AND t.C_NEV = '2020/2021'
DECLARE @intezmenyId int, @tanevId int
DECLARE @optionListAlap nVARCHAR(MAX)
DECLARE @optionList nVARCHAR(MAX)
DROP TABLE IF EXISTS #tmpOptions
CREATE TABLE #tmpOptions (options nvarchar(MAX))
DROP TABLE IF EXISTS #tmpAlapOptions
CREATE TABLE #tmpAlapOptions (options nvarchar(MAX))
DROP TABLE IF EXISTS #SelectedOptions
CREATE TABLE #SelectedOptions (SelectedID INT ,IsAlapErtek bit)
OPEN intezmenytanevekCursor
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
WHILE @@FETCH_STATUS = 0
BEGIN
SET @optionListAlap = NULL
SET @optionList = NULL
DELETE FROM #tmpOptions
TRUNCATE TABLE #tmpOptions
DELETE FROM #tmpAlapOptions
TRUNCATE TABLE #tmpAlapOptions
DELETE FROM #SelectedOptions
TRUNCATE TABLE #SelectedOptions
INSERT INTO #SelectedOptions(SelectedID, IsAlapErtek)
SELECT JSON_VALUE(value,'$.Value'), 0
FROM OpenJson((SELECT [value] FROM OpenJson((SELECT C_ERTEK FROM T_RENDSZERBEALLITAS WHERE C_TANEVID = @tanevID AND C_BEALLITASTIPUS = 5441)) WHERE [key] = 'Options'))
WHERE JSON_VALUE(value,'$.Selected') = 'true'
INSERT INTO #SelectedOptions(SelectedID, IsAlapErtek)
SELECT JSON_VALUE(value,'$.Value'), 1
FROM OpenJson((SELECT [value] FROM OpenJson((SELECT C_ALAPERTEK FROM T_RENDSZERBEALLITAS WHERE C_TANEVID = @tanevID AND C_BEALLITASTIPUS = 5441)) WHERE [key] = 'Options'))
WHERE JSON_VALUE(value,'$.Selected') = 'true'
INSERT INTO #tmpOptions
SELECT '{"Selected":'+IIF(so.SelectedID IS NULL ,'false','true')+',"Text":"' + ISNULL(d.C_NAME,'') + '","Value":"' + CAST(ISNULL(d.ID,'') as nvarchar(10)) + '"}'
from T_DICTIONARYITEMBASE d
LEFT JOIN #SelectedOptions so ON so.SelectedID = d.ID AND IsAlapErtek = 0
where d.C_TYPE = 'MunkakorTipus' and d.C_INTEZMENYID = @intezmenyID and d.C_TANEVID = @tanevID and d.TOROLT = 'F' order by d.C_VALUE
SELECT @optionList = COALESCE(@optionList + ', ', '') + options FROM #tmpOptions
INSERT INTO #tmpAlapOptions
SELECT '{"Selected":'+IIF(so.SelectedID IS NULL ,'false','true')+',"Text":"' + ISNULL(d.C_NAME,'') + '","Value":"' + CAST(ISNULL(ID,'') as nvarchar(10)) + '"}'
from T_DICTIONARYITEMBASE d
LEFT JOIN #SelectedOptions so ON so.SelectedID = d.ID AND IsAlapErtek = 1
where d.C_TYPE = 'MunkakorTipus' and d.C_INTEZMENYID = @intezmenyID and d.C_TANEVID = @tanevID and d.TOROLT = 'F' order by d.C_VALUE
SELECT @optionListAlap = COALESCE(@optionListAlap + ', ', '') + options FROM #tmpAlapOptions
UPDATE T_RENDSZERBEALLITAS SET
C_ALAPERTEK = '{"Id":"Alkalmazottak_lathatjak_a_diakok_adatait","Options":[' + ISNULL(@optionListAlap, '') + ']}'
,C_ERTEK = '{"Id":"Alkalmazottak_lathatjak_a_diakok_adatait","Options":[' + ISNULL(@optionList, '') + ']}'
WHERE C_BEALLITASTIPUS = 5441 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
END
CLOSE intezmenytanevekCursor
DEALLOCATE intezmenytanevekCursor