86 lines
No EOL
3.9 KiB
Transact-SQL
86 lines
No EOL
3.9 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS sp_FollowUpFeladatellatasiHely
|
|
GO
|
|
|
|
CREATE PROCEDURE sp_FollowUpFeladatellatasiHely
|
|
@intezmenyId int,
|
|
@aktTanevId int,
|
|
@kovetkezoTanevId int,
|
|
@feladatellatasiHelyId int
|
|
AS
|
|
BEGIN
|
|
|
|
DECLARE
|
|
@kovetkezoFeladatellatasiHelyId int
|
|
,@kovOktatasiNevelesiFeladat int
|
|
,@kovMukodesiHelyId int
|
|
|
|
SELECT @kovOktatasiNevelesiFeladat=okt.ID FROM T_OKTATASINEVELESIFELADAT_OSSZES okt
|
|
INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON fh.C_OKTATASINEVELESIFELADATTIPUS=okt.ELOZOTANEVIREKORDID AND fh.ID=@feladatellatasiHelyId AND fh.TOROLT='F'
|
|
WHERE C_ALTANEVID=@kovetkezoTanevId AND okt.TOROLT='F'
|
|
|
|
SELECT @kovMukodesiHelyId=mh.ID FROM T_FELADATELLATASIHELY_OSSZES fh
|
|
INNER JOIN T_MUKODESIHELY_OSSZES mh ON mh.ELOZOTANEVIREKORDID=fh.C_MUKODESIHELYID AND mh.TOROLT='F'
|
|
WHERE fh.ID=@feladatellatasiHelyId AND fh.TOROLT='F'
|
|
|
|
IF EXISTS(SELECT 1 FROM T_FELADATELLATASIHELY_OSSZES WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND C_MUKODESIHELYID=@kovMukodesiHelyId AND C_OKTATASINEVELESIFELADATTIPUS=@kovOktatasiNevelesiFeladat AND ISNULL(ELOZOTANEVIREKORDID,0)<>@feladatellatasiHelyId)
|
|
BEGIN
|
|
UPDATE T_FELADATELLATASIHELY_OSSZES SET ELOZOTANEVIREKORDID = NULL WHERE ELOZOTANEVIREKORDID=@feladatellatasiHelyId
|
|
UPDATE T_FELADATELLATASIHELY_OSSZES SET ELOZOTANEVIREKORDID = @feladatellatasiHelyId WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND C_MUKODESIHELYID=@kovMukodesiHelyId AND C_OKTATASINEVELESIFELADATTIPUS=@kovOktatasiNevelesiFeladat AND ISNULL(ELOZOTANEVIREKORDID,0)<>@feladatellatasiHelyId
|
|
END
|
|
|
|
SELECT @kovetkezoFeladatellatasiHelyId = ID FROM T_FELADATELLATASIHELY_OSSZES WHERE ELOZOTANEVIREKORDID = @feladatellatasiHelyId
|
|
IF (SELECT TOROLT FROM T_FELADATELLATASIHELY_OSSZES WHERE ID = @feladatellatasiHelyId) = 'T' OR (SELECT TOROLT FROM T_FELADATELLATASIHELY_OSSZES WHERE ID = @kovetkezoFeladatellatasiHelyId) = 'T' BEGIN
|
|
RETURN
|
|
END
|
|
|
|
IF (@kovetkezoFeladatellatasiHelyId IS NULL)
|
|
BEGIN
|
|
INSERT INTO T_FELADATELLATASIHELY_OSSZES (
|
|
C_OKTATASINEVELESIFELADATTIPUS
|
|
,C_ENGEDELYEZETTOSSZLETSZAM
|
|
,C_FELADATELLATASIHELYKOD
|
|
,C_ENGEDELYEZETTOSZTALY
|
|
,C_MUKODESIHELYID
|
|
,C_INTEZMENYID
|
|
,C_TANEVID
|
|
,SERIAL
|
|
,LASTCHANGED
|
|
,CREATED
|
|
,MODIFIER
|
|
,CREATOR
|
|
,ELOZOTANEVIREKORDID
|
|
) SELECT
|
|
okt.ID
|
|
,t.C_ENGEDELYEZETTOSSZLETSZAM AS C_ENGEDELYEZETTOSSZLETSZAM
|
|
,t.C_FELADATELLATASIHELYKOD AS C_FELADATELLATASIHELYKOD
|
|
,t.C_ENGEDELYEZETTOSZTALY AS C_ENGEDELYEZETTOSZTALY
|
|
,m.ID
|
|
,t.C_INTEZMENYID AS C_INTEZMENYID
|
|
,@kovetkezoTanevId AS C_TANEVID
|
|
,0 AS SERIAL
|
|
,t.LASTCHANGED AS LASTCHANGED
|
|
,t.LASTCHANGED AS CREATED
|
|
,t.MODIFIER AS MODIFIER
|
|
,t.MODIFIER AS CREATOR
|
|
,t.ID AS ELOZOTANEVIREKORDID
|
|
FROM T_FELADATELLATASIHELY_OSSZES t
|
|
INNER JOIN T_MUKODESIHELY_OSSZES m ON m.ELOZOTANEVIREKORDID=t.C_MUKODESIHELYID AND m.TOROLT='F'
|
|
INNER JOIN T_OKTATASINEVELESIFELADAT_OSSZES okt ON okt.ELOZOTANEVIREKORDID=t.C_OKTATASINEVELESIFELADATTIPUS AND okt.TOROLT='F' AND okt.C_ALTANEVID=@kovetkezoTanevId
|
|
WHERE t.TOROLT='F' AND t.ID=@feladatellatasiHelyId
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE kovetkezo SET
|
|
kovetkezo.C_OKTATASINEVELESIFELADATTIPUS = okt.ID
|
|
,kovetkezo.C_ENGEDELYEZETTOSSZLETSZAM = aktiv.C_ENGEDELYEZETTOSSZLETSZAM
|
|
,kovetkezo.C_ENGEDELYEZETTOSZTALY = aktiv.C_ENGEDELYEZETTOSZTALY
|
|
,kovetkezo.C_FELADATELLATASIHELYKOD = aktiv.C_FELADATELLATASIHELYKOD
|
|
,kovetkezo.MODIFIER = aktiv.MODIFIER
|
|
,kovetkezo.LASTCHANGED = aktiv.LASTCHANGED
|
|
,kovetkezo.SERIAL += 1
|
|
FROM T_FELADATELLATASIHELY_OSSZES kovetkezo
|
|
INNER JOIN T_FELADATELLATASIHELY_OSSZES aktiv ON aktiv.ID = @feladatellatasiHelyId AND aktiv.ID=kovetkezo.ELOZOTANEVIREKORDID AND aktiv.ID = @feladatellatasiHelyId
|
|
INNER JOIN T_OKTATASINEVELESIFELADAT_OSSZES okt ON okt.ELOZOTANEVIREKORDID=aktiv.C_OKTATASINEVELESIFELADATTIPUS AND okt.TOROLT='F' AND okt.C_ALTANEVID=@kovetkezoTanevId
|
|
END
|
|
END
|
|
GO |