SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('sp_GetTantargyiStatuszPedagogusonkent', 'P') IS NOT NULL BEGIN
  DROP PROCEDURE sp_GetTantargyiStatuszPedagogusonkent
END
GO

CREATE PROCEDURE [dbo].[sp_GetTantargyiStatuszPedagogusonkent]
	@intezmenyId int,
	@tanevId int,
	@tanarId int,
	@statuszSzam int
AS
BEGIN
	SET NOCOUNT ON;

	select
		ROW_NUMBER() OVER(ORDER BY SZUM.TargyKategoriaTipus) AS ID,
		SZUM.IntId,
		SZUM.TanevId,
		SZUM.TanarId,
		SZUM.TargyKategoriaTipus, 
		SZUM.OsszesOraszam,
		cast(sum(SZUM.StatuszSzam) as decimal(10,2)) StatuszSzam
		from
		(
		select
		T_FOGLALKOZAS.C_INTEZMENYID IntId,
		T_FOGLALKOZAS.C_TANEVID TanevId,
		T_FOGLALKOZASOK_TANAROK.C_TANAROKID TanarId,
		TT.C_TARGYKATEGORIA TargyKategoriaTipus,
		SUM(T_FOGLALKOZAS.C_ORASZAM) OsszesOraszam,
		IIF(SUM(T_FOGLALKOZAS.C_ORASZAM) <= Kotelezo - Kedvezmeny,
		 CAST(SUM(T_FOGLALKOZAS.C_ORASZAM) AS DECIMAL) / CAST((Kotelezo - Kedvezmeny)AS DECIMAL),	 
		 1 + (cast((SUM(T_FOGLALKOZAS.C_ORASZAM) - (Kotelezo - Kedvezmeny)) as integer) / @statuszSzam))  StatuszSzam
		from T_FOGLALKOZAS
		inner join T_FOGLALKOZASOK_TANAROK on T_FOGLALKOZASOK_TANAROK.C_FOGLALKOZASOKID = T_FOGLALKOZAS.ID
		inner join T_ALKALMAZOTT on T_ALKALMAZOTT.ID = T_FOGLALKOZASOK_TANAROK.C_TANAROKID and T_ALKALMAZOTT.TOROLT = 'F'
		inner join T_MUNKAUGYIADATOK on T_MUNKAUGYIADATOK.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID and T_MUNKAUGYIADATOK.TOROLT ='F'
		INNER JOIN (SELECT C_ALKALMAZOTTID, C_KOTELEZOORASZAM Kotelezo, IIF(C_MUNKAIDOKEDVEZMENYORASZAM IS NULL, 0, C_MUNKAIDOKEDVEZMENYORASZAM) Kedvezmeny FROM T_MUNKAUGYIADATOK
		WHERE TOROLT = 'F' and C_KOTELEZOORASZAM > 0 and C_KOTELEZOORASZAM - isnull(C_MUNKAIDOKEDVEZMENYORASZAM, 0) > 0	
		) MunkaU  ON 
			MunkaU.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID
		inner join T_TANTARGY TT on TT.ID = T_FOGLALKOZAS.C_TANTARGYID and TT.TOROLT = 'F'
		where T_FOGLALKOZAS.TOROLT = 'F'
		and T_FOGLALKOZAS.C_INTEZMENYID = @intezmenyId
		and T_FOGLALKOZAS.C_TANEVID = @tanevId
		and T_FOGLALKOZASOK_TANAROK.C_TANAROKID = @tanarId
		and T_MUNKAUGYIADATOK.C_KOTELEZOORASZAM is not null
		group by T_FOGLALKOZAS.C_INTEZMENYID, T_FOGLALKOZAS.C_TANEVID,T_FOGLALKOZASOK_TANAROK.C_TANAROKID, TT.C_TARGYKATEGORIA, MunkaU.Kotelezo,MunkaU.Kedvezmeny
		) SZUM
		group by SZUM.IntId, SZUM.TanevId,SZUM.TanarId, SZUM.TargyKategoriaTipus, SZUM.OsszesOraszam 
END