DROP PROCEDURE IF EXISTS [dbo].[uspCopyOrarendiElem]
GO

CREATE PROCEDURE [dbo].[uspCopyOrarendiElem]
   @copyId int
  ,@date datetime
  ,@oraszam int
  ,@pOraErvenyessegKezdete datetime = null
  ,@pOraErvenyessegVege datetime = null
  ,@pIsGenerateOrarend bit = 1
AS BEGIN
  SET NOCOUNT ON
  DECLARE @newId int = 0
  DECLARE @intezmenyId int, @tanevId int, @hetNapja int, @tanarId int, @tantargyId int, @osztalycsoportId int, @teremId int, @ora int, @egyediNap char(1);
  DECLARE @ervenyessegKezdet datetime, @ervenyessegVege datetime, @orarendiOraGroupId int, @hetirendId int;
    
  SELECT
     @intezmenyId = C_INTEZMENYID, @tanevId = C_TANEVID, @tanarId = C_TANARID, @tantargyId = C_TANTARGYID
    ,@osztalycsoportId = C_OSZTALYCSOPORTID, @teremId = C_TEREMID, @ora = C_ORASZAM
    ,@ervenyessegKezdet = C_ORAERVENYESSEGKEZDETE, @ervenyessegVege = C_ORAERVENYESSEGVEGE
    ,@orarendiOraGroupId = C_ORARENDIORAGROUPID, @hetirendId = C_HETIREND, @egyediNap = C_EGYEDINAP
  FROM T_ORARENDIORA_OSSZES WHERE ID = @copyId AND TOROLT = 'F'

  IF @date IS NOT NULL
  BEGIN
    SELECT @hetNapja = C_HETNAPJA FROM T_NAPTARINAP_OSSZES where C_NAPDATUMA = CAST(@date AS DATE)
  END
    
  IF (@oraszam < 0) BEGIN SET @oraszam = NULL END
    
  IF NOT EXISTS(SELECT * FROM T_ORARENDIORA_OSSZES where @intezmenyId = C_INTEZMENYID AND @tanevId = C_TANEVID AND @tanarId = C_TANARID AND @tantargyId = C_TANTARGYID
    AND @osztalycsoportId = C_OSZTALYCSOPORTID AND @teremId = C_TEREMID AND (@oraszam IS NOT NULL AND @oraszam = C_ORASZAM) AND TOROLT = 'F' AND @hetNapja = C_HETNAPJA
    AND @hetirendId = C_HETIREND AND @ervenyessegKezdet < C_ORAERVENYESSEGVEGE AND @ervenyessegVege >= C_ORAERVENYESSEGKEZDETE AND @egyediNap = C_EGYEDINAP
  )
  BEGIN
    INSERT INTO T_ORARENDIORA (
       [C_DIFFERENCIALT],[C_DRAMA],[C_HETIREND],[C_HETNAPJA],[C_IKTTANORA],[C_IPRTANORA],[C_KOOPERATIV],[C_MERES],[C_MINDENNAPOSTESTNEVELES],[C_NEMSZAKRENDSZERUORA],[C_NEMZETISEGIORA]
      ,[C_ORASZAM],[C_SORSZAMOZANDO],[C_TAMOPORA],[C_TULORA],[C_BONTOTT],[C_ORAERVENYESSEGKEZDETE],[C_ORAERVENYESSEGVEGE],[C_PARHUZAMOSORA],[C_TIOP12],[C_ORAKEZDETE],[C_ORAVEGE]
      ,[C_IMPORTALT],[C_CSENGETESIRENDID],[C_CSENGETESIRENDORAID],[C_ORARENDIORAGROUPID],[C_EFOP32317],[C_MULTIKULTURALISORA],[C_KOMPLEXORA],[C_KIPORA],[C_VEKOP73317],[C_KAPORA]
      ,[C_GINOP623],[C_EGYEDINAP],[C_TEREMID],[C_FOGLALKOZASID],[C_TANTARGYID],[C_OSZTALYCSOPORTID],[C_TANARID],[C_ORATULAJDONOSID],[C_INTEZMENYID],[C_TANEVID],[TOROLT],[SERIAL]
      ,[LASTCHANGED],[CREATED],[MODIFIER],[CREATOR],[ELOZOTANEVIREKORDID],[C_ISKEZZELFELVETTEGYEDINAP],[C_EFOP31716],[C_EFOP33717],[C_TIOP1111212012001],[C_ISDFHTKIPORA]
      ,[C_ISDFHTORA],[C_ISDIGITALISALAPUALPROGRAM],[C_ISELETGYAKORLATALAPUALPROGRA],[C_ISLOGIKAALAPUALPROGRAM],[C_ISMUVESZETALAPUALPROGRAM],[C_ISRAHANGOLODAS],[C_ISTEORAD]
      ,[C_ISTESTMOZGASALAPUALPROGRAM],[C_ISFELNOTTOKTATASISZERZODES],[C_KOZPONTILAGTOROLTORAGROUPID],[C_KOZPONTIORAGROUPID],[C_EFOP23517]
    )
    SELECT
       [C_DIFFERENCIALT]
      ,[C_DRAMA]
      ,[C_HETIREND]
      ,ISNULL(@hetNapja, [C_HETNAPJA])
      ,[C_IKTTANORA]
      ,[C_IPRTANORA]
      ,[C_KOOPERATIV]
      ,[C_MERES]
      ,[C_MINDENNAPOSTESTNEVELES]
      ,[C_NEMSZAKRENDSZERUORA]
      ,[C_NEMZETISEGIORA]
      ,@oraszam
      ,[C_SORSZAMOZANDO]
      ,[C_TAMOPORA]
      ,[C_TULORA]
      ,[C_BONTOTT]
      ,ISNULL(@pOraErvenyessegKezdete, [C_ORAERVENYESSEGKEZDETE])
      ,ISNULL(@pOraErvenyessegVege, [C_ORAERVENYESSEGVEGE])
      ,[C_PARHUZAMOSORA]
      ,[C_TIOP12]
      ,CASE
        WHEN @date IS NULL THEN [C_ORAKEZDETE]
        WHEN @oraszam IS NOT NULL THEN (select C_KEZDETE from T_CSENGETESIRENDORA_OSSZES where C_ORASZAM = @oraszam and C_CSENGETESIRENDID = oo.C_CSENGETESIRENDID and TOROLT = 'F')
        ELSE DATEADD(minute, (DATEPART(hour, @date) *60 + DATEPART(minute, @date)),0)
      END
      ,CASE
        WHEN @date IS NULL THEN [C_ORAVEGE]
        WHEN @oraszam IS NOT NULL THEN (select C_VEGE from T_CSENGETESIRENDORA_OSSZES where C_ORASZAM = @oraszam and C_CSENGETESIRENDID = oo.C_CSENGETESIRENDID and TOROLT = 'F')
        ELSE (C_ORAVEGE - C_ORAKEZDETE) + DATEADD(minute, (DATEPART(hour, @date) *60 + DATEPART(minute, @date)),0)
      END
      ,[C_IMPORTALT]
      ,[C_CSENGETESIRENDID]
      ,ISNULL((SELECT ID FROM T_CSENGETESIRENDORA_OSSZES WHERE C_CSENGETESIRENDID = oo.C_CSENGETESIRENDID AND C_ORASZAM = @oraszam AND TOROLT = 'F' AND C_TANEVID = oo.C_TANEVID),[C_CSENGETESIRENDORAID])
      ,[C_ORARENDIORAGROUPID]
      ,[C_EFOP32317]
      ,[C_MULTIKULTURALISORA]
      ,[C_KOMPLEXORA]
      ,[C_KIPORA]
      ,[C_VEKOP73317]
      ,[C_KAPORA]
      ,[C_GINOP623]
      ,[C_EGYEDINAP]
      ,[C_TEREMID]
      ,[C_FOGLALKOZASID]
      ,[C_TANTARGYID]
      ,[C_OSZTALYCSOPORTID]
      ,[C_TANARID]
      ,[C_ORATULAJDONOSID]
      ,[C_INTEZMENYID]
      ,[C_TANEVID]
      ,'F'
      ,0
      ,GETDATE()
      ,GETDATE()
      ,[MODIFIER]
      ,[CREATOR]
      ,NULL
      ,[C_ISKEZZELFELVETTEGYEDINAP]
      ,[C_EFOP31716]
      ,[C_EFOP33717]
      ,[C_TIOP1111212012001]
      ,[C_ISDFHTKIPORA]
      ,[C_ISDFHTORA]
      ,[C_ISDIGITALISALAPUALPROGRAM]
      ,[C_ISELETGYAKORLATALAPUALPROGRA]
      ,[C_ISLOGIKAALAPUALPROGRAM]
      ,[C_ISMUVESZETALAPUALPROGRAM]
      ,[C_ISRAHANGOLODAS]
      ,[C_ISTEORAD]
      ,[C_ISTESTMOZGASALAPUALPROGRAM]
      ,[C_ISFELNOTTOKTATASISZERZODES]
      ,[C_KOZPONTILAGTOROLTORAGROUPID]
      ,[C_KOZPONTIORAGROUPID]
      ,[C_EFOP23517]
    FROM T_ORARENDIORA_OSSZES oo WHERE ID = @copyId AND TOROLT = 'F'
    
    SET @newId = (select SCOPE_IDENTITY())

    UPDATE T_ORARENDIORA_OSSZES SET C_ORARENDIORAGROUPID = @newId WHERE ID = @newId

    UPDATE T_SZAMONKERESELOREJELZES_OSSZES set C_ORARENDIORAGROUPID = @newId WHERE C_ORARENDIORAGROUPID = @orarendiOraGroupId AND TOROLT = 'F'

    IF @pIsGenerateOrarend = 1
    BEGIN
      EXEC uspGenerateOrarend @intezmenyId, @tanevId, null, null, @newId, null
    END

    INSERT INTO T_ORARENDIORATULAJDONSAG (
      [C_ORATULAJDONSAGID],[C_ORARENDIORAID],[C_INTEZMENYID],[C_TANEVID],[TOROLT],[SERIAL],[LASTCHANGED],[CREATED],[MODIFIER],[CREATOR],[ELOZOTANEVIREKORDID],[C_BOOLERTEK]
    )
    SELECT
       [C_ORATULAJDONSAGID]
      ,@newId
      ,[C_INTEZMENYID]
      ,[C_TANEVID]
      ,'F'
      ,0
      ,GETDATE()
      ,GETDATE()
      ,[MODIFIER]
      ,[CREATOR]
      ,NULL
      ,[C_BOOLERTEK]
    FROM T_ORARENDIORATULAJDONSAG_OSSZES oot WHERE C_ORARENDIORAID = @copyId AND TOROLT = 'F'
        
  END
  SELECT @newId as Result

END