109 lines
3.6 KiB
Transact-SQL
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
|