﻿DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrakSzama
GO

CREATE PROCEDURE uspGetNemNaplozottOrakSzama
   @pTanevId int
  ,@pIntezmenyId int
  ,@pFeladatKategoriaId int = null
AS BEGIN
  SET NOCOUNT ON;

  CREATE TABLE #NemNaplozottOrak (
     Id int
    ,ORARENDIID int
    ,Bontott char (1)
    ,Hetirend int
    ,HetNapja int
    ,HetSorszam int
    ,ErvenyessegKezdete datetime
    ,ErvenyessegVege datetime
    ,OraKezdete datetime
    ,OraKezdeteDate date
    ,OraKezdeteTimeText varchar(5)
    ,OraVege datetime
    ,Oraszam int
    ,TargyNev nvarchar (300)
    ,TargyNevForMobile nvarchar (300)
    ,TargyNevForNyomtatvany nvarchar (300)
    ,TargykategoriaID int
    ,Megtartott char (1)
    ,CsengetesiRendOraID int
    ,CsengetesiRendID int
    ,MaxNapiOraszam int
    ,OsztalyNev nvarchar (255)
    ,MegjelenesOka nvarchar (300)
    ,TanarNev nvarchar (255)
    ,TanarOktAzon nvarchar (20)
    ,TeremNev nvarchar (255)
    ,OraTipus nvarchar (200)
    ,Hianyzas char (1)
    ,Keses char (1)
    ,Ures char (1)
    ,HelyettesitoTanarID int
    ,HelyettesitoTanarNev nvarchar (255)
    ,HelyettesitesId int
    ,TanarID int
    ,AdminAltalKiirt char (1)
    ,GroupId int
    ,Tema nvarchar (max)
    ,TantargyId int
    ,OsztCsopId int
    ,HelyettesitettPedagogusNev nvarchar (255)
    ,OraKezdeteDateST nvarchar (25)
    ,HetNapjaValos int
    ,Datum datetime
    ,HelyettesitoTanarOktAzon nvarchar (20)
  )

  DECLARE
     @IdoszakKezdete DATETIME
    ,@IdoszakVege DATETIME = GETDATE()

  SELECT
    @IdoszakKezdete = tv.C_KEZDONAP
  FROM T_TANEV_OSSZES tv WHERE ID = @pTanevId

  EXEC uspGetNemNaplozottOrarendiOrak_Core
     @IntezmenyId = @pIntezmenyId
    ,@TanevId = @pTanevId
    ,@IdoszakKezdete = @IdoszakKezdete
    ,@IdoszakVege = @IdoszakVege
    ,@pFeladatKategoriaId = @pFeladatKategoriaId

  SELECT
     ora.Tanar
    ,ora.TanarOktAzon
    ,ora.Honap
    ,COUNT(*)  AS Darab
  FROM (
    SELECT
       ISNULL(HelyettesitoTanarNev, TanarNev) AS Tanar
      ,ISNULL(HelyettesitoTanarOktAzon,TanarOktAzon) AS TanarOktAzon
      ,FORMAT(Datum, 'MM') AS Honap
      -- egy napon lehet több óra
      ,Oraszam
      -- egy órában lehet több csoportnak óra
      ,OsztalyNev
    FROM #NemNaplozottOrak
  ) ora
  GROUP BY ora.Tanar
    ,ora.TanarOktAzon
    ,ora.Honap

END
GO
