SET NOCOUNT ON

BEGIN TRAN

BEGIN TRY


DECLARE @TABELA TABLE(ID_ETL_TIPO	VARCHAR(100)
						,INATIVO	INT
						,VERSAO	VARCHAR(100)
						,DESC_EAD	VARCHAR(100)
						,DESC_EAD_DESTINO	VARCHAR(100))


INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('700','0','3.1.10','Linx.ETLOmni.BO.LinxOmniIntTabApoio.Colecoes','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('702','0','3.1.10','Linx.ETLOmni.BO.LinxOmniIntTabApoio.CoresBasicas','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('704','0','3.1.10','Linx.ETLOmni.BO.LinxOmniIntTabApoio.LojasRede','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('706','0','3.1.10','Linx.ETLOmni.BO.LinxOmniFiliais.Empresa','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('708','0','3.1.10','Linx.ETLOmni.BO.LinxOmniFiliais.CadastroCliFor','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('709','0','3.1.10','Linx.ETLOmni.BO.LinxOmniFiliais.Filiais','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('710','0','3.1.10','Linx.ETLOmni.BO.LinxOmniFiliais.LojaVendedores','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('712','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosGrupo','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('714','1','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosTamanhos','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('716','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosGriffes','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('718','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosTipos','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('720','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosLinhas','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('722','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosCategoria','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('724','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosSegmento','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('726','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosSolucao','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('727','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosModelo','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('728','0','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.Produtos','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('730','1','3.1.10','Linx.ETLOmni.BO.LinxOmniProdutos.ProdutosFoto','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('732','1','3.1.10','Linx.ETLOmni.BO.LinxOmniTabPrecos.TabelasPreco','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('734','1','3.1.10','Linx.ETLOmni.BO.LinxOmniTabPrecos.ProdutosPrecos','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('736','1','3.1.10','Linx.ETLOmni.BO.LinxOmniFIntClientesVarejo.ClientesVarejo','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('738','1','3.1.10','Linx.ETLOmni.BO.LinxOmniFIntClientesVarejo.Propriedade','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('740','1','3.1.10','Linx.ETLOmni.BO.LinxOmniFIntClientesVarejo.PropClientesVarejo','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('742','1','3.1.10','Linx.ETLOmni.BO.LinxOmniFIntEstoqueProdutos.wEstoqueProdutos','Linx.ETLOmni.BO.LinxOmniFIntEstoqueProdutos.EstoqueProdutos')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('744','1','3.1.10','Linx.ETLOmni.BO.LinxOmniVendasVarejo.LojaVenda','')
INSERT INTO @TABELA (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO) VALUES ('999','0','3.1.10','','')


DECLARE @DESC_ETL_TIPOInativar	VARCHAR(100)						
						,@ID_ETL_TIPOInativar	VARCHAR(100)
						,@INATIVOInativar	INT
						,@VERSAOInativar	VARCHAR(100)
						,@DESC_EADInativar	VARCHAR(100)
						,@DESC_EAD_DESTINOInativar	VARCHAR(100)
						
DECLARE curTABELAInativar CURSOR FOR
						SELECT L.ID_ETL_TIPO
										,L.INATIVO
										,L.VERSAO
										,L.DESC_EAD
										,L.DESC_EAD_DESTINO
										FROM LJ_ETL_TIPO_COMPONENTE L 
										INNER JOIN LJ_LX_ETL_TIPO TP ON TP.ID_ETL_TIPO = L.ID_ETL_TIPO
										WHERE L.ID_ETL_TIPO NOT IN (SELECT T.ID_ETL_TIPO FROM @TABELA T ) AND TP.ORIGEM IN (3) --and L.INATIVO != 1 


						
	OPEN curTABELAInativar

	FETCH NEXT FROM curTABELAInativar INTO	@ID_ETL_TIPOInativar
										,@INATIVOInativar
										,@VERSAOInativar
										,@DESC_EADInativar
										,@DESC_EAD_DESTINOInativar
										

																				
														
	WHILE @@FETCH_STATUS = 0	
	BEGIN

	IF EXISTS (SELECT TOP 1 1 FROM LJ_ETL_TIPO_COMPONENTE WHERE ID_ETL_TIPO = @ID_ETL_TIPOInativar and VERSAO = @VERSAOInativar)
		BEGIN
			UPDATE LJ_ETL_TIPO_COMPONENTE SET INATIVO = 1,DESC_EAD = (SELECT CASE ISNULL(DESC_EAD,'')  WHEN '' THEN 'DESCRIÇÃO NULA' ELSE DESC_EAD END) + ' (Tipo Descontinuado - 3.1.1.0)'
					WHERE ID_ETL_TIPO = @ID_ETL_TIPOInativar
					PRINT('UPDATE EM: ' + @DESC_ETL_TIPOInativar + ' INATIVADO COM SUCESSO.')
		END


	FETCH NEXT FROM curTABELAInativar INTO	@ID_ETL_TIPOInativar
										,@INATIVOInativar
										,@VERSAOInativar
										,@DESC_EADInativar
										,@DESC_EAD_DESTINOInativar
										
	END

	CLOSE curTABELAInativar;
	DEALLOCATE curTABELAInativar;


--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------

DECLARE @ID_ETL_TIPO	VARCHAR(100)
						,@INATIVO	INT
						,@VERSAO	VARCHAR(100)
						,@DESC_EAD	VARCHAR(100)
						,@DESC_EAD_DESTINO	VARCHAR(100)
						
DECLARE curTABELA CURSOR FOR
						SELECT * FROM @TABELA T WHERE T.INATIVO = 0 ORDER BY T.ID_ETL_TIPO 

						
	OPEN curTABELA
	
	FETCH NEXT FROM curTABELA INTO	@ID_ETL_TIPO
										,@INATIVO
										,@VERSAO
										,@DESC_EAD
										,@DESC_EAD_DESTINO
										

																				
														
	WHILE @@FETCH_STATUS = 0	
	BEGIN

		IF NOT EXISTS (SELECT TOP 1 1 FROM LJ_ETL_TIPO_COMPONENTE WHERE ID_ETL_TIPO = @ID_ETL_TIPO AND VERSAO = @VERSAO)
			BEGIN
					INSERT INTO LJ_ETL_TIPO_COMPONENTE (ID_ETL_TIPO,INATIVO,VERSAO,DESC_EAD,DESC_EAD_DESTINO)
					VALUES (@ID_ETL_TIPO,@INATIVO,@VERSAO,@DESC_EAD,@DESC_EAD_DESTINO)
					PRINT('INSERT EM: ' + @ID_ETL_TIPO + ' EXECUTADO COM SUCESSO.')
			END
		ELSE
			BEGIN
					UPDATE LJ_ETL_TIPO_COMPONENTE SET ID_ETL_TIPO = @ID_ETL_TIPO,INATIVO = @INATIVO,VERSAO = @VERSAO,DESC_EAD = @DESC_EAD,DESC_EAD_DESTINO = @DESC_EAD_DESTINO												
					WHERE ID_ETL_TIPO = @ID_ETL_TIPO
					PRINT('UPDATE EM: ' + @ID_ETL_TIPO + ' EXECUTADO COM SUCESSO.')
			END
		

		FETCH NEXT FROM curTABELA INTO	@ID_ETL_TIPO
										,@INATIVO
										,@VERSAO
										,@DESC_EAD
										,@DESC_EAD_DESTINO
										
										
										 

	END  


	

	CLOSE curTABELA;
	DEALLOCATE curTABELA;


	PRINT 'COMMIT';
	COMMIT;
END TRY
BEGIN CATCH
	PRINT 'ROLLBACK';
	ROLLBACK;
	
	IF CURSOR_STATUS('global','curTABELA') >= -1
		BEGIN
			CLOSE curTABELA;
			DEALLOCATE curTABELA;
		END
	
	IF CURSOR_STATUS('global','curTABELAInativar') >= -1
	BEGIN
		CLOSE curTABELAInativar;
		DEALLOCATE curTABELAInativar;
	END

	SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_MESSAGE() AS ErrorMessage

END CATCH


