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	
	')

	EXEC('
			IF NOT EXISTS( SELECT 1 FROM SYS.sysobjects WHERE NAME = ''LGPD_SOLICITACAO_RECEBIDA'' )
			BEGIN
				CREATE TABLE DBO.LGPD_SOLICITACAO_RECEBIDA 
				(
					ID_LGPD_SOLICITACAO_LOJA		INT					NOT NULL, -- PK
					TIPO_SOLICITACAO				CHAR(1)				NOT NULL, -- (A anonimizacao, E eliminação)
					CODIGO_FILIAL					CHAR(6)				NOT NULL, -- FK
					DOCUMENTO						VARCHAR(200)		NOT NULL,
					ID_LGPD_TIPO_DOCUMENTO          INT					NOT NULL,-- (1-CPF, 2-RG...)
					ID_LGPD_STATUS_PROCESSAMENTO	INT,						 -- 1,2,3 (PENDENTE, PARCIAL, FINALIZADO)
					MSG_RESULTADO_LOJA              VARCHAR(MAX),       
					DATA_SOLICITACAO				DATETIME			NOT NULL,
					DATA_PROCESSAMENTO				DATETIME,	
					DATA_PARA_TRANSFERENCIA			DATETIME,
					CONSTRAINT XPKLGPD_SOLICITACAO_RECEBIDA  PRIMARY KEY(ID_LGPD_SOLICITACAO_LOJA ),
					CONSTRAINT XFKLGPD_SOLICITACAO_RECEBIDA  FOREIGN KEY(CODIGO_FILIAL) REFERENCES DBO.LOJAS_VAREJO(CODIGO_FILIAL)
				)
			END		
	')

				EXEC('IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ''LOJA_VENDA_PROMOCAO'')
					Begin	
					 IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_VENDA_PROMOCAO''
						AND COLUMN_NAME = ''TIPO_MOTOR'')
						BEGIN	
							ALTER TABLE LOJA_VENDA_PROMOCAO
							ADD TIPO_MOTOR INT NULL  -- 1- RESHOP, 2- PROMO
						END	
			        End')


			  EXEC('IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ''LOJA_VENDA_PROMOCAO'')
					Begin 
					   IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_VENDA_PROMOCAO''
						AND COLUMN_NAME = ''NSU_TRANSACAO'')
						BEGIN
							ALTER TABLE LOJA_VENDA_PROMOCAO
							ADD NSU_TRANSACAO varchar(25) Null  
						END	
					End')


					EXEC('IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ''LOJA_VENDA'')
						Begin 
							IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''LOJA_VENDA''
							AND COLUMN_NAME = ''NSU_ACUMULO_FIDELIDADE'')
						BEGIN
							ALTER TABLE LOJA_VENDA
							ADD NSU_ACUMULO_FIDELIDADE varchar(15) Null  
						END	
					    End')


			exec(' IF NOT EXISTS (SELECT * FROM sysindexes WHERE name = ''XIE1_ETL_CLIENTES_VAREJO_EMPRESA'' AND id = object_id(''CLIENTES_VAREJO_EMPRESA''))
					BEGIN
						CREATE NONCLUSTERED INDEX [XIE1_ETL_CLIENTES_VAREJO_EMPRESA]
						ON [dbo].[CLIENTES_VAREJO_EMPRESA] ([CODIGO_CLIENTE])
						WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, 
						ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
					END ')
					


	PRINT 'COMMIT';
	COMMIT;

END TRY
BEGIN CATCH

	PRINT 'ROLLBACK';
	ROLLBACK;

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

END CATCH









