﻿DROP PROCEDURE IF EXISTS [dbo].[sp_HelyettesitesekKeresese]
GO

CREATE PROCEDURE [dbo].[sp_HelyettesitesekKeresese]
  @IntezmenyId int,
  @TanevId int,
  @pHelyettesitettTanarId int,
  @pHelyettesitesKezdete datetime,
  @pHelyettesitesVege datetime
AS
BEGIN
SET NOCOUNT ON;
  
  CREATE TABLE #OrarendTable (
     Id int
    ,ORARENDIID int
    ,Datum datetime
    ,OraKezdete datetime
    ,OraVege datetime
    ,Oraszam int
    ,TargyNev nvarchar(300)
    ,Megtartott char(1)
    ,CsengetesiRendOraID int
    ,TeremNev nvarchar(255)
    ,TeremId int
    ,HelyettesitoTanarNev nvarchar(255)
    ,HelyettesitesId int
    ,TantargyId int
    ,OsztCsopId int
  )
  
  INSERT INTO #OrarendTable (
    Id
    ,ORARENDIID
    ,Datum
    ,OraKezdete
    ,OraVege
    ,Oraszam
    ,TargyNev
    ,Megtartott
    ,CsengetesiRendOraID
    ,TeremNev
    ,TeremId
    ,HelyettesitoTanarNev
    ,HelyettesitesId
    ,TantargyId
    ,OsztCsopId
    )
  EXEC sp_GetOrarend 
    @pIntezmenyId = @IntezmenyId
    ,@pTanevId = @TanevId
    ,@pIdoszakKezdete = @pHelyettesitesKezdete
    ,@pIdoszakVege = @pHelyettesitesVege
    ,@pTanarId = @pHelyettesitettTanarId
    ,@pIsHelyettesitesNelkul  = 0
    ,@pOsztalyCsoportId  =  NULL
    ,@pTanuloId = NULL
    ,@pTantargyId  = NULL
    ,@pTeremId = NULL
    ,@pCsakOrarendiOrak  = 0
    ,@pIsNapirend = NULL
    ,@pOszlopok = 'Id,ORARENDIID,Datum,OraKezdete,OraVege,Oraszam,TargyNev,Megtartott,CsengetesiRendOraID,TeremNev,TeremId,HelyettesitoTanarNev,HelyettesitesId,TantargyId,OsztCsopId'
    
  SELECT
     NEWID() as ID
    ,ot.Datum as HelyettesitettDatum
    ,ot.ORARENDIID as HelyettesitettOrarendiOraId
    ,IIF(ot.Oraszam = 0 AND ot.CsengetesiRendOraID IS NULL, NULL, ot.Oraszam) as HelyettesitettOraszam
    ,ot.CsengetesiRendOraID as HelyettesitettCsengetesiRendOraId
    ,ot.TantargyId as HelyettesitettTantargyID
    ,ot.Datum + CAST(CAST(ot.OraKezdete AS time) AS datetime) AS HelyettesitettOraKezdete
    ,ot.Datum + CAST(CAST(ot.OraVege AS time) AS datetime) AS HelyettesitettOraVege
    ,ot.TargyNev as HelyettesitettTantargy
    ,ocs.C_NEV as HelyettesitettOsztaly
    ,ot.OsztCsopId as HelyettesitettOsztalyId
    ,ocs.C_EVFOLYAMTIPUSA as HelyettesitettEvFolyamId
    ,ot.TeremNev as HelyettesitettTerem  
    ,ot.TeremId as HelyettesitettTeremId
    ,ot.HelyettesitesId as HelyettesitesId
    ,IIF(ot.Megtartott = 'F' AND ot.Id != ot.ORARENDIID, 'Elmaradt óra', ot.HelyettesitoTanarNev) as HelyettesitoTanarNev
    ,ot.Megtartott as IsMegtartott
    ,hi.C_HELYETTESITESTIPUS as HelyettesitesTipusId
    ,IIF (ot.Id != ot.ORARENDIID, ot.Id, NULL) AS TanoraId
  FROM #OrarendTable ot
    JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = ot.OsztCsopId AND ocs.TOROLT = 'F'
    LEFT JOIN T_HELYETTESITESIIDOSZAK hi ON hi.ID = ot.HelyettesitesId AND hi.TOROLT = 'F'
  WHERE ot.Id = ot.ORARENDIID OR (ot.Megtartott ='F' AND ot.Id != ot.ORARENDIID)
  ORDER BY HelyettesitettDatum, HelyettesitettOraszam
  
  DROP TABLE #OrarendTable

END
GO