kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190624155902_DB_788/sp_FollowUpCsengetesiRendOra.sql
2024-03-13 00:33:46 +01:00

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