﻿DROP PROCEDURE IF EXISTS uspGetKiirtHelyettesitesek
GO

CREATE PROCEDURE uspGetKiirtHelyettesitesek
   @pIntezmenyId int
  ,@pTanevId int
  ,@pTanarId int
  ,@pDarab int
AS BEGIN
  SET NOCOUNT ON;

  DECLARE
     @pIdoszakKezdete datetime
    ,@pIdoszakVege datetime

  SELECT
     @pIdoszakKezdete = (CASE WHEN tanev.C_AKTIV = 'T' THEN GETDATE() ELSE tanev.C_KEZDONAP END)
    ,@pIdoszakVege = tanev.C_UTOLSOTANITASINAP
  FROM T_TANEV_OSSZES tanev
  WHERE tanev.TOROLT = 'F'
    AND tanev.ID = @pTanevId
    AND tanev.C_INTEZMENYID = @pIntezmenyId

  CREATE TABLE #OrarendiOrak (
     Id int
    ,OraKezdete datetime
    ,OraVege datetime
    ,Oraszam int
    ,TargyNev nvarchar (300)
    ,CsengetesiRendID int
    ,OsztalyNev nvarchar (255)
    ,OraTipus nvarchar (200)
    ,HelyettesitoTanarID int
  ) 

  INSERT INTO #OrarendiOrak (
     Id
    ,OraKezdete
    ,OraVege
    ,Oraszam
    ,TargyNev
    ,CsengetesiRendID
    ,OsztalyNev
    ,OraTipus
    ,HelyettesitoTanarID
  )
  EXEC sp_GetOrarend
     @pIntezmenyId = @pIntezmenyId
    ,@pTanevId = @pTanevId
    ,@pIdoszakKezdete = @pIdoszakKezdete
    ,@pIdoszakVege = @pIdoszakVege
    ,@pTanarId = @pTanarId
    ,@pIsHelyettesitesNelkul = 0
    ,@pOsztalyCsoportId = NULL
    ,@pTanuloId = NULL
    ,@pTantargyId = NULL
    ,@pTeremId = NULL
    ,@pCsakOrarendiOrak = 0
    ,@pIsNapirend = NULL
    ,@pOszlopok = N'Id,OraKezdete,OraVege,Oraszam,TargyNev,CsengetesiRendID,OsztalyNev,OraTipus,HelyettesitoTanarID'

  SELECT TOP (@pDarab)
     orak.Id AS Id
    ,orak.OraKezdete AS Datum
    ,IIF(orak.CsengetesiRendID IS NOT NULL, orak.Oraszam, N'-') AS Oraszam
    ,orak.OsztalyNev AS OsztalyCsoport
    ,orak.TargyNev AS Tantargy
  FROM #OrarendiOrak orak
  WHERE orak.OraTipus = N'OrarendiOra'
    AND orak.OraKezdete <= @pIdoszakVege
    AND orak.OraVege >= @pIdoszakKezdete
    AND orak.HelyettesitoTanarID = @pTanarId
  ORDER BY orak.OraKezdete ASC

END
GO
