kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20180831130758_OM_1120/insertGondviseloBelepes.sql
2024-03-13 00:33:46 +01:00

109 lines
3.6 KiB
Transact-SQL

DECLARE intezmenytanevekCursor CURSOR LOCAL FOR
SELECT i.ID, t.ID
FROM T_INTEZMENY i
INNER JOIN T_TANEV t ON i.ID = t.C_INTEZMENYID
WHERE t.TOROLT = 'F'
AND i.TOROLT = 'F'
AND t.C_AKTIV = 'T'
DECLARE
@intezmenyId int
,@tanevId int
OPEN intezmenytanevekCursor
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
WHILE @@FETCH_STATUS = 0 BEGIN
PRINT 'INTÉZMÉNY ID: ' + CAST(@intezmenyId AS NVARCHAR(10)) + ', TANÉV ID: ' + CAST(@tanevId AS NVARCHAR(10))
INSERT INTO T_FELHASZNALOBELEPES (
C_KOTELEZOVALTOZTATNI
,C_MEGHIUSULTBELEPESEK
,C_UTOLSOBELEPES
,C_JELSZO
,C_JELSZOVALTOZTATASIDEJE
,C_SO
,C_BEJELENTKEZESINEV
,C_NEPTUNNAPLOJELSZO
,C_GUID
,C_ISCSOKKENTETTGONDVISELO
,C_FELHASZNALOID
,C_GONDVISELOID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
,NNID
) SELECT
'F' AS C_KOTELEZOVALTOZTATNI
,NULL AS C_MEGHIUSULTBELEPESEK
,NULL AS C_UTOLSOBELEPES
,dbo.fnConvertBase64(HASHBYTES('SHA1', CONVERT(VARBINARY(MAX), CONVERT(NVARCHAR(MAX), Guid+RND)))) AS C_JELSZO
,NULL AS C_JELSZOVALTOZTATASIDEJE
,RND AS C_SO
,LoginName AS C_BEJELENTKEZESINEV
,NULL AS C_NEPTUNNAPLOJELSZO
,ISNULL(otherUserGuid, NEWID()) AS C_GUID
,'F' AS C_ISCSOKKENTETTGONDVISELO
,FelhasznaloId AS C_FELHASZNALOID
,GondviseloId AS C_GONDVISELOID
,@intezmenyId AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS TOROLT
,1 AS SERIAL
,GETDATE() AS LASTCHANGED
,GETDATE() AS CREATED
,NULL AS MODIFIER
,NULL AS CREATOR
,NULL AS ELOZOTANEVIREKORDID
,NULL AS NNID
FROM (
SELECT
fh.ID AS FelhasznaloId
,g.ID AS GondviseloId
,fh.C_OKTATASIAZONOSITO +'G'+ RIGHT('00' + CAST(ROW_NUMBER() OVER(PARTITION BY fh.C_OKTATASIAZONOSITO ORDER BY fh.ID) + ISNULL(mx, 0) AS nvarchar(6)),2) AS LoginName
,mx
,CAST((SELECT * FROM dbo.getRand) AS nvarchar(64)) AS RND
,LEFT(NEWID(), 8) Guid
,fbGuid.C_GUID otherUserGuid
FROM T_GONDVISELO_OSSZES g
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = g.C_TANULOID
AND fh.TOROLT = 'F'
AND fh.C_INTEZMENYID = @intezmenyId
AND fh.C_TANEVID = @tanevid
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_GONDVISELOID = g.ID
AND fb.TOROLT = 'F'
AND fb.C_GONDVISELOID IS NOT NULL
AND fb.C_INTEZMENYID = @intezmenyId
AND fb.C_TANEVID = @tanevid
OUTER APPLY (
SELECT
MAX(CAST(ISNULL(IIF(ISNUMERIC(RIGHT(fb.C_BEJELENTKEZESINEV, 2)) = 1, RIGHT(fb.C_BEJELENTKEZESINEV, 2), '00'), '00') AS int)) AS mx
FROM T_FELHASZNALOBELEPES_OSSZES fb
WHERE (fb.C_BEJELENTKEZESINEV LIKE fh.C_OKTATASIAZONOSITO + '__' OR fb.C_BEJELENTKEZESINEV LIKE fh.C_OKTATASIAZONOSITO + 'G__')
AND fb.C_INTEZMENYID = @intezmenyId
AND fb.C_TANEVID = @tanevid
AND fb.TOROLT = 'F'
) x
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fbGuid ON fbGuid.C_GONDVISELOID = g.ID
AND fbGuid.TOROLT = 'F'
AND fbGuid.C_GONDVISELOID IS NOT NULL
WHERE g.C_INTEZMENYID = @intezmenyId
AND g.C_TANEVID = @tanevId
AND g.TOROLT = 'F'
AND fb.ID IS NULL
AND (NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fh.ID = fb.C_FELHASZNALOID AND fb.C_GONDVISELOID is null)
OR NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fh.ID = fb.C_FELHASZNALOID AND fb.C_GONDVISELOID = g.ID))
)y
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
END
CLOSE intezmenytanevekCursor
DEALLOCATE intezmenytanevekCursor
GO