93 lines
No EOL
3.2 KiB
Transact-SQL
93 lines
No EOL
3.2 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS sp_FollowUpCsengetesiRendOra
|
|
GO
|
|
|
|
CREATE PROCEDURE sp_FollowUpCsengetesiRendOra
|
|
@intezmenyId int
|
|
,@aktTanevId int
|
|
,@kovetkezoTanevId int
|
|
,@csengetesiRendOraId int
|
|
,@csengetesiRendId int
|
|
,@isVisszaMenoleges bit
|
|
AS
|
|
BEGIN
|
|
DECLARE @oraSzam int
|
|
,@kovCsengrendOraId int
|
|
,@kovCsengRendId int
|
|
|
|
SELECT @oraSzam = C_ORASZAM FROM T_CSENGETESIRENDORA_OSSZES WHERE ID = @csengetesiRendOraId
|
|
SELECT @kovCsengRendId = ID FROM T_CSENGETESIREND_OSSZES WHERE ELOZOTANEVIREKORDID=@csengetesiRendId
|
|
|
|
IF EXISTS (SELECT 1 FROM T_CSENGETESIRENDORA_OSSZES WHERE C_TANEVID=@kovetkezoTanevId AND TOROLT='F' AND C_ORASZAM=@oraSzam AND ISNULL(ELOZOTANEVIREKORDID,0)<>@csengetesiRendOraId AND C_CSENGETESIRENDID=@kovCsengRendId)
|
|
BEGIN
|
|
UPDATE T_CSENGETESIRENDORA_OSSZES SET ELOZOTANEVIREKORDID = NULL WHERE ELOZOTANEVIREKORDID=@csengetesiRendOraId
|
|
UPDATE T_CSENGETESIRENDORA_OSSZES SET ELOZOTANEVIREKORDID = @csengetesiRendOraId WHERE C_TANEVID=@kovetkezoTanevId AND TOROLT='F' AND C_ORASZAM=@oraSzam AND ISNULL(ELOZOTANEVIREKORDID,0)<>@csengetesiRendOraId AND C_CSENGETESIRENDID=@kovCsengRendId
|
|
END
|
|
|
|
SELECT @kovCsengrendOraId = ID FROM T_CSENGETESIRENDORA_OSSZES WHERE ELOZOTANEVIREKORDID=@csengetesiRendOraId
|
|
|
|
IF (SELECT TOROLT FROM T_CSENGETESIRENDORA_OSSZES WHERE ID = @csengetesiRendOraId)='T' OR (SELECT TOROLT FROM T_CSENGETESIRENDORA_OSSZES WHERE ID=@kovCsengrendOraId)='T'
|
|
BEGIN
|
|
RETURN
|
|
END
|
|
|
|
IF @kovCsengrendOraId IS NULL
|
|
BEGIN
|
|
INSERT INTO T_CSENGETESIRENDORA_OSSZES
|
|
(
|
|
C_KEZDETE
|
|
,C_ORASZAM
|
|
,C_VEGE
|
|
,C_CSENGETESIRENDID
|
|
,C_INTEZMENYID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
,SERIAL
|
|
,LASTCHANGED
|
|
,CREATED
|
|
,MODIFIER
|
|
,CREATOR
|
|
,NNID
|
|
,ELOZOTANEVIREKORDID
|
|
)
|
|
SELECT
|
|
C_KEZDETE
|
|
,C_ORASZAM
|
|
,C_VEGE
|
|
,csr.ID
|
|
,csro.C_INTEZMENYID
|
|
,csro.C_TANEVID
|
|
,'F'
|
|
,0
|
|
,GETDATE()
|
|
,GETDATE()
|
|
,csro.MODIFIER
|
|
,csro.MODIFIER
|
|
,NULL
|
|
,csro.ID
|
|
FROM T_CSENGETESIRENDORA_OSSZES csro
|
|
INNER JOIN T_CSENGETESIREND_OSSZES csr ON csr.ELOZOTANEVIREKORDID=csro.C_CSENGETESIRENDID AND csr.TOROLT='F'
|
|
WHERE csro.C_TANEVID = @aktTanevId AND csro.ID = @csengetesiRendOraId AND csro.TOROLT = 'F'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE t SET
|
|
C_KEZDETE = old.C_KEZDETE
|
|
,C_ORASZAM = old.C_ORASZAM
|
|
,C_VEGE = old.C_VEGE
|
|
,SERIAL = t.SERIAL+1
|
|
,LASTCHANGED = GETDATE()
|
|
,MODIFIER=old.MODIFIER
|
|
FROM T_CSENGETESIRENDORA_OSSZES t
|
|
INNER JOIN T_CSENGETESIRENDORA_OSSZES old ON old.ID = t.ELOZOTANEVIREKORDID AND old.C_INTEZMENYID = @intezmenyId AND old.C_TANEVID = @aktTanevId AND old.ID = @csengetesiRendId
|
|
WHERE t.TOROLT = 'F' AND t.C_INTEZMENYID = @intezmenyId AND t.C_TANEVID = @kovetkezoTanevId AND t.ELOZOTANEVIREKORDID = @csengetesiRendOraId
|
|
END
|
|
|
|
SELECT @kovCsengrendOraId= ID FROM T_CSENGETESIRENDORA_OSSZES WHERE ELOZOTANEVIREKORDID=@csengetesiRendOraId AND TOROLT='F'
|
|
|
|
IF @isVisszaMenoleges=1
|
|
BEGIN
|
|
EXEC sp_UpdateOrarendiOraVisszamenolegesen @kovCsengrendOraId
|
|
END
|
|
|
|
END
|
|
GO |