/*
	CRIAÇÃO DA VIEW FX_MONTA_FILTRO_REDE_ETL
*/
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('FX_MONTA_FILTRO_REDE_ETL', 'FN') IS NOT NULL 
	DROP FUNCTION  dbo.FX_MONTA_FILTRO_REDE_ETL
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('

	CREATE FUNCTION dbo.FX_MONTA_FILTRO_REDE_ETL(@REDE_LOJAS CHAR(6))
	RETURNS VARCHAR(MAX)
	AS
	BEGIN
		DECLARE @RedeLojas CHAR(6), 
				@RedeLojasProduto CHAR(6),
				@RedeLojasProdutoFiltro VARCHAR(MAX)
	
		DECLARE CUR_REDES CURSOR FAST_FORWARD FOR

		SELECT 
				REDE_LOJAS, 
				REDE_LOJAS_PRODUTO 
		FROM 
				LOJAS_REDE_PRODUTO
		WHERE 
				REDE_LOJAS = @REDE_LOJAS

		SELECT @RedeLojasProdutoFiltro = ''''

		OPEN CUR_REDES

		FETCH NEXT FROM CUR_REDES INTO @RedeLojas, @RedeLojasProduto

		WHILE @@FETCH_STATUS = 0

		BEGIN
		
			SELECT @RedeLojasProdutoFiltro = 
					@RedeLojasProdutoFiltro + (CASE LEN(@RedeLojasProdutoFiltro) WHEN 0 THEN '''' ELSE '','' END) + @RedeLojasProduto

			FETCH NEXT FROM CUR_REDES INTO @RedeLojas, @RedeLojasProduto
		
		END

		CLOSE CUR_REDES
		DEALLOCATE CUR_REDES
	
		RETURN Case @RedeLojasProdutoFiltro when '''' then null else @RedeLojasProdutoFiltro + '''' end 
	
END
')

GO

/*
	CRIAÇÃO DA VIEW VW_ETL_REPOSITORIO_PRODUTOS_PRECO_FILIAL
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('VW_ETL_REPOSITORIO_PRODUTOS_PRECO_FILIAL', 'V') IS NOT NULL 
	DROP VIEW [dbo].[VW_ETL_REPOSITORIO_PRODUTOS_PRECO_FILIAL]  
GO 

--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW DBO.VW_ETL_REPOSITORIO_PRODUTOS_PRECO_FILIAL
AS
       SELECT RP.TABELA AS TABELA,  RP.ID_ETL_TIPO AS ID_ETL_TIPO, RP.DATA_HORA_CRIACAO,RP.VERSAO,RP.ID,
                    SUBSTRING(RP.FILTRO, 17 + 1, 2) AS CODIGO_TAB_PRECO, 
                    SUBSTRING(RP.FILTRO, 34 + 1, 10) AS COR_PRODUTO, 
                    --SUBSTRING(EXTENT3.FILTRO, 54 + 1, 25) AS C3, 
                    REPLACE(SUBSTRING(RP.FILTRO,CHARINDEX(''{#}FILIAL'',RP.FILTRO), CHARINDEX(''{#}PRODUTO'',RP.FILTRO)-CHARINDEX(''{#}FILIAL'',RP.FILTRO)),''{#}FILIAL='','''') AS FILIAL,
                    REPLACE(SUBSTRING(RP.FILTRO, CHARINDEX(''{#}PRODUTO'',RP.FILTRO), 11 + 12),''{#}PRODUTO='','''') AS PRODUTO
       FROM         DBO.LJ_ETL_REPOSITORIO AS RP
       WHERE  (''PRODUTOS_PRECO_FILIAL'' = RP.TABELA) 
')
GO

/*
	CRIAÇÃO DA VIEW W_ETL_PRODUTOS_PRECO_FILIAL
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('W_ETL_PRODUTOS_PRECO_FILIAL', 'V') IS NOT NULL 
	DROP VIEW [dbo].[W_ETL_PRODUTOS_PRECO_FILIAL]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_ETL_PRODUTOS_PRECO_FILIAL]
AS

SELECT 
PPF.CODIGO_TAB_PRECO
,LEFT(PPF.FILIAL +  REPLICATE('' '', 25), 25) AS FILIAL
,PPF.PRODUTO
,PPF.COR_PRODUTO
,P.ENVIA_LOJA_VAREJO
,P.INATIVO
,P.REDE_LOJAS
,P.TIPO_STATUS_PRODUTO
,PPF.PRECO1
,PPF.PRECO2
,PPF.PRECO3
,PPF.PRECO4
,PPF.DATA_PARA_TRANSFERENCIA
,PPF.MARK_UP_PREVISTO
,PPF.PROMOCAO_DESCONTO
,PPF.INICIO_PROMOCAO
,PPF.FIM_PROMOCAO
,PPF.FATOR_PRECO_BASE
,PPF.PRECO_LIQUIDO1
,PPF.PRECO_LIQUIDO2
,PPF.PRECO_LIQUIDO3
,PPF.PRECO_LIQUIDO4
,PPF.LX_STATUS_REGISTRO
,PPF.LX_HASH
FROM PRODUTOS_PRECO_FILIAL PPF
INNER JOIN PRODUTOS_PRECO_FILIAL_LOG PPFL ON PPFL.COR_PRODUTO = PPF.COR_PRODUTO 
AND PPFL.FILIAL = PPF.FILIAL
AND PPFL.CODIGO_TAB_PRECO = PPF.CODIGO_TAB_PRECO
AND PPFL.PRODUTO = PPF.PRODUTO
INNER JOIN PRODUTOS P ON P.PRODUTO = PPFL.PRODUTO

')
GO

/*
	CRIAÇÃO DA VIEW W_LJ_LX_ETL_PARAMETRO_FILIAL
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('W_LJ_LX_ETL_PARAMETRO_FILIAL', 'V') IS NOT NULL 
	DROP VIEW [dbo].[W_LJ_LX_ETL_PARAMETRO_FILIAL]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [DBO].[W_LJ_LX_ETL_PARAMETRO_FILIAL]

AS  

	SELECT	B.CODIGO_FILIAL, 
			C.COD_FILIAL,
			LEFT(B.FILIAL +  REPLICATE('' '', 25), 25) AS FILIAL,
			C.EMPRESA, 
			ISNULL(dbo.FX_MONTA_FILTRO_REDE_ETL(C.REDE_LOJAS), ISNULL(C.REDE_LOJAS,'''')) AS REDE_LOJAS,
			ISNULL(V.VERSAO,'''') AS VALOR_ATUAL,
			ISNULL(C.REDE_LOJAS,'''') AS REDE_LOJAS_FILIAL,
			ISNULL(F.UF, '''') AS UF
	FROM LOJAS_VAREJO B			
	INNER JOIN FILIAIS C ON B.FILIAL = C.FILIAL
	INNER JOIN LJ_ETL_VERSAO_LOJA V ON V.CODIGO_FILIAL = B.CODIGO_FILIAL AND V.INATIVO = 0
	LEFT JOIN CADASTRO_CLI_FOR F ON F.CLIFOR = C.CLIFOR
	WHERE V.INATIVO = 0 OR V.INATIVO IS NULL

')
GO

/*
	CRIAÇÃO DA VIEW W_LJ_LX_ETL_AGRUPAMENTO_CRITICAS
*/

--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'W_LJ_LX_ETL_AGRUPAMENTO_CRITICAS')
		DROP VIEW W_LJ_LX_ETL_AGRUPAMENTO_CRITICAS
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_LJ_LX_ETL_AGRUPAMENTO_CRITICAS]
AS
SELECT        P.ID_ETL_ARQUIVO, A.CODIGO_FILIAL, F.FILIAL, A.ID_ETL_TIPO, T.DESC_ETL_TIPO, P.CRITICA_PROCESSO, P.DATA_HORA_PROCESSO
FROM            dbo.LJ_ETL_PROCESSO AS P with(nolock)
INNER JOIN dbo.LJ_ETL_ARQUIVO AS A  with(nolock) ON A.ID_ETL_ARQUIVO = P.ID_ETL_ARQUIVO 
INNER JOIN dbo.FILIAIS AS F  with(nolock) ON F.COD_FILIAL = A.CODIGO_FILIAL 
INNER JOIN dbo.LJ_LX_ETL_TIPO AS T  with(nolock) ON T.ID_ETL_TIPO = A.ID_ETL_TIPO

')
GO

