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

CREATE PROCEDURE [dbo].[uspCheckTanarOra]
   @tanarId int
  ,@startDate datetime
  ,@endDate datetime
  ,@intezmenyId int
  ,@tanevId int
  ,@oraszam int = null
  ,@isNapirend bit = null
  ,@isEgyediHelyettesites bit = 0
AS
BEGIN
  SET NOCOUNT ON;
  
  DECLARE @CsakOrarendiOrak BIT = 0; --tanórák is
  DECLARE @IdoszakKezdete DATETIME = CAST(@startDate AS DATE);
  DECLARE @IdoszakVege DATETIME = CAST(DATEADD(DAY, 1, @endDate) AS DATE);
  CREATE TABLE #OrarendTable 
  (
     ORARENDIID int
    ,OraKezdete datetime
    ,OraVege datetime
    ,Oraszam int
    ,TargyNev nvarchar(300)
    ,Megtartott char(1)
    ,OsztalyNev nvarchar(255)
    ,TanarNev nvarchar(255)
    ,TeremNev nvarchar(255)
    ,OraTipus nvarchar(200) 
  )
  
  INSERT INTO #OrarendTable 
  (
     ORARENDIID
    ,OraKezdete
    ,OraVege
    ,Oraszam
    ,TargyNev
    ,Megtartott
    ,OsztalyNev
    ,TanarNev
    ,TeremNev
    ,OraTipus
  )
  EXEC sp_GetOrarend 
     @pIntezmenyId = @intezmenyId
    ,@pTanevId = @tanevId
    ,@pIdoszakKezdete = @IdoszakKezdete
    ,@pIdoszakVege = @IdoszakVege
    ,@pTanarId = @tanarId
    ,@pIsHelyettesitesNelkul  = 0
    ,@pOsztalyCsoportId  =  NULL
    ,@pTanuloId = NULL
    ,@pTantargyId  = NULL
    ,@pTeremId = NULL
    ,@pCsakOrarendiOrak  = @CsakOrarendiOrak
    ,@pIsNapirend = @isNapirend
    ,@pOszlopok = N'ORARENDIID,OraKezdete,OraVege,Oraszam,TargyNev,Megtartott,OsztalyNev,TanarNev,TeremNev,OraTipus'

  IF(@isNapirend = 1)
  BEGIN
    SELECT 
       sgo.ORARENDIID AS C_ORARENDIORAID
      ,sgo.TargyNev
      ,sgo.OsztalyNev
      ,sgo.TanarNev
      ,sgo.TeremNev
      ,sgo.Megtartott
      ,oo.C_TULORA
    FROM #OrarendTable AS sgo
    INNER JOIN T_ORARENDIORA oo on oo.ID = sgo.ORARENDIID
    WHERE (sgo.OraTipus = 'OrarendiOra' OR @isEgyediHelyettesites = 1)
      AND sgo.OraKezdete < @endDate
      AND sgo.OraVege > @startDate
  END  
  ELSE IF(@oraszam IS NULL)
  BEGIN
    SELECT 
       sgo.ORARENDIID AS C_ORARENDIORAID
      ,sgo.TargyNev
      ,sgo.OsztalyNev
      ,sgo.TanarNev
      ,sgo.TeremNev
      ,sgo.Megtartott
      ,oo.C_TULORA
    FROM #OrarendTable AS sgo
    INNER JOIN T_ORARENDIORA oo on oo.ID = sgo.ORARENDIID
    WHERE (sgo.OraTipus = 'OrarendiOra' OR @isEgyediHelyettesites = 1)
      AND sgo.OraKezdete = @startDate
      AND sgo.OraVege = @endDate
  END
  ELSE
  BEGIN
    SELECT 
       sgo.ORARENDIID AS C_ORARENDIORAID
      ,sgo.TargyNev
      ,sgo.OsztalyNev
      ,sgo.TanarNev
      ,sgo.TeremNev
      ,sgo.Megtartott
      ,oo.C_TULORA
    FROM #OrarendTable AS sgo
    INNER JOIN T_ORARENDIORA oo on oo.ID = sgo.ORARENDIID
    WHERE (sgo.OraTipus = 'OrarendiOra' OR @isEgyediHelyettesites = 1)
      AND sgo.Oraszam = @oraszam
  END

END
GO