SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

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

	BEGIN TRY
	
		DISABLE TRIGGER tr_tanitasioraLog ON T_TANITASIORA;
		--NOTE: Egyelőre a törléseknél kiszedjük, lehet hogy kell a jövőben
		--DISABLE TRIGGER tr_helyettesitesiidoszakLog ON T_HELYETTESITESIIDOSZAK;
		--DISABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;

		-- SET NOCOUNT ON added to prevent extra result sets from
		-- interfering with SELECT statements.
		SET NOCOUNT ON;
	
		UPDATE T_TANITASIORA_OSSZES SET
			 C_ORARENDIORAID = NULL
			,SERIAL += 1
			,LASTCHANGED = GETDATE()
			,MODIFIER = @pUserId
		FROM
			T_TANITASIORA_OSSZES
		WHERE
			C_INTEZMENYID = @pIntezmenyId AND
			C_TANEVID = @pTanevId AND
			C_ORARENDIORAID IS NOT NULL

		DELETE FROM
			T_HELYETTESITESIIDOSZAK_OSSZES
		WHERE
			C_HELYETTESITETTORARENDID IN (
				SELECT ID
				FROM
					T_ORARENDIORA_OSSZES
				WHERE
					C_INTEZMENYID = @pIntezmenyId AND
					C_TANEVID = @pTanevId
			) AND
			C_INTEZMENYID = @pIntezmenyId AND
			C_TANEVID = @pTanevId

		DELETE FROM
			T_ORARENDIORA_OSSZES
		WHERE
			C_INTEZMENYID = @pIntezmenyId AND
			C_TANEVID = @pTanevId;
	
		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_helyettesitesiidoszakLog ON T_HELYETTESITESIIDOSZAK;
		--ENABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;

	END TRY

	BEGIN CATCH
	
		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_helyettesitesiidoszakLog ON T_HELYETTESITESIIDOSZAK;
		--ENABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;

	END CATCH;

END


GO