/*
	CRIAÇÃO DA VIEW W_LJ_LX_ETL_ESTATISTICA
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'W_LJ_LX_ETL_ESTATISTICA')
		DROP VIEW W_LJ_LX_ETL_ESTATISTICA
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_LJ_LX_ETL_ESTATISTICA]
AS 
select e.CODIGO_FILIAL, f.filial,e.ID_ETL_TIPO, t.DESC_ETL_TIPO , e.DATA_ESTATISTICA, e.QTDE_ERRO, e.QTDE_PROCESSADA, e.DATA_HORA_ULTIMO_PROCESSO
from LJ_ETL_ESTATISTICA e 
inner join FILIAIS f on f.COD_FILIAL = e.CODIGO_FILIAL 
INNER JOIN LJ_LX_ETL_TIPO AS T with(nolock) ON T.ID_ETL_TIPO = e.ID_ETL_TIPO
')
GO

/*
	CRIAÇÃO DA VIEW W_LJ_LX_ETL_FILA_PROCESSAR_PENDENCIA
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'W_LJ_LX_ETL_FILA_PROCESSAR_PENDENCIA')
		DROP VIEW W_LJ_LX_ETL_FILA_PROCESSAR_PENDENCIA
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_LJ_LX_ETL_FILA_PROCESSAR_PENDENCIA]
AS
SELECT A.ID_ETL_TIPO, T.DESC_ETL_TIPO, A.CODIGO_FILIAL, F.FILIAL, A.ID_ETL_ARQUIVO, DATALENGTH(A.XML_ARQUIVO) / 1024 AS [TAMANHO KB], CAST(A.DATA_HORA_CRIACAO AS DATE) AS DATA, 
                         DATEPART(HOUR, A.DATA_HORA_CRIACAO) AS HORA, A.PROCESSADO, A.DATA_HORA_PROXIMO_PROCESSO, A.VERSAO
FROM dbo.LJ_ETL_ARQUIVO AS A WITH(NOLOCK) 
INNER JOIN dbo.FILIAIS AS F  WITH(NOLOCK) ON F.COD_FILIAL = A.CODIGO_FILIAL 
INNER JOIN dbo.LJ_LX_ETL_TIPO AS T  WITH(NOLOCK) ON T.ID_ETL_TIPO = A.ID_ETL_TIPO
WHERE A.PROCESSADO IN (1,2)


')
GO

/*
	CRIAÇÃO DA VIEW W_LJ_LX_ETL_FILA_PROCESSAR
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'W_LJ_LX_ETL_FILA_PROCESSAR')
		DROP VIEW W_LJ_LX_ETL_FILA_PROCESSAR
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_LJ_LX_ETL_FILA_PROCESSAR]
AS
SELECT        A.ID_ETL_TIPO, T.DESC_ETL_TIPO, A.CODIGO_FILIAL, F.FILIAL, A.ID_ETL_ARQUIVO, DATALENGTH(A.XML_ARQUIVO) / 1024 AS [TAMANHO KB], CAST(A.DATA_HORA_CRIACAO AS DATE) AS DATA, 
                         DATEPART(HOUR, A.DATA_HORA_CRIACAO) AS HORA, A.PROCESSADO, A.DATA_HORA_PROXIMO_PROCESSO, A.VERSAO
FROM            dbo.LJ_ETL_ARQUIVO AS A INNER JOIN
                         dbo.FILIAIS AS F ON F.COD_FILIAL = A.CODIGO_FILIAL INNER JOIN
                         dbo.LJ_LX_ETL_TIPO AS T ON T.ID_ETL_TIPO = A.ID_ETL_TIPO


')
GO

/*
	CRIAÇÃO DA VIEW W_LJ_ETL_PRODUTOS_FILIAL
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'W_LJ_ETL_PRODUTOS_FILIAL')
	DROP VIEW W_LJ_ETL_PRODUTOS_FILIAL
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_LJ_ETL_PRODUTOS_FILIAL]

AS
	SELECT		P.PRODUTO,  PP.CODIGO_TAB_PRECO, LEFT(F.FILIAL +  REPLICATE('' '', 25), 25) AS FILIAL
		FROM	PRODUTOS P
				INNER JOIN PRODUTOS_PRECOS PP ON P.PRODUTO = PP.PRODUTO
				INNER JOIN TABELAS_PRECO TP ON TP.CODIGO_TAB_PRECO = PP.CODIGO_TAB_PRECO
				INNER JOIN TABELAS_PRECO_FILIAL TPF ON TPF.CODIGO_TAB_PRECO = TP.CODIGO_TAB_PRECO
				INNER JOIN FILIAIS F ON TPF.FILIAL = F.FILIAL
		WHERE	P.ENVIA_LOJA_VAREJO = 1 AND P.NAO_ENVIA_ETL = 0 AND (P.TIPO_STATUS_PRODUTO = 3 OR P.INATIVO = 1)
				AND TP.ENVIA_LOJA_VAREJO = 1
				AND TP.INATIVO = 0
				AND TPF.INATIVO = 0	

')
GO

/*
	CRIAÇÃO DA VIEW W_ETL_LOJA_VENDEDORES
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('W_ETL_LOJA_VENDEDORES', 'V') IS NOT NULL 
	DROP VIEW [dbo].[W_ETL_LOJA_VENDEDORES]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_ETL_LOJA_VENDEDORES]
	AS  
		SELECT
			VENDEDOR
			,A.CODIGO_FILIAL
			,VENDEDOR_APELIDO
			,NOME_VENDEDOR
			,OPERA_CAIXA
			,COMISSAO
			,RG
			,ENDERECO
			,COMPLEMENTO
			,CIDADE
			,UF
			,CEP
			,TELEFONE
			,CPF
			,GERENTE
			,UPPER(sys.fn_varbintohexstr(CONVERT(VARBINARY(256), SENHA))) AS SENHA
			,DATA_DESATIVACAO
			,DATA_ATIVACAO
			,A.DATA_PARA_TRANSFERENCIA
			,DESC_CARGO
			,ACESSO_GERENCIAL
			,CHECKSUM
			,COMISSAO_CLIENTE_AUSENTE
			,ID_PERFIL
			,LX_STATUS_VENDEDOR
			,EMAIL
			,ID_VENDEDOR
			,EMPRESA
		FROM LOJA_VENDEDORES A WITH(NOLOCK)
			INNER JOIN LJ_ETL_VERSAO_LOJA B WITH(NOLOCK)
				ON A.CODIGO_FILIAL = B.CODIGO_FILIAL
			INNER JOIN LOJAS_VAREJO C WITH(NOLOCK)
				ON A.CODIGO_FILIAL = C.CODIGO_FILIAL
			INNER JOIN FILIAIS D WITH(NOLOCK)
				ON C.FILIAL = D.FILIAL
			WHERE B.INATIVO =0
')
GO

/*
	CRIAÇÃO DA VIEW W_LJ_LX_ETL_ESTATISTICA_ARQUIVO
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('W_LJ_LX_ETL_ESTATISTICA_ARQUIVO', 'V') IS NOT NULL 
	DROP VIEW [dbo].[W_LJ_LX_ETL_ESTATISTICA_ARQUIVO]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_LJ_LX_ETL_ESTATISTICA_ARQUIVO]
AS 

SELECT A.ID_ETL_ARQUIVO, A.ID_ETL_TIPO, T.DESC_ETL_TIPO,  
A.CODIGO_FILIAL, F.FILIAL, CAST(DATA_ESTATISTICA AS DATE) AS DATA_ESTATISTICA, 
A.DATA_HORA_INICIO, A.DATA_HORA_FIM, DATEDIFF(SECOND, DATA_HORA_INICIO, DATA_HORA_FIM) SEGUNDOS, A.QTDE_REGISTROS, A.SUCESSO , 
DATEPART(HOUR,  A.DATA_HORA_INICIO) AS HORA, DATEPART(MONTH,  A.DATA_HORA_INICIO) MES, DATEPART(DAY,  A.DATA_HORA_INICIO) DIA 
FROM LJ_ETL_ESTATISTICA_ARQUIVO A 
INNER JOIN  LJ_LX_ETL_TIPO T ON T.ID_ETL_TIPO = A.ID_ETL_TIPO
INNER JOIN FILIAIS F ON F.COD_FILIAL = A.CODIGO_FILIAL

')
GO

/*
	CRIAÇÃO DA VIEW W_ETL_CTB_VALE_PRODUTO
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('W_ETL_CTB_VALE_PRODUTO', 'V') IS NOT NULL 
	DROP VIEW [dbo].[W_ETL_CTB_VALE_PRODUTO]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
CREATE VIEW [dbo].[W_ETL_CTB_VALE_PRODUTO] 
AS
SELECT
	CAST(ISNULL(A.LOJA_CHAVE, CAST(REPLICATE(''0'',2-LEN(A.EMPRESA))+RTRIM(CAST(A.EMPRESA AS VARCHAR(2)))+''-''+ 
									REPLICATE(''0'',8-LEN(A.LANCAMENTO))+RTRIM(CAST(A.LANCAMENTO AS VARCHAR(8)))+''-''+
									REPLICATE(''0'',3-LEN(A.ITEM))+RTRIM(CAST(A.ITEM AS VARCHAR(3)))+''-''+
									RTRIM(CAST(A.SUB_ITEM AS VARCHAR(3))) AS VARCHAR(40))) AS VARCHAR(40)) AS CHAVE_RETAGUARDA,	

	A.AVISO_LANCAMENTO AS NUMERO_TITULO, 
	A.LOJA_CHAVE AS CHEQUE_CARTAO,
	E.FILIAL AS FILIAL, 
	A.CODIGO_CONSUMIDOR AS CODIGO_CLIENTE, 
	A.EMISSAO AS EMISSAO, 
	A.AVISO_LANCAMENTO AS DOCUMENTO, 
	A.VENCIMENTO_REAL AS VENCIMENTO,
	B.VALOR_ORIGINAL_PADRAO AS VALOR_ORIGINAL, 
	B.VALOR_AVISO_PADRAO AS VALOR_EM_ABERTO, 
	CASE WHEN (SELECT CAST(VALOR_ATUAL AS INT) FROM PARAMETROS WHERE PARAMETRO = ''MOVIMENTO_PADRAO'') = D.TIPO_MOVIMENTO THEN 1 ELSE 0 END AS LOCALIDADE,
    F.CODIGO_FILIAL AS CODIGO_FILIAL,
	A.DATA_PARA_TRANSFERENCIA AS DATA_PARA_TRANSFERENCIA,
	A.EMPRESA AS EMPRESA,
	A.LANCAMENTO AS LANCAMENTO,
	A.ITEM AS ITEM,
	A.SUB_ITEM AS SUB_ITEM

FROM	CTB_AVISO_LANCAMENTO A
		INNER JOIN W_CTB_AVISO_LANCAMENTO_SALDO	B ON 
			(
				A.EMPRESA 	= B.EMPRESA
				AND A.LANCAMENTO 	= B.LANCAMENTO
				AND A.ITEM 		= B.ITEM
				AND A.SUB_ITEM 	= B.SUB_ITEM
			)
		INNER JOIN CTB_LANCAMENTO_ITEM C ON 
			(
				A.EMPRESA = C.EMPRESA
				AND A.LANCAMENTO = C.LANCAMENTO
				AND A.ITEM = C.ITEM		 
			)
		INNER JOIN CTB_LANCAMENTO D ON  
			(
				C.EMPRESA = D.EMPRESA 
				AND C.LANCAMENTO = D.LANCAMENTO
			)
		LEFT  JOIN FILIAIS E ON 
			(
				D.COD_FILIAL = E.COD_FILIAL 
			)
		LEFT JOIN LOJAS_VAREJO F ON 
			(
				E.FILIAL = F.FILIAL
			)
WHERE A.LOJA_CHAVE IS NOT NULL

')
GO

/*
	CRIAÇÃO DA VIEW W_ETL_ESTOQUE_PRODUTO
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('W_ETL_ESTOQUE_PRODUTO', 'V') IS NOT NULL 
	DROP VIEW [dbo].[W_ETL_ESTOQUE_PRODUTO]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC(
 'Create VIEW [dbo].[W_ETL_ESTOQUE_PRODUTO]  

 --13/02/2025 - WENDEL CRESPIGIO - ENTERMODA-16567 - #1# - TRATAMENTO PARA PASSAR A VERIFICAR O PARAMETRO CONSIDERA_TRANSITO_ESTOQ USANDO A FUNCTION  [FN_GETPARAMETER] QUE VALIDA O PARAMETRO EM PARAMETROS , PARAMETROS_LOJA E PARAMETROS_LOJA_TERMINAL.
 --OBS - Nao existe ENTRADA_CONFERIDA =2 foi colocado 2 de proposito para ele nao somar.
 AS  
 SELECT  [ESTOQUE_PRODUTOS].[ID] AS [ID],   
    [ESTOQUE_PRODUTOS].[EMPRESA] AS [EMPRESA],  
    [ESTOQUE_PRODUTOS].[FILIAL] AS [FILIAL],   
    [ESTOQUE_PRODUTOS].[REDE_LOJAS] AS [REDE_LOJAS],  
    [ESTOQUE_PRODUTOS].[PRODUTO] AS [PRODUTO],   
    [ESTOQUE_PRODUTOS].[COR_PRODUTO] AS [COR_PRODUTO],   
    [ESTOQUE_PRODUTOS].[CUSTO_MEDIO1] AS [CUSTO_MEDIO1],   
    [ESTOQUE_PRODUTOS].[CUSTO_MEDIO2] AS [CUSTO_MEDIO2],   
    [ESTOQUE_PRODUTOS].[CUSTO_MEDIO3] AS [CUSTO_MEDIO3],   
    [ESTOQUE_PRODUTOS].[CUSTO_MEDIO4] AS [CUSTO_MEDIO4],   
    [ESTOQUE_PRODUTOS].[DATA_CUSTO_MEDIO] AS [DATA_CUSTO_MEDIO],   
    [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO1] AS [ULTIMO_CUSTO1],   
    [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO2] AS [ULTIMO_CUSTO2],   
    [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO3] AS [ULTIMO_CUSTO3],   
    [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO4] AS [ULTIMO_CUSTO4],   
    [ESTOQUE_PRODUTOS].[DATA_ULT_CUSTO] AS [DATA_ULT_CUSTO],   
    [ESTOQUE_PRODUTOS].[ULTIMA_ENTRADA] AS [ULTIMA_ENTRADA],   
    [ESTOQUE_PRODUTOS].[ULTIMA_SAIDA] AS [ULTIMA_SAIDA],   
    [ESTOQUE_PRODUTOS].[DATA_AJUSTE] AS [DATA_AJUSTE],   
    [ESTOQUE_PRODUTOS].[DATA_PARA_TRANSFERENCIA] AS [DATA_PARA_TRANSFERENCIA],   
    [ESTOQUE_PRODUTOS].[LX_HASH] AS [LX_HASH],   
    [ESTOQUE_PRODUTOS].[ES1] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN1] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN1] END) AS [ES1],   
    [ESTOQUE_PRODUTOS].[ES2] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN2] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN2] END) AS [ES2],   
    [ESTOQUE_PRODUTOS].[ES3] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN3] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN3] END) AS [ES3],   
    [ESTOQUE_PRODUTOS].[ES4] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN4] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN4] END) AS [ES4],   
    [ESTOQUE_PRODUTOS].[ES5] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN5] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN5] END) AS [ES5],   
    [ESTOQUE_PRODUTOS].[ES6] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN6] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN6] END) AS [ES6],   
    [ESTOQUE_PRODUTOS].[ES7] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN7] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN7] END) AS [ES7],   
    [ESTOQUE_PRODUTOS].[ES8] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN8] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN8] END) AS [ES8],   
    [ESTOQUE_PRODUTOS].[ES9] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN9] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN9] END) AS [ES9],   
    [ESTOQUE_PRODUTOS].[ES10] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN10] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN10] END) AS [ES10],   
    [ESTOQUE_PRODUTOS].[ES11] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN11] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN11] END) AS [ES11],  
    [ESTOQUE_PRODUTOS].[ES12] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN12] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN12] END) AS [ES12],  
    [ESTOQUE_PRODUTOS].[ES13] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN13] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN13] END) AS [ES13],  
    [ESTOQUE_PRODUTOS].[ES14] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN14] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN14] END) AS [ES14],   
    [ESTOQUE_PRODUTOS].[ES15] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN15] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN15] END) AS [ES15],   
    [ESTOQUE_PRODUTOS].[ES16] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN16] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN16] END) AS [ES16],   
    [ESTOQUE_PRODUTOS].[ES17] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN17] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN17] END) AS [ES17],   
    [ESTOQUE_PRODUTOS].[ES18] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN18] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN18] END) AS [ES18],   
    [ESTOQUE_PRODUTOS].[ES19] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN19] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN19] END) AS [ES19],   
    [ESTOQUE_PRODUTOS].[ES20] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN20] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN20] END) AS [ES20],   
    [ESTOQUE_PRODUTOS].[ES21] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN21] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN21] END) AS [ES21],   
    [ESTOQUE_PRODUTOS].[ES22] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN22] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN22] END) AS [ES22],   
    [ESTOQUE_PRODUTOS].[ES23] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN23] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN23] END) AS [ES23],   
    [ESTOQUE_PRODUTOS].[ES24] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN24] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN24] END) AS [ES24],   
    [ESTOQUE_PRODUTOS].[ES25] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN25] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN25] END) AS [ES25],   
    [ESTOQUE_PRODUTOS].[ES26] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN26] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN26] END) AS [ES26],   
    [ESTOQUE_PRODUTOS].[ES27] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN27] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN27] END) AS [ES27],   
    [ESTOQUE_PRODUTOS].[ES28] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN28] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN28] END) AS [ES28],   
    [ESTOQUE_PRODUTOS].[ES29] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN29] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN29] END) AS [ES29],   
    [ESTOQUE_PRODUTOS].[ES30] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN30] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN30] END) AS [ES30],   
    [ESTOQUE_PRODUTOS].[ES31] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN31] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN31] END) AS [ES31],   
    [ESTOQUE_PRODUTOS].[ES32] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN32] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN32] END) AS [ES32],   
    [ESTOQUE_PRODUTOS].[ES33] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN33] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN33] END) AS [ES33],   
    [ESTOQUE_PRODUTOS].[ES34] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN34] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN34] END) AS [ES34],   
    [ESTOQUE_PRODUTOS].[ES35] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN35] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN35] END) AS [ES35],   
    [ESTOQUE_PRODUTOS].[ES36] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN36] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN36] END) AS [ES36],   
    [ESTOQUE_PRODUTOS].[ES37] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN37] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN37] END) AS [ES37],   
    [ESTOQUE_PRODUTOS].[ES38] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN38] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN38] END) AS [ES38],   
    [ESTOQUE_PRODUTOS].[ES39] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN39] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN39] END) AS [ES39],   
    [ESTOQUE_PRODUTOS].[ES40] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN40] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN40] END) AS [ES40],   
    [ESTOQUE_PRODUTOS].[ES41] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN41] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN41] END) AS [ES41],   
    [ESTOQUE_PRODUTOS].[ES42] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN42] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN42] END) AS [ES42],   
    [ESTOQUE_PRODUTOS].[ES43] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN43] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN43] END) AS [ES43],   
    [ESTOQUE_PRODUTOS].[ES44] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN44] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN44] END) AS [ES44],   
    [ESTOQUE_PRODUTOS].[ES45] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN45] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN45] END) AS [ES45],   
    [ESTOQUE_PRODUTOS].[ES46] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN46] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN46] END) AS [ES46],   
    [ESTOQUE_PRODUTOS].[ES47] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN47] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN47] END) AS [ES47],   
    [ESTOQUE_PRODUTOS].[ES48] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[EN48] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN48] END) AS [ES48],   
    [ESTOQUE_PRODUTOS].[ESTOQUE] - (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[QTDE_ENTRADA] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[QTDE_ENTRADA] END) AS [ESTOQUE],   
    (CASE WHEN [LOJA_ENTRADAS_PRODUTO].[QTDE_ENTRADA] IS NULL THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[QTDE_ENTRADA] END) AS [QTDE_ENTRADA]  
  FROM (  
  
     SELECT  [ESTOQUE_PRODUTOS].[ID] AS [ID],   
        [ESTOQUE_PRODUTOS].[PRODUTO] AS [PRODUTO],   
        [ESTOQUE_PRODUTOS].[COR_PRODUTO] AS [COR_PRODUTO],   
        [ESTOQUE_PRODUTOS].[CUSTO_MEDIO1] AS [CUSTO_MEDIO1],   
        [ESTOQUE_PRODUTOS].[CUSTO_MEDIO2] AS [CUSTO_MEDIO2],   
        [ESTOQUE_PRODUTOS].[CUSTO_MEDIO3] AS [CUSTO_MEDIO3],   
        [ESTOQUE_PRODUTOS].[CUSTO_MEDIO4] AS [CUSTO_MEDIO4],   
        [ESTOQUE_PRODUTOS].[DATA_CUSTO_MEDIO] AS [DATA_CUSTO_MEDIO],   
        [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO1] AS [ULTIMO_CUSTO1],   
        [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO2] AS [ULTIMO_CUSTO2],   
        [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO3] AS [ULTIMO_CUSTO3],   
        [ESTOQUE_PRODUTOS].[ULTIMO_CUSTO4] AS [ULTIMO_CUSTO4],   
        [ESTOQUE_PRODUTOS].[DATA_ULT_CUSTO] AS [DATA_ULT_CUSTO],   
        [ESTOQUE_PRODUTOS].[ULTIMA_ENTRADA] AS [ULTIMA_ENTRADA],   
        [ESTOQUE_PRODUTOS].[ULTIMA_SAIDA] AS [ULTIMA_SAIDA],   
        [ESTOQUE_PRODUTOS].[DATA_AJUSTE] AS [DATA_AJUSTE],   
        [ESTOQUE_PRODUTOS].[DATA_PARA_TRANSFERENCIA] AS [DATA_PARA_TRANSFERENCIA],   
        [ESTOQUE_PRODUTOS].[LX_HASH] AS [LX_HASH],   
        [FILIAIS].[EMPRESA] AS [EMPRESA],  
        [PRODUTOS].[REDE_LOJAS] AS [REDE_LOJAS],  
        [ESTOQUE_PRODUTOS].[FILIAL] AS [FILIAL],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES1] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES1] END AS [ES1],  
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES2] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES2] END AS [ES2],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES3] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES3] END AS [ES3],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES4] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES4] END AS [ES4],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES5] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES5] END AS [ES5],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES6] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES6] END AS [ES6],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES7] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES7] END AS [ES7],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES8] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES8] END AS [ES8],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES9] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES9] END AS [ES9],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES10] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES10] END AS [ES10],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES11] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES11] END AS [ES11],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES12] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES12] END AS [ES12],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES13] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES13] END AS [ES13],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES14] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES14] END AS [ES14],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES15] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES15] END AS [ES15],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES16] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES16] END AS [ES16],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES17] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES17] END AS [ES17],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES18] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES18] END AS [ES18],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES19] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES19] END AS [ES19],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES20] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES20] END AS [ES20],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES21] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES21] END AS [ES21],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES22] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES22] END AS [ES22],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES23] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES23] END AS [ES23],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES24] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES24] END AS [ES24],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES25] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES25] END AS [ES25],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES26] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES26] END AS [ES26],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES27] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES27] END AS [ES27],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES28] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES28] END AS [ES28],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES29] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES29] END AS [ES29],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES30] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES30] END AS [ES30],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES31] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES31] END AS [ES31],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES32] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES32] END AS [ES32],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES33] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES33] END AS [ES33],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES34] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES34] END AS [ES34],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES35] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES35] END AS [ES35],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES36] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES36] END AS [ES36],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES37] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES37] END AS [ES37],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES38] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES38] END AS [ES38],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES39] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES39] END AS [ES39],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES40] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES40] END AS [ES40],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES41] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES41] END AS [ES41],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES42] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES42] END AS [ES42],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES43] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES43] END AS [ES43],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES44] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES44] END AS [ES44],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES45] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES45] END AS [ES45],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES46] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES46] END AS [ES46],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES47] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES47] END AS [ES47],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ES48] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ES48] END AS [ES48],   
        CASE WHEN ([ESTOQUE_PRODUTOS].[ESTOQUE] IS NULL) THEN 0 ELSE [ESTOQUE_PRODUTOS].[ESTOQUE] END AS [ESTOQUE]  
      FROM [dbo].[ESTOQUE_PRODUTOS]  
        INNER JOIN [dbo].[FILIAIS] ON [FILIAIS].[FILIAL] = [ESTOQUE_PRODUTOS].[FILIAL]  
        INNER JOIN [dbo].[PRODUTOS] ON [PRODUTOS].[PRODUTO] = [ESTOQUE_PRODUTOS].[PRODUTO]  
      WHERE ([PRODUTOS].[ENVIA_LOJA_VAREJO] = 1)   
        AND (PRODUTOS.NAO_ENVIA_ETL = 0)  
        AND ([PRODUTOS].[TIPO_STATUS_PRODUTO] = 3 OR [PRODUTOS].[INATIVO] = 1)   
  
    ) ESTOQUE_PRODUTOS  
    LEFT JOIN  (  
  
     SELECT   
        [LOJA_ENTRADAS_PRODUTO].[PRODUTO] AS [PRODUTO],   
        [LOJA_ENTRADAS_PRODUTO].[COR_PRODUTO] AS [COR_PRODUTO],   
        [LOJA_ENTRADAS_PRODUTO].[FILIAL] AS [FILIAL],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN1] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN1] END) AS [EN1],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN2] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN2] END) AS [EN2],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN3] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN3] END) AS [EN3],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN4] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN4] END) AS [EN4],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN5] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN5] END) AS [EN5],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN6] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN6] END) AS [EN6],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN7] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN7] END) AS [EN7],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN8] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN8] END) AS [EN8],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN9] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN9] END) AS [EN9],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN10] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN10] END) AS [EN10],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN11] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN11] END) AS [EN11],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN12] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN12] END) AS [EN12],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN13] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN13] END) AS [EN13],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN14] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN14] END) AS [EN14],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN15] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN15] END) AS [EN15],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN16] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN16] END) AS [EN16],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN17] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN17] END) AS [EN17],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN18] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN18] END) AS [EN18],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN19] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN19] END) AS [EN19],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN20] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN20] END) AS [EN20],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN21] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN21] END) AS [EN21],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN22] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN22] END) AS [EN22],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN23] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN23] END) AS [EN23],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN24] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN24] END) AS [EN24],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN25] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN25] END) AS [EN25],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN26] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN26] END) AS [EN26],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN27] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN27] END) AS [EN27],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN28] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN28] END) AS [EN28],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN29] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN29] END) AS [EN29],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN30] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN30] END) AS [EN30],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN31] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN31] END) AS [EN31],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN32] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN32] END) AS [EN32],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN33] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN33] END) AS [EN33],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN34] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN34] END) AS [EN34],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN35] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN35] END) AS [EN35],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN36] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN36] END) AS [EN36],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN37] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN37] END) AS [EN37],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN38] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN38] END) AS [EN38],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN39] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN39] END) AS [EN39],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN40] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN40] END) AS [EN40],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN41] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN41] END) AS [EN41],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN42] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN42] END) AS [EN42],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN43] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN43] END) AS [EN43],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN44] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN44] END) AS [EN44],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN45] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN45] END) AS [EN45],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN46] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN46] END) AS [EN46],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN47] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN47] END) AS [EN47],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[EN48] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[EN48] END) AS [EN48],   
        SUM(CASE WHEN ([LOJA_ENTRADAS_PRODUTO].[QTDE_ENTRADA] IS NULL) THEN 0 ELSE [LOJA_ENTRADAS_PRODUTO].[QTDE_ENTRADA] END) AS [QTDE_ENTRADA]  
      FROM [dbo].[LOJA_ENTRADAS_PRODUTO]  
        INNER JOIN [dbo].[LOJA_ENTRADAS] ON ([LOJA_ENTRADAS_PRODUTO].[ROMANEIO_PRODUTO] = [LOJA_ENTRADAS].[ROMANEIO_PRODUTO]) AND ([LOJA_ENTRADAS_PRODUTO].[FILIAL] = [LOJA_ENTRADAS].[FILIAL])  
        INNER JOIN [dbo].[PRODUTOS] ON [PRODUTOS].[PRODUTO] = [LOJA_ENTRADAS_PRODUTO].[PRODUTO]  
		INNER JOIN [dbo].[LOJAS_VAREJO] LOJAS_VAREJO          -- #1#
		ON LOJAS_VAREJO.FILIAL = LOJA_ENTRADAS_PRODUTO.FILIAL -- #1#
       WHERE [LOJA_ENTRADAS].[ENTRADA_CONFERIDA] = CASE WHEN (SELECT COALESCE(VALOR_ATUAL,''.F.'') FROM [DBO].[FN_GETPARAMETER](LOJAS_VAREJO.CODIGO_FILIAL,''001'',''CONSIDERA_TRANSITO_ESTOQ'')) = ''.T.'' THEN 0 ELSE 2 END -- #1#
        AND ([PRODUTOS].[ENVIA_LOJA_VAREJO] = 1)   
        AND (PRODUTOS.NAO_ENVIA_ETL = 0)  
        AND ([PRODUTOS].[TIPO_STATUS_PRODUTO] = 3 OR [PRODUTOS].[INATIVO] = 1)   
      GROUP BY [LOJA_ENTRADAS_PRODUTO].[FILIAL], [LOJA_ENTRADAS_PRODUTO].[PRODUTO], [LOJA_ENTRADAS_PRODUTO].[COR_PRODUTO]) 
	  LOJA_ENTRADAS_PRODUTO ON ([ESTOQUE_PRODUTOS].[PRODUTO] = [LOJA_ENTRADAS_PRODUTO].[PRODUTO]) AND ([ESTOQUE_PRODUTOS].[FILIAL] = [LOJA_ENTRADAS_PRODUTO].[FILIAL]) AND ([ESTOQUE_PRODUTOS].[COR_PRODUTO] = [LOJA_ENTRADAS_PRODUTO].[COR_PRODUTO])
')
GO

/*
	CRIAÇÃO DA VIEW VW_ETL_CONTROLE_SALDO_ST
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('VW_ETL_CONTROLE_SALDO_ST', 'V') IS NOT NULL 
	DROP VIEW [dbo].[VW_ETL_CONTROLE_SALDO_ST]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS(Select Top 1 1 From Information_Schema.Tables where Table_Name = 'CONTROLE_SALDO_ST')
BEGIN

	EXEC('

		CREATE VIEW [dbo].[VW_ETL_CONTROLE_SALDO_ST]
		AS
		SELECT			ID, FILIAL, ITEM, COR_ITEM, EMPRESA, TAMANHO, ID_IMPOSTO, QTDE_TOTAL, 
						BASE_IMPOSTO, MEDIA_BASE_IMPOSTO, DATA_FECHAMENTO, DATA_REPROCESSADO, 
						COD_TABELA_FILHA, AJUSTE_MANUAL, BASE_IMPOSTO_ULT_NOTA, DATA_PARA_TRANSFERENCIA, VALOR_UN_ICMS_SUBSTITUTO, VALOR_UN_ICMS_SUBSTITUTO_ULT_NOTA
		FROM            dbo.CONTROLE_SALDO_ST

	')

END
GO

/*
	CRIAÇÃO DA VIEW VW_ETL_CONTROLE_SALDO_ST_UF
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF OBJECT_ID ('VW_ETL_CONTROLE_SALDO_ST_UF', 'V') IS NOT NULL 
	DROP VIEW [dbo].[VW_ETL_CONTROLE_SALDO_ST_UF]  
GO 
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS(Select Top 1 1 From Information_Schema.Tables where Table_Name = 'CONTROLE_SALDO_ST')
BEGIN
	EXEC('

		CREATE VIEW [dbo].[VW_ETL_CONTROLE_SALDO_ST_UF]
		AS
		SELECT        ID, UF, EMPRESA, FILIAL, UTIL_SALDO_ST_MEDIA, DATA_PARA_TRANSFERENCIA
		FROM            dbo.CONTROLE_SALDO_ST_UF

	')
END
GO

/*
	CRIAÇÃO DA VIEW VW_LJ_ENT_FISCAL_ITEM
*/

