kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20180514150133_KRETA_5673/sp_FollowUpAlkalmazottVegzettseg.sql
2024-03-13 00:33:46 +01:00

81 lines
2.6 KiB
Transact-SQL

IF OBJECT_ID('sp_FollowUpAlkalmazottVegzettseg') IS NOT NULL BEGIN
DROP PROCEDURE sp_FollowUpAlkalmazottVegzettseg
END;
GO
CREATE PROCEDURE sp_FollowUpAlkalmazottVegzettseg
@intezmenyId int,
@aktTanevId int,
@kovetkezoTanevId int,
@alkalmazottId int
AS
BEGIN
DECLARE @kovTanevAlkalmazottId int
SELECT @kovTanevAlkalmazottId=ID FROM T_FELHASZNALO_OSSZES WHERE ELOZOTANEVIREKORDID=@alkalmazottId AND TOROLT='F' AND C_TANEVID=@kovetkezoTanevId
DECLARE @vegzettsegId int
DECLARE vegzettsegCur CURSOR FOR
SELECT ID FROM T_VEGZETTSEG_OSSZES WHERE C_TANARID=@alkalmazottId AND C_TANEVID=@aktTanevId AND C_INTEZMENYID=@intezmenyId
OPEN vegzettsegCur
FETCH NEXT FROM vegzettsegCur INTO @vegzettsegId
WHILE @@FETCH_STATUS=0
BEGIN
IF NOT EXISTS(SELECT TOP 1 1 FROM T_VEGZETTSEG_OSSZES WHERE C_TANEVID=@kovetkezoTanevId AND C_TANARID=@kovTanevAlkalmazottId AND ELOZOTANEVIREKORDID=@vegzettsegId AND TOROLT='F')
BEGIN
INSERT INTO T_VEGZETTSEG_OSSZES (
C_EGYEB
,C_VEGZETTSEGTIPUSID
,C_TANARID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,NNID
,ELOZOTANEVIREKORDID
) SELECT
t.C_EGYEB AS C_EGYEB
,t.C_VEGZETTSEGTIPUSID AS C_VEGZETTSEGTIPUSID
,fh.ID AS C_TANARID
,@intezmenyId AS C_INTEZMENYID
,@kovetkezoTanevId AS C_TANEVID
,t.TOROLT AS TOROLT
,0 AS SERIAL
,GETDATE() AS LASTCHANGED
,GETDATE() AS CREATED
,t.MODIFIER AS MODIFIER
,t.MODIFIER AS CREATOR
,t.NNID AS NNID
,t.ID AS ELOZOTANEVIREKORDID
FROM T_VEGZETTSEG_OSSZES t
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ELOZOTANEVIREKORDID=t.C_TANARID AND fh.TOROLT='F' AND fh.C_TANEVID=@kovetkezoTanevId AND fh.C_INTEZMENYID=@intezmenyId
WHERE t.C_TANEVID = @aktTanevId AND t.C_INTEZMENYID = @intezmenyId AND t.TOROLT='F' AND t.C_TANARID=@alkalmazottId AND t.ID=@vegzettsegId
END
ELSE
BEGIN
UPDATE T SET
C_EGYEB=old.C_EGYEB
,C_VEGZETTSEGTIPUSID=old.C_VEGZETTSEGTIPUSID
,C_TANARID=@kovTanevAlkalmazottId
,C_INTEZMENYID=@intezmenyId
,C_TANEVID=@kovetkezoTanevId
,TOROLT=old.TOROLT
,SERIAL=t.SERIAL+1
,LASTCHANGED=GETDATE()
,MODIFIER=old.MODIFIER
FROM T_VEGZETTSEG_OSSZES t
INNER JOIN T_VEGZETTSEG_OSSZES old ON t.ELOZOTANEVIREKORDID=old.ID AND old.C_TANEVID=@aktTanevId AND old.C_INTEZMENYID=@intezmenyId AND old.ID=@vegzettsegId
WHERE t.TOROLT='F' AND t.C_INTEZMENYID=@intezmenyId AND t.C_TANEVID=@kovetkezoTanevId AND t.C_TANARID=@kovTanevAlkalmazottId
END
FETCH NEXT FROM vegzettsegCur INTO @vegzettsegId
END
CLOSE vegzettsegCur
DEALLOCATE vegzettsegCur
END
GO