SET NOCOUNT ON

BEGIN TRAN

BEGIN TRY

	EXEC('
	IF OBJECT_ID(''UNICO_VITRINE_PEDIDO'') IS NULL
	BEGIN
		CREATE TABLE UNICO_VITRINE_PEDIDO
		(
			ID_PEDIDO INT NOT NULL, 
			CODIGO_FILIAL CHAR(6) NOT NULL, 
			TICKET CHAR(8) NOT NULL, 
			DATA_VENDA DATETIME NOT NULL, 
			PEDIDO VARCHAR(50) NOT NULL, 
			CODIGO_CLIENTE VARCHAR(14) NULL, 
			NSU VARCHAR(16) NULL, 
			VALOR_ORIGINAL_PEDIDO NUMERIC(9, 2) NOT NULL, 
			DESCONTO_LOJA NUMERIC(9, 2) NOT NULL, 
			CONFIRMADO BIT NOT NULL,
			CANCELADO BIT NOT NULL, 
			FRETE NUMERIC(9, 2) NULL,
			CONSTRAINT PK_UNICO_VITRINE_PEDIDO PRIMARY KEY CLUSTERED (ID_PEDIDO, CODIGO_FILIAL, TICKET, DATA_VENDA))

		PRINT ''Criado a tabela UNICO_VITRINE_PEDIDO''
	END')
	

	EXEC('
	IF OBJECT_ID(''UNICO_VITRINE_PEDIDO_ITEM'') IS NULL
	BEGIN
		CREATE TABLE UNICO_VITRINE_PEDIDO_ITEM
		(
			ID_PEDIDO_ITEM INT NOT NULL, 
			ID_PEDIDO INT NOT NULL, 
			CODIGO_FILIAL CHAR(6) NOT NULL, 
			TICKET CHAR(8) NOT NULL, 
			DATA_VENDA DATETIME NOT NULL, 
			CODIGO_BARRA VARCHAR(25) NOT NULL, 
			QTDE INT NOT NULL, 
			PRECO_UNITARIO NUMERIC(9, 2) NOT NULL, 
			VENDEDOR CHAR(4) NULL,
			DESCONTO NUMERIC(9, 2) NULL,		
			CONSTRAINT PK_UNICO_VITRINE_PEDIDO_ITEM PRIMARY KEY CLUSTERED (ID_PEDIDO_ITEM, ID_PEDIDO, CODIGO_FILIAL, TICKET, DATA_VENDA), 
			FOREIGN KEY (ID_PEDIDO, CODIGO_FILIAL, TICKET, DATA_VENDA) REFERENCES UNICO_VITRINE_PEDIDO (ID_PEDIDO, CODIGO_FILIAL, TICKET, DATA_VENDA) ON DELETE CASCADE
		)
		PRINT ''Criado a tabela UNICO_VITRINE_PEDIDO_ITEM''
	END')


	EXEC ('
	IF EXISTS (select * from information_schema.CONSTRAINT_COLUMN_USAGE where CONSTRAINT_NAME = ''XPKLOJA_VENDA_SHOWROOMER'' and COLUMN_NAME = ''ID'')
	BEGIN
		PRINT ''Atualizando a tabela LOJA_VENDA_SHOWROOMER''
	

		ALTER TABLE dbo.LOJA_VENDA_SHOWROOMER
		DROP CONSTRAINT XPKLOJA_VENDA_SHOWROOMER
	

		ALTER TABLE dbo.LOJA_VENDA_SHOWROOMER
		ADD CONSTRAINT XPKLOJA_VENDA_SHOWROOMER PRIMARY KEY CLUSTERED (CODIGO_FILIAL, TICKET, DATA_VENDA ASC )
		WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

		PRINT ''Tabela atualizada.''
	END')

	/*
	-----------------------------------------------------------------------------------------------------------------------------------------------------
	--	ALTERAÇÕES DE BANCO PARA A VERSÃO 3.1.10.6
	-----------------------------------------------------------------------------------------------------------------------------------------------------
	*/

	EXEC ('
		IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE  TABLE_NAME = ''LOJA_VENDA_TROCA_OMS'') 
		BEGIN
			CREATE TABLE LOJA_VENDA_TROCA_OMS
			(
				TICKET            CHAR(8)     NOT NULL,
				CODIGO_FILIAL     CHAR(6)     NOT NULL,
				ITEM              CHAR(4)     NOT NULL,
				DATA_VENDA        DATETIME    NOT NULL,
				CHANNELID         VARCHAR(32) NOT NULL,
				ID_PEDIDO_ORIGEM  VARCHAR(20) NOT NULL,
				ID_ENTREGA_ORIGEM VARCHAR(20) NOT NULL,
				SKU               VARCHAR(25) NOT NULL,
				CONSTRAINT PK_LOJA_VENDA_TROCA_OMS PRIMARY KEY(TICKET, CODIGO_FILIAL, ITEM, DATA_VENDA)
			)	

			PRINT ''Criado a tabela LOJA_VENDA_TROCA_OMS''
		END
	')

	EXEC ('
			IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
					   WHERE  TABLE_NAME = ''LOJA_PEDIDO_PRODUTO'' AND COLUMN_NAME = ''OUTRAS_DESPESAS'')
			begin
				ALTER TABLE [dbo].[LOJA_PEDIDO_PRODUTO] ADD OUTRAS_DESPESAS NUMERIC(14,2) NULL

				PRINT ''Criado a coluna OUTRAS_DESPESAS na tabela LOJA_PEDIDO_PRODUTO''
			end
	')	

	EXEC(' 
			IF NOT EXISTS(SELECT TOP 1 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_PEDIDO_ENTREGA'' AND COLUMN_NAME = ''VALOR_TOTAL'')
			BEGIN
				ALTER TABLE LOJA_PEDIDO_ENTREGA ADD VALOR_TOTAL NUMERIC(14, 2) NULL  

				PRINT ''Criado a coluna VALOR_TOTAL na tabela LOJA_PEDIDO_ENTREGA''
			END	
	')

	EXEC('
			IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
					   WHERE  TABLE_NAME = ''LOJA_PEDIDO'' AND COLUMN_NAME = ''OUTRAS_DESPESAS'')
			BEGIN
				ALTER TABLE [dbo].[LOJA_PEDIDO] ADD OUTRAS_DESPESAS NUMERIC(14,2) NULL 

				PRINT ''Criado a coluna OUTRAS_DESPESAS na tabela LOJA_PEDIDO''
			END
	')

	EXEC('
			IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
						   WHERE  TABLE_NAME = ''LOJA_PEDIDO'' AND COLUMN_NAME = ''OUTRAS_DESPESAS_ITENS'')
			BEGIN
				ALTER TABLE [dbo].[LOJA_PEDIDO] ADD OUTRAS_DESPESAS_ITENS NUMERIC(14,2) NULL 

				PRINT ''Criado a coluna OUTRAS_DESPESAS_ITENS na tabela LOJA_PEDIDO''
			END
	')

	EXEC('
		IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS 
		   WHERE TABLE_NAME = ''LOJA_PEDIDO'' AND COLUMN_NAME = ''CHANNEL_ID'' )
		BEGIN
			ALTER TABLE [dbo].[LOJA_PEDIDO] ADD CHANNEL_ID VARCHAR(100)

			PRINT ''Criado a coluna CHANNEL_ID na tabela LOJA_PEDIDO''
		END
	')

	EXEC('
		IF NOT EXISTS(SELECT TOP 1 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_PEDIDO_PGTO'' AND COLUMN_NAME = ''DATA_HORA_TEF'')
		BEGIN
			ALTER TABLE LOJA_PEDIDO_PGTO ADD DATA_HORA_TEF DATETIME NULL

			PRINT ''Criado a coluna DATA_HORA_TEF na tabela LOJA_PEDIDO_PGTO''
		END
	')

	EXEC('
		IF NOT EXISTS(SELECT TOP 1 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_PEDIDO'' AND COLUMN_NAME = ''CRE'')
		BEGIN
			ALTER TABLE LOJA_PEDIDO ADD CRE INT NULL

			PRINT ''Criado a coluna CRE na tabela LOJA_PEDIDO''
		END
	')

	EXEC(' 
		IF NOT EXISTS (SELECT 1 FROM   INFORMATION_SCHEMA.COLUMNS WHERE  TABLE_NAME = ''LOJA_VENDA_TROCA_OMS'' AND COLUMN_NAME = ''QTDE_DEVOLVIDA'')
		BEGIN 
			ALTER TABLE [dbo].[LOJA_VENDA_TROCA_OMS]  ADD QTDE_DEVOLVIDA INT NULL

			PRINT ''Criado a coluna QTDE_DEVOLVIDA na tabela LOJA_VENDA_TROCA_OMS''
		END
	')

	EXEC('
		IF NOT EXISTS (SELECT 1 FROM   INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_VENDA_TROCA_OMS'' AND COLUMN_NAME = ''QTDE_AVARIA'')
		BEGIN
			ALTER TABLE [dbo].[LOJA_VENDA_TROCA_OMS] ADD QTDE_AVARIA INT NULL
			
			PRINT ''Criado a coluna QTDE_AVARIA na tabela LOJA_VENDA_TROCA_OMS''
	   END
	')

	EXEC('
		IF NOT EXISTS (SELECT 1 FROM   INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_VENDA_TROCA_OMS'' AND COLUMN_NAME = ''QTDE_RECUSADA'')
		BEGIN
			ALTER TABLE [dbo].[LOJA_VENDA_TROCA_OMS] ADD QTDE_RECUSADA INT NULL
			
			PRINT ''Criado a coluna QTDE_RECUSADA na tabela LOJA_VENDA_TROCA_OMS''
	   END
	')

	EXEC('
		IF NOT EXISTS (SELECT 1 FROM   INFORMATION_SCHEMA.COLUMNS WHERE  TABLE_NAME = ''LOJA_VENDA_TROCA_OMS'' AND COLUMN_NAME = ''QTDE_NAO_DEVOLVIDA'')
		BEGIN
			ALTER TABLE [dbo].[LOJA_VENDA_TROCA_OMS] ADD QTDE_NAO_DEVOLVIDA INT NULL
			
			PRINT ''Criado a coluna QTDE_NAO_DEVOLVIDA na tabela LOJA_VENDA_TROCA_OMS''
	    END
	')

	EXEC('
		IF NOT EXISTS (SELECT 1 FROM   INFORMATION_SCHEMA.COLUMNS WHERE  TABLE_NAME = ''LOJA_VENDA_TROCA_OMS'' AND COLUMN_NAME = ''ID_EXCEPTION'')
		BEGIN
			ALTER TABLE [dbo].[LOJA_VENDA_TROCA_OMS] ADD ID_EXCEPTION VARCHAR(20) NULL
			
			PRINT ''Criado a coluna ID_EXCEPTION na tabela LOJA_VENDA_TROCA_OMS''
	    END
	')
	
	EXEC('
		IF NOT EXISTS (SELECT 1 FROM   INFORMATION_SCHEMA.COLUMNS WHERE  TABLE_NAME = ''LOJA_VENDA_TROCA_OMS'' AND COLUMN_NAME = ''INDICA_DEVOLUCAO'')
		BEGIN
			ALTER TABLE [dbo].[LOJA_VENDA_TROCA_OMS] ADD INDICA_DEVOLUCAO BIT NULL
			
			PRINT ''Criado a coluna INDICA_DEVOLUCAO na tabela LOJA_VENDA_TROCA_OMS''
	    END
	')
	/*
	-----------------------------------------------------------------------------------------------------------------------------------------------------
	--	ALTERAÇÕES DE BANCO PARA A VERSÃO 3.1.10.12
	-----------------------------------------------------------------------------------------------------------------------------------------------------
	*/

	EXEC('
		IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME = ''LXI_LJ_ETL_DADOS_MONITORIA'')
			drop trigger LXI_LJ_ETL_DADOS_MONITORIA
	')
	
	EXEC('IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''CLASSIF_FISCAL_IMPOSTO'' AND COLUMN_NAME = ''INATIVO'') 
	BEGIN
		ALTER TABLE [dbo].[CLASSIF_FISCAL_IMPOSTO] ADD INATIVO BIT NULL DEFAULT (0)
	END
	')

	EXEC('IF NOT EXISTS (SELECT 1 FROM CLASSIF_FISCAL_IMPOSTO WHERE INATIVO IS NULL) 
	BEGIN
		UPDATE [dbo].[CLASSIF_FISCAL_IMPOSTO] SET INATIVO = 0 WHERE INATIVO IS NULL 
	END
	')


	/*
	-----------------------------------------------------------------------------------------------------------------------------------------------------
	--	ALTERAÇÕES DE BANCO PARA A VERSÃO 3.1.10.14
	-----------------------------------------------------------------------------------------------------------------------------------------------------
	*/

	EXEC ('
		IF NOT EXISTS(SELECT TOP 1 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_INTERMEDIADORES_TRANSACAO'')
		BEGIN
			CREATE TABLE [dbo].[LOJA_INTERMEDIADORES_TRANSACAO](
				   [ID_INTERMEDIADOR] [int] NOT NULL,
				   [CNPJ] char(14) NOT NULL,
				   [NOME_FANTASIA] VARCHAR(40) NOT NULL,
				   [INATIVO] BIT DEFAULT 0 NOT NULl ,
				   [ENVIA_LOJA_VAREJO] [bit] DEFAULT 0 NOT NULL,
				   [DATA_PARA_TRANSFERENCIA]  DATETIME,
			CONSTRAINT [XPKLOJA_INTERMEDIADORES_TRANSACAO] PRIMARY KEY CLUSTERED 
			(
				   [ID_INTERMEDIADOR] ASC
			)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY],
			CONSTRAINT [XAKLOJA_INTERMEDIADORES_TRANSACAO] UNIQUE NONCLUSTERED 
			(
						[CNPJ] ASC
			)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
			) ON [PRIMARY]

			PRINT ''Criado a tabela LOJA_INTERMEDIADORES_TRANSACAO''
		END
	')

	EXEC('
		IF NOT EXISTS( SELECT 1 FROM SYS.sysobjects WHERE NAME = ''LOJA_INTERMEDIADORES_TRANSACAO_FILIAL'' )
		BEGIN
			CREATE TABLE [dbo].[LOJA_INTERMEDIADORES_TRANSACAO_FILIAL](
						[ID_INTERMEDIADOR] [int] NOT NULL,
						[COD_FILIAL] [char](6) NOT NULL,
						[IDCADINTTRAN] [varchar](60) NOT NULL,
						[INATIVO] [bit] DEFAULT 0 NOT NULL,
						[CODIGO_FILIAL] [char](6) NOT NULL,
			CONSTRAINT [XPKLOJA_INTERMEDIADORES_TRANSACAO_FILIAL] PRIMARY KEY CLUSTERED 
			(
						[ID_INTERMEDIADOR] ASC, [COD_FILIAL] ASC, [IDCADINTTRAN] ASC
			)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
			CONSTRAINT [XAKLOJA_INTERMEDIADORES_TRANSACAO_FILIAL] UNIQUE NONCLUSTERED 
			(
					[IDCADINTTRAN] ASC,
					[COD_FILIAL] ASC
			)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
			CONSTRAINT [XFK10001_LOJA_INTERMEDIADORES_TRANSACAO_FILIAL] FOREIGN KEY
			(
				[ID_INTERMEDIADOR]
			)
			REFERENCES [dbo].[LOJA_INTERMEDIADORES_TRANSACAO] ([ID_INTERMEDIADOR]) ON DELETE CASCADE,
			CONSTRAINT [XFK10002_LOJA_INTERMEDIADORES_TRANSACAO_FILIAL] FOREIGN KEY
			(
				[COD_FILIAL]
			)
			REFERENCES [dbo].[FILIAIS] ([COD_FILIAL])	
			) ON [PRIMARY]

			PRINT ''Criado a tabela LOJA_INTERMEDIADORES_TRANSACAO_FILIAL''
		END	
	')

	PRINT 'COMMIT';
	COMMIT;

END TRY
BEGIN CATCH

	PRINT 'ROLLBACK';
	ROLLBACK;

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

END CATCH