/*
IF OBJECT_ID ('VW_LJ_ENT_FISCAL_ITEM', 'V') IS NOT NULL 
	DROP VIEW [dbo].[VW_LJ_ENT_FISCAL_ITEM]
GO 

EXEC('
	CREATE VIEW [dbo].[VW_LJ_ENT_FISCAL_ITEM]
	AS
	-- GILVANO - 20/06/2018 - DM79983 - #2# - ENVIO DO CUSTO PARA LOJA QUANDO O PROCESSO DE DEVOLUÇÃO LOCAL
	-- GILVANO - 31/10/2016 - ID414 - #1# - PROJETO DEVOLUÇÃO MASSIVA.

	SELECT	A.NF_ENTRADA, A.NOME_CLIFOR, A.SERIE_NF_ENTRADA, A.CODIGO_ITEM, A.ITEM_IMPRESSAO, A.SUB_ITEM_TAMANHO,
			A.QTDE_ITEM, A.QTDE_DEVOLVIDA, A.ID_EXCECAO_IMPOSTO, B.AGRUPAMENTO_ITENS,		
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L'' 
					THEN CASE WHEN ISNULL(D.CUSTO1,0) = 0
						THEN D.CUSTO1 ELSE D.CUSTO1 - ISNULL(D.DESCONTO_ITEM,0) END 
					ELSE NULL END AS CUSTO1, --#2#
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L'' 
					THEN CASE WHEN ISNULL(D.CUSTO2,0) = 0 
						THEN D.CUSTO2 ELSE D.CUSTO2 - ISNULL(D.DESCONTO_ITEM,0) END 
					ELSE NULL END AS CUSTO2, --#2#
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L'' 
					THEN CASE WHEN ISNULL(D.CUSTO3,0) = 0 
						THEN D.CUSTO3 ELSE D.CUSTO3 - ISNULL(D.DESCONTO_ITEM,0) END 
					ELSE NULL END AS CUSTO3, --#2#
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L'' 
					THEN CASE WHEN ISNULL(D.CUSTO4,0) = 0 
						THEN D.CUSTO4 ELSE D.CUSTO3 - ISNULL(D.DESCONTO_ITEM,0) END 
					ELSE NULL END AS CUSTO4, --#2#
			(A.PRECO_UNITARIO - A.DESCONTO_ITEM) AS PRECO_UNITARIO_NF,
			D.COR_PRODUTO, D.PRODUTO, C.ROMANEIO_PRODUTO, A.DATA_PARA_TRANSFERENCIA, B.FILIAL,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 1 THEN D.EN_1 ELSE 0 END AS EN1, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 2 THEN D.EN_2 ELSE 0 END AS EN2,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 3 THEN D.EN_3 ELSE 0 END AS EN3,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 4 THEN D.EN_4 ELSE 0 END AS EN4,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 5 THEN D.EN_5 ELSE 0 END AS EN5,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 6 THEN D.EN_6 ELSE 0 END AS EN6,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 7 THEN D.EN_7 ELSE 0 END AS EN7,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 8 THEN D.EN_8 ELSE 0 END AS EN8,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 9 THEN D.EN_9 ELSE 0 END AS EN9,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 10 THEN D.EN_10 ELSE 0 END AS EN10, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 11 THEN D.EN_11 ELSE 0 END AS EN11,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 12 THEN D.EN_12 ELSE 0 END AS EN12,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 13 THEN D.EN_13 ELSE 0 END AS EN13,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 14 THEN D.EN_14 ELSE 0 END AS EN14,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 15 THEN D.EN_15 ELSE 0 END AS EN15,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 16 THEN D.EN_16 ELSE 0 END AS EN16,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 17 THEN D.EN_17 ELSE 0 END AS EN17,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 18 THEN D.EN_18 ELSE 0 END AS EN18,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 19 THEN D.EN_19 ELSE 0 END AS EN19,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 20 THEN D.EN_20 ELSE 0 END AS EN20,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 21 THEN D.EN_21 ELSE 0 END AS EN21, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 22 THEN D.EN_22 ELSE 0 END AS EN22,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 23 THEN D.EN_23 ELSE 0 END AS EN23,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 24 THEN D.EN_24 ELSE 0 END AS EN24,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 25 THEN D.EN_25 ELSE 0 END AS EN25,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 26 THEN D.EN_26 ELSE 0 END AS EN26,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 27 THEN D.EN_27 ELSE 0 END AS EN27,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 28 THEN D.EN_28 ELSE 0 END AS EN28,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 29 THEN D.EN_29 ELSE 0 END AS EN29,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 30 THEN D.EN_30 ELSE 0 END AS EN30, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 31 THEN D.EN_31 ELSE 0 END AS EN31, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 32 THEN D.EN_32 ELSE 0 END AS EN32,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 33 THEN D.EN_33 ELSE 0 END AS EN33,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 34 THEN D.EN_34 ELSE 0 END AS EN34,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 35 THEN D.EN_35 ELSE 0 END AS EN35,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 36 THEN D.EN_36 ELSE 0 END AS EN36,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 37 THEN D.EN_37 ELSE 0 END AS EN37,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 38 THEN D.EN_38 ELSE 0 END AS EN38,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 39 THEN D.EN_39 ELSE 0 END AS EN39,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 40 THEN D.EN_40 ELSE 0 END AS EN40,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 41 THEN D.EN_41 ELSE 0 END AS EN41, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 42 THEN D.EN_42 ELSE 0 END AS EN42,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 43 THEN D.EN_43 ELSE 0 END AS EN43,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 44 THEN D.EN_44 ELSE 0 END AS EN44,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 45 THEN D.EN_45 ELSE 0 END AS EN45,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 46 THEN D.EN_46 ELSE 0 END AS EN46,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 47 THEN D.EN_47 ELSE 0 END AS EN47,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 48 THEN D.EN_48 ELSE 0 END AS EN48
	FROM ENTRADAS B
	INNER JOIN ENTRADAS_ITEM A ON A.NF_ENTRADA = B.NF_ENTRADA AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA AND A.NOME_CLIFOR = B.NOME_CLIFOR
	INNER JOIN ESTOQUE_PROD_ENT C ON B.NOME_CLIFOR = C.NOME_CLIFOR AND B.NF_ENTRADA = C.NF_ENTRADA AND B.SERIE_NF_ENTRADA = C.SERIE_NF_ENTRADA
	INNER JOIN ESTOQUE_PROD1_ENT D ON C.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO AND C.FILIAL = D.FILIAL AND A.ITEM_IMPRESSAO = D.ITEM_IMPRESSAO
	INNER JOIN LOJAS_VAREJO E ON E.FILIAL = B.FILIAL --#2#
	WHERE (ISNULL(LTRIM(RTRIM(B.NF_ENTRADA)),'''') <> '''' OR ISNULL(LTRIM(RTRIM(B.SERIE_NF_ENTRADA)),'''') <> '''')

	UNION ALL
	SELECT	A.NF_ENTRADA, A.NOME_CLIFOR, A.SERIE_NF_ENTRADA, A.CODIGO_ITEM, A.ITEM_IMPRESSAO, A.SUB_ITEM_TAMANHO,
			A.QTDE_ITEM, A.QTDE_DEVOLVIDA, A.ID_EXCECAO_IMPOSTO, B.AGRUPAMENTO_ITENS,
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L''
				THEN D.PRECO1 ELSE 	NULL END AS CUSTO1, --#2#
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L''
				THEN D.PRECO2 ELSE 	NULL END AS CUSTO2, --#2#
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L''
				THEN D.PRECO3 ELSE 	NULL END AS CUSTO3, --#2#
			CASE WHEN ISNULL(DBO.FX_PARAMETRO_LOJA(''PROCESSO_DEVOLUCAO_LOJA'', E.CODIGO_FILIAL), ''L'') = ''L''
				THEN D.PRECO4 ELSE 	NULL END AS CUSTO4, --#2#
			(A.PRECO_UNITARIO - A.DESCONTO_ITEM) AS PRECO_UNITARIO_NF,
			D.COR_PRODUTO, D.PRODUTO, C.ROMANEIO_PRODUTO, A.DATA_PARA_TRANSFERENCIA, B.FILIAL,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 1 THEN D.EN1 ELSE 0 END AS EN1, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 2 THEN D.EN2 ELSE 0 END AS EN2,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 3 THEN D.EN3 ELSE 0 END AS EN3,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 4 THEN D.EN4 ELSE 0 END AS EN4,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 5 THEN D.EN5 ELSE 0 END AS EN5,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 6 THEN D.EN6 ELSE 0 END AS EN6,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 7 THEN D.EN7 ELSE 0 END AS EN7,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 8 THEN D.EN8 ELSE 0 END AS EN8,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 9 THEN D.EN9 ELSE 0 END AS EN9,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 10 THEN D.EN10 ELSE 0 END AS EN10, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 11 THEN D.EN11 ELSE 0 END AS EN11,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 12 THEN D.EN12 ELSE 0 END AS EN12,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 13 THEN D.EN13 ELSE 0 END AS EN13,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 14 THEN D.EN14 ELSE 0 END AS EN14,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 15 THEN D.EN15 ELSE 0 END AS EN15,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 16 THEN D.EN16 ELSE 0 END AS EN16,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 17 THEN D.EN17 ELSE 0 END AS EN17,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 18 THEN D.EN18 ELSE 0 END AS EN18,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 19 THEN D.EN19 ELSE 0 END AS EN19,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 20 THEN D.EN20 ELSE 0 END AS EN20,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 21 THEN D.EN21 ELSE 0 END AS EN21, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 22 THEN D.EN22 ELSE 0 END AS EN22,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 23 THEN D.EN23 ELSE 0 END AS EN23,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 24 THEN D.EN24 ELSE 0 END AS EN24,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 25 THEN D.EN25 ELSE 0 END AS EN25,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 26 THEN D.EN26 ELSE 0 END AS EN26,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 27 THEN D.EN27 ELSE 0 END AS EN27,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 28 THEN D.EN28 ELSE 0 END AS EN28,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 29 THEN D.EN29 ELSE 0 END AS EN29,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 30 THEN D.EN30 ELSE 0 END AS EN30, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 31 THEN D.EN31 ELSE 0 END AS EN31, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 32 THEN D.EN32 ELSE 0 END AS EN32,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 33 THEN D.EN33 ELSE 0 END AS EN33,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 34 THEN D.EN34 ELSE 0 END AS EN34,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 35 THEN D.EN35 ELSE 0 END AS EN35,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 36 THEN D.EN36 ELSE 0 END AS EN36,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 37 THEN D.EN37 ELSE 0 END AS EN37,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 38 THEN D.EN38 ELSE 0 END AS EN38,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 39 THEN D.EN39 ELSE 0 END AS EN39,  
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 40 THEN D.EN40 ELSE 0 END AS EN40,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 41 THEN D.EN41 ELSE 0 END AS EN41, 
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 42 THEN D.EN42 ELSE 0 END AS EN42,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 43 THEN D.EN43 ELSE 0 END AS EN43,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 44 THEN D.EN44 ELSE 0 END AS EN44,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 45 THEN D.EN45 ELSE 0 END AS EN45,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 46 THEN D.EN46 ELSE 0 END AS EN46,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 47 THEN D.EN47 ELSE 0 END AS EN47,
			CASE WHEN B.AGRUPAMENTO_ITENS = 0 OR A.SUB_ITEM_TAMANHO = 48 THEN D.EN48 ELSE 0 END AS EN48
	FROM ENTRADAS_ITEM A
	INNER JOIN ENTRADAS B ON A.NF_ENTRADA = B.NF_ENTRADA AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA AND A.NOME_CLIFOR = B.NOME_CLIFOR
	INNER JOIN LOJA_ENTRADAS C ON B.NOME_CLIFOR = C.NOME_CLIFOR AND B.NF_ENTRADA = C.NF_ENTRADA AND B.SERIE_NF_ENTRADA = C.SERIE_NF_ENTRADA 
	INNER JOIN LOJA_ENTRADAS_PRODUTO D ON C.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO AND C.FILIAL = D.FILIAL 
	INNER JOIN LOJAS_VAREJO E ON E.FILIAL = B.FILIAL --#2#
	WHERE (ISNULL(LTRIM(RtRIM(B.NF_ENTRADA)),'''') <> '''' OR ISNULL(LTRIM(RtRIM(B.SERIE_NF_ENTRADA)),'''') <> '''')
	AND ( CASE WHEN A.CODIGO_ITEM = D.PRODUTO THEN 1
				WHEN B.AGRUPAMENTO_ITENS != 0 AND A.REFERENCIA = D.PRODUTO THEN 1
			ELSE 0 END ) = 1
	AND C.STATUS_TRANSITO in (3,5)

')
GO
*/
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'AREZZO_XML_COMPRAS_LP' )
BEGIN
	IF OBJECT_ID ('W_ETL_AREZZO_XML_COMPRAS_LP', 'V') IS NOT NULL 
		DROP VIEW [dbo].[W_ETL_AREZZO_XML_COMPRAS_LP]
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'AREZZO_XML_COMPRAS_LP' )
BEGIN
	EXEC('
		CREATE VIEW W_ETL_AREZZO_XML_COMPRAS_LP 
		AS 
		SELECT A.ID,
				C.CODIGO_FILIAL,
				B.FILIAL,
				B.REDE_LOJAS,
				B.EMPRESA,
				A.XML_FILE,
				A.DATA_RECEBIMENTO,
				A.PROCESSADO,
				A.DATA_PROCESSADO,
				A.FILE_NAME,
				A.CNPJ_LOJA,
				A.CNPJ_FORNECEDOR,
				A.NUMERONF,
				A.SERIENF,
				A.CHAVE_NFE,
				A.PROTOCOLOCO_NF,
				A.DATA_AUTORIZACAO_NF,
				A.GSMDADOS 
		FROM [AREZZO_XML_COMPRAS_LP] AS A 
		INNER JOIN FILIAIS AS B ON A.CNPJ_LOJA = B.CGC_CPF
		INNER JOIN LOJAS_VAREJO C ON B.FILIAL = C.FILIAL	
	')
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_MONITORIA' )
BEGIN
	IF OBJECT_ID ('W_ETL_MONITORIA', 'V') IS NOT NULL 
		DROP VIEW [dbo].[W_ETL_MONITORIA]
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
	CREATE VIEW [DBO].[W_ETL_MONITORIA] 
	AS  

	SELECT MONITORIA.CODIGO_FILIAL, MONITORIA.FILIAL, MONITORIA.MES, MONITORIA.ANO, SUM(ISNULL(ETL.DIA_1,0) + MONITORIA.DIA_1) DIA_1, SUM(ISNULL(ETL.DIA_2,0) + MONITORIA.DIA_2) DIA_2,SUM(ISNULL(ETL.DIA_3,0) + MONITORIA.DIA_3) DIA_3,SUM(ISNULL(ETL.DIA_4,0) + MONITORIA.DIA_4) DIA_4,  
	SUM(ISNULL(ETL.DIA_5,0) + MONITORIA.DIA_5) DIA_5,SUM(ISNULL(ETL.DIA_6,0) + MONITORIA.DIA_6) DIA_6,SUM(ISNULL(ETL.DIA_7,0) + MONITORIA.DIA_7) DIA_7,SUM(ISNULL(ETL.DIA_8,0) + MONITORIA.DIA_8) DIA_8,SUM(ISNULL(ETL.DIA_9,0) + MONITORIA.DIA_9) DIA_9,  
	SUM(ISNULL(ETL.DIA_10,0) + MONITORIA.DIA_10) DIA_10,SUM(ISNULL(ETL.DIA_11,0) + MONITORIA.DIA_11) DIA_11,SUM(ISNULL(ETL.DIA_12,0) + MONITORIA.DIA_12) DIA_12,SUM(ISNULL(ETL.DIA_13,0) + MONITORIA.DIA_13) DIA_13,SUM(ISNULL(ETL.DIA_14,0) + MONITORIA.DIA_14) DIA_14,  
	SUM(ISNULL(ETL.DIA_15,0) + MONITORIA.DIA_15) DIA_15,SUM(ISNULL(ETL.DIA_16,0) + MONITORIA.DIA_16) DIA_16,SUM(ISNULL(ETL.DIA_17,0) + MONITORIA.DIA_17) DIA_17,SUM(ISNULL(ETL.DIA_18,0) + MONITORIA.DIA_18) DIA_18,SUM(ISNULL(ETL.DIA_19,0) + MONITORIA.DIA_19) DIA_19,  
	SUM(ISNULL(ETL.DIA_20,0) + MONITORIA.DIA_20) DIA_20,SUM(ISNULL(ETL.DIA_21,0) + MONITORIA.DIA_21) DIA_21,SUM(ISNULL(ETL.DIA_22,0) + MONITORIA.DIA_22) DIA_22,SUM(ISNULL(ETL.DIA_23,0) + MONITORIA.DIA_23) DIA_23,SUM(ISNULL(ETL.DIA_24,0) + MONITORIA.DIA_24) DIA_24,  
	SUM(ISNULL(ETL.DIA_25,0) + MONITORIA.DIA_25) DIA_25,SUM(ISNULL(ETL.DIA_26,0) + MONITORIA.DIA_26) DIA_26,SUM(ISNULL(ETL.DIA_27,0) + MONITORIA.DIA_27) DIA_27,SUM(ISNULL(ETL.DIA_28,0) + MONITORIA.DIA_28) DIA_28,SUM(ISNULL(ETL.DIA_29,0) + MONITORIA.DIA_29) DIA_29,  
	SUM(ISNULL(ETL.DIA_30,0) + MONITORIA.DIA_30) DIA_30,SUM(ISNULL(ETL.DIA_31,0) + MONITORIA.DIA_31) DIA_31  
	  FROM (  
  
	SELECT    
		 PDV.CODIGO_FILIAL, PDV.FILIAL, MONTH(PDV.DATA_MOVIMENTO) MES, YEAR(PDV.DATA_MOVIMENTO) ANO,      
  
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 1  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_1,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 2  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_2,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 3  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_3,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 4  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_4,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 5  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_5,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 6  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_6,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 7  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_7,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 8  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_8,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 9  AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_9,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 10 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_10,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 11 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_11,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 12 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_12,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 13 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_13,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 14 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_14,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 15 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_15,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 16 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_16,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 17 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_17,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 18 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_18,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 19 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_19,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 20 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_20,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 21 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_21,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 22 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_22,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 23 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_23,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 24 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_24,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 25 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_25,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 26 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_26,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 27 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_27,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 28 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_28,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 29 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_29,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 30 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_30,   
		 SUM(CASE  WHEN DAY(PDV.DATA_MOVIMENTO) = 31 AND VENDAS.DIVERGENCIA_VENDAS + SAT.DIVERGENCIA_SAT +  NF.DIVERGENCIA_NF + OMS.DIVERGENCIA_OMS + SAIDAS.DIVERGENCIA_SAIDAS + ENTRADAS.DIVERGENCIA_ENTRADAS + ECF.DIVERGENCIA_ECF + CAIXA.DIVERGENCIA_CAIXA > 0
	 THEN 1 ELSE 0 END) AS DIA_31   
		 FROM LJ_ETL_DADOS_MONITORIA PDV  
		 JOIN LJ_ETL_DADOS_MONITORIA ERP  
		 ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		 JOIN   
       
		 (  
		  SELECT PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		 WHEN  
		 SUM(PDV.QTDE_VENDAS_FIN - ERP.QTDE_VENDAS_FIN) +      
		 SUM(PDV.QTDE_VENDAS_CANC - ERP.QTDE_VENDAS_CANC) +      
		 SUM(PDV.QTDE_VENDA_PROD - ERP.QTDE_VENDA_PROD)  +      
		 SUM(PDV.QTDE_VENDA_PROD_CANC - ERP.QTDE_VENDA_PROD_CANC) +      
		 SUM(PDV.TOTAL_VENDA - ERP.TOTAL_VENDA) +      
		 SUM(PDV.TOTAL_PGTO - ERP.TOTAL_PGTO)  +      
		 SUM(PDV.TOTAL_PARCELAS - ERP.TOTAL_PARCELAS) +    
		 SUM(PDV.TOTAL_TROCA - ERP.TOTAL_TROCA) +  
		 SUM(PDV.QTDE_ITENS - ERP.QTDE_ITENS) +     
		 SUM(PDV.QTDE_ITENS_CANC - ERP.QTDE_ITENS_CANC)  <>0  
		 THEN 1  
		 ELSE   
		 0 END AS DIVERGENCIA_VENDAS  
		 FROM LJ_ETL_DADOS_MONITORIA PDV  
		 JOIN LJ_ETL_DADOS_MONITORIA ERP  
		 ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		 AND PDV.ORIGEM = ''PDV''  
		 AND ERP.ORIGEM = ''ERP''   
		 GROUP BY PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO)  AS VENDAS  
		 ON PDV.CODIGO_FILIAL = VENDAS.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = VENDAS.DATA_MOVIMENTO  
		 JOIN (  
		 SELECT PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		 WHEN  
		 SUM(PDV.QTDE_ITENS_SAT - ERP.QTDE_ITENS_SAT)    +      
		 SUM(PDV.QTDE_ITENS_SAT_ITEM - ERP.QTDE_ITENS_SAT_ITEM)    +      
		 SUM(PDV.TOTAL_SAT - ERP.TOTAL_SAT)    +      
		 SUM(PDV.TOTAL_SAT_ITEM  - ERP.TOTAL_SAT_ITEM)     +      
		 SUM(PDV.QTDE_LOJA_CF_SAT - ERP.QTDE_LOJA_CF_SAT) +   
		 SUM(PDV.QTDE_IMPOSTO_SAT - ERP.QTDE_IMPOSTO_SAT)  <> 0  
		 THEN 1  
		 ELSE   
		 0 END AS DIVERGENCIA_SAT  
		 FROM LJ_ETL_DADOS_MONITORIA PDV  
		 JOIN LJ_ETL_DADOS_MONITORIA ERP  
		 ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		 AND PDV.ORIGEM = ''PDV''  
		 AND ERP.ORIGEM = ''ERP''  
		 GROUP BY PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO ) AS SAT  
		 ON PDV.CODIGO_FILIAL = SAT.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = SAT.DATA_MOVIMENTO JOIN  
		 (  
		 SELECT PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		 WHEN  
		 SUM(PDV.QTDE_ITENS_NF - ERP.QTDE_ITENS_NF)     +      
		 SUM(PDV.QTDE_ITENS_NF_ITEM - ERP.QTDE_ITENS_NF_ITEM)    +      
		 SUM(PDV.TOTAL_NF - ERP.TOTAL_NF)      +      
		 SUM(PDV.TOTAL_NF_ITEM - ERP.TOTAL_NF_ITEM)     +     
		 SUM(PDV.QTDE_LOJA_NOTA_FISCAL - ERP.QTDE_LOJA_NOTA_FISCAL)  +   
		 SUM(PDV.QTDE_IMPOSTO_NF - ERP.QTDE_IMPOSTO_NF) +  
		 SUM(PDV.NOTA_APROVADA - ERP.NOTA_APROVADA) +      
		 SUM(PDV.NOTA_CANCELADA - ERP.NOTA_CANCELADA) +      
		 SUM(PDV.NOTA_INUTILIZADA - ERP.NOTA_INUTILIZADA)+      
		 SUM(PDV.NOTA_DENEGADA - ERP.NOTA_DENEGADA) <> 0 OR   
		 (  
		   SUM(PDV.AGUARDANDO_CANC + ERP.AGUARDANDO_CANC) > 0 OR      
		   SUM(PDV.ERRO_NO_CANC +ERP.ERRO_NO_CANC)  > 0 OR      
		   SUM(PDV.AGUARDANDO_INUTI + ERP.AGUARDANDO_INUTI) > 0 OR      
		   SUM(PDV.ERRO_NA_INUTI + ERP.ERRO_NA_INUTI)  > 0 OR      
		   SUM(PDV.NOTA_NAO_ENVIADA + ERP.NOTA_NAO_ENVIADA) > 0 OR      
		   SUM(PDV.AGUARDANDO_ENVIO + ERP.AGUARDANDO_ENVIO) > 0 OR      
		   SUM(PDV.NOTA_REJ_LINX + ERP.NOTA_REJ_LINX)  > 0 OR      
		   SUM(PDV.AGUARDANDO_RETORNO + ERP.AGUARDANDO_RETORNO) > 0 OR      
		   SUM(PDV.NOTA_REJ_SEFAZ + ERP.NOTA_REJ_SEFAZ)  > 0   
		 )  
		 THEN 1  
		 ELSE   
		 0 END AS DIVERGENCIA_NF  
		 FROM LJ_ETL_DADOS_MONITORIA PDV  
		 JOIN LJ_ETL_DADOS_MONITORIA ERP  
		 ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		 AND PDV.ORIGEM = ''PDV''  
		 AND ERP.ORIGEM = ''ERP''  
		 GROUP BY PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO ) AS NF  
		 ON PDV.CODIGO_FILIAL = NF.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = NF.DATA_MOVIMENTO  JOIN  
		 (  
		  SELECT PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		  WHEN  
		  SUM(PDV.QTDE_RESERVE - ERP.QTDE_RESERVE) +   
		  SUM(PDV.QTDE_PICKUP - ERP.QTDE_PICKUP) +   
		  SUM(PDV.QTDE_SHIP_FROM - ERP.QTDE_SHIP_FROM) +   
		  SUM(PDV.QTDE_SHIP_TO - ERP.QTDE_SHIP_TO) +   
		  SUM(PDV.QTDE_SHOWROOMING - ERP.QTDE_SHOWROOMING) +            
		  SUM(PDV.OMS_QTDE_ITEM_LOJA - ERP.OMS_QTDE_ITEM_LOJA) +   
		  SUM(PDV.OMS_FRETE -ERP.OMS_FRETE) <>0  
		  THEN 1  
		  ELSE   
		  0 END AS DIVERGENCIA_OMS  
		  FROM LJ_ETL_DADOS_MONITORIA PDV  
		  JOIN LJ_ETL_DADOS_MONITORIA ERP  
		  ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		  AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		  AND PDV.ORIGEM = ''PDV''  
		  AND ERP.ORIGEM = ''ERP''  
		  GROUP BY PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO  
  
  
  
		 ) AS OMS  
		 ON PDV.CODIGO_FILIAL = OMS.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = OMS.DATA_MOVIMENTO  JOIN  
		 (  
		 SELECT PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		 WHEN  
		 SUM(PDV.QTDE_SAIDAS - ERP.QTDE_SAIDAS) +      
		 SUM(PDV.QTDE_SAIDAS_PRODUTO - ERP.QTDE_SAIDAS_PRODUTO) +      
		 SUM(PDV.TOTAL_SAIDAS - ERP.TOTAL_SAIDAS) +      
		 SUM(PDV.TOTAL_SAIDAS_PROD - ERP.TOTAL_SAIDAS_PROD) +      
		 SUM(PDV.QTDE_ITENS_SAIDAS - ERP.QTDE_ITENS_SAIDAS) +  
		 SUM(PDV.QTDE_ITENS_SAIDAS_PRODUTO - ERP.QTDE_ITENS_SAIDAS_PRODUTO) <>0     
		 THEN 1  
		 ELSE   
		 0 END AS DIVERGENCIA_SAIDAS  
		 FROM LJ_ETL_DADOS_MONITORIA PDV  
		 JOIN LJ_ETL_DADOS_MONITORIA ERP  
		 ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		 AND PDV.ORIGEM = ''PDV''  
		 AND ERP.ORIGEM = ''ERP''  
		 GROUP BY PDV.CODIGO_FILIAL,PDV.FILIAL, PDV.DATA_MOVIMENTO) AS SAIDAS  
		 ON PDV.CODIGO_FILIAL = SAIDAS.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = SAIDAS.DATA_MOVIMENTO    
       
		 JOIN  
		 (  
		 SELECT PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		 WHEN  
		  SUM(PDV.QTDE_ABERTURA_CAIXA   -  ERP.QTDE_ABERTURA_CAIXA  ) +  
		  SUM(PDV.QTDE_FECHAMENTO_CAIXA -  ERP.QTDE_FECHAMENTO_CAIXA) +  
		  SUM(PDV.QTDE_LANCAMENTO_CAIXA -  ERP.QTDE_LANCAMENTO_CAIXA) +  
		  SUM(PDV.TOTAL_ENTRADA_CAIXA   -  ERP.TOTAL_ENTRADA_CAIXA  ) +  
		  SUM(PDV.TOTAL_SAIDA_CAIXA   -  ERP.TOTAL_SAIDA_CAIXA   ) +   
		  SUM(PDV.TOTAL_CANCELADO_CAIXA -  ERP.TOTAL_CANCELADO_CAIXA) <> 0  
		 THEN 1  
		 ELSE   
		 0 END AS DIVERGENCIA_CAIXA  
		 FROM LJ_ETL_DADOS_MONITORIA PDV  
		 JOIN LJ_ETL_DADOS_MONITORIA ERP  
		 ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		 AND PDV.ORIGEM = ''PDV''  
		 AND ERP.ORIGEM = ''ERP''  
		 GROUP BY PDV.CODIGO_FILIAL,PDV.FILIAL, PDV.DATA_MOVIMENTO) AS CAIXA  
		 ON PDV.CODIGO_FILIAL = CAIXA.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = CAIXA.DATA_MOVIMENTO   
       
  
		 JOIN  
		 (  
		 SELECT PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		 WHEN  
		 SUM(PDV.QTDE_ENTRADAS - ERP.QTDE_ENTRADAS)     +      
		 SUM(PDV.QTDE_ENTRADAS_PRODUTO - ERP.QTDE_ENTRADAS_PRODUTO)    +      
		 SUM(PDV.TOTAL_ENTRADAS - ERP.TOTAL_ENTRADAS)    +      
		 SUM(PDV.TOTAL_ENTRADAS_PROD - ERP.TOTAL_ENTRADAS_PROD)   +      
		 SUM(PDV.QTDE_ITENS_ENTRADAS - ERP.QTDE_ITENS_ENTRADAS)    +      
		 SUM(PDV.QTDE_ITENS_ENTRADAS_PRODUTO - ERP.QTDE_ITENS_ENTRADAS_PRODUTO) <> 0  
		 THEN 1  
		 ELSE   
		 0 END AS DIVERGENCIA_ENTRADAS  
		 FROM LJ_ETL_DADOS_MONITORIA PDV  
		 JOIN LJ_ETL_DADOS_MONITORIA ERP  
		 ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		 AND PDV.ORIGEM = ''PDV''  
		 AND ERP.ORIGEM = ''ERP''  
		 GROUP BY PDV.CODIGO_FILIAL,PDV.FILIAL, PDV.DATA_MOVIMENTO) AS ENTRADAS  
		 ON PDV.CODIGO_FILIAL = ENTRADAS.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ENTRADAS.DATA_MOVIMENTO  JOIN  
		 (  
		SELECT PDV.CODIGO_FILIAL,PDV.FILIAL, PDV.DATA_MOVIMENTO,  CASE   
		WHEN  
		SUM(PDV.TOTAL_ECF_ITEM - ERP.TOTAL_ECF_ITEM) +  
		SUM(PDV.TOTAL_ECF_ITEM_CANC  - ERP.TOTAL_ECF_ITEM_CANC) +  
		SUM(PDV.QTDE_ECF_ITEM  - ERP.QTDE_ECF_ITEM) +  
		SUM(PDV.QTDE_ECF_ITEM_CANC  - ERP.QTDE_ECF_ITEM_CANC) +  
		SUM(PDV.QTDE_LJ_ECF_ITEM  - ERP.QTDE_LJ_ECF_ITEM) +  
		SUM(PDV.QTDE_RZ - ERP.QTDE_LJ_ECF_ITEM) <> 0  
		THEN 1  
		ELSE   
		0 END AS DIVERGENCIA_ECF  
		FROM LJ_ETL_DADOS_MONITORIA PDV  
		JOIN LJ_ETL_DADOS_MONITORIA ERP  
		ON PDV.CODIGO_FILIAL = ERP.CODIGO_FILIAL  
		AND PDV.DATA_MOVIMENTO = ERP.DATA_MOVIMENTO  
		AND PDV.ORIGEM = ''PDV''  
		AND ERP.ORIGEM = ''ERP''  
		GROUP BY PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO  
		 ) AS ECF  
		 ON PDV.CODIGO_FILIAL = ECF.CODIGO_FILIAL  
		 AND PDV.DATA_MOVIMENTO = ECF.DATA_MOVIMENTO    
       
		 WHERE PDV.ORIGEM = ''PDV''  
		 AND ERP.ORIGEM = ''ERP''  
		 GROUP BY PDV.CODIGO_FILIAL, PDV.FILIAL, PDV.DATA_MOVIMENTO, PDV.DATA_MOVIMENTO, PDV.DATA_MOVIMENTO) AS MONITORIA LEFT JOIN  
		 (SELECT ETL.CODIGO_FILIAL, ETL.FILIAL,  
		 MAX(CASE  WHEN DAY(ETL.DATA) = 1 THEN 2 ELSE 0 END) AS DIA_1,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 2 THEN 2 ELSE 0 END) AS DIA_2,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 3 THEN 2 ELSE 0 END) AS DIA_3,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 4 THEN 2 ELSE 0 END) AS DIA_4,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 5 THEN 2 ELSE 0 END) AS DIA_5,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 6 THEN 2 ELSE 0 END) AS DIA_6,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 7 THEN 2 ELSE 0 END) AS DIA_7,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 8 THEN 2 ELSE 0 END) AS DIA_8,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 9 THEN 2 ELSE 0 END) AS DIA_9,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 10   THEN 2 ELSE 0 END) AS DIA_10,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 11   THEN 2 ELSE 0 END) AS DIA_11,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 12   THEN 2 ELSE 0 END) AS DIA_12,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 13   THEN 2 ELSE 0 END) AS DIA_13,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 14   THEN 2 ELSE 0 END) AS DIA_14,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 15   THEN 2 ELSE 0 END) AS DIA_15,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 16   THEN 2 ELSE 0 END) AS DIA_16,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 17   THEN 2 ELSE 0 END) AS DIA_17,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 18   THEN 2 ELSE 0 END) AS DIA_18,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 19   THEN 2 ELSE 0 END) AS DIA_19,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 20   THEN 2 ELSE 0 END) AS DIA_20,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 21   THEN 2 ELSE 0 END) AS DIA_21,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 22   THEN 2 ELSE 0 END) AS DIA_22,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 23   THEN 2 ELSE 0 END) AS DIA_23,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 24   THEN 2 ELSE 0 END) AS DIA_24,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 25   THEN 2 ELSE 0 END) AS DIA_25,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 26   THEN 2 ELSE 0 END) AS DIA_26,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 27   THEN 2 ELSE 0 END) AS DIA_27,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 28   THEN 2 ELSE 0 END) AS DIA_28,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 29   THEN 2 ELSE 0 END) AS DIA_29,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 30   THEN 2 ELSE 0 END) AS DIA_30,   
		 MAX(CASE  WHEN DAY(ETL.DATA) = 31   THEN 2 ELSE 0 END) AS DIA_31   
		 FROM LJ_ETL_CRITICAS_NEGOCIOS ETL JOIN  
		 LJ_ETL_DADOS_MONITORIA MONITORIA  
		 ON ETL.CODIGO_FILIAL = MONITORIA.CODIGO_FILIAL  
		 AND ETL.DATA = MONITORIA.DATA_MOVIMENTO    
		 AND MONITORIA.ORIGEM = ''PDV''     
		 GROUP BY ETL.CODIGO_FILIAL, ETL.FILIAL) ETL  
		 ON MONITORIA.CODIGO_FILIAL = ETL.CODIGO_FILIAL  
		 GROUP BY MONITORIA.CODIGO_FILIAL, MONITORIA.FILIAL, MONITORIA.MES, MONITORIA.ANO  
 ')

GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_INTERMEDIADORES_FILIAL' )
BEGIN
	IF OBJECT_ID ('W_ETL_INTERMEDIADORES_FILIAL', 'V') IS NOT NULL 
		DROP VIEW [dbo].[W_ETL_INTERMEDIADORES_FILIAL]
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
	CREATE VIEW W_ETL_INTERMEDIADORES_FILIAL
	AS
	SELECT  
			LOJA_INTERMEDIADORES_TRANSACAO_FILIAL.ID_INTERMEDIADOR,
			LOJA_INTERMEDIADORES_TRANSACAO_FILIAL.COD_FILIAL,
			LOJA_INTERMEDIADORES_TRANSACAO_FILIAL.IDCADINTTRAN,
			LOJA_INTERMEDIADORES_TRANSACAO_FILIAL.INATIVO,
			LOJAS_VAREJO.CODIGO_FILIAL,
			LOJA_INTERMEDIADORES_TRANSACAO.DATA_PARA_TRANSFERENCIA  
	FROM LOJA_INTERMEDIADORES_TRANSACAO_FILIAL 
	INNER JOIN LOJA_INTERMEDIADORES_TRANSACAO ON LOJA_INTERMEDIADORES_TRANSACAO_FILIAL.ID_INTERMEDIADOR = LOJA_INTERMEDIADORES_TRANSACAO.ID_INTERMEDIADOR
	AND LOJA_INTERMEDIADORES_TRANSACAO.ENVIA_LOJA_VAREJO = 1
	INNER JOIN FILIAIS ON LOJA_INTERMEDIADORES_TRANSACAO_FILIAL.COD_FILIAL = FILIAIS.COD_FILIAL
	INNER JOIN LOJAS_VAREJO ON FILIAIS.FILIAL = LOJAS_VAREJO.FILIAL
')
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_CLIENTE_VAR_FINALIDADE' )
BEGIN
	IF OBJECT_ID ('W_ETL_CLIENTE_VAR_FINALIDADE', 'V') IS NOT NULL 
		DROP VIEW [dbo].[W_ETL_CLIENTE_VAR_FINALIDADE]
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('
	CREATE VIEW [dbo].[W_ETL_CLIENTE_VAR_FINALIDADE]  
	AS  
	SELECT 
		A.CODIGO_CLIENTE,
		A.ID_FINALIDADE,
		A.CONSENTIDO,
		A.DATA_PARA_TRANSFERENCIA,
		E.FILIAL,
		E.CODIGO_FILIAL,
		F.EMPRESA,
		F.REDE_LOJAS
	FROM CLIENTE_VAR_FINALIDADE AS A
		INNER JOIN LGPD_FINALIDADE AS B
	ON A.ID_FINALIDADE = B.ID_FINALIDADE
		INNER JOIN RESHOP_AMBIENTE_LOJA AS C
	ON C.ID_AMBIENTE = B.ID_AMBIENTE
		JOIN CLIENTES_VAREJO AS D
	ON D.CODIGO_CLIENTE = A.CODIGO_CLIENTE
		INNER JOIN LOJAS_VAREJO AS E
	ON C.CODIGO_FILIAL = E.CODIGO_FILIAL 
		INNER JOIN FILIAIS AS F
	ON F.FILIAL = E.FILIAL
')
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

/*INICIO MEGASULT CUSTOMIZACAO DECIMAIS NA QUANTIDADE*/
IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_LOJA_COMPRA' )
BEGIN
	IF OBJECT_ID ('W_ETL_LOJA_COMPRA', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_LOJA_COMPRA
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('CREATE VIEW W_ETL_LOJA_COMPRA
AS
Select	DISTINCT 
		COMPRAS.PEDIDO, COMPRAS.PEDIDO_FORNECEDOR, COMPRAS.DATA_APROVACAO AS CONFIRMACAO_FORNECEDOR,
		COMPRAS.EMISSAO, COMPRAS.TOT_QTDE_ORIGINAL AS QTDE_ORIGINAL, COMPRAS.TOT_QTDE_ENTREGAR AS QTDE_ENTREGAR,
		COMPRAS.TOT_VALOR_ORIGINAL AS VALOR_ORIGINAL, COMPRAS.TOT_VALOR_ENTREGAR AS VALOR_ENTREGAR,
		COMPRAS.DESCONTO, COMPRAS.ENCARGO, COMPRAS.DATA_PARA_TRANSFERENCIA,
		LOJAS_VAREJO.CODIGO_FILIAL AS CODIGO_FILIAL_ENTREGA,
		FILIAIS.MATRIZ AS CODIGO_CLIENTE_FORNECEDOR,
		CLIENTES_VAREJO.CODIGO_CLIENTE AS CODIGO_FILIAL_FRANQUEADOR,
		COND_ENT_PGTOS.NUMERO_PARCELAS AS QTDE_PARCELAS, COND_ENT_PGTOS.DESC_COND_PGTO AS DESC_PAGAMENTO,
		CAST( 1 AS tinyint) AS LX_TIPO_COMPRA, CADASTRO_CLI_FOR.COD_CLIFOR, COND_ENT_PGTOS.DESC_COND_PGTO,
		LOJAS_VAREJO.CODIGO_FILIAL, FILIAIS.EMPRESA		
from COMPRAS
INNER JOIN LOJAS_VAREJO ON COMPRAS.FILIAL_A_ENTREGAR = LOJAS_VAREJO.FILIAL 
INNER JOIN CADASTRO_CLI_FOR ON COMPRAS.FORNECEDOR = CADASTRO_CLI_FOR.NOME_CLIFOR
INNER JOIN COMPRAS_PRODUTO ON COMPRAS.PEDIDO = COMPRAS_PRODUTO.PEDIDO
INNER JOIN FILIAIS ON COMPRAS.FILIAL_A_ENTREGAR = FILIAIS.FILIAL
LEFT JOIN CLIENTES_VAREJO ON COMPRAS.FORNECEDOR = CLIENTES_VAREJO.CLIENTE_VAREJO
LEFT JOIN COND_ENT_PGTOS ON COMPRAS.CONDICAO_PGTO = COND_ENT_PGTOS.CONDICAO_PGTO
LEFT JOIN COMPRAS_PROD_CANCELADA ON COMPRAS_PRODUTO.PEDIDO = COMPRAS_PROD_CANCELADA.PEDIDO 
LEFT JOIN COMPRAS_STATUS ON COMPRAS.STATUS_COMPRA = COMPRAS_STATUS.STATUS_COMPRA
	AND COMPRAS_PRODUTO.PRODUTO = COMPRAS_PROD_CANCELADA.PRODUTO 
	AND COMPRAS_PRODUTO.COR_PRODUTO = COMPRAS_PROD_CANCELADA.COR_PRODUTO
	AND COMPRAS_PRODUTO.ENTREGA = COMPRAS_PROD_CANCELADA.ENTREGA
WHERE COMPRAS.TOT_QTDE_ENTREGAR > 0 OR COMPRAS_PROD_CANCELADA.QTDE_CANCELADA > 0 
AND ISNULL(COMPRAS_STATUS.ENVIA_FORNECEDOR, 1) = 1
')
GO

--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END


IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_LOJA_COMPRA_PRODUTO' )
BEGIN
	IF OBJECT_ID ('W_ETL_LOJA_COMPRA_PRODUTO', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_LOJA_COMPRA_PRODUTO
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

EXEC('CREATE VIEW W_ETL_LOJA_COMPRA_PRODUTO
AS
Select	COMPRAS_PRODUTO.PEDIDO, COMPRAS_PRODUTO.PRODUTO, COMPRAS_PRODUTO.COR_PRODUTO, COMPRAS_PRODUTO.CUSTO1,
		COMPRAS_PRODUTO.CUSTO2, COMPRAS_PRODUTO.CUSTO3, COMPRAS_PRODUTO.CUSTO4, 
		ISNULL(COMPRAS_PRODUTO.DATA_PARA_TRANSFERENCIA, GETDATE()) AS DATA_PARA_TRANSFERENCIA,
		COMPRAS_PRODUTO.DESCONTO_ITEM, COMPRAS_PRODUTO.ENTREGA, COMPRAS_PRODUTO.QTDE_ENTREGAR, COMPRAS_PRODUTO.QTDE_ENTREGUE,
		COMPRAS_PRODUTO.QTDE_ORIGINAL, COMPRAS_PRODUTO.VALOR_ENTREGAR, COMPRAS_PRODUTO.VALOR_ENTREGUE,
		COMPRAS_PRODUTO.VALOR_ORIGINAL, COMPRAS_PRODUTO.CE1, COMPRAS_PRODUTO.CE2, COMPRAS_PRODUTO.CE3, COMPRAS_PRODUTO.CE4,
		COMPRAS_PRODUTO.CE5, COMPRAS_PRODUTO.CE6, COMPRAS_PRODUTO.CE7, COMPRAS_PRODUTO.CE8, COMPRAS_PRODUTO.CE9,
		COMPRAS_PRODUTO.CE10, COMPRAS_PRODUTO.CE11, COMPRAS_PRODUTO.CE12, COMPRAS_PRODUTO.CE13, COMPRAS_PRODUTO.CE14, 
		COMPRAS_PRODUTO.CE15, COMPRAS_PRODUTO.CE16, COMPRAS_PRODUTO.CE17, COMPRAS_PRODUTO.CE18, COMPRAS_PRODUTO.CE19, 
		COMPRAS_PRODUTO.CE20, COMPRAS_PRODUTO.CE21, COMPRAS_PRODUTO.CE22, COMPRAS_PRODUTO.CE23, COMPRAS_PRODUTO.CE24,
		COMPRAS_PRODUTO.CE25, COMPRAS_PRODUTO.CE26, COMPRAS_PRODUTO.CE27, COMPRAS_PRODUTO.CE28, COMPRAS_PRODUTO.CE29,
		COMPRAS_PRODUTO.CE30, COMPRAS_PRODUTO.CE31, COMPRAS_PRODUTO.CE32, COMPRAS_PRODUTO.CE33, COMPRAS_PRODUTO.CE34,
		COMPRAS_PRODUTO.CE35, COMPRAS_PRODUTO.CE36, COMPRAS_PRODUTO.CE37, COMPRAS_PRODUTO.CE38, COMPRAS_PRODUTO.CE39,
		COMPRAS_PRODUTO.CE40, COMPRAS_PRODUTO.CE41, COMPRAS_PRODUTO.CE42, COMPRAS_PRODUTO.CE43, COMPRAS_PRODUTO.CE44,
		COMPRAS_PRODUTO.CE45, COMPRAS_PRODUTO.CE46, COMPRAS_PRODUTO.CE47, COMPRAS_PRODUTO.CE48,
		CONVERT(SMALLINT, 0) AS ITEM_PEDIDO,
		LOJAS_VAREJO.CODIGO_FILIAL, FILIAIS.EMPRESA		
from COMPRAS
INNER JOIN LOJAS_VAREJO ON COMPRAS.FILIAL_A_ENTREGAR = LOJAS_VAREJO.FILIAL 
INNER JOIN CADASTRO_CLI_FOR ON COMPRAS.FORNECEDOR = CADASTRO_CLI_FOR.NOME_CLIFOR
INNER JOIN COMPRAS_PRODUTO ON COMPRAS.PEDIDO = COMPRAS_PRODUTO.PEDIDO
INNER JOIN FILIAIS ON COMPRAS.FILIAL_A_ENTREGAR = FILIAIS.FILIAL
LEFT JOIN CLIENTES_VAREJO ON COMPRAS.FORNECEDOR = CLIENTES_VAREJO.CLIENTE_VAREJO
LEFT JOIN COND_ENT_PGTOS ON COMPRAS.CONDICAO_PGTO = COND_ENT_PGTOS.CONDICAO_PGTO
LEFT JOIN COMPRAS_PROD_CANCELADA ON COMPRAS_PRODUTO.PEDIDO = COMPRAS_PROD_CANCELADA.PEDIDO 
LEFT JOIN COMPRAS_STATUS ON COMPRAS.STATUS_COMPRA = COMPRAS_STATUS.STATUS_COMPRA
	AND COMPRAS_PRODUTO.PRODUTO = COMPRAS_PROD_CANCELADA.PRODUTO 
	AND COMPRAS_PRODUTO.COR_PRODUTO = COMPRAS_PROD_CANCELADA.COR_PRODUTO
	AND COMPRAS_PRODUTO.ENTREGA = COMPRAS_PROD_CANCELADA.ENTREGA
WHERE COMPRAS.TOT_QTDE_ENTREGAR > 0 OR COMPRAS_PROD_CANCELADA.QTDE_CANCELADA > 0 
AND ISNULL(COMPRAS_STATUS.ENVIA_FORNECEDOR, 1) = 1')

GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_LOJA_TRANSITO_ENTRADAS_PRODUTOS' )
BEGIN
	IF OBJECT_ID ('W_ETL_LOJA_TRANSITO_ENTRADAS_PRODUTOS', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_LOJA_TRANSITO_ENTRADAS_PRODUTOS
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END


EXEC('CREATE VIEW W_ETL_LOJA_TRANSITO_ENTRADAS_PRODUTOS
AS
Select	 
LOJA_ENTRADAS_PRODUTO.COR_PRODUTO,
LOJA_ENTRADAS_PRODUTO.DATA_PARA_TRANSFERENCIA,
	Loja_entradas_produto.EN1,  Loja_entradas_produto.EN2, Loja_entradas_produto.EN3,  Loja_entradas_produto.EN4, 
		Loja_entradas_produto.EN5,  Loja_entradas_produto.EN6, Loja_entradas_produto.EN7,  Loja_entradas_produto.EN8, 
		Loja_entradas_produto.EN9,  Loja_entradas_produto.EN10, Loja_entradas_produto.EN11,  Loja_entradas_produto.EN12, 
		Loja_entradas_produto.EN13,  Loja_entradas_produto.EN14, Loja_entradas_produto.EN15,  Loja_entradas_produto.EN16, 
		Loja_entradas_produto.EN17,  Loja_entradas_produto.EN18, Loja_entradas_produto.EN19,  Loja_entradas_produto.EN20, 
		Loja_entradas_produto.EN21,  Loja_entradas_produto.EN22, Loja_entradas_produto.EN23,  Loja_entradas_produto.EN24, 
		Loja_entradas_produto.EN25,  Loja_entradas_produto.EN26, Loja_entradas_produto.EN27,  Loja_entradas_produto.EN28, 
		Loja_entradas_produto.EN29,  Loja_entradas_produto.EN30, Loja_entradas_produto.EN31,  Loja_entradas_produto.EN32, 
		Loja_entradas_produto.EN33,  Loja_entradas_produto.EN34, Loja_entradas_produto.EN35,  Loja_entradas_produto.EN36, 
		Loja_entradas_produto.EN37,  Loja_entradas_produto.EN38, Loja_entradas_produto.EN39,  Loja_entradas_produto.EN40, 
		Loja_entradas_produto.EN41,  Loja_entradas_produto.EN42, Loja_entradas_produto.EN43,  Loja_entradas_produto.EN44, 
		Loja_entradas_produto.EN45,  Loja_entradas_produto.EN46, Loja_entradas_produto.EN47,  Loja_entradas_produto.EN48, 
LOJA_ENTRADAS_PRODUTO.ENTREGA_PEDIDO,
LOJA_ENTRADAS_PRODUTO.FILIAL,
LOJA_ENTRADAS_PRODUTO.PEDIDO_COMPRA,
LOJA_ENTRADAS_PRODUTO.PRECO1,
LOJA_ENTRADAS_PRODUTO.PRECO2,
LOJA_ENTRADAS_PRODUTO.PRECO3,
LOJA_ENTRADAS_PRODUTO.PRECO4,
LOJA_ENTRADAS_PRODUTO.PRODUTO,
LOJA_ENTRADAS_PRODUTO.QTDE_ENTRADA AS QTDE_SAIDA,
LOJA_ENTRADAS_PRODUTO.ROMANEIO_PRODUTO,
LOJA_ENTRADAS_PRODUTO.VALOR
FROM LOJA_ENTRADAS_PRODUTO')

GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END


IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_LOJA_TRANSITO_ENTRADAS' )
BEGIN
	IF OBJECT_ID ('W_ETL_LOJA_TRANSITO_ENTRADAS', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_LOJA_TRANSITO_ENTRADAS
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

exec('CREATE VIEW W_ETL_LOJA_TRANSITO_ENTRADAS
AS
Select	 
		LOJA_ENTRADAS.CGC_FORNECEDOR,
		LOJA_ENTRADAS.CHAVE_NFE,
		LOJAS_VAREJO.CODIGO_FILIAL,
		LOJA_ENTRADAS.CODIGO_TAB_PRECO,
		LOJA_ENTRADAS.DATA_PARA_TRANSFERENCIA,
		LOJA_ENTRADAS.EMISSAO,
		LOJA_ENTRADAS.ENTRADA_POR,
		LOJA_ENTRADAS.FATOR_PRECO,
		LOJA_ENTRADAS.FILIAL,
		LOJA_ENTRADAS.FILIAL_ORIGEM,
		LOJA_ENTRADAS.FORNECEDOR,
		LOJA_ENTRADAS.NUMERO_NF_TRANSFERENCIA,
		LOJA_ENTRADAS.OBS,
		LOJA_ENTRADAS.QTDE_TOTAL,
		LOJA_ENTRADAS.RESPONSAVEL,
		LOJA_ENTRADAS.ROMANEIO_NF_SAIDA,
		LOJA_ENTRADAS.ROMANEIO_PRODUTO,
		LOJA_ENTRADAS.SERIE_NF_ENTRADA AS SERIE_NF,
		LOJA_ENTRADAS.SERIE_NF_ENTRADA,
		LOJA_ENTRADAS.TIPO_ENTRADA_SAIDA,
		LOJA_ENTRADAS.VALOR_TOTAL
		
from LOJA_ENTRADAS 
JOIN LOJAS_VAREJO ON LOJA_ENTRADAS.FILIAL = LOJAS_VAREJO.FILIAL
left join LOJA_ENTRADAS_DIF ON LOJA_ENTRADAS.FILIAL = LOJA_ENTRADAS_DIF.FILIAL
AND LOJA_ENTRADAS.FILIAL_ORIGEM = LOJA_ENTRADAS_DIF.FILIAL_ORIGEM
AND LOJA_ENTRADAS.ROMANEIO_NF_SAIDA = LOJA_ENTRADAS_DIF.ROMANEIO_NF_SAIDA
AND LOJA_ENTRADAS.SERIE_NF_ENTRADA = LOJA_ENTRADAS_DIF.SERIE_NF_ENTRADA
WHERE LOJA_ENTRADAS.Entrada_Conferida = 0 AND ( LOJA_ENTRADAS.Status_Transito = 0 AND LOJA_ENTRADAS.Romaneio_Produto IS null)
')
GO
/*FIM MEGASULT CUSTOMIZACAO DECIMAIS NA QUANTIDADE*/

--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_LGPD_CLIENTES_VAREJO_EMPRESA' )
BEGIN
	IF OBJECT_ID ('W_ETL_LGPD_CLIENTES_VAREJO_EMPRESA', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_LGPD_CLIENTES_VAREJO_EMPRESA
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

exec('
	Create VIEW W_ETL_LGPD_CLIENTES_VAREJO_EMPRESA
	AS
	select CLIENTES_VAREJO_EMPRESA.CODIGO_CLIENTE,
		   EMPRESA.EMPRESA,
		   FILIAIS.FILIAL,
		   LOJAS_VAREJO.CODIGO_FILIAL, 
		   ISNULL(CLIENTES_VAR_LOJA.INATIVO,0) INATIVO
	from CLIENTES_VAREJO_EMPRESA with (Nolock) 
	inner join EMPRESA with (Nolock) 
	on EMPRESA.EMPRESA = CLIENTES_VAREJO_EMPRESA.EMPRESA and EMPRESA.INATIVA = 0
	INNER JOIN FILIAIS with (Nolock) 
	on EMPRESA.EMPRESA = FILIAIS.EMPRESA and FILIAIS.DATA_FECHAMENTO is null
	INNER JOIN LOJAS_VAREJO with (Nolock) 
	ON FILIAIS.FILIAL = LOJAS_VAREJO.FILIAL
	INNER JOIN LJ_ETL_VERSAO_LOJA WITH (nolock) 
	on LOJAS_VAREJO.CODIGO_FILIAL = LJ_ETL_VERSAO_LOJA.CODIGO_FILIAL 
	and LJ_ETL_VERSAO_LOJA.INATIVO = 0
	LEFT JOIN CLIENTES_VAR_LOJA WITH (nolock) 
	on LOJAS_VAREJO.CODIGO_FILIAL = CLIENTES_VAR_LOJA.CODIGO_FILIAL 
    AND CLIENTES_VAREJO_EMPRESA.CODIGO_CLIENTE = CLIENTES_VAR_LOJA.CODIGO_CLIENTE 
	AND CLIENTES_VAR_LOJA.INATIVO = 1
')
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_LGPD_CLIENTES_VAREJO' )
BEGIN
	IF OBJECT_ID ('W_ETL_LGPD_CLIENTES_VAREJO', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_LGPD_CLIENTES_VAREJO
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

exec('
 Create VIEW W_ETL_LGPD_CLIENTES_VAREJO
AS
SELECT 
    CV.CODIGO_CLIENTE,
    CV.CONCEITO,
    CV.TIPO_VAREJO,
    CV.CLIENTE_VAREJO,
    CV.FILIAL AS Filial_Orig,
    COALESCE(CV_F.FILIAL, CV.FILIAL) AS FILIAL,
    CV.PONTUALIDADE,
    CV.TIPO_BLOQUEIO,
    CV.ENDERECO,
    CV.UF,
    CV.PF_PJ,
    CV.RG_IE,
    CV.BAIRRO,
    CV.CPF_CGC,
    CV.CIDADE,
    CV.COMPLEMENTO,
    CV.CEP,
    CV.TELEFONE,
    CV.FAX,
    CV.LIMITE_CREDITO,
    CV.SEM_CREDITO,
    CV.ANIVERSARIO,
    CV.CADASTRAMENTO,
    CV.DDD,
    CV.SEXO,
    CV.OBS,
    CV.TIPO_TELEFONE,
    CV.EMAIL,
    CV.ULTIMA_COMPRA,
    CV.DATA_PARA_TRANSFERENCIA,
    CV.LIMITE_CREDITO_TOTAL,
    CV.STATUS,
    CV.NAO_CONSULTA_CHEQUE,
    CV.CARTAO_AFINIDADE,
    CV.PAIS,
    CV.TIPO_LOGRADOURO,
    CV.NUMERO,
    CV.ESTADO_CIVIL,
    CV.PROFISSAO,
    CV.APELIDO,
    CV.CODIGO_CONTATO,
    CV.DDD_CELULAR,
    CV.CELULAR,
    CV.VENDEDOR,
    CV_F.EMPRESA
FROM 
    CLIENTES_VAREJO CV
LEFT JOIN (
    SELECT 
        C_EMP.CODIGO_CLIENTE,
        C_EMP.EMPRESA,
        F.FILIAL,
        L.CODIGO_FILIAL,
        CASE 
            WHEN C_EMP.INATIVO = 1 OR F.DATA_FECHAMENTO IS NOT NULL THEN 1
            ELSE 0 
        END AS INATIVO
    FROM 
        CLIENTES_VAREJO_EMPRESA C_EMP WITH (NOLOCK)
    INNER JOIN 
        FILIAIS F WITH (NOLOCK) ON C_EMP.EMPRESA = F.EMPRESA
    INNER JOIN 
        LOJAS_VAREJO L WITH (NOLOCK) ON F.FILIAL = L.FILIAL
    INNER JOIN 
        LJ_ETL_VERSAO_LOJA L_V WITH (NOLOCK) ON L.CODIGO_FILIAL = L_V.CODIGO_FILIAL
                                            AND L_V.INATIVO = 0
) CV_F ON CV.CODIGO_CLIENTE = CV_F.CODIGO_CLIENTE 
        AND CV_F.INATIVO = 0
LEFT JOIN 
    CLIENTES_VAR_LOJA CV_L WITH (NOLOCK) ON CV.CODIGO_CLIENTE = CV_L.CODIGO_CLIENTE
                                         AND CV_F.CODIGO_FILIAL = CV_L.CODIGO_FILIAL
                                         AND CV_L.INATIVO = 0;
')
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_PROP_CLIENTES_VAREJO' )
BEGIN
	IF OBJECT_ID ('W_ETL_PROP_CLIENTES_VAREJO', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_PROP_CLIENTES_VAREJO
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

exec('
CREATE VIEW W_ETL_PROP_CLIENTES_VAREJO
AS
select	PROP_CLIENTES_VAREJO.PROPRIEDADE,
		PROP_CLIENTES_VAREJO.CODIGO_CLIENTE,
		PROP_CLIENTES_VAREJO.ITEM_PROPRIEDADE,
		PROP_CLIENTES_VAREJO.VALOR_PROPRIEDADE,
		PROP_CLIENTES_VAREJO.DATA_PARA_TRANSFERENCIA,
		CLIENTES_VAR.FILIAL
from PROP_CLIENTES_VAREJO
inner join CLIENTES_VAREJO with (Nolock) on PROP_CLIENTES_VAREJO.CODIGO_CLIENTE = CLIENTES_VAREJO.CODIGO_CLIENTE
left join (
		select CLIENTES_VAREJO_EMPRESA.CODIGO_CLIENTE,
			   CLIENTES_VAREJO_EMPRESA.EMPRESA,
			   FILIAIS.FILIAL,
			   LOJAS_VAREJO.CODIGO_FILIAL,
			   CASE WHEN CLIENTES_VAREJO_EMPRESA.INATIVO = 1 THEN 1 
					when FILIAIS.DATA_FECHAMENTO is not null then 1
			   ELSE 0 END INATIVO
		from CLIENTES_VAREJO_EMPRESA with (Nolock) 
		INNER JOIN FILIAIS with (Nolock) on CLIENTES_VAREJO_EMPRESA.EMPRESA = FILIAIS.EMPRESA 
		INNER JOIN LOJAS_VAREJO with (Nolock) ON FILIAIS.FILIAL = LOJAS_VAREJO.FILIAL	
		inner join LJ_ETL_VERSAO_LOJA with (Nolock) ON LOJAS_VAREJO.CODIGO_FILIAL = LJ_ETL_VERSAO_LOJA.CODIGO_FILIAL and LJ_ETL_VERSAO_LOJA.INATIVO = 0
	) CLIENTES_VAR on CLIENTES_VAREJO.CODIGO_CLIENTE = CLIENTES_VAR.CODIGO_CLIENTE 
		and (case when CLIENTES_VAR.INATIVO = 1 then 1 else 0 end) = 0
	left join CLIENTES_VAR_LOJA WITH (nolock) on CLIENTES_VAREJO.CODIGO_CLIENTE = CLIENTES_VAR_LOJA.CODIGO_CLIENTE
	and CLIENTES_VAR.CODIGO_FILIAL = CLIENTES_VAR_LOJA.CODIGO_FILIAL and CLIENTES_VAR_LOJA.INATIVO = 1
	where (case when CLIENTES_VAR_LOJA.INATIVO = 1 then 1 else 0 end) = 0
')
go
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_ADMINISTRADORAS_CARTAO_BLOQ' )
BEGIN
	IF OBJECT_ID ('W_ETL_ADMINISTRADORAS_CARTAO_BLOQ', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_ADMINISTRADORAS_CARTAO_BLOQ
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

exec('
CREATE VIEW W_ETL_ADMINISTRADORAS_CARTAO_BLOQ
AS
	select  ADMINISTRADORAS_CARTAO_BLOQ.CODIGO_ADMINISTRADORA,
		ADMINISTRADORAS_CARTAO_BLOQ.COD_FILIAL, 
		ADMINISTRADORAS_CARTAO.DATA_PARA_TRANSFERENCIA, 
		LOJAS_VAREJO.CODIGO_FILIAL 
	from ADMINISTRADORAS_CARTAO_BLOQ with (Nolock)
	INNER JOIN ADMINISTRADORAS_CARTAO with (Nolock) ON ADMINISTRADORAS_CARTAO_BLOQ.CODIGO_ADMINISTRADORA = ADMINISTRADORAS_CARTAO.CODIGO_ADMINISTRADORA
	INNER JOIN FILIAIS with (Nolock) ON ADMINISTRADORAS_CARTAO_BLOQ.COD_FILIAL = FILIAIS.COD_FILIAL
	INNER JOIN LOJAS_VAREJO with (Nolock) ON FILIAIS.FILIAL = LOJAS_VAREJO.FILIAL
')
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE' )
BEGIN
	IF OBJECT_ID ('W_ETL_CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

exec('
CREATE VIEW W_ETL_CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE
AS
	Select CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ID_EXCECAO_AJUSTE
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ID_EXCECAO_IMPOSTO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ID_IMPOSTO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ID_IMPOSTO_AJUSTE
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ID_IMPOSTO_AJUSTE_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ID_SUB_ITEM_APURACAO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.COD_BENEFICIO_FISCAL
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.CODIGO_AJUSTE
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.CODIGO_AJUSTE_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.INDICADOR_APURACAO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.LX_CODIGO_APURACAO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_C197_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E111_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E113_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.AJ_DEC_DOCUMENTO_FISCAL
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.UF
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E115_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_C597_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_D197_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E220_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E311_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_1921_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.TABELA
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.CAMPO_07_08
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_C857_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_C897_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E112_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E230_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.NUMERO_PROCESSO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ICMS_ANTECIPADO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_BENEF_RBC
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_GCRED_PRESUMIDO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.GERAR_E240_SPED
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.CBENEFRBC
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.COD_GCRED_PRESUMIDO
		,CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.CST
		,CTB_EXCECAO_IMPOSTO.DATA_PARA_TRANSFERENCIA
from CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE
INNER JOIN CTB_EXCECAO_IMPOSTO ON CTB_EXCECAO_IMPOSTO_ITEM_AJUSTE.ID_EXCECAO_IMPOSTO = CTB_EXCECAO_IMPOSTO.ID_EXCECAO_IMPOSTO
')
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'W_ETL_TABELA_CODIGO_AJUSTE_SPED' )
BEGIN
	IF OBJECT_ID ('W_ETL_TABELA_CODIGO_AJUSTE_SPED', 'V') IS NOT NULL 
		DROP VIEW [dbo].W_ETL_TABELA_CODIGO_AJUSTE_SPED
END
GO
--===========================================================================================================================
IF NOT EXISTS ( SELECT 1 FROM sys.tables t
            JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name IN ('Faturamento', 'Empresa') AND s.name = 'dbo'
)
BEGIN
    RAISERROR('ERRO: Estrutura incompatível com o banco do LinxERP.', 16, 1)
    RETURN
END

exec('CREATE VIEW W_ETL_TABELA_CODIGO_AJUSTE_SPED 
AS
	select  ID_CODIGO_AJUSTE_SPED, UF, TABELA, 
			CODIGO_AJUSTE, DESCRICAO_AJUSTE, INDICADOR_APURACAO, 
			DATA_INICIO, DATA_FIM, ID_SUB_ITEM_APURACAO, INATIVO, 
			PORC_CRED_PRESUMIDO, ISNULL(DATA_PARA_TRANSFERENCIA, DATA_INICIO) AS DATA_PARA_TRANSFERENCIA
	from TABELA_CODIGO_AJUSTE_SPED
')
GO
--=============================================================================================================================