DECLARE @ID_ETL_INSTANCIA INT
DECLARE @ID_ETL_INSTANCIA_ACAO INT
DECLARE @DESCRICAO_INSTANCIA VARCHAR(100)
DECLARE @DESCRICAO_INSTANCIA_ACAO VARCHAR(100)

/*
-----------------------------------------------------------------------------------------------------------------------------
-- CRIAÇÃO DA INSTÂNCIA DEFAULT
-----------------------------------------------------------------------------------------------------------------------------
*/

SET @DESCRICAO_INSTANCIA = 'DEFAULT INSTÂNCIA ETL'
SET @DESCRICAO_INSTANCIA_ACAO = 'DEFAULT INSTÂNCIA AÇÃO ETL'

IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'LJ_ETL_INSTANCIA') AND type in (N'U'))
BEGIN

	SELECT @ID_ETL_INSTANCIA = ID_ETL_INSTANCIA FROM LJ_ETL_INSTANCIA WHERE DESCRICAO = @DESCRICAO_INSTANCIA
	IF (@ID_ETL_INSTANCIA IS NULL)
		SELECT @ID_ETL_INSTANCIA = 0	

	INSERT INTO LJ_ETL_INSTANCIA
		SELECT		@ID_ETL_INSTANCIA AS ID_ETL_INSTANCIA
					, @DESCRICAO_INSTANCIA AS DESCRICAO
					, 10 AS FATOR_PROCESSADOR
					, 0 AS PERIODO_ARQUIVO
			WHERE	NOT EXISTS (SELECT * FROM LJ_ETL_INSTANCIA WHERE ID_ETL_INSTANCIA = @ID_ETL_INSTANCIA)

END

IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'LJ_ETL_INSTANCIA_ACAO') AND type in (N'U'))
BEGIN

	SELECT @ID_ETL_INSTANCIA_ACAO = ID_ETL_INSTANCIA_ACAO FROM LJ_ETL_INSTANCIA_ACAO WHERE DESCRICAO = @DESCRICAO_INSTANCIA_ACAO
	IF (@ID_ETL_INSTANCIA_ACAO IS NULL)
		SELECT @ID_ETL_INSTANCIA_ACAO = 0

	INSERT INTO LJ_ETL_INSTANCIA_ACAO
		SELECT		@ID_ETL_INSTANCIA_ACAO AS ID_ETL_INSTANCIA_ACAO
					, @ID_ETL_INSTANCIA AS ID_ETL_INSTANCIA
					, @DESCRICAO_INSTANCIA_ACAO AS DESCRICAO
					, 100 AS QTDE_REGISTRO
					, 1000 AS QTDE_REPETICAO
			WHERE	NOT EXISTS (SELECT * FROM LJ_ETL_INSTANCIA_ACAO WHERE ID_ETL_INSTANCIA_ACAO = @ID_ETL_INSTANCIA_ACAO)

END

IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'LJ_ETL_INSTANCIA_ACAO_TIPO') AND type in (N'U'))
BEGIN

	INSERT INTO LJ_ETL_INSTANCIA_ACAO_TIPO
		SELECT      @ID_ETL_INSTANCIA_ACAO AS ID_ETL_INSTANCIA_ACAO_TIPO
					, ID_ETL_TIPO
			FROM	LJ_LX_ETL_TIPO
			WHERE	LJ_LX_ETL_TIPO.ORIGEM IN (1, 2) 
					AND ID_ETL_TIPO NOT IN (0, 999)
					AND NOT EXISTS (SELECT		* 
										FROM	LJ_ETL_INSTANCIA_ACAO_TIPO
										WHERE	ID_ETL_INSTANCIA_ACAO = @ID_ETL_INSTANCIA_ACAO 
												AND ID_ETL_TIPO = LJ_LX_ETL_TIPO.ID_ETL_TIPO)
END


/*
-----------------------------------------------------------------------------------------------------------------------------
-- EXCLUSÃO DO TIPO ESTOQUE DAS INSTÂNCIAS
-----------------------------------------------------------------------------------------------------------------------------
*/

IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'LJ_ETL_INSTANCIA_ACAO_TIPO') AND type in (N'U'))
BEGIN

	DELETE LJ_ETL_INSTANCIA_ACAO_TIPO WHERE	ID_ETL_TIPO IN (171)

END


