﻿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
        ,@kovetkezoTanevId
        ,'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