SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_FizikaiTorlesTantargyfelosztas]') IS NOT NULL
BEGIN
  DROP PROCEDURE [dbo].[sp_FizikaiTorlesTantargyfelosztas]
END
GO

-- =============================================
-- Description:	<Fizikailag töröljük az intézmény adott tanévére a tantárgyfelosztást>
-- =============================================
CREATE PROCEDURE [dbo].[sp_FizikaiTorlesTantargyfelosztas]
	 @pIntezmenyId	INT
	,@pTanevId		INT
	,@pUserId		INT
WITH EXECUTE AS 'kreta_tech_user'
AS
BEGIN

	BEGIN TRY

		-- SET NOCOUNT ON added to prevent extra result sets from
		-- interfering with SELECT statements.
		SET NOCOUNT ON;
		
		DISABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;
		UPDATE T_ORARENDIORA_OSSZES SET
			 C_FOGLALKOZASID = NULL
			,SERIAL += 1
			,LASTCHANGED = GETDATE()
			,MODIFIER = @pUserId
		FROM
			T_ORARENDIORA_OSSZES
		WHERE
			C_INTEZMENYID = @pIntezmenyId AND
			C_TANEVID = @pTanevId AND
			C_FOGLALKOZASID IS NOT NULL;
		ENABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;
			
		DISABLE TRIGGER tr_tanitasioraLog ON T_TANITASIORA;
		UPDATE T_TANITASIORA_OSSZES SET
			 C_FOGLALKOZASID = NULL
			,SERIAL += 1
			,LASTCHANGED = GETDATE()
			,MODIFIER = @pUserId
		FROM
			T_TANITASIORA_OSSZES
		WHERE
			C_INTEZMENYID = @pIntezmenyId AND
			C_TANEVID = @pTanevId AND
			C_FOGLALKOZASID IS NOT NULL;
		ENABLE TRIGGER tr_tanitasioraLog ON T_TANITASIORA;
			
		--NOTE: Egyelőre a törléseknél kiszedjük a trigger kikapcsolást, lehet hogy kell a jövőben
		--DISABLE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS;
		DELETE FROM
			T_FOGLALKOZAS_OSSZES
		WHERE
			C_INTEZMENYID = @pIntezmenyId AND
			C_TANEVID = @pTanevId;
		--NOTE: Egyelőre a törléseknél kiszedjük a trigger kikapcsolást, lehet hogy kell a jövőben
		--ENABLE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS;	

	END TRY

	BEGIN CATCH
	
		ENABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;
		ENABLE TRIGGER tr_tanitasioraLog ON T_TANITASIORA;
		--NOTE: Egyelőre a törléseknél kiszedjük, lehet hogy kell a jövőben
		--ENABLE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS;

	END CATCH;

END


GO

