Files
kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190619154120_DB_787/uspFollowUpOratervTargy.sql
2024-03-13 00:33:46 +01:00

81 lines
2.8 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspFollowUpOratervTargy
GO
CREATE PROCEDURE uspFollowUpOratervTargy
@intezmenyId int,
@aktTanevId int,
@kovetkezoTanevId int,
@oratervTargyId int
AS
BEGIN
DECLARE
@kovOratervTargyId int
,@kovTantargyId int=(
SELECT tgyKov.ID FROM T_TANTARGY_OSSZES tgyKov
INNER JOIN T_ORATERVTARGY_OSSZES ottgy ON ottgy.C_TANTARGYID=tgyKov.ELOZOTANEVIREKORDID AND ottgy.TOROLT='F'
WHERE tgyKov.TOROLT='F' AND tgyKov.C_TANEVID=@kovetkezoTanevId AND ottgy.ID=@oratervTargyId)
,@kovOratervId int =(
SELECT otKov.ID FROM T_ORATERV_OSSZES otKov
INNER JOIN T_ORATERVTARGY_OSSZES ottgy ON ottgy.ID=@oratervTargyId AND otKov.ELOZOTANEVIREKORDID=ottgy.C_ORATERVID AND ottgy.TOROLT='F'
WHERE otKov.C_TANEVID=@kovetkezoTanevId AND otKov.TOROLT='F')
IF EXISTS(SELECT 1 FROM T_ORATERVTARGY_OSSZES WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND C_TANTARGYID=@kovTantargyId AND C_ORATERVID=@kovOratervId AND ISNULL(ELOZOTANEVIREKORDID,0)<>@oratervTargyId)
BEGIN
UPDATE T_ORATERVTARGY_OSSZES SET ELOZOTANEVIREKORDID = NULL WHERE ELOZOTANEVIREKORDID=@oratervTargyId
UPDATE T_ORATERVTARGY_OSSZES SET ELOZOTANEVIREKORDID = @oratervTargyId WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND C_TANTARGYID=@kovTantargyId AND C_ORATERVID=@kovOratervId AND ISNULL(ELOZOTANEVIREKORDID,0)<>@oratervTargyId
END
SELECT @kovOratervTargyId = ID FROM T_ORATERVTARGY_OSSZES WHERE ELOZOTANEVIREKORDID = @oratervTargyId
IF (SELECT TOROLT FROM T_ORATERV_OSSZES WHERE ID = @oratervTargyId) = 'T' OR (SELECT TOROLT FROM T_ORATERV_OSSZES WHERE ID = @kovOratervTargyId) = 'T' BEGIN
RETURN
END
IF (@kovOratervTargyId IS NULL)
BEGIN
INSERT INTO T_ORATERVTARGY_OSSZES (
C_EVESORASZAM
,C_INTEZMENYID
,C_TANEVID
,C_ORATERVID
,C_TANTARGYID
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
) SELECT
ottgy.C_EVESORASZAM
,ottgy.C_INTEZMENYID
,@kovetkezoTanevId
,otKov.ID
,C_TANTARGYID
,0
,GETDATE()
,GETDATE()
,ottgy.MODIFIER
,ottgy.MODIFIER
,ottgy.ID
FROM T_ORATERVTARGY_OSSZES ottgy
INNER JOIN T_ORATERV_OSSZES otKov ON otKov.ELOZOTANEVIREKORDID=ottgy.C_ORATERVID AND otKov.TOROLT='F'
WHERE ottgy.ID=@oratervTargyId
END
ELSE
BEGIN
UPDATE kovetkezo SET
kovetkezo.C_EVESORASZAM = aktiv.C_EVESORASZAM
,kovetkezo.C_TANTARGYID = tgy.ID
,kovetkezo.SERIAL += 1
,kovetkezo.LASTCHANGED = aktiv.LASTCHANGED
,kovetkezo.MODIFIER = aktiv.MODIFIER
FROM T_ORATERVTARGY_OSSZES kovetkezo
INNER JOIN T_ORATERVTARGY_OSSZES aktiv ON aktiv.ID = @oratervTargyId AND aktiv.ID=kovetkezo.ELOZOTANEVIREKORDID
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ELOZOTANEVIREKORDID=aktiv.C_TANTARGYID AND tgy.TOROLT='F'
END
END
GO