/*
------------------------------------------------------------------------------------------------------
-- CRIAÇÃO DA PROCEDURE LX_LJ_ETL_VALIDA_MOVIMENTO
------------------------------------------------------------------------------------------------------
*/

If Object_id ('LX_LJ_ETL_VALIDA_MOVIMENTO', 'P') Is Not Null 
  Drop Procedure LX_LJ_ETL_VALIDA_MOVIMENTO; 
Go 

CREATE PROCEDURE [dbo].[LX_LJ_ETL_VALIDA_MOVIMENTO] (   @CODIGO_FILIAL VARCHAR(6) = NULL,
												@UF VARCHAR(2) = NULL,												
												@DIA INT = NULL,
												@MES INT = NULL,
												@ANO INT = NULL,
												@EMPRESA INT   = NULL
											)

AS
					 
BEGIN  TRY
		
	SET NOCOUNT ON
	SET ANSI_WARNINGS OFF
	SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

	DECLARE @DATA_MOVIMENTO_INICIAL DATETIME,
			@DATA_MOVIMENTO_FINAL DATETIME,					
			@ULTIMO_DIA VARCHAR(2)

	IF OBJECT_ID('tempdb..#tmpCalculaVendasDetalhes') IS NOT NULL	
		drop table #tmpCalculaVendasDetalhes

	IF OBJECT_ID('tempdb..#tmpCalculaVendasDiaTerminal') IS NOT NULL	
		drop table #tmpCalculaVendasDiaTerminal

	IF OBJECT_ID('tempdb..#tmpCalculaVendasDia') IS NOT NULL	
		drop table #tmpCalculaVendasDia

	IF OBJECT_ID('tempdb..#tmpCalculaVendasMes') IS NOT NULL	
		drop table #tmpCalculaVendasMes
	
	IF OBJECT_ID('tempdb..#tmpLfEcfItem') IS NOT NULL	
		drop table #tmpLfEcfItem
	
	--Caso não sejam informados parametros para a data pega os dados da da corrente.
	IF(@DIA IS NULL AND @MES IS NULL AND @ANO IS NULL)
	BEGIN

		SET @DATA_MOVIMENTO_INICIAL = CONVERT(VARCHAR(8),  DATEADD(D, -1, GETDATE()), 112)
		SET @DATA_MOVIMENTO_FINAL = @DATA_MOVIMENTO_INICIAL

	END		   
	ELSE	   	
	BEGIN

		IF(@ANO IS NULL)
			SET @ANO = DATEPART(YEAR, GETDATE())
	
		IF(@DIA IS NULL AND @MES IS NOT NULL)
		BEGIN
			SET @DATA_MOVIMENTO_INICIAL = CONVERT(VARCHAR(4), @ANO) + RIGHT('00' + CONVERT(VARCHAR(2),@MES),2) + '01'
			
			IF(@MES = DATEPART(MONTH, GETDATE()))
				SET @DATA_MOVIMENTO_FINAL = CONVERT(VARCHAR(8), GETDATE() - 1, 112)
			ELSE
			BEGIN
				SET @ULTIMO_DIA = DAY(DATEADD(D,-1,DATEADD(M,1,CONVERT(DATETIME,CONVERT(VARCHAR(4),@ANO) + RIGHT('00' + CONVERT(VARCHAR(2),@MES), 2) + '01'))))
				SET @DATA_MOVIMENTO_FINAL = CONVERT(VARCHAR(4),@ANO) + RIGHT('00' + CONVERT(VARCHAR(2),@MES), 2) + RIGHT('00' + CONVERT(VARCHAR(2),@ULTIMO_DIA), 2)
			END
		END		
			 
		IF(@DIA IS NOT NULL AND @MES IS NULL)		
		BEGIN		
			SET @DATA_MOVIMENTO_INICIAL = CONVERT(VARCHAR(4), @ANO) + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(MONTH, GETDATE())),2) + RIGHT('00' + CONVERT(VARCHAR(2),@DIA),2)
			SET @DATA_MOVIMENTO_FINAL = @DATA_MOVIMENTO_INICIAL
		END

		IF(@DIA IS NOT NULL AND @MES IS NOT NULL)					
		BEGIN
			SET @DATA_MOVIMENTO_INICIAL = CONVERT(VARCHAR(4), @ANO) + RIGHT('00' + CONVERT(VARCHAR(2),@MES),2) + RIGHT('00' + CONVERT(VARCHAR(2),@DIA),2)	
			SET @DATA_MOVIMENTO_FINAL = @DATA_MOVIMENTO_INICIAL
		END
		
		IF(@DIA IS NULL AND @MES IS NULL AND @ANO IS NOT NULL)	
		BEGIN		
			SET @DATA_MOVIMENTO_INICIAL = CONVERT(VARCHAR(4), @ANO) + '01' + '01'
			
			IF(@ANO = DATEPART(YEAR, GETDATE()))
				SET @DATA_MOVIMENTO_FINAL = CONVERT(VARCHAR(8), GETDATE() - 1, 112)
			ELSE
				SET @DATA_MOVIMENTO_FINAL = CONVERT(VARCHAR(4),@ANO) + '12' + '31'
		END	
	
	END
	
	--Ajusta Loja Venda Parcelas
	INSERT INTO LOJA_VENDA_PARCELAS
	(CODIGO_FILIAL, TERMINAL, LANCAMENTO_CAIXA, PARCELA, TIPO_PGTO, VALOR, VENCIMENTO, MOEDA)
	SELECT 
		A.CODIGO_FILIAL, A.TERMINAL, A.LANCAMENTO_CAIXA, '01' AS PARCELA, 'D' AS TIPO_PGTO, A.TOTAL_VENDA AS VALOR, A.DATA AS VENCIMENTO, 'R$' AS MOEDA 
	FROM 
		LOJA_VENDA_PGTO A (NOLOCK)
	INNER JOIN LOJAS_VAREJO AA (NOLOCK)
		ON AA.CODIGO_FILIAL = A.CODIGO_FILIAL	
	INNER JOIN FILIAIS B  (NOLOCK)
		ON AA.FILIAL = B.FILIAL
	INNER JOIN CADASTRO_CLI_FOR C (NOLOCK)
		ON B.CLIFOR = C.CLIFOR 
	WHERE A.DATA >= @DATA_MOVIMENTO_INICIAL AND A.DATA <= @DATA_MOVIMENTO_FINAL	 
				AND (C.UF = @UF or @UF IS NULL)
					AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)								
		AND A.VENDA_FINALIZADA = 1 
		AND A.TOTAL_VENDA = 0 
		AND NOT EXISTS (SELECT 1 FROM LOJA_VENDA_PARCELAS 
						WHERE CODIGO_FILIAL = A.CODIGO_FILIAL 
						AND TERMINAL = A.TERMINAL 
						AND LANCAMENTO_CAIXA = A.LANCAMENTO_CAIXA) 
	ORDER BY 
		1, 2, 3, 4
		
	--Ajusta Id_Vendedor na LojaVendaProduto
	UPDATE A SET ID_VENDEDOR = 1
	FROM LOJA_VENDA_PRODUTO A (NOLOCK)
	INNER JOIN LOJAS_VAREJO AA (NOLOCK)
		ON AA.CODIGO_FILIAL = A.CODIGO_FILIAL	
	INNER JOIN FILIAIS B  (NOLOCK)
		ON AA.FILIAL = B.FILIAL
	INNER JOIN CADASTRO_CLI_FOR C (NOLOCK)
		ON B.CLIFOR = C.CLIFOR 
	WHERE	A.DATA_VENDA >= @DATA_MOVIMENTO_INICIAL AND A.DATA_VENDA <= @DATA_MOVIMENTO_FINAL	 
				AND (C.UF = @UF or @UF IS NULL)
					AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)
			AND ID_VENDEDOR = 0 
			AND EXISTS (SELECT 1 FROM LOJA_VENDA_VENDEDORES 
						WHERE CODIGO_FILIAL = A.CODIGO_FILIAL 
						AND TICKET = A.TICKET 
						AND DATA_VENDA = A.DATA_VENDA 
						AND ID_VENDEDOR = 1)
			
	--Ajusta ID_Vendedor na LojaVendaTroca
	UPDATE A SET ID_VENDEDOR = 1
	FROM LOJA_VENDA_TROCA A (NOLOCK)
	INNER JOIN LOJAS_VAREJO AA (NOLOCK)
		ON AA.CODIGO_FILIAL = A.CODIGO_FILIAL	
	INNER JOIN FILIAIS B  (NOLOCK)
		ON AA.FILIAL = B.FILIAL
	INNER JOIN CADASTRO_CLI_FOR C (NOLOCK)
		ON B.CLIFOR = C.CLIFOR 
	WHERE	A.DATA_VENDA >= @DATA_MOVIMENTO_INICIAL AND A.DATA_VENDA <= @DATA_MOVIMENTO_FINAL	 
				AND (C.UF = @UF or @UF IS NULL)
					AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)
		AND ID_VENDEDOR = 0 
		AND EXISTS (SELECT 1 FROM LOJA_VENDA_VENDEDORES 
					WHERE CODIGO_FILIAL = A.CODIGO_FILIAL 
					AND TICKET = A.TICKET 
					AND DATA_VENDA = A.DATA_VENDA 
					AND ID_VENDEDOR = 1)	

	--Ajusta LojaVendaVendores da Venda
	INSERT INTO LOJA_VENDA_VENDEDORES
		(CODIGO_FILIAL, TICKET, DATA_VENDA, ID_VENDEDOR, VENDEDOR, COMISSAO)
	SELECT
		DISTINCT A.CODIGO_FILIAL, A.TICKET, A.DATA_VENDA, ISNULL(A.ID_VENDEDOR,0), B.VENDEDOR, B.COMISSAO 
	FROM
		LOJA_VENDA_PRODUTO A (NOLOCK)
	INNER JOIN LOJA_VENDA B (NOLOCK)
		ON A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.TICKET = B.TICKET AND A.DATA_VENDA = B.DATA_VENDA 
	LEFT JOIN LOJA_VENDA_VENDEDORES C	(NOLOCK)
		ON A.CODIGO_FILIAL = C.CODIGO_FILIAL AND A.TICKET = C.TICKET AND A.DATA_VENDA = C.DATA_VENDA AND ISNULL(A.ID_VENDEDOR,0) = ISNULL(C.ID_VENDEDOR,0) 
	INNER JOIN LOJAS_VAREJO DD (NOLOCK)
		ON DD.CODIGO_FILIAL = B.CODIGO_FILIAL	
	INNER JOIN FILIAIS D (NOLOCK)
		ON D.FILIAL = DD.FILIAL
	INNER JOIN CADASTRO_CLI_FOR E (NOLOCK)
		ON D.CLIFOR = E.CLIFOR 		
	WHERE	A.DATA_VENDA >= @DATA_MOVIMENTO_INICIAL AND A.DATA_VENDA <= @DATA_MOVIMENTO_FINAL	 
			AND (E.UF = @UF or @UF IS NULL)
				AND (B.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)
					 AND C.VENDEDOR IS NULL		
						AND B.VENDEDOR IS NOT NULL

	--Ajusta LojaVendaVendedores da Troca
	INSERT INTO LOJA_VENDA_VENDEDORES
		(CODIGO_FILIAL, TICKET, DATA_VENDA, ID_VENDEDOR, VENDEDOR, COMISSAO)
	SELECT
		DISTINCT A.CODIGO_FILIAL, A.TICKET, A.DATA_VENDA, ISNULL(A.ID_VENDEDOR,0), B.VENDEDOR, B.COMISSAO 
	FROM
		LOJA_VENDA_TROCA A   (NOLOCK)
	INNER JOIN LOJA_VENDA B	 (NOLOCK)
		ON A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.TICKET = B.TICKET AND A.DATA_VENDA = B.DATA_VENDA 
	LEFT JOIN LOJA_VENDA_VENDEDORES C (NOLOCK)
		ON A.CODIGO_FILIAL = C.CODIGO_FILIAL AND A.TICKET = C.TICKET AND A.DATA_VENDA = C.DATA_VENDA AND ISNULL(A.ID_VENDEDOR,0) = ISNULL(C.ID_VENDEDOR,0) 
	INNER JOIN LOJAS_VAREJO DD (NOLOCK)
		ON DD.CODIGO_FILIAL = B.CODIGO_FILIAL
	INNER JOIN FILIAIS D (NOLOCK)
		ON D.FILIAL = DD.FILIAL
	INNER JOIN CADASTRO_CLI_FOR E (NOLOCK)
		ON D.CLIFOR = E.CLIFOR 		
	WHERE	A.DATA_VENDA >= @DATA_MOVIMENTO_INICIAL AND A.DATA_VENDA <= @DATA_MOVIMENTO_FINAL	 
				AND (E.UF = @UF or @UF IS NULL)
					AND (B.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)			
						 AND C.VENDEDOR IS NULL	 AND B.VENDEDOR IS NOT NULL	
		
    -- Variaveis Cursor Validação de quebra de tickets		
	DECLARE @CODIGO_FILIAL_CUR VARCHAR(6), 	
			@FILIAL_CUR VARCHAR(25),	
			@TERMINAL_CUR CHAR(3),
			@MIN_TICKET VARCHAR(8), 
			@MAX_TICKET VARCHAR(8),
			@DIA_CUR INT,
			@MES_CUR INT,
			@ANO_CUR INT
			
	SELECT		CODIGO_FILIAL				= B.CODIGO_FILIAL ,
				FILIAL						= RTRIM(FF.FILIAL),
				EMPRESA						= F.EMPRESA,
				UF							= G.UF,
				DIA							= DATEPART (DAY,B.DATA_VENDA)	,
				MES							= DATEPART (MONTH,B.DATA_VENDA)	,
				ANO							= DATEPART (YEAR,B.DATA_VENDA)	,				
				TICKET						= B.TICKET		,
				TERMINAL					= B.TERMINAL	,				
				TOTAL_VALOR_PAGO			= SUM(B.VALOR_PAGO),
				TOTAL_VALOR_TICKET			= SUM(B.VALOR_TIKET) ,
				TOTAL_VALOR_VENDA_BRUTA		= SUM(B.VALOR_VENDA_BRUTA),
				QTDE_TOTAL					= SUM(B.QTDE_TOTAL),
				TOTAL_VALOR_TROCA			= SUM(B.VALOR_TROCA),
				QTDE_TOTAL_TROCA			= SUM(B.QTDE_TROCA_TOTAL),
				TOTAL_VENDA					= SUM(A.TOTAL_VENDA),
				TOTAL_VENDA_DESCONTO		= SUM(A.TOTAL_VENDA + A.DESCONTO_PGTO),
				TOTAL_VENDA_PARCELAS		= SUM(C.VALOR_TOTAL_PARCELAS),
				TOTAL_VENDA_ITEM			= SUM(D.VALOR_TOTAL_PRODUTOS),
				QTDE_TOTAL_ITEM				= SUM(D.QTDE_TOTAL_PRODUTOS),
				TOTAL_VALOR_TROCA_ITEM		= SUM(E.VALOR_TOTAL_TROCA),
				QTDE_TOTAL_TROCA_ITEM		= SUM(E.QTDE_TOTAL_PRODUTO_TROCA)
	into #tmpCalculaVendasDetalhes
	FROM  LOJA_VENDA_PGTO A (NOLOCK)
	INNER JOIN LOJA_VENDA  B (NOLOCK)
	ON B.CODIGO_FILIAL = A.CODIGO_FILIAL 
	AND B.TERMINAL = A.TERMINAL 
	AND B.LANCAMENTO_CAIXA = A.LANCAMENTO_CAIXA 
	INNER JOIN 
	(
			SELECT	A.CODIGO_FILIAL			as CODIGO_FILIAL, 
					A.TERMINAL				as TERMINAL, 
					A.LANCAMENTO_CAIXA		as LANCAMENTO_CAIXA,  
					SUM(VALOR)				as VALOR_TOTAL_PARCELAS 
			FROM LOJA_VENDA_PARCELAS A (NOLOCK)
			INNER JOIN LOJA_VENDA B (NOLOCK)
			ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 
				AND A.TERMINAL = B.TERMINAL 
				AND A.LANCAMENTO_CAIXA = B.LANCAMENTO_CAIXA 			
			JOIN LOJAS_VAREJO FF (NOLOCK)
				ON FF.CODIGO_FILIAL = A.CODIGO_FILIAL
			JOIN FILIAIS F (NOLOCK)
				ON F.FILIAL = FF.FILIAL
			JOIN CADASTRO_CLI_FOR G (NOLOCK)
				ON F.CLIFOR = G.CLIFOR
			
			WHERE B.DATA_VENDA >= @DATA_MOVIMENTO_INICIAL AND B.DATA_VENDA <= @DATA_MOVIMENTO_FINAL	 
						AND (G.UF = @UF or @UF IS NULL)
							AND (B.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)								
									AND (F.EMPRESA = @EMPRESA OR @EMPRESA IS NULL)	
						
			GROUP BY	A.CODIGO_FILIAL, 
						A.TERMINAL, 
						A.LANCAMENTO_CAIXA 
	)C
	ON C.CODIGO_FILIAL = B.CODIGO_FILIAL 
	AND C.TERMINAL = B.TERMINAL 
	AND C.LANCAMENTO_CAIXA = B.LANCAMENTO_CAIXA 

	INNER JOIN
	(
			SELECT	A.CODIGO_FILIAL				AS CODIGO_FILIAL, 
					A.DATA_VENDA				As DATA_VENDA, 
					A.TICKET					As TICKET, 
					C.TERMINAL					As TERMINAL,
					SUM(QTDE * PRECO_LIQUIDO)   As VALOR_TOTAL_PRODUTOS,
					SUM(QTDE) 					As QTDE_TOTAL_PRODUTOS
			FROM LOJA_VENDA_PRODUTO A (NOLOCK)	
			INNER JOIN LOJA_VENDA B (NOLOCK)
			ON A.CODIGO_FILIAL = B.CODIGO_FILIAL
				AND A.TICKET = B.TICKET 
				AND A.DATA_VENDA = B.DATA_VENDA
			INNER JOIN LOJA_VENDA_PGTO C (NOLOCK)
				ON B.CODIGO_FILIAL = C.CODIGO_FILIAL 
				AND B.LANCAMENTO_CAIXA = C.LANCAMENTO_CAIXA 
				AND B.TERMINAL = C.TERMINAL 
			INNER JOIN LOJAS_VAREJO FF (NOLOCK)
				ON A.CODIGO_FILIAL = FF.CODIGO_FILIAL
			INNER JOIN FILIAIS F (NOLOCK)
				ON FF.FILIAL = F.FILIAL
			INNER JOIN CADASTRO_CLI_FOR G (NOLOCK)
				ON F.CLIFOR = G.CLIFOR
			
			WHERE B.DATA_VENDA >= @DATA_MOVIMENTO_INICIAL AND B.DATA_VENDA <= @DATA_MOVIMENTO_FINAL	 				
						AND (G.UF = @UF or @UF IS NULL)
							AND (B.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)								
									AND (F.EMPRESA = @EMPRESA OR @EMPRESA IS NULL)				
				
			GROUP BY	A.CODIGO_FILIAL, 
						A.TICKET, 
						A.DATA_VENDA, 
						C.TERMINAL 
	 ) D
	 
	ON D.CODIGO_FILIAL = B.CODIGO_FILIAL 
	AND D.TICKET = B.TICKET 
	AND D.DATA_VENDA = B.DATA_VENDA
	AND D.TERMINAL = b.TERMINAL 	
	LEFT JOIN 
	(
		SELECT	A.CODIGO_FILIAL				as CODIGO_FILIAL, 
				TICKET						as TICKET, 
				DATA_VENDA					as DATA_VENDA, 
				SUM(PRECO_LIQUIDO * QTDE )	as VALOR_TOTAL_TROCA,
				SUM(QTDE )					as QTDE_TOTAL_PRODUTO_TROCA	
		FROM LOJA_VENDA_TROCA A (NOLOCK)
		JOIN LOJAS_VAREJO FF (NOLOCK)
			ON FF.CODIGO_FILIAL = A.CODIGO_FILIAL
		JOIN FILIAIS F (NOLOCK)
			ON F.FILIAL = FF.FILIAL
		JOIN CADASTRO_CLI_FOR G (NOLOCK)
		ON F.CLIFOR = G.CLIFOR		
		WHERE A.DATA_VENDA >= @DATA_MOVIMENTO_INICIAL AND A.DATA_VENDA <= @DATA_MOVIMENTO_FINAL	 
					AND (G.UF = @UF or @UF IS NULL)
						AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)							
								AND (F.EMPRESA = @EMPRESA OR @EMPRESA IS NULL)
								
		GROUP BY	A.CODIGO_FILIAL, 
					TICKET, 
					DATA_VENDA
	)E

	ON B.CODIGO_FILIAL = E.CODIGO_FILIAL 
	AND B.TICKET = E.TICKET
	AND B.DATA_VENDA = E.DATA_VENDA 
	
	JOIN LOJAS_VAREJO FF (NOLOCK)
		ON FF.CODIGO_FILIAL = B.CODIGO_FILIAL
	JOIN FILIAIS F (NOLOCK)
		ON F.FILIAL = FF.FILIAL
	JOIN CADASTRO_CLI_FOR G (NOLOCK)
	ON F.CLIFOR = G.CLIFOR
	
	LEFT JOIN LJ_ETL_CONFERENCIA H (NOLOCK)
	ON FF.CODIGO_FILIAL = H.CODIGO_FILIAL 
	AND FF.FILIAL = H.FILIAL 
	AND B.DATA_VENDA = H.DATA_MOVIMENTO
	
	WHERE A.DATA >= @DATA_MOVIMENTO_INICIAL AND A.DATA <= @DATA_MOVIMENTO_FINAL	 
				AND (G.UF = @UF or @UF IS NULL)
					AND (B.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)						
							AND (F.EMPRESA = @EMPRESA OR @EMPRESA IS NULL)
								AND H.DATA_MOVIMENTO IS NULL
		
	GROUP BY	B.CODIGO_FILIAL, 
				FF.FILIAL, 
				F.EMPRESA, 
				G.UF,
				DATEPART (DAY,B.DATA_VENDA)	,
				DATEPART (MONTH,B.DATA_VENDA),
				DATEPART (YEAR,B.DATA_VENDA),				
				B.DATA_VENDA, 
				B.TICKET ,
				B.TERMINAL

	--Cria tabela temporaria com registros por filial, dia e terminal
	SELECT  A.CODIGO_FILIAL, 
			FILIAL = RTRIM(A.FILIAL),
			A.TERMINAL,
			A.EMPRESA,
			A.UF,			
			A.DIA,
			A.MES,
			A.ANO  
	into #tmpCalculaVendasDiaTerminal		
	FROM #tmpCalculaVendasDetalhes A
	GROUP BY	A.CODIGO_FILIAL, 
				A.FILIAL,
				A.TERMINAL, 
				A.EMPRESA,
				A.UF, 
				A.DIA,
				A.MES,
				A.ANO 
	
	--Cria tabela temporaria com registros por dia	
	SELECT  A.CODIGO_FILIAL, 
			FILIAL = RTRIM(A.FILIAL),
			A.EMPRESA,
			A.UF,			
			A.DIA,
			A.MES,
			A.ANO  
	into #tmpCalculaVendasDia			
	FROM #tmpCalculaVendasDiaTerminal A
	GROUP BY	A.CODIGO_FILIAL, 
				A.FILIAL,
				A.EMPRESA,
				A.UF, 
				A.DIA,
				A.MES,
				A.ANO  
	
	--Cria tabela temporaria com registros por Mes
	SELECT  A.CODIGO_FILIAL, 
			FILIAL = RTRIM(A.FILIAL),		
			A.EMPRESA, 
			A.UF,	
			A.MES,
			A.ANO  
	into #tmpCalculaVendasMes
	FROM #tmpCalculaVendasDia A
	GROUP BY	A.CODIGO_FILIAL, 
				A.FILIAL,		
				A.EMPRESA, 
				A.UF,	
				A.MES,
				A.ANO  	
				 
	--Deleta os registros da tabela LJ_ETL_MONITOR_DETALHES
	DELETE A FROM LJ_ETL_MONITOR_DETALHES A (NOLOCK)
	INNER JOIN #tmpCalculaVendasDia B
		ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 		
		AND A.DIA = B.DIA 
		AND A.MES = B.MES 
		AND A.ANO = B.ANO 
	
	--Atualiza os registros que serão reconferidos
	UPDATE A SET
			A.DIA1 =  CASE WHEN B.DIA1  = 0 THEN A.DIA1  ELSE B.DIA1  END ,
			A.DIA2 =  CASE WHEN B.DIA2  = 0 THEN A.DIA2  ELSE B.DIA2  END ,
			A.DIA3 =  CASE WHEN B.DIA3  = 0 THEN A.DIA3  ELSE B.DIA3  END ,
			A.DIA4 =  CASE WHEN B.DIA4  = 0 THEN A.DIA4  ELSE B.DIA4  END ,
			A.DIA5 =  CASE WHEN B.DIA5  = 0 THEN A.DIA5  ELSE B.DIA5  END ,
			A.DIA6 =  CASE WHEN B.DIA6  = 0 THEN A.DIA6  ELSE B.DIA6  END ,
			A.DIA7 =  CASE WHEN B.DIA7  = 0 THEN A.DIA7  ELSE B.DIA7  END ,
			A.DIA8 =  CASE WHEN B.DIA8  = 0 THEN A.DIA8  ELSE B.DIA8  END ,
			A.DIA9 =  CASE WHEN B.DIA9  = 0 THEN A.DIA9  ELSE B.DIA9  END ,
			A.DIA10 = CASE WHEN B.DIA10 = 0 THEN A.DIA10 ELSE B.DIA10 END ,
			A.DIA11 = CASE WHEN B.DIA11 = 0 THEN A.DIA11 ELSE B.DIA11 END ,
			A.DIA12 = CASE WHEN B.DIA12 = 0 THEN A.DIA12 ELSE B.DIA12 END ,
			A.DIA13 = CASE WHEN B.DIA13 = 0 THEN A.DIA13 ELSE B.DIA13 END ,
			A.DIA14 = CASE WHEN B.DIA14 = 0 THEN A.DIA14 ELSE B.DIA14 END ,
			A.DIA15 = CASE WHEN B.DIA15 = 0 THEN A.DIA15 ELSE B.DIA15 END ,
			A.DIA16 = CASE WHEN B.DIA16 = 0 THEN A.DIA16 ELSE B.DIA16 END ,
			A.DIA17 = CASE WHEN B.DIA17 = 0 THEN A.DIA17 ELSE B.DIA17 END ,
			A.DIA18 = CASE WHEN B.DIA18 = 0 THEN A.DIA18 ELSE B.DIA18 END ,
			A.DIA19 = CASE WHEN B.DIA19 = 0 THEN A.DIA19 ELSE B.DIA19 END ,
			A.DIA20 = CASE WHEN B.DIA20 = 0 THEN A.DIA20 ELSE B.DIA20 END ,
			A.DIA21 = CASE WHEN B.DIA21 = 0 THEN A.DIA21 ELSE B.DIA21 END ,
			A.DIA22 = CASE WHEN B.DIA22 = 0 THEN A.DIA22 ELSE B.DIA22 END ,
			A.DIA23 = CASE WHEN B.DIA23 = 0 THEN A.DIA23 ELSE B.DIA23 END ,
			A.DIA24 = CASE WHEN B.DIA24 = 0 THEN A.DIA24 ELSE B.DIA24 END ,
			A.DIA25 = CASE WHEN B.DIA25 = 0 THEN A.DIA25 ELSE B.DIA25 END ,
			A.DIA26 = CASE WHEN B.DIA26 = 0 THEN A.DIA26 ELSE B.DIA26 END ,
			A.DIA27 = CASE WHEN B.DIA27 = 0 THEN A.DIA27 ELSE B.DIA27 END ,
			A.DIA28 = CASE WHEN B.DIA28 = 0 THEN A.DIA28 ELSE B.DIA28 END ,
			A.DIA29 = CASE WHEN B.DIA29 = 0 THEN A.DIA29 ELSE B.DIA29 END ,
			A.DIA30 = CASE WHEN B.DIA30 = 0 THEN A.DIA30 ELSE B.DIA30 END ,
			A.DIA31 = CASE WHEN B.DIA31 = 0 THEN A.DIA31 ELSE B.DIA31 END 	
	FROM LJ_ETL_MONITOR A		
	INNER JOIN 
	(
		SELECT 	A.CODIGO_FILIAL, 
				FILIAL = RTRIM(A.FILIAL), 
				A.EMPRESA, 
				A.MES, 
				A.ANO,
				DIA1 =  MAX(A.DIA1  ) ,
				DIA2 =  MAX(A.DIA2  ) ,
				DIA3 =	MAX(A.DIA3  ) ,
				DIA4 =	MAX(A.DIA4  ) ,
				DIA5 =	MAX(A.DIA5  ) ,
				DIA6 =	MAX(A.DIA6  ) ,
				DIA7 =	MAX(A.DIA7  ) ,
				DIA8 =	MAX(A.DIA8  ) ,
				DIA9 =	MAX(A.DIA9  ) ,
				DIA10 =	MAX(A.DIA10 ) ,
				DIA11 =	MAX(A.DIA11 ) ,
				DIA12 =	MAX(A.DIA12 ) ,
				DIA13 =	MAX(A.DIA13 ) ,
				DIA14 =	MAX(A.DIA14 ) ,
				DIA15 =	MAX(A.DIA15 ) ,
				DIA16 =	MAX(A.DIA16 ) ,
				DIA17 =	MAX(A.DIA17 ) ,
				DIA18 =	MAX(A.DIA18 ) ,
				DIA19 =	MAX(A.DIA19 ) ,
				DIA20 =	MAX(A.DIA20 ) ,
				DIA21 =	MAX(A.DIA21 ) ,
				DIA22 =	MAX(A.DIA22 ) ,
				DIA23 = MAX(A.DIA23 ) ,
				DIA24 = MAX(A.DIA24 ) ,
				DIA25 = MAX(A.DIA25 ) ,
				DIA26 = MAX(A.DIA26 ) ,
				DIA27 = MAX(A.DIA27 ) ,
				DIA28 = MAX(A.DIA28 ) ,
				DIA29 = MAX(A.DIA29 ) ,
				DIA30 = MAX(A.DIA30 ) ,
				DIA31 = MAX(A.DIA31 ) 
		FROM			 
		(				 
			SELECT	A.CODIGO_FILIAL,
					FILIAL = RTRIM(A.FILIAL), 
					A.EMPRESA,
					A.UF,
					DIA = MIN(A.DIA),
					A.MES,
					A.ANO,
					DIA1 =  CASE WHEN DIA = 1 THEN  2 ELSE 0 END,
					DIA2 =  CASE WHEN DIA = 2 THEN  2 ELSE 0 END,
					DIA3 =  CASE WHEN DIA = 3 THEN  2 ELSE 0 END,
					DIA4 =  CASE WHEN DIA = 4 THEN  2 ELSE 0 END,
					DIA5 =  CASE WHEN DIA = 5 THEN  2 ELSE 0 END,
					DIA6 =  CASE WHEN DIA = 6 THEN  2 ELSE 0 END,
					DIA7 =  CASE WHEN DIA = 7 THEN  2 ELSE 0 END,
					DIA8 =  CASE WHEN DIA = 8 THEN  2 ELSE 0 END,
					DIA9 =  CASE WHEN DIA = 9 THEN  2 ELSE 0 END,
					DIA10 = CASE WHEN DIA = 10 THEN 2 ELSE 0 END,
					DIA11 = CASE WHEN DIA = 11 THEN 2 ELSE 0 END,
					DIA12 = CASE WHEN DIA = 12 THEN 2 ELSE 0 END,
					DIA13 = CASE WHEN DIA = 13 THEN 2 ELSE 0 END,
					DIA14 = CASE WHEN DIA = 14 THEN 2 ELSE 0 END,
					DIA15 = CASE WHEN DIA = 15 THEN 2 ELSE 0 END,
					DIA16 = CASE WHEN DIA = 16 THEN 2 ELSE 0 END,
					DIA17 = CASE WHEN DIA = 17 THEN 2 ELSE 0 END,
					DIA18 = CASE WHEN DIA = 18 THEN 2 ELSE 0 END,
					DIA19 = CASE WHEN DIA = 19 THEN 2 ELSE 0 END,
					DIA20 = CASE WHEN DIA = 20 THEN 2 ELSE 0 END,
					DIA21 = CASE WHEN DIA = 21 THEN 2 ELSE 0 END,
					DIA22 = CASE WHEN DIA = 22 THEN 2 ELSE 0 END,
					DIA23 = CASE WHEN DIA = 23 THEN 2 ELSE 0 END,
					DIA24 = CASE WHEN DIA = 24 THEN 2 ELSE 0 END,
					DIA25 = CASE WHEN DIA = 25 THEN 2 ELSE 0 END,
					DIA26 = CASE WHEN DIA = 26 THEN 2 ELSE 0 END,
					DIA27 = CASE WHEN DIA = 27 THEN 2 ELSE 0 END,
					DIA28 = CASE WHEN DIA = 28 THEN 2 ELSE 0 END,
					DIA29 = CASE WHEN DIA = 29 THEN 2 ELSE 0 END,
					DIA30 = CASE WHEN DIA = 30 THEN 2 ELSE 0 END,
					DIA31 = CASE WHEN DIA = 31 THEN 2 ELSE 0 END
			FROM #tmpCalculaVendasDia A			
			GROUP  BY	A.CODIGO_FILIAL,
						A.FILIAL,
						A.EMPRESA ,
						A.UF,	
						A.DIA,					
						A.MES,
						A.ANO	 
			) A	
		GROUP BY	A.CODIGO_FILIAL , 
					A.FILIAL, 
					A.EMPRESA, 
					A.MES, 
					A.ANO
	) B
	ON A.CODIGO_FILIAL =  B.CODIGO_FILIAL
	AND A.FILIAL = B.FILIAL 	
	AND A.MES = B.MES 
	AND A.ANO = B.ANO
			 		
	--Cria a base dos registros que serão conferidos
	INSERT INTO LJ_ETL_MONITOR 
	SELECT	A.CODIGO_FILIAL,
			FILIAL = RTRIM(A.FILIAL),			
			A.EMPRESA,
			A.UF,
			DIA = MIN(A.DIA),
			A.MES,
			A.ANO,
			DIA1 =   MAX(A.DIA1 ),DIA2 =   MAX(A.DIA2 ),DIA3 =   MAX(A.DIA3 ),DIA4 =   MAX(A.DIA4 ),
			DIA5 =   MAX(A.DIA5 ),DIA6 =   MAX(A.DIA6 ),DIA7 =   MAX(A.DIA7 ),DIA8 =   MAX(A.DIA8 ),
			DIA9 =   MAX(A.DIA9 ),DIA10 =  MAX(A.DIA10),DIA11 =  MAX(A.DIA11),DIA12 =  MAX(A.DIA12),DIA13 =  MAX(A.DIA13),
			DIA14 =  MAX(A.DIA14),DIA15 =  MAX(A.DIA15),DIA16 =  MAX(A.DIA16),DIA17 =  MAX(A.DIA17),DIA18 =  MAX(A.DIA18),
			DIA19 =  MAX(A.DIA19),DIA20 =  MAX(A.DIA20),DIA21 =  MAX(A.DIA21),DIA22 =  MAX(A.DIA22),DIA23 =  MAX(A.DIA23),
			DIA24 =  MAX(A.DIA24),DIA25 =  MAX(A.DIA25),DIA26 =  MAX(A.DIA26),DIA27 =  MAX(A.DIA27),DIA28 =  MAX(A.DIA28),
			DIA29 =  MAX(A.DIA29),DIA30 =  MAX(A.DIA30),DIA31 =  MAX(A.DIA31)
	FROM 
	(
		SELECT	A.CODIGO_FILIAL,
				FILIAL = RTRIM(A.FILIAL), 
				A.EMPRESA,
				A.UF,
				DIA = MIN(A.DIA),
				A.MES,
				A.ANO,
				DIA1 =  CASE WHEN DIA = 1 THEN  2 ELSE 0 END,
				DIA2 =  CASE WHEN DIA = 2 THEN  2 ELSE 0 END,
				DIA3 =  CASE WHEN DIA = 3 THEN  2 ELSE 0 END,
				DIA4 =  CASE WHEN DIA = 4 THEN  2 ELSE 0 END,
				DIA5 =  CASE WHEN DIA = 5 THEN  2 ELSE 0 END,
				DIA6 =  CASE WHEN DIA = 6 THEN  2 ELSE 0 END,
				DIA7 =  CASE WHEN DIA = 7 THEN  2 ELSE 0 END,
				DIA8 =  CASE WHEN DIA = 8 THEN  2 ELSE 0 END,
				DIA9 =  CASE WHEN DIA = 9 THEN  2 ELSE 0 END,
				DIA10 = CASE WHEN DIA = 10 THEN 2 ELSE 0 END,
				DIA11 = CASE WHEN DIA = 11 THEN 2 ELSE 0 END,
				DIA12 = CASE WHEN DIA = 12 THEN 2 ELSE 0 END,
				DIA13 = CASE WHEN DIA = 13 THEN 2 ELSE 0 END,
				DIA14 = CASE WHEN DIA = 14 THEN 2 ELSE 0 END,
				DIA15 = CASE WHEN DIA = 15 THEN 2 ELSE 0 END,
				DIA16 = CASE WHEN DIA = 16 THEN 2 ELSE 0 END,
				DIA17 = CASE WHEN DIA = 17 THEN 2 ELSE 0 END,
				DIA18 = CASE WHEN DIA = 18 THEN 2 ELSE 0 END,
				DIA19 = CASE WHEN DIA = 19 THEN 2 ELSE 0 END,
				DIA20 = CASE WHEN DIA = 20 THEN 2 ELSE 0 END,
				DIA21 = CASE WHEN DIA = 21 THEN 2 ELSE 0 END,
				DIA22 = CASE WHEN DIA = 22 THEN 2 ELSE 0 END,
				DIA23 = CASE WHEN DIA = 23 THEN 2 ELSE 0 END,
				DIA24 = CASE WHEN DIA = 24 THEN 2 ELSE 0 END,
				DIA25 = CASE WHEN DIA = 25 THEN 2 ELSE 0 END,
				DIA26 = CASE WHEN DIA = 26 THEN 2 ELSE 0 END,
				DIA27 = CASE WHEN DIA = 27 THEN 2 ELSE 0 END,
				DIA28 = CASE WHEN DIA = 28 THEN 2 ELSE 0 END,
				DIA29 = CASE WHEN DIA = 29 THEN 2 ELSE 0 END,
				DIA30 = CASE WHEN DIA = 30 THEN 2 ELSE 0 END,
				DIA31 = CASE WHEN DIA = 31 THEN 2 ELSE 0 END
		FROM #tmpCalculaVendasDia A
		GROUP  BY	A.CODIGO_FILIAL,
					A.FILIAL,
					A.EMPRESA ,
					A.UF,
					A.DIA,										
					A.MES,
					A.ANO	 
	) A
	WHERE NOT EXISTS (SELECT TOP 1 1 FROM LJ_ETL_MONITOR AA 
						WHERE A.CODIGO_FILIAL = AA.CODIGO_FILIAL 
						AND A.FILIAL  = AA.FILIAL 
						AND A.EMPRESA = AA.EMPRESA 	
						AND A.MES = AA.MES AND A.ANO = AA.ANO )
	GROUP BY A.CODIGO_FILIAL,
			 A.FILIAL, 
			 A.EMPRESA,
			 A.UF,
			 A.MES,
			 A.ANO

	--========================================Inicio Validação dos Valores de Ticktes=================================================
	
	-- VALIDA INCONSISTENCIAS NOS VALORES DAS VENDAS
	INSERT INTO LJ_ETL_MONITOR_DETALHES 
		(	ORIGEM,
			CODIGO_FILIAL,
			FILIAL, 
			DIA,
			MES, 
			ANO, 
			TERMINAL, 
			TICKET,  
			STATUS_MOVIMENTO,
			MENSAGEM
		)
	SELECT		'1 - Loja',
			    A.CODIGO_FILIAL, 
				FILIAL = RTRIM(A.FILIAL),
				A.DIA,
				A.MES,
				A.ANO ,
				A.TERMINAL,
				A.TICKET, 
				STATUS_MOVIMENTO	= 6,
				MENSAGEM			= 'Inconsistência nos valores da venda.'
	FROM #TMPCALCULAVENDASDETALHES	A
	WHERE   A.TOTAL_VALOR_PAGO != A.TOTAL_VENDA  
			OR A.TOTAL_VENDA != A.TOTAL_VENDA_PARCELAS 
				OR A.TOTAL_VALOR_TICKET != TOTAL_VENDA_DESCONTO 
					OR A.TOTAL_VALOR_VENDA_BRUTA != A.TOTAL_VENDA_ITEM 
						OR A.QTDE_TOTAL != A.QTDE_TOTAL_ITEM  
							OR A.TOTAL_VALOR_TROCA != A.TOTAL_VALOR_TROCA_ITEM 
								OR A.QTDE_TOTAL_TROCA != A.QTDE_TOTAL_TROCA_ITEM
	
	--========================================Fim Validação dos Valores de Ticktes=================================================
	
	--=============================Inicio Validação de Vendedor da Troca e Vendedor do Produto=====================================
	
	--Valida Vendedor Produto
	INSERT INTO LJ_ETL_MONITOR_DETALHES 
		(	ORIGEM, 
		    CODIGO_FILIAL,
			FILIAL, 
			DIA,
			MES, 
			ANO, 
			TERMINAL, 
			TICKET,  
			STATUS_MOVIMENTO,
			MENSAGEM
		)
	SELECT		'1 - Loja',
				A.CODIGO_FILIAL, 
				FILIAL = RTRIM(A.FILIAL),
				A.DIA,
				A.MES,
				A.ANO ,
				A.TERMINAL,
				A.TICKET, 
				STATUS_MOVIMENTO	= 6,
				MENSAGEM			= 'Inconsistência nos valores da venda. (Vendedor do Produto)'
	FROM #TMPCALCULAVENDASDETALHES	A
	INNER JOIN LOJA_VENDA_PRODUTO B
		ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 
		AND A.TICKET = B.TICKET
		AND A.DIA = DATEPART(DAY, B.DATA_VENDA)
		AND A.MES = DATEPART(MONTH, B.DATA_VENDA)
		AND A.ANO = DATEPART(YEAR, B.DATA_VENDA)
	LEFT JOIN LOJA_VENDA_VENDEDORES C
		ON B.CODIGO_FILIAL = C.CODIGO_FILIAL
		AND B.DATA_VENDA = C.DATA_VENDA
		AND B.TICKET = C.TICKET
		AND B.ID_VENDEDOR = C.ID_VENDEDOR	
	WHERE  C.ID_VENDEDOR IS NULL

	--Valida vendedor da Troca
	INSERT INTO LJ_ETL_MONITOR_DETALHES 
		(	ORIGEM, 
			CODIGO_FILIAL,
			FILIAL, 
			DIA,
			MES, 
			ANO, 
			TERMINAL, 
			TICKET,  
			STATUS_MOVIMENTO,
			MENSAGEM
		)
	SELECT		'1 - Loja',
				A.CODIGO_FILIAL, 
				FILIAL = RTRIM(A.FILIAL),
				A.DIA,
				A.MES,
				A.ANO ,
				A.TERMINAL,
				A.TICKET, 
				STATUS_MOVIMENTO	= 6,
				MENSAGEM			= 'Inconsistência nos valores da venda. (Vendedor da Troca)'
	FROM #TMPCALCULAVENDASDETALHES	A
	INNER JOIN LOJA_VENDA_TROCA B
		ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 
		AND A.TICKET = B.TICKET
		AND A.DIA = DATEPART(DAY, B.DATA_VENDA)
		AND A.MES = DATEPART(MONTH, B.DATA_VENDA)
		AND A.ANO = DATEPART(YEAR, B.DATA_VENDA)
	LEFT JOIN LOJA_VENDA_VENDEDORES C
		ON B.CODIGO_FILIAL = C.CODIGO_FILIAL
		AND B.DATA_VENDA = C.DATA_VENDA
		AND B.TICKET = C.TICKET
		AND B.ID_VENDEDOR = C.ID_VENDEDOR	
	WHERE  C.ID_VENDEDOR IS NULL
		
	--=============================Fim Validação de Vendedor da Troca e Vendedor do Produto=====================================
	
	--========================================Inicio Validação de Venda Cupom e Redução Z=================================================

	-- Alimenta a Procedure através da Procedure LX_LJ_GERA_MOVIMENTO_ECF

	If Object_id ('LX_LJ_GERA_MOVIMENTO_ECF', 'P') Is Not Null 
	Begin
	
		Declare @CodigoFilial Char(6),
				@IdEquipamento varchar(20),
				@DataMovimento datetime,
				@TerminalControleFiscal char(3)
	
		Declare curGeraMovimentoEcf cursor for

		SELECT	LOJA_CONTROLE_FISCAL.CODIGO_FILIAL, 
				LOJA_CONTROLE_FISCAL.ID_EQUIPAMENTO, 
				LOJA_CONTROLE_FISCAL.DATA_FISCAL,
				LOJA_CONTROLE_FISCAL.TERMINAL
		FROM 
			LOJA_CONTROLE_FISCAL
		INNER JOIN #tmpCalculaVendasDia
			ON LOJA_CONTROLE_FISCAL.CODIGO_FILIAL = #tmpCalculaVendasDia.CODIGO_FILIAL
			AND DATEPART(DAY,	LOJA_CONTROLE_FISCAL.DATA_FISCAL)	= #tmpCalculaVendasDia.DIA 
			AND DATEPART(MONTH, LOJA_CONTROLE_FISCAL.DATA_FISCAL)	= #tmpCalculaVendasDia.MES 
			AND DATEPART(YEAR,	LOJA_CONTROLE_FISCAL.DATA_FISCAL)	= #tmpCalculaVendasDia.ANO  

		WHERE 
			DATA_FISCAL >= @DATA_MOVIMENTO_INICIAL AND DATA_FISCAL <= @DATA_MOVIMENTO_FINAL

		OPEN curGeraMovimentoEcf
	
		FETCH NEXT FROM curGeraMovimentoEcf into @CodigoFilial, @IdEquipamento, @DataMovimento, @TerminalControleFiscal

		WHILE @@FETCH_STATUS = 0
		BEGIn

			PRINT 'Executando procedure LX_LJ_GERA_MOVIMENTO_ECF - Código Filial:' 
				+ @CodigoFilial + ' - Terminal: ' 
				+ @TerminalControleFiscal + ' - Id_Equipamento: '
				+ @IdEquipamento + ' - Data Movimento: ' 
				+   RIGHT('00' + CONVERT(VARCHAR(2), DATEPART(DAY,@DataMovimento)), 2) + '/' +  RIGHT('00' + CONVERT(VARCHAR(2), DATEPART(MONTH,@DataMovimento)), 2) + '/' + CONVERT(CHAR(4),  DATEPART(YEAR,@DataMovimento) )

			BEGIN TRY

				EXEC LX_LJ_GERA_MOVIMENTO_ECF @CodigoFilial, @IdEquipamento, @DataMovimento, null	
			
			END TRY
			BEGIN CATCH
			
				PRINT ''
				PRINT 'Ocorreu o seguinte erro ao executar a procedure do Mapa Resumo (LX_LJ_GERA_MOVIMENTO_ECF): ' + ERROR_MESSAGE()
				PRINT 'Erro registrado na tabela LJ_ETL_MONITOR_DETALHES'
				PRINT ''

				INSERT INTO LJ_ETL_MONITOR_DETALHES 
						(ORIGEM, CODIGO_FILIAL, FILIAL, DIA, MES, ANO, TERMINAL, TICKET,  STATUS_MOVIMENTO, MENSAGEM)
				VALUES	('1 - Loja', @CodigoFilial, '', DAY(@DataMovimento), MONTH(@DataMovimento), YEAR(@DataMovimento), @TerminalControleFiscal, '', 6, 'Ocorreu o seguinte erro ao executar a procedure do Mapa Resumo (LX_LJ_GERA_MOVIMENTO_ECF): ' + ERROR_MESSAGE())

			END CATCH

			FETCH NEXT FROM curGeraMovimentoEcf into @CodigoFilial, @IdEquipamento, @DataMovimento, @TerminalControleFiscal

		END

		CLOSE  curGeraMovimentoEcf
		DEALLOCATE curGeraMovimentoEcf

	End
	---

	--Efetua o calculo de total de venda bruta e total de venda liquida		
	SELECT
			LFC.CODIGO_FILIAL, 
			FILIAL = RTRIM(LFC.FILIAL),
			DIA = DATEPART(DAY, LFC.DATA_VENDA),
			MES = DATEPART(MONTH, LFC.DATA_VENDA),
			ANO = DATEPART(YEAR, LFC.DATA_VENDA),
			LFC.TERMINAL,
			TOTAL_BRUTO_VENDA =	 SUM(VALOR_VENDA_BRUTA), 
			TOTAL_LIQUIDO_VENDA	= SUM(VALOR_LIQUIDO_TOTAL) 
	into #tmpLfEcfItem
	FROM
		(SELECT
			CODIGO_FILIAL,
			FILIAL, 
			DATA_VENDA,
			TERMINAL, 
			VALOR_VENDA_BRUTA	= SUM(VALOR_VENDA_BRUTA),
			PRECO_BRUTO			= SUM(PRECO_BRUTO),  
			VALOR_CANCELADO		= SUM(VALOR_CANCELADO), 
			VALOR_DESCONTO		= SUM(VALOR_DESCONTO),
			VALOR_LIQUIDO_TOTAL = SUM(VALOR_LIQUIDO_TOTAL),
			ICMS 			
		FROM 
			(
				SELECT 
					'' AS TOT_CF, A.CODIGO_FILIAL, A.FILIAL, A.TERMINAL, A.DATA_VENDA, A.LANCAMENTO_CAIXA, A.TICKET, A.ALIQUOTA_ICMS AS ICMS, 
					A.QTDE, A.PRECO_BRUTO, A.VALOR_VENDA_BRUTA, A.VALOR_LIQUIDO_TOTAL, A.VALOR_DESCONTO, A.VALOR_ACRESCIMO, A.QTDE_CANCELADA, A.VALOR_CANCELADO, A.ID_EQUIPAMENTO
				FROM
					LJ_LF_ECF_ITEM A		
				INNER JOIN #tmpCalculaVendasDiaTerminal B
				ON	A.FILIAL = B.FILIAL 
					AND A.TERMINAL = B.TERMINAL 					
					AND DATEPART(DAY, A.DATA_VENDA) = B.DIA 
					AND DATEPART(MONTH, A.DATA_VENDA) = B.MES
					AND DATEPART(YEAR, A.DATA_VENDA) = B.ANO
			) A
		GROUP BY 
			CODIGO_FILIAL, FILIAL,  DATA_VENDA, TERMINAL, ICMS
			) LFC
	GROUP BY 
		LFC.CODIGO_FILIAL,LFC.FILIAL, LFC.DATA_VENDA, LFC.TERMINAL
	
	INSERT INTO LJ_ETL_MONITOR_DETALHES 
	(ORIGEM, CODIGO_FILIAL,FILIAL, DIA,MES, ANO, TERMINAL, STATUS_MOVIMENTO,MENSAGEM)
	
	SELECT '1 - Loja',
		   A.CODIGO_FILIAL, 
		   FILIAL = RTRIM(A.FILIAL),
		   A.DIA,
		   A.MES,
		   A.ANO ,
		   A.TERMINAL,		   
		   STATUS_MOVIMENTO	= 6,		   
		   MENSAGEM			= CASE WHEN B.CODIGO_FILIAL IS NULL 
										THEN 'Redução Z Não Encontrada.'  
												ELSE 'Há divergências entre o movimento e a redução Z' END
	FROM  #tmpLfEcfItem A
	LEFT JOIN 	LOJA_CONTROLE_FISCAL b(NOLOCK)
	ON A.CODIGO_FILIAL = B.CODIGO_FILIAL  
		AND A.TERMINAL = B.TERMINAL 
		AND A.DIA = DATEPART(DAY, B.DATA_FISCAL)
		AND A.MES = DATEPART(MONTH, B.DATA_FISCAL)
		AND A.ANO = DATEPART(YEAR, B.DATA_FISCAL)	
	WHERE  (B.TOTAL_BRUTO != 0 OR B.CODIGO_FILIAL IS NULL )	  AND
	    
		(ABS(CAST(ISNULL(B.TOTAL_BRUTO,0) /*+ ISNULL(B.TOTAL_ACRESCIMO, 0)*/ AS DECIMAL(14,2)) - 
			CAST(ISNULL(A.TOTAL_BRUTO_VENDA,0) AS DECIMAL(14,2))) > 0.99 )
		
		OR (ABS(CAST(ISNULL(B.TOTAL_BRUTO,0) /*+ ISNULL(B.TOTAL_ACRESCIMO,0)*/ - ISNULL(B.TOTAL_CANCELADO,0) - 
			ISNULL(B.TOTAL_DESCONTO,0) AS DECIMAL(14,2)) - CAST(ISNULL(A.TOTAL_LIQUIDO_VENDA,0) AS DECIMAL(14,2))) > 0.99 )	
		
		
	--========================================Fim Validação de Venda Cupom e Redução Z=================================================
	
	--========================================Inicio Validação do processamento do ETL=================================================
	
	INSERT INTO LJ_ETL_MONITOR_DETALHES 
	(CODIGO_FILIAL,FILIAL, DIA,MES, ANO,STATUS_MOVIMENTO,MENSAGEM,ID_ETL_ARQUIVO,ID_ETL_PROCESSO,DATA_PROCESSO, ORIGEM)	
	
	SELECT A.CODIGO_FILIAL, 
		   FILIAL = RTRIM(A.FILIAL),
		   A.DIA,
		   A.MES,
		   A.ANO ,		   	   
		   STATUS_MOVIMENTO	= 
		   CASE WHEN C.COD_RETORNO = -2 THEN 3
				WHEN B.PROCESSADO  != 3 THEN 4
				WHEN C.COD_RETORNO = -1 THEN 5 END,
		   MENSAGEM	= CASE WHEN C.ID_ETL_ARQUIVO IS NULL THEN 'Arquivo aguardando processamento'  ELSE C.CRITICA_PROCESSO  END,
		   ISNULL(B.ID_ETL_ARQUIVO, 0),
		   ISNULL(C.ID_ETL_PROCESSO, 0),
		   C.DATA_HORA_PROCESSO,
		   ORIGEM = '1 - Loja' 
	FROM #tmpCalculaVendasDia A
	INNER JOIN LJ_ETL_ARQUIVO B (NOLOCK)
	ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 
		AND A.DIA = DATEPART(DAY, DATA_HORA_CRIACAO )
			AND A.MES = DATEPART(MONTH, DATA_HORA_CRIACAO )
				AND A.ANO = DATEPART(YEAR, DATA_HORA_CRIACAO )
	LEFT JOIN LJ_ETL_PROCESSO C (NOLOCK)
		ON C.ID_ETL_ARQUIVO = B.ID_ETL_ARQUIVO 
	INNER JOIN LJ_LX_ETL_TIPO D (NOLOCK)
		ON B.ID_ETL_TIPO = D.ID_ETL_TIPO 
	WHERE ( C.COD_RETORNO  = - 1 OR C.COD_RETORNO = -2 OR B.PROCESSADO != 3) 
		AND D.ORIGEM = 1
	
	--========================================Fim Validação do processamento do ETL=================================================
		
	--========================================Inicio Validação de Quebra de Tickets=================================================
	
	DECLARE CUR_LOJAS CURSOR FAST_FORWARD FOR
		
	SELECT 
		A.CODIGO_FILIAL, 
		B.FILIAL,		
		DATEPART(DAY, DATA_VENDA ) DIA,
		DATEPART(MONTH, DATA_VENDA) MES,
		DATEPART(YEAR , DATA_VENDA) ANO,
		MIN(RIGHT(REPLICATE('0', 8) + CONVERT(VARCHAR, CONVERT(INT, A.TICKET)), 8)), 
		MAX(RIGHT(REPLICATE('0', 8) + CONVERT(VARCHAR, CONVERT(INT, A.TICKET)), 8))
	FROM 
		LOJA_VENDA A (NOLOCK)
	INNER JOIN #tmpCalculaVendasDia B			
	ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 				
			AND DATEPART(DAY, DATA_VENDA)  = B.DIA
				AND DATEPART(MONTH, DATA_VENDA) = B.MES	
					AND DATEPART(YEAR , DATA_VENDA) = B.ANO 
	WHERE  ISNUMERIC(A.TICKET) = 1 AND LEN(RTRIM(A.TICKET)) = 8
		
	GROUP BY 
		A.CODIGO_FILIAL, 
		B.FILIAL,		
		DATEPART(DAY, DATA_VENDA) ,
		DATEPART(MONTH, DATA_VENDA),
		DATEPART(YEAR , DATA_VENDA)	
	HAVING
		CONVERT(INT, MAX(RIGHT(REPLICATE('0', 8) + 
		CONVERT(VARCHAR, CONVERT(INT, TICKET)), 8))) - 
		CONVERT(INT, MIN(RIGHT(REPLICATE('0', 8) + 
		CONVERT(VARCHAR, CONVERT(INT, TICKET)), 8))) <= 1500
	ORDER BY 
		A.CODIGO_FILIAL, 
		B.FILIAL, 		
		DATEPART(DAY, DATA_VENDA) ,
		DATEPART(MONTH, DATA_VENDA),
		DATEPART(YEAR , DATA_VENDA)

	DECLARE @RESULTADO TABLE 
		(CODIGO_FILIAL VARCHAR(6), FILIAL VARCHAR(25), DIA INT, MES INT, ANO INT, TICKET VARCHAR(8))

	OPEN CUR_LOJAS
	FETCH NEXT FROM CUR_LOJAS INTO @CODIGO_FILIAL_CUR, @FILIAL_CUR, @DIA_CUR, @MES_CUR, @ANO_CUR, @MIN_TICKET, @MAX_TICKET

	WHILE @@FETCH_STATUS = 0
	BEGIN
		WHILE @MIN_TICKET < @MAX_TICKET
		BEGIN
			IF NOT EXISTS 
			(SELECT 1 FROM LOJA_VENDA (NOLOCK) 
					WHERE CODIGO_FILIAL = @CODIGO_FILIAL_CUR 						
							AND TICKET = @MIN_TICKET 
								AND DATEPART(DAY, DATA_VENDA) = @DIA_CUR 
									AND DATEPART(MONTH, DATA_VENDA) = @MES_CUR
										AND DATEPART(YEAR , DATA_VENDA) = @ANO_CUR)
					
				INSERT INTO @RESULTADO
					(CODIGO_FILIAL, FILIAL, DIA, MES, ANO, TICKET)
				VALUES
					(@CODIGO_FILIAL_CUR,@FILIAL_CUR, @DIA_CUR, @MES_CUR , @ANO_CUR , @MIN_TICKET)
					
			SELECT @MIN_TICKET = RIGHT(REPLICATE('0', 8) + CONVERT(VARCHAR, CONVERT(INT, @MIN_TICKET) + 1), 8)
		END

		FETCH NEXT FROM CUR_LOJAS INTO @CODIGO_FILIAL_CUR, @FILIAL_CUR, @DIA_CUR, @MES_CUR, @ANO_CUR, @MIN_TICKET, @MAX_TICKET
	END

	CLOSE CUR_LOJAS
	DEALLOCATE CUR_LOJAS
	
	INSERT INTO LJ_ETL_MONITOR_DETALHES  
	(ORIGEM, CODIGO_FILIAL, FILIAL, DIA, MES, ANO, TICKET, STATUS_MOVIMENTO, MENSAGEM)
	SELECT '1 - Loja',
		   A.CODIGO_FILIAL, 
		   FILIAL = RTRIM(A.FILIAL),		   
		   A.DIA,
		   A.MES,
		   A.ANO ,	   	 
		   A.TICKET,  
		   STATUS_MOVIMENTO	= 6	   ,
		   MENSAGEM = 'Ticket não encontrado no banco de dados.'
	FROM @RESULTADO A
	ORDER BY A.TICKET
	 
	--========================================Fim Validação de Quebra de Tickets=================================================
	
	--========================================Inicio Grava conferencia=================================================
	INSERT INTO LJ_ETL_CONFERENCIA 		
	SELECT	A.CODIGO_FILIAL,
			A.FILIAL,
			DATA_MOVIMENTO = CONVERT(VARCHAR(4),A.ANO) + RIGHT('00' + CONVERT(VARCHAR(2),A.MES ), 2) + RIGHT('00' + CONVERT(VARCHAR(2),A.DIA), 2)
	FROM #tmpCalculaVendasDia A 
	LEFT JOIN 
	(
		SELECT	A.CODIGO_FILIAL,
				A.FILIAL, 
				A.DIA, 
				A.MES, 
				A.ANO 
		FROM LJ_ETL_MONITOR_DETALHES A (NOLOCK)
		GROUP BY	A.CODIGO_FILIAL,
					A.FILIAL, 
					A.DIA, 
					A.MES, 
					A.ANO    
	) B
	ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 		 
		AND A.DIA = B.DIA
			AND A.MES = B.MES 
				AND A.ANO = B.ANO 
	
	LEFT JOIN LJ_ETL_CONFERENCIA C (NOLOCK)
	ON A.CODIGO_FILIAL = C.CODIGO_FILIAL 		
			AND A.DIA = DATEPART(DAY, C.DATA_MOVIMENTO)
				AND A.MES = DATEPART(MONTH, C.DATA_MOVIMENTO)
					AND A.ANO = DATEPART(YEAR, C.DATA_MOVIMENTO)
					
	WHERE B.CODIGO_FILIAL IS NULL  AND B.DIA IS NULL AND B.MES IS NULL AND B.ANO IS NULL
			AND C.CODIGO_FILIAL IS NULL AND C.FILIAL IS NULL AND C.DATA_MOVIMENTO IS NULL
	
	--========================================Fim Grava conferencia=================================================
		
	--Agrupa os registros conferidos e com critica e alimenta a tabela LJ_ETL_MONITOR	
	
	UPDATE A
		SET     A.DIA1 =    CASE WHEN ISNULL(B.DIA1  ,0) = 0 THEN ISNULL(A.DIA1  ,0)  ELSE ISNULL(B.DIA1  , 0) END,
				A.DIA2 = 	CASE WHEN ISNULL(B.DIA2  ,0) = 0 THEN ISNULL(A.DIA2  ,0)  ELSE ISNULL(B.DIA2  , 0) END,
				A.DIA3 = 	CASE WHEN ISNULL(B.DIA3  ,0) = 0 THEN ISNULL(A.DIA3  ,0)  ELSE ISNULL(B.DIA3  , 0) END,
				A.DIA4 = 	CASE WHEN ISNULL(B.DIA4  ,0) = 0 THEN ISNULL(A.DIA4  ,0)  ELSE ISNULL(B.DIA4  , 0) END,
				A.DIA5 = 	CASE WHEN ISNULL(B.DIA5  ,0) = 0 THEN ISNULL(A.DIA5  ,0)  ELSE ISNULL(B.DIA5  , 0) END,
				A.DIA6 = 	CASE WHEN ISNULL(B.DIA6  ,0) = 0 THEN ISNULL(A.DIA6  ,0)  ELSE ISNULL(B.DIA6  , 0) END,
				A.DIA7 = 	CASE WHEN ISNULL(B.DIA7  ,0) = 0 THEN ISNULL(A.DIA7  ,0)  ELSE ISNULL(B.DIA7  , 0) END,
				A.DIA8 = 	CASE WHEN ISNULL(B.DIA8  ,0) = 0 THEN ISNULL(A.DIA8  ,0)  ELSE ISNULL(B.DIA8  , 0) END,
				A.DIA9 = 	CASE WHEN ISNULL(B.DIA9  ,0) = 0 THEN ISNULL(A.DIA9  ,0)  ELSE ISNULL(B.DIA9  , 0) END,
				A.DIA10 =	CASE WHEN ISNULL(B.DIA10 ,0) = 0 THEN ISNULL(A.DIA10 ,0)  ELSE ISNULL(B.DIA10 , 0) END,
				A.DIA11 =	CASE WHEN ISNULL(B.DIA11 ,0) = 0 THEN ISNULL(A.DIA11 ,0)  ELSE ISNULL(B.DIA11 , 0) END,
				A.DIA12 =	CASE WHEN ISNULL(B.DIA12 ,0) = 0 THEN ISNULL(A.DIA12 ,0)  ELSE ISNULL(B.DIA12 , 0) END,
				A.DIA13 =	CASE WHEN ISNULL(B.DIA13 ,0) = 0 THEN ISNULL(A.DIA13 ,0)  ELSE ISNULL(B.DIA13 , 0) END,
				A.DIA14 =	CASE WHEN ISNULL(B.DIA14 ,0) = 0 THEN ISNULL(A.DIA14 ,0)  ELSE ISNULL(B.DIA14 , 0) END,
				A.DIA15 =	CASE WHEN ISNULL(B.DIA15 ,0) = 0 THEN ISNULL(A.DIA15 ,0)  ELSE ISNULL(B.DIA15 , 0) END,
				A.DIA16 =	CASE WHEN ISNULL(B.DIA16 ,0) = 0 THEN ISNULL(A.DIA16 ,0)  ELSE ISNULL(B.DIA16 , 0) END,
				A.DIA17 =	CASE WHEN ISNULL(B.DIA17 ,0) = 0 THEN ISNULL(A.DIA17 ,0)  ELSE ISNULL(B.DIA17 , 0) END,
				A.DIA18 =	CASE WHEN ISNULL(B.DIA18 ,0) = 0 THEN ISNULL(A.DIA18 ,0)  ELSE ISNULL(B.DIA18 , 0) END,
				A.DIA19 =	CASE WHEN ISNULL(B.DIA19 ,0) = 0 THEN ISNULL(A.DIA19 ,0)  ELSE ISNULL(B.DIA19 , 0) END,
				A.DIA20 =	CASE WHEN ISNULL(B.DIA20 ,0) = 0 THEN ISNULL(A.DIA20 ,0)  ELSE ISNULL(B.DIA20 , 0) END,
				A.DIA21 =	CASE WHEN ISNULL(B.DIA21 ,0) = 0 THEN ISNULL(A.DIA21 ,0)  ELSE ISNULL(B.DIA21 , 0) END,
				A.DIA22 =	CASE WHEN ISNULL(B.DIA22 ,0) = 0 THEN ISNULL(A.DIA22 ,0)  ELSE ISNULL(B.DIA22 , 0) END,
				A.DIA23 =	CASE WHEN ISNULL(B.DIA23 ,0) = 0 THEN ISNULL(A.DIA23 ,0)  ELSE ISNULL(B.DIA23 , 0) END,
				A.DIA24 =	CASE WHEN ISNULL(B.DIA24 ,0) = 0 THEN ISNULL(A.DIA24 ,0)  ELSE ISNULL(B.DIA24 , 0) END,
				A.DIA25 =	CASE WHEN ISNULL(B.DIA25 ,0) = 0 THEN ISNULL(A.DIA25 ,0)  ELSE ISNULL(B.DIA25 , 0) END,
				A.DIA26 =	CASE WHEN ISNULL(B.DIA26 ,0) = 0 THEN ISNULL(A.DIA26 ,0)  ELSE ISNULL(B.DIA26 , 0) END,
				A.DIA27 =	CASE WHEN ISNULL(B.DIA27 ,0) = 0 THEN ISNULL(A.DIA27 ,0)  ELSE ISNULL(B.DIA27 , 0) END,
				A.DIA28 =	CASE WHEN ISNULL(B.DIA28 ,0) = 0 THEN ISNULL(A.DIA28 ,0)  ELSE ISNULL(B.DIA28 , 0) END,
				A.DIA29 =	CASE WHEN ISNULL(B.DIA29 ,0) = 0 THEN ISNULL(A.DIA29 ,0)  ELSE ISNULL(B.DIA29 , 0) END,
				A.DIA30 =	CASE WHEN ISNULL(B.DIA30 ,0) = 0 THEN ISNULL(A.DIA30 ,0)  ELSE ISNULL(B.DIA30 , 0) END,
				A.DIA31 =	CASE WHEN ISNULL(B.DIA31 ,0) = 0 THEN ISNULL(A.DIA31 ,0)  ELSE ISNULL(B.DIA31 , 0) END
	FROM LJ_ETL_MONITOR A	
	LEFT JOIN 
	(
		SELECT	A.CODIGO_FILIAL , A.FILIAL , A.EMPRESA, A.UF,  A.MES , A.ANO ,
				DIA1 =   MAX(DIA1 ),DIA2 =   MAX(DIA2 ),DIA3 =   MAX(DIA3 ),DIA4 =   MAX(DIA4 ),
				DIA5 =   MAX(DIA5 ),DIA6 =   MAX(DIA6 ),DIA7 =   MAX(DIA7 ),DIA8 =   MAX(DIA8 ),
				DIA9 =   MAX(DIA9 ),DIA10 =  MAX(DIA10),DIA11 =  MAX(DIA11),DIA12 =  MAX(DIA12),DIA13 =  MAX(DIA13),
				DIA14 =  MAX(DIA14),DIA15 =  MAX(DIA15),DIA16 =  MAX(DIA16),DIA17 =  MAX(DIA17),DIA18 =  MAX(DIA18),
				DIA19 =  MAX(DIA19),DIA20 =  MAX(DIA20),DIA21 =  MAX(DIA21),DIA22 =  MAX(DIA22),DIA23 =  MAX(DIA23),
				DIA24 =  MAX(DIA24),DIA25 =  MAX(DIA25),DIA26 =  MAX(DIA26),DIA27 =  MAX(DIA27),DIA28 =  MAX(DIA28),
				DIA29 =  MAX(DIA29),DIA30 =  MAX(DIA30),DIA31 =  MAX(DIA31)
		FROM 
		(
					
			--SELECT	FF.CODIGO_FILIAL,
			--		FF.FILIAL, 
			--		F.EMPRESA,
			--		G.UF,
			--		MES = DATEPART(MONTH, A.DATA),
			--		ANO = DATEPART(YEAR, A.DATA),
			--		DIA1 =  CASE WHEN DATEPART(DAY, A.DATA) = 1 THEN 1 ELSE 0 END,
			--		DIA2 =  CASE WHEN DATEPART(DAY, A.DATA) = 2 THEN 1 ELSE 0 END,
			--		DIA3 =  CASE WHEN DATEPART(DAY, A.DATA) = 3 THEN 1 ELSE 0 END,
			--		DIA4 =  CASE WHEN DATEPART(DAY, A.DATA) = 4 THEN 1 ELSE 0 END,
			--		DIA5 =  CASE WHEN DATEPART(DAY, A.DATA) = 5 THEN 1 ELSE 0 END,
			--		DIA6 =  CASE WHEN DATEPART(DAY, A.DATA) = 6 THEN 1 ELSE 0 END,
			--		DIA7 =  CASE WHEN DATEPART(DAY, A.DATA) = 7 THEN 1 ELSE 0 END,
			--		DIA8 =  CASE WHEN DATEPART(DAY, A.DATA) = 8 THEN 1 ELSE 0 END,
			--		DIA9 =  CASE WHEN DATEPART(DAY, A.DATA) = 9 THEN 1 ELSE 0 END,
			--		DIA10 =  CASE WHEN DATEPART(DAY, A.DATA) = 10 THEN 1 ELSE 0 END,
			--		DIA11 =  CASE WHEN DATEPART(DAY, A.DATA) = 11 THEN 1 ELSE 0 END,
			--		DIA12 =  CASE WHEN DATEPART(DAY, A.DATA) = 12 THEN 1 ELSE 0 END,							
			--		DIA13 =  CASE WHEN DATEPART(DAY, A.DATA) = 13 THEN 1 ELSE 0 END,
			--		DIA14 =  CASE WHEN DATEPART(DAY, A.DATA) = 14 THEN 1 ELSE 0 END,
			--		DIA15 =  CASE WHEN DATEPART(DAY, A.DATA) = 15 THEN 1 ELSE 0 END,
			--		DIA16 =  CASE WHEN DATEPART(DAY, A.DATA) = 16 THEN 1 ELSE 0 END,
			--		DIA17 =  CASE WHEN DATEPART(DAY, A.DATA) = 17 THEN 1 ELSE 0 END,
			--		DIA18 =  CASE WHEN DATEPART(DAY, A.DATA) = 18 THEN 1 ELSE 0 END,
			--		DIA19 =  CASE WHEN DATEPART(DAY, A.DATA) = 19 THEN 1 ELSE 0 END,		
			--		DIA20 =  CASE WHEN DATEPART(DAY, A.DATA) = 20 THEN 1 ELSE 0 END,
			--		DIA21 =  CASE WHEN DATEPART(DAY, A.DATA) = 21 THEN 1 ELSE 0 END,
			--		DIA22 =  CASE WHEN DATEPART(DAY, A.DATA) = 22 THEN 1 ELSE 0 END,
			--		DIA23 =  CASE WHEN DATEPART(DAY, A.DATA) = 23 THEN 1 ELSE 0 END,
			--		DIA24 =  CASE WHEN DATEPART(DAY, A.DATA) = 24 THEN 1 ELSE 0 END,
			--		DIA25 =  CASE WHEN DATEPART(DAY, A.DATA) = 25 THEN 1 ELSE 0 END,
			--		DIA26 =  CASE WHEN DATEPART(DAY, A.DATA) = 26 THEN 1 ELSE 0 END,
			--		DIA27 =  CASE WHEN DATEPART(DAY, A.DATA) = 27 THEN 1 ELSE 0 END,
			--		DIA28 =  CASE WHEN DATEPART(DAY, A.DATA) = 28 THEN 1 ELSE 0 END,
			--		DIA29 =  CASE WHEN DATEPART(DAY, A.DATA) = 29 THEN 1 ELSE 0 END,
			--		DIA30 =  CASE WHEN DATEPART(DAY, A.DATA) = 30 THEN 1 ELSE 0 END,																		
			--		DIA31 =  CASE WHEN DATEPART(DAY, A.DATA) = 31 THEN 1 ELSE 0 END
			--FROM LJ_LOJA_FECHADA A
						
			--JOIN LOJAS_VAREJO FF (NOLOCK)
			--	ON FF.CODIGO_FILIAL = A.CODIGO_FILIAL									
			--JOIN FILIAIS F (NOLOCK)
			--	ON FF.FILIAL = F.FILIAL 			
			--JOIN CADASTRO_CLI_FOR G (NOLOCK)
			--ON F.CLIFOR = G.CLIFOR
			
			--WHERE A.DATA >= @DATA_MOVIMENTO_INICIAL AND A.DATA <= @DATA_MOVIMENTO_FINAL
			--			AND (G.UF = @UF or @UF IS NULL)
			--				AND (F.COD_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)								
			--					AND (F.EMPRESA = @EMPRESA OR @EMPRESA IS NULL)
		
			--UNION
		
			SELECT	B.CODIGO_FILIAL,
					B.FILIAL, 
					B.EMPRESA,
					B.UF,
					A.MES,
					A.ANO,
					DIA1 =  CASE WHEN A.DIA = 1 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA2 =  CASE WHEN A.DIA = 2 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA3 =  CASE WHEN A.DIA = 3 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA4 =  CASE WHEN A.DIA = 4 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA5 =  CASE WHEN A.DIA = 5 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA6 =  CASE WHEN A.DIA = 6 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA7 =  CASE WHEN A.DIA = 7 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA8 =  CASE WHEN A.DIA = 8 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA9 =  CASE WHEN A.DIA = 9 THEN  MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA10 = CASE WHEN A.DIA = 10 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA11 = CASE WHEN A.DIA = 11 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA12 = CASE WHEN A.DIA = 12 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA13 = CASE WHEN A.DIA = 13 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA14 = CASE WHEN A.DIA = 14 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA15 = CASE WHEN A.DIA = 15 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA16 = CASE WHEN A.DIA = 16 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA17 = CASE WHEN A.DIA = 17 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA18 = CASE WHEN A.DIA = 18 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA19 = CASE WHEN A.DIA = 19 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA20 = CASE WHEN A.DIA = 20 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA21 = CASE WHEN A.DIA = 21 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA22 = CASE WHEN A.DIA = 22 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA23 = CASE WHEN A.DIA = 23 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA24 = CASE WHEN A.DIA = 24 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA25 = CASE WHEN A.DIA = 25 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA26 = CASE WHEN A.DIA = 26 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA27 = CASE WHEN A.DIA = 27 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA28 = CASE WHEN A.DIA = 28 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA29 = CASE WHEN A.DIA = 29 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA30 = CASE WHEN A.DIA = 30 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END,
					DIA31 = CASE WHEN A.DIA = 31 THEN MAX(STATUS_MOVIMENTO) ELSE 0 END
			FROM LJ_ETL_MONITOR_DETALHES A
			INNER JOIN #tmpCalculaVendasDia B			
			ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 	
			AND A.FILIAL = B.FILIAL 					
				AND A.DIA = B.DIA
				AND A.MES = B.MES
				AND A.ANO = B.ANO
			
			GROUP BY B.CODIGO_FILIAL,
					 B.FILIAL ,					 
					 B.EMPRESA,
					 B.UF,
					 A.MES,
					 A.ANO,
					 A.DIA 
			UNION
			
			SELECT	FF.CODIGO_FILIAL,
					FF.FILIAL, 	
					F.EMPRESA,
					G.UF, 				
					MES = DATEPART(MONTH,A.DATA_MOVIMENTO),
					ANO = DATEPART(YEAR,A.DATA_MOVIMENTO),					
					DIA1 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 1 THEN  7 ELSE 0 END,
					DIA2 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 2 THEN  7 ELSE 0 END,
					DIA3 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 3 THEN  7 ELSE 0 END,
					DIA4 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 4 THEN  7 ELSE 0 END,
					DIA5 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 5 THEN  7 ELSE 0 END,
					DIA6 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 6 THEN  7 ELSE 0 END,
					DIA7 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 7 THEN  7 ELSE 0 END,
					DIA8 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 8 THEN  7 ELSE 0 END,
					DIA9 =  CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 9 THEN  7 ELSE 0 END,
					DIA10 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 10 THEN 7 ELSE 0 END,
					DIA11 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 11 THEN 7 ELSE 0 END,
					DIA12 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 12 THEN 7 ELSE 0 END,
					DIA13 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 13 THEN 7 ELSE 0 END,
					DIA14 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 14 THEN 7 ELSE 0 END,
					DIA15 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 15 THEN 7 ELSE 0 END,
					DIA16 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 16 THEN 7 ELSE 0 END,
					DIA17 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 17 THEN 7 ELSE 0 END,
					DIA18 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 18 THEN 7 ELSE 0 END,
					DIA19 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 19 THEN 7 ELSE 0 END,
					DIA20 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 20 THEN 7 ELSE 0 END,
					DIA21 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 21 THEN 7 ELSE 0 END,
					DIA22 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 22 THEN 7 ELSE 0 END,
					DIA23 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 23 THEN 7 ELSE 0 END,
					DIA24 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 24 THEN 7 ELSE 0 END,
					DIA25 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 25 THEN 7 ELSE 0 END,
					DIA26 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 26 THEN 7 ELSE 0 END,
					DIA27 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 27 THEN 7 ELSE 0 END,
					DIA28 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 28 THEN 7 ELSE 0 END,
					DIA29 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 29 THEN 7 ELSE 0 END,
					DIA30 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 30 THEN 7 ELSE 0 END,
					DIA31 = CASE WHEN DATEPART(DAY, DATA_MOVIMENTO) = 31 THEN 7 ELSE 0 END
			FROM LJ_ETL_CONFERENCIA  A (NOLOCK)
						
			JOIN LOJAS_VAREJO FF (NOLOCK)
				ON FF.CODIGO_FILIAL = A.CODIGO_FILIAL						
								 
			JOIN FILIAIS F (NOLOCK)
				ON FF.FILIAL = F.FILIAL
			
			JOIN CADASTRO_CLI_FOR G (NOLOCK)
				ON F.CLIFOR = G.CLIFOR
			
			WHERE A.DATA_MOVIMENTO >= @DATA_MOVIMENTO_INICIAL AND A.DATA_MOVIMENTO <= @DATA_MOVIMENTO_FINAL		   
					AND (G.UF = @UF or @UF IS NULL)
						AND (FF.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)								
							AND (F.EMPRESA = @EMPRESA OR @EMPRESA IS NULL)
			
			
			GROUP BY FF.CODIGO_FILIAL,
					 FF.FILIAL, 
					 F.EMPRESA, 
					 A.DATA_MOVIMENTO,
					 G.UF
				 
		) A
		GROUP BY	A.CODIGO_FILIAL,
					A.FILIAL, 
					A.EMPRESA,
					A.UF, 					 
					A.MES,
					A.ANO
				 
	) B
	ON A.CODIGO_FILIAL = B.CODIGO_FILIAL 
	AND A.FILIAL = B.FILIAL 	
	AND A.EMPRESA = B.EMPRESA 
	AND A.UF = B.UF
	AND A.MES = B.MES
	AND A.ANO = B.ANO
	
		
	SET NOCOUNT OFF
	SET ANSI_WARNINGS ON

END TRY
BEGIN CATCH

    DECLARE @ERRORMESSAGE  NVARCHAR(4000),
            @ERRORSEVERITY INT,
            @ERRORSTATE INT

    SELECT	@ERRORMESSAGE = ERROR_MESSAGE(),
            @ERRORSEVERITY = ERROR_SEVERITY(),
            @ERRORSTATE = ERROR_STATE()

    RAISERROR ( @ERRORMESSAGE, @ERRORSEVERITY, @ERRORSTATE )

    SELECT
        @ERRORMESSAGE,
        @ERRORSEVERITY,
        @ERRORSTATE

END CATCH
GO


/*
------------------------------------------------------------------------------------------------------
-- CRIAÇÃO DA PROCEDURE LX_LJ_ETL_ATUALIZA_VERSAO_ARQUIVO
------------------------------------------------------------------------------------------------------
*/

If Object_id ('LX_LJ_ETL_ATUALIZA_VERSAO_ARQUIVO', 'P') Is Not Null 
  Drop Procedure LX_LJ_ETL_ATUALIZA_VERSAO_ARQUIVO; 
Go 

CREATE PROCEDURE [dbo].[LX_LJ_ETL_ATUALIZA_VERSAO_ARQUIVO]
@CODIGO_FILIAL AS CHAR(6),
@VERSAO AS VARCHAR(10)
AS
BEGIN

	BEGIN TRY

		DECLARE @QTD INT = 0
		SET @QTD = 1

		WHILE ( @QTD > 0 )
		BEGIN

			UPDATE TOP (10000) LJ_ETL_ARQUIVO
							SET          VERSAO = @VERSAO
							WHERE  CODIGO_FILIAL = @CODIGO_FILIAL
										AND PROCESSADO = 1
										AND VERSAO <> @VERSAO

			SET @QTD = @@rowcount
		END

	END TRY
	BEGIN CATCH

		DECLARE @ErrorMessage NVARCHAR(4000)
					DECLARE @ErrorSeverity INT
					DECLARE @ErrorState INT

		SELECT       @ErrorMessage = ERROR_MESSAGE(),
							@ErrorSeverity = ERROR_SEVERITY(),
							@ErrorState = ERROR_STATE()

		RAISERROR (
							@ErrorMessage, -- Message text.
							@ErrorSeverity, -- Severity.
							@ErrorState -- State.
						)

	END CATCH

END
GO

/*
------------------------------------------------------------------------------------------------------
-- CRIAÇÃO DA PROCEDURE LX_LJ_ETL_LIMPEZA_TABELAS
------------------------------------------------------------------------------------------------------
*/

IF Object_id ('LX_LJ_ETL_LIMPEZA_TABELAS', 'P') Is Not Null 
  DROP PROCEDURE LX_LJ_ETL_LIMPEZA_TABELAS;
GO

CREATE PROCEDURE [dbo].[LX_LJ_ETL_LIMPEZA_TABELAS]
@CODIGO_FILIAL VARCHAR(6)
AS
BEGIN

	BEGIN TRY

		DECLARE @QTD INT = 0

		/*
		-- APAGA OS REGISTROS DA TABELA LJ_ETL_ARQUIVO
		*/
		SET @QTD = 1

		WHILE ( @QTD > 0 )
		BEGIN

			DELETE TOP (500) A
				FROM	LJ_ETL_ARQUIVO A
						INNER JOIN LJ_ETL_VERSAO_LOJA B ON B.CODIGO_FILIAL = A.CODIGO_FILIAL
				WHERE	B.INATIVO = 1
						AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)

			SET @QTD = @@rowcount
		END

		/*
		-- APAGA OS REGISTROS DA TABELA LJ_ETL_ESTATISTICA
		*/
		SET @QTD = 1

		WHILE ( @QTD > 0 )
		BEGIN

			DELETE TOP (500) A
				FROM	LJ_ETL_ESTATISTICA A
						INNER JOIN LJ_ETL_VERSAO_LOJA B ON B.CODIGO_FILIAL = A.CODIGO_FILIAL
				WHERE	B.INATIVO = 1
						AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)

			SET @QTD = @@rowcount
		END

		/*
		-- APAGA OS REGISTROS DA TABELA LJ_ETL_ESTATISTICA_ARQUIVO
		*/
		SET @QTD = 1

		WHILE ( @QTD > 0 )
		BEGIN

			DELETE TOP (500) A
				FROM	LJ_ETL_ESTATISTICA_ARQUIVO A
						INNER JOIN LJ_ETL_VERSAO_LOJA B ON B.CODIGO_FILIAL = A.CODIGO_FILIAL
				WHERE	B.INATIVO = 1
						AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)

			SET @QTD = @@rowcount
		END

		/*
		-- APAGA OS REGISTROS DA TABELA LJ_ETL_REQUISICAO_LOJA
		*/
		SET @QTD = 1

		WHILE ( @QTD > 0 )
		BEGIN

			DELETE TOP (500) A
				FROM	LJ_ETL_REQUISICAO_LOJA A
						INNER JOIN LJ_ETL_VERSAO_LOJA B ON B.CODIGO_FILIAL = A.CODIGO_FILIAL
				WHERE	B.INATIVO = 1
						AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)

			SET @QTD = @@rowcount
		END

		/*
		-- APAGA OS REGISTROS DA TABELA LJ_ETL_LOG
		*/
		SET @QTD = 1

		WHILE ( @QTD > 0 )
		BEGIN

			DELETE TOP (500) A
				FROM	LJ_ETL_LOG A
						INNER JOIN LJ_ETL_VERSAO_LOJA B ON B.CODIGO_FILIAL = A.CODIGO_FILIAL
				WHERE	B.INATIVO = 1
						AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)

			SET @QTD = @@rowcount
		END

		/*
		-- APAGA OS REGISTROS DA TABELA LJ_ETL_LOG_STATUS
		*/
		SET @QTD = 1

		WHILE ( @QTD > 0 )
		BEGIN

			DELETE TOP (500) A
				FROM	LJ_ETL_LOG_STATUS A
						INNER JOIN LJ_ETL_VERSAO_LOJA B ON B.CODIGO_FILIAL = A.CODIGO_FILIAL
				WHERE	B.INATIVO = 1
						AND (A.CODIGO_FILIAL = @CODIGO_FILIAL OR @CODIGO_FILIAL IS NULL)

			SET @QTD = @@rowcount
		END

	END TRY
	BEGIN CATCH

		DECLARE @ErrorMessage NVARCHAR(4000)
					DECLARE @ErrorSeverity INT
					DECLARE @ErrorState INT

		SELECT       @ErrorMessage = ERROR_MESSAGE(),
							@ErrorSeverity = ERROR_SEVERITY(),
							@ErrorState = ERROR_STATE()

		RAISERROR (
							@ErrorMessage, -- Message text.
							@ErrorSeverity, -- Severity.
							@ErrorState -- State.
						)

	END CATCH

END
GO

IF EXISTS (SELECT 1 FROM SYS.OBJECTS WHERE NAME = 'LX_GERA_DADOS_LOJA')
BEGIN
  DROP PROCEDURE [DBO].[LX_GERA_DADOS_LOJA] 
END
GO

CREATE PROCEDURE [dbo].[LX_GERA_DADOS_LOJA] @CODIGO_FILIAL CHAR(6), 
                                           @DATA_VENDA    DATETIME, 
                                           @ORIGEM        CHAR(3) 
AS 
  BEGIN 
      SET NOCOUNT ON 

      DECLARE @TOTALIZADOR_SAT DECIMAL 
      DECLARE @TOTALIZADOR_NFE DECIMAL 
      DECLARE @TOTALIZADOR_NFCE DECIMAL 
      DECLARE @TOTALIZADOR_CUPOM DECIMAL 
      DECLARE @QTDE_NFE INT 
      DECLARE @QTDE_NFCE INT 
	  DECLARE @FILIAL VARCHAR(25) 

	  SELECT @FILIAL = MAX(LTRIM(RTRIM(LOJAS_VAREJO.FILIAL)))
	  FROM LOJAS_VAREJO JOIN (SELECT NOME_CLIFOR AS FILIAL FROM CADASTRO_CLI_FOR) AS CAD_CLI ON  
	  (LOJAS_VAREJO.FILIAL = CAD_CLI.FILIAL)  JOIN (SELECT FILIAL AS FILIAL_ADD FROM FILIAIS) FILIAIS 
	  ON (FILIAIS.FILIAL_ADD=LOJAS_VAREJO.FILIAL) 
	  WHERE  LOJAS_VAREJO.CODIGO_FILIAL = @CODIGO_FILIAL

      SELECT @DATA_VENDA = CONVERT(DATETIME, @DATA_VENDA, 103) 

      CREATE TABLE #RZ 
        ( 
           CODIGO_FILIAL CHAR(6) COLLATE DATABASE_DEFAULT, 
           DATA_VENDA    DATETIME, 
           TERMINAL      CHAR(3) COLLATE DATABASE_DEFAULT, 
           QTDE_RZ       INT 
        ) 

      INSERT INTO #RZ 
      SELECT CODIGO_FILIAL, 
             DATA_FISCAL AS DATA_VENDA, 
             TERMINAL, 
             COUNT(*)    AS QTDE_RZ 
      FROM   LOJA_CONTROLE_FISCAL 
      WHERE  DATA_FISCAL = @DATA_VENDA 
      GROUP  BY CODIGO_FILIAL, 
                DATA_FISCAL, 
                TERMINAL 

      CREATE TABLE #LJ_ETL_DADOS_MONITORIA 
        ( 
           CODIGO_FILIAL               CHAR(6) COLLATE DATABASE_DEFAULT NOT NULL , 
           FILIAL                      VARCHAR(25) COLLATE DATABASE_DEFAULT, 
           DATA_MOVIMENTO              DATETIME NOT NULL, 
           DATA_MONITORIA              DATETIME, 
           TERMINAL                    CHAR(3) COLLATE DATABASE_DEFAULT NOT NULL , 
           QTDE_VENDAS_FIN             INT, 
           QTDE_VENDAS_NAO_FIN         INT, 
           QTDE_VENDAS_CANC            INT, 
           QTDE_VENDA_PROD             INT, 
           QTDE_VENDA_PROD_CANC        INT, 
           QTDE_ITENS_SAT              INT, 
           QTDE_ITENS_SAT_ITEM         INT, 
           TOTAL_SAT                   NUMERIC(14, 2), 
           TOTAL_SAT_ITEM              NUMERIC(14, 2), 
           QTDE_LOJA_CF_SAT            INT, 
           QTDE_ITENS_NF               INT, 
           QTDE_ITENS_NF_ITEM          INT, 
           TOTAL_NF                    NUMERIC(14, 2), 
           TOTAL_NF_ITEM               NUMERIC(14, 2), 
           QTDE_LOJA_NOTA_FISCAL       INT, 
           TOTAL_VENDA                 NUMERIC(14, 2), 
           TOTAL_PGTO                  NUMERIC(14, 2), 
           TOTAL_PARCELAS              NUMERIC(14, 2), 
           TOTAL_TROCA                 NUMERIC(14, 2), 
           QTDE_ITENS                  INT, 
           QTDE_ITENS_CANC             INT, 
           QTDE_RESERVE                INT, 
           QTDE_PICKUP                 INT, 
           QTDE_SHIP_FROM              INT, 
           QTDE_SHIP_TO                INT, 
           QTDE_SHOWROOMING            INT, 
           OMS_QTDE_ITEM_LOJA          INT, 
           OMS_FRETE                   NUMERIC(14, 2), 
           QTDE_SAIDAS                 INT, 
           QTDE_SAIDAS_PRODUTO         INT, 
           TOTAL_SAIDAS				   NUMERIC(14, 2), 
           TOTAL_SAIDAS_PROD           NUMERIC(14, 2), 
           QTDE_ITENS_SAIDAS           INT, 
           QTDE_ITENS_SAIDAS_PRODUTO   INT, 
           QTDE_ENTRADAS               INT, 
           QTDE_ENTRADAS_PRODUTO       INT, 
           TOTAL_ENTRADAS              NUMERIC(14, 2), 
           TOTAL_ENTRADAS_PROD         NUMERIC(14, 2), 
           QTDE_ITENS_ENTRADAS         INT, 
           QTDE_ITENS_ENTRADAS_PRODUTO INT, 
           NOTA_NAO_ENVIADA            INT, 
           AGUARDANDO_ENVIO            INT, 
           NOTA_REJ_LINX               INT, 
           AGUARDANDO_RETORNO          INT, 
           NOTA_REJ_SEFAZ              INT, 
           NOTA_APROVADA               INT, 
           AGUARDANDO_CANC             INT, 
           ERRO_NO_CANC                INT, 
           AGUARDANDO_INUTI            INT, 
           ERRO_NA_INUTI               INT, 
           NOTA_CANCELADA              INT, 
           NOTA_INUTILIZADA            INT, 
           NOTA_DENEGADA               INT, 
           TOTAL_ECF_ITEM              NUMERIC(14, 2), 
           TOTAL_ECF_ITEM_CANC         NUMERIC(14, 2), 
           QTDE_ECF_ITEM               INT, 
           QTDE_ECF_ITEM_CANC          INT, 
           QTDE_LJ_ECF_ITEM            INT, 
           QTDE_RZ                     INT, 
           ORIGEM                      CHAR(3) COLLATE DATABASE_DEFAULT NOT NULL , 
           CONSTRAINT [XPKLX_DADOS_MONITORIA] PRIMARY KEY CLUSTERED ( 
           CODIGO_FILIAL 
           ASC, TERMINAL ASC, DATA_MOVIMENTO ASC, ORIGEM ASC )WITH (PAD_INDEX = 
           OFF, 
           STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = 
           ON, 
           ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
        ) 
      ON [PRIMARY] 

      CREATE TABLE #NF 
        ( 
           CODIGO_FILIAL  CHAR(6) COLLATE DATABASE_DEFAULT, 
           EMISSAO        DATETIME, 
           NF_NUMERO      CHAR(15) COLLATE DATABASE_DEFAULT, 
           SERIE_NF       CHAR(6) COLLATE DATABASE_DEFAULT, 
           VALOR_TOTAL    NUMERIC(14, 2), 
           STATUS_NFE     SMALLINT, 
           LOG_STATUS_NFE SMALLINT, 
           QTDE_TOTAL     INT, 
        ) 

      CREATE TABLE #NF_RESUMO 
        ( 
           TOTAL_NF              NUMERIC(14, 2), 
           TOTAL_NF_ITEM         NUMERIC(14, 2), 
           QTDE_ITENS_NF         INT, 
           QTDE_ITENS_NF_ITEM    INT, 
           CODIGO_FILIAL         CHAR(6) COLLATE DATABASE_DEFAULT, 
           EMISSAO               DATETIME, 
           QTDE_LOJA_NOTA_FISCAL INT 
        ) 

      CREATE TABLE #SERIENF 
        ( 
           SERIE_NF      CHAR(16) COLLATE DATABASE_DEFAULT, 
           ESPECIE_SERIE INT 
        ) 

      CREATE TABLE #VENDAPGTO 
        ( 
           CODIGO_FILIAL        CHAR(6) COLLATE DATABASE_DEFAULT, 
           TICKET               CHAR(8) COLLATE DATABASE_DEFAULT, 
           TERMINAL             CHAR(3) COLLATE DATABASE_DEFAULT, 
           DATA_VENDA           DATETIME, 
           LANCAMENTO_CAIXA     CHAR(7) COLLATE DATABASE_DEFAULT, 
           VENDA_FINALIZADA     BIT, 
           MOTIVO_CANCELAMENTO  SMALLINT, 
           TOTAL_QTDE_CANCELADA INT, 
           NUMERO_CUPOM_FISCAL  VARCHAR(9) COLLATE DATABASE_DEFAULT, 
           VALOR_PAGO           NUMERIC(14, 2), 
           TOTAL_VENDA          NUMERIC(14, 2), 
           VALOR_TROCA          NUMERIC(14, 2), 
           ID_EQUIPAMENTO       VARCHAR(20) COLLATE DATABASE_DEFAULT
        ) 

      CREATE TABLE #VENDAPRODUTO 
        ( 
           CODIGO_FILIAL        CHAR(6) COLLATE DATABASE_DEFAULT, 
           TERMINAL             CHAR(3) COLLATE DATABASE_DEFAULT, 
           DATA_VENDA           DATETIME, 
           QTDE_VENDA_PROD      INT, 
           QTDE_VENDA_PROD_CANC INT 
        ) 

      CREATE TABLE #SAT 
        ( 
           CODIGO_FILIAL       CHAR(6) COLLATE DATABASE_DEFAULT, 
           TERMINAL            CHAR(3) COLLATE DATABASE_DEFAULT, 
           EMISSAO             DATETIME, 
           TOTAL_SAT           NUMERIC(14, 2), 
           TOTAL_SAT_ITEM      NUMERIC(14, 2), 
           QTDE_ITENS_SAT      INT, 
           QTDE_ITENS_SAT_ITEM INT, 
           QTDE_LOJA_CF_SAT    INT 
        ) 

      CREATE TABLE #OMS 
        ( 
           CODIGO_FILIAL    CHAR(6) COLLATE DATABASE_DEFAULT, 
           TERMINAL         CHAR(3) COLLATE DATABASE_DEFAULT, 
           DATA_VENDA       DATETIME, 
           FRETE_OMS        NUMERIC(14, 2), 
           QTDE_RESERVE     INT, 
           QTDE_PICKUP      INT, 
           QTDE_SHIP_FROM   INT, 
           QTDE_SHIP_TO     INT, 
           QTDE_SHOWROOMING INT, 
           QTDE_ITEM_LOJA   INT 
        ) 

      INSERT INTO #NF 
      SELECT CODIGO_FILIAL, 
             CONVERT(DATETIME, EMISSAO, 103), 
             NF_NUMERO, 
             SERIE_NF, 
             VALOR_TOTAL, 
             STATUS_NFE, 
             LOG_STATUS_NFE, 
             QTDE_TOTAL 
      FROM   LOJA_NOTA_FISCAL 
      WHERE  EMISSAO = CONVERT(DATETIME, @DATA_VENDA, 103) 
             AND CODIGO_FILIAL = @CODIGO_FILIAL 

      INSERT INTO #SERIENF 
      SELECT SERIE_NF, 
             ESPECIE_SERIE 
      FROM   SERIES_NF 

      INSERT INTO #NF_RESUMO 
      SELECT SUM(NF.VALOR_TOTAL)     AS TOTAL_NF, 
             SUM(NF_ITEM.VALOR_ITEM) AS TOTAL_NF_ITEM, 
             SUM(NF.QTDE_TOTAL)      AS QTDE_ITENS_NF, 
             SUM(NF_ITEM.QTDE_ITEM)  AS QTDE_ITENS_NF_ITEM, 
             NF.CODIGO_FILIAL, 
             NF.EMISSAO, 
             COUNT(*)                AS QTDE_LOJA_NOTA_FISCAL 
      FROM   #NF NF 
             LEFT JOIN LOJA_NOTA_FISCAL_ITEM NF_ITEM 
                    ON NF.CODIGO_FILIAL = NF_ITEM.CODIGO_FILIAL 
                       AND NF.NF_NUMERO = NF_ITEM.NF_NUMERO 
                       AND NF.SERIE_NF = NF_ITEM.SERIE_NF 
      WHERE  NF.CODIGO_FILIAL = @CODIGO_FILIAL 
             AND NF.EMISSAO = @DATA_VENDA 
      GROUP  BY NF.CODIGO_FILIAL, 
                NF.EMISSAO 

      INSERT INTO #VENDAPGTO 
      SELECT PGTO.CODIGO_FILIAL, 
             VENDA.TICKET, 
             PGTO.TERMINAL, 
             CONVERT(DATETIME, VENDA.DATA_VENDA, 103), 
             PGTO.LANCAMENTO_CAIXA, 
             PGTO.VENDA_FINALIZADA, 
             VENDA.MOTIVO_CANCELAMENTO, 
             VENDA.TOTAL_QTDE_CANCELADA, 
             PGTO.NUMERO_CUPOM_FISCAL, 
             VENDA.VALOR_PAGO, 
             PGTO.TOTAL_VENDA, 
             VENDA.VALOR_TROCA, 
             PGTO.ID_EQUIPAMENTO 
      FROM   LOJA_VENDA_PGTO PGTO 
             JOIN LOJA_VENDA VENDA 
               ON PGTO.CODIGO_FILIAL = VENDA.CODIGO_FILIAL 
                  AND PGTO.LANCAMENTO_CAIXA = VENDA.LANCAMENTO_CAIXA 
                  AND PGTO.DATA = VENDA.DATA_VENDA 
                  AND PGTO.TERMINAL = VENDA.TERMINAL 
      WHERE  DATA = @DATA_VENDA 
             AND PGTO.CODIGO_FILIAL = @CODIGO_FILIAL 

      INSERT INTO #VENDAPRODUTO 
      SELECT LVP.CODIGO_FILIAL, 
             TERMINAL, 
             CONVERT(DATETIME, LVP.DATA_VENDA, 103), 
             SUM(QTDE)           AS QTDE_VENDA_PROD, 
             SUM(QTDE_CANCELADA) AS QTDE_VENDA_PROD_CANC 
      FROM   LOJA_VENDA_PRODUTO LVP 
             JOIN LOJA_VENDA LV 
               ON LVP.CODIGO_FILIAL = LV.CODIGO_FILIAL 
                  AND LVP.DATA_VENDA = LV.DATA_VENDA 
                  AND LVP.TICKET = LV.TICKET 
      WHERE  LVP.CODIGO_FILIAL = @CODIGO_FILIAL 
             AND LVP.DATA_VENDA = @DATA_VENDA 
      GROUP  BY LVP.CODIGO_FILIAL, 
                TERMINAL, 
                LVP.DATA_VENDA 

      INSERT INTO #SAT 
      SELECT SAT.CODIGO_FILIAL, 
             SAT.TERMINAL, 
             SAT.EMISSAO, 
             SUM(SAT.VALOR_TOTAL)     AS TOTAL_SAT, 
             SUM(SAT_ITEM.VALOR_ITEM) AS TOTAL_SAT_ITEM, 
             SUM(SAT.QTDE_TOTAL)      AS QTDE_ITENS_SAT, 
             SUM(SAT_ITEM.QTDE_ITEM)  AS QTDE_ITENS_SAT_ITEM, 
             COUNT(*)                 AS QTDE_LOJA_CF_SAT 
      FROM   LOJA_CF_SAT SAT 
             JOIN #VENDAPGTO PGTO 
               ON PGTO.NUMERO_CUPOM_FISCAL = SAT.CF_NUMERO 
                  AND PGTO.CODIGO_FILIAL = SAT.CODIGO_FILIAL 
                  AND PGTO.TERMINAL = SAT.TERMINAL 
                  AND PGTO.LANCAMENTO_CAIXA = SAT.LANCAMENTO_CAIXA 
                  AND PGTO.DATA_VENDA = SAT.EMISSAO 
             JOIN LOJA_CF_SAT_ITEM SAT_ITEM 
               ON SAT_ITEM.CODIGO_FILIAL = SAT.CODIGO_FILIAL 
                  AND SAT_ITEM.ID_LOJA_CF_SAT = SAT.ID_LOJA_CF_SAT 
      WHERE  PGTO.DATA_VENDA = @DATA_VENDA 
             AND PGTO.CODIGO_FILIAL = @CODIGO_FILIAL 
      GROUP  BY SAT.CODIGO_FILIAL, 
                SAT.TERMINAL, 
                SAT.EMISSAO 

      INSERT INTO #OMS 
      SELECT * 
      FROM   (SELECT COUNT(*)           AS QTDE_PEDIDOS, 
                     CASE 
                       WHEN TIPO_ENTREGA = 1 THEN 'RESERVE' 
                       WHEN TIPO_ENTREGA = 2 THEN 'PICKUP' 
                       WHEN TIPO_ENTREGA = 3 THEN 'SHIP FROM' 
                       WHEN TIPO_ENTREGA = 4 THEN 'SHIP TO' 
                       WHEN TIPO_ENTREGA IS NULL THEN 'SHOWROOMING' 
                     END                AS TIPO_PEDIDO, 
                     LV.CODIGO_FILIAL, 
                     TERMINAL, 
                     LV.DATA_VENDA, 
                     SUM(LP.FRETE)      AS FRETE_OMS, 
                     SUM(LV.QTDE_TOTAL) AS QTDE_ITEM_LOJA 
              FROM   LOJA_PEDIDO LP 
                     LEFT JOIN LOJA_PEDIDO_VENDA LPV 
                            ON LP.PEDIDO = LPV.PEDIDO 
                     LEFT JOIN LOJA_VENDA LV 
                            ON LV.CODIGO_FILIAL = LPV.CODIGO_FILIAL 
                               AND LV.DATA_VENDA = LPV.DATA_VENDA 
                               AND LV.CODIGO_FILIAL = LPV.CODIGO_FILIAL_ORIGEM 
                               AND LV.TICKET = LPV.TICKET 
                     LEFT JOIN LOJA_VENDA_SHOWROOMER LVS 
                            ON LP.PEDIDO = LVS.PEDIDO 
                               AND LV.TICKET = LVS.TICKET 
                               AND LV.DATA_VENDA = LVS.DATA_VENDA 
              WHERE  LPV.DATA_VENDA = @DATA_VENDA 
                     AND LP.CODIGO_FILIAL_ORIGEM = @CODIGO_FILIAL 
                     AND LX_PEDIDO_ORIGEM IN ( 4, 5 ) 
                     AND SITUACAO_OMS NOT IN ( 1, 2, 5, 6 ) 
              GROUP  BY TERMINAL, 
                        TIPO_ENTREGA, 
                        LV.CODIGO_FILIAL, 
                        LV.DATA_VENDA, 
                        LP.FRETE, 
                        LV.QTDE_TOTAL) EM_LINHA 
             PIVOT ( SUM(QTDE_PEDIDOS) 
                   FOR TIPO_PEDIDO IN ([RESERVE], 
                                       [PICKUP], 
                                       [SHIP FROM], 
                                       [SHIP TO], 
                                       [SHOWROOMING])) OMS 

      SELECT @TOTALIZADOR_NFCE = SUM(ISNULL(VALOR_TOTAL, 0)), 
             @QTDE_NFCE = COUNT(1) 
      FROM   #NF NF 
             JOIN #SERIENF SERIE 
               ON NF.SERIE_NF = SERIE.SERIE_NF 
             JOIN CTB_ESPECIE_SERIE CTB 
               ON CTB.ESPECIE_SERIE = SERIE.ESPECIE_SERIE 
      WHERE  CTB.NUMERO_MODELO_FISCAL = '65' 

      SELECT @TOTALIZADOR_NFE = SUM(ISNULL(VALOR_TOTAL, 0)), 
             @QTDE_NFE = COUNT(1) 
      FROM   #NF NF 
             JOIN #SERIENF SERIE 
               ON NF.SERIE_NF = SERIE.SERIE_NF 
             JOIN CTB_ESPECIE_SERIE CTB 
               ON CTB.ESPECIE_SERIE = SERIE.ESPECIE_SERIE 
      WHERE  CTB.NUMERO_MODELO_FISCAL = '55' 

      DELETE LJ_ETL_DADOS_MONITORIA 
      WHERE  DATA_MOVIMENTO = @DATA_VENDA 
             AND CODIGO_FILIAL = @CODIGO_FILIAL 
             AND ORIGEM = @ORIGEM 


			--RESUMO VENDA PGTO RZ E OMS
      INSERT INTO #LJ_ETL_DADOS_MONITORIA 
      SELECT LV.CODIGO_FILIAL                         AS CODIGO_FILIAL, 
             @FILIAL	                              AS FILIAL, 
             LV.DATA_VENDA                            AS DATA_MOVIMENTO, 
             GETDATE()                                AS DATA_MONITORIA, 
             LV.TERMINAL                              AS TERMINAL, 
             SUM(ISNULL(VF.VENDA_FINALIZADA, 0))      AS QTDE_VENDAS_FIN, 
             SUM(ISNULL(VNF.VENDA_NAO_FINALIZADA, 0)) AS QTDE_VENDAS_NAO_FIN, 
             SUM(ISNULL(VC.VENDA_CANCELADA, 0))       AS QTDE_VENDAS_CANC, 
             0                                        AS QTDE_VENDA_PROD, 
             0                                        AS QTDE_VENDA_PROD_CANC, 
             0                                        AS TOTAL_SAT, 
             0                                        AS TOTAL_SAT_ITEM, 
             0                                        AS QTDE_ITENS_SAT, 
             0                                        AS QTDE_ITENS_SAT_ITEM, 
             0                                        AS QTDE_LOJA_CF_SAT, 
             0                                        AS QTDE_ITENS_NF, 
             0                                        AS QTDE_ITENS_NF_ITEM, 
             0                                        AS TOTAL_NF, 
             0                                        AS TOTAL_NF_ITEM, 
             0                                        AS QTDE_LOJA_NOTA_FISCAL, 
             SUM(ISNULL(LV.VALOR_PAGO, 0))            AS TOTAL_VENDA, 
             SUM(ISNULL(LV.TOTAL_VENDA, 0))           AS TOTAL_PGTO, 
             SUM(ISNULL(LVP.VALOR, 0))                AS TOTAL_PARCELAS, 
             SUM(ISNULL(LV.VALOR_TROCA, 0))           AS TOTAL_TROCA, 
             0                                        AS QTDE_ITENS, 
             0                                        AS QTDE_ITENS_CANC, 
             MAX(ISNULL(QTDE_RESERVE, 0))             AS QTDE_RESERVE, 
             MAX(ISNULL(QTDE_PICKUP, 0))              AS QTDE_PICKUP, 
             MAX(ISNULL(QTDE_SHIP_FROM, 0))           AS QTDE_SHIP_FROM, 
             MAX(ISNULL(QTDE_SHIP_TO, 0))             AS QTDE_SHIP_TO, 
             MAX(ISNULL(QTDE_SHOWROOMING, 0))         AS QTDE_SHOWROOMING, 
             MAX(ISNULL(QTDE_ITEM_LOJA, 0))           AS OMS_QTDE_ITEM_LOJA, 
             MAX(ISNULL(FRETE_OMS, 0))                AS OMS_FRETE, 
             0                                        AS QTDE_SAIDAS, 
             0                                        AS QTDE_SAIDAS_PRODUTO, 
             0                                        AS TOTAL_SAIDAS, 
             0                                        AS TOTAL_SAIDAS_PROD, 
             0                                        AS QTDE_ITENS_SAIDAS, 
             0                                        AS QTDE_ITENS_SAIDAS_PRODUTO, 
             0                                        AS QTDE_ENTRADAS, 
             0                                        AS QTDE_ENTRADAS_PRODUTO, 
             0                                        AS TOTAL_ENTRADAS, 
             0                                        AS TOTAL_ENTRADAS_PROD, 
             0                                        AS QTDE_ITENS_ENTRADAS, 
             0                                        AS QTDE_ITENS_ENTRADAS_PRODUTO, 
             0                                        AS NOTA_NAO_ENVIADA, 
             0                                        AS AGUARDANDO_ENVIO, 
             0                                        AS NOTA_REJ_LINX, 
             0                                        AS AGUARDANDO_RETORNO, 
             0                                        AS NOTA_REJ_SEFAZ, 
             0                                        AS NOTA_APROVADA, 
             0                                        AS AGUARDANDO_CANC, 
             0                                        AS ERRO_NO_CANC, 
             0                                        AS AGUARDANDO_INUTI, 
             0                                        AS ERRO_NA_INUTI, 
             0                                        AS NOTA_CANCELADA, 
             0                                        AS NOTA_INUTILIZADA, 
             0                                        AS NOTA_DENEGADA, 
             0                                        AS TOTAL_ECF_ITEM, 
             0                                        AS TOTAL_ECF_ITEM_CANC, 
             0                                        AS QTDE_ECF_ITEM, 
             0                                        AS QTDE_ECF_ITEM_CANC, 
             0                                        AS QTDE_LJ_ECF_ITEM, 
             ISNULL(RZ.QTDE_RZ, 0)                    AS QTDE_RZ, 
             @ORIGEM                                  AS ORIGEM 
      FROM   #VENDAPGTO LV 
             LEFT JOIN (SELECT COUNT(1) AS VENDA_NAO_FINALIZADA, 
                               TERMINAL, 
                               CODIGO_FILIAL, 
                               DATA_VENDA, 
                               LANCAMENTO_CAIXA 
                        FROM   #VENDAPGTO 
                        WHERE  DATA_VENDA = @DATA_VENDA 
                               AND CODIGO_FILIAL = @CODIGO_FILIAL 
                               AND VENDA_FINALIZADA = 0 
                        GROUP  BY TERMINAL, 
                                  CODIGO_FILIAL, 
                                  DATA_VENDA, 
                                  LANCAMENTO_CAIXA) AS VNF 
                    ON LV.CODIGO_FILIAL = VNF.CODIGO_FILIAL 
                       AND LV.TERMINAL = VNF.TERMINAL 
                       AND LV.LANCAMENTO_CAIXA = VNF.LANCAMENTO_CAIXA 
             LEFT JOIN (SELECT COUNT(1) AS VENDA_FINALIZADA, 
                               TERMINAL, 
                               CODIGO_FILIAL, 
                               DATA_VENDA, 
                               LANCAMENTO_CAIXA 
                        FROM   #VENDAPGTO 
                        WHERE  DATA_VENDA = @DATA_VENDA 
                               AND CODIGO_FILIAL = @CODIGO_FILIAL 
                               AND VENDA_FINALIZADA = 1 
                        GROUP  BY TERMINAL, 
                                  CODIGO_FILIAL, 
                                  DATA_VENDA, 
                                  LANCAMENTO_CAIXA) AS VF 
                    ON LV.CODIGO_FILIAL = VF.CODIGO_FILIAL 
                       AND LV.TERMINAL = VF.TERMINAL 
                       AND LV.LANCAMENTO_CAIXA = VF.LANCAMENTO_CAIXA 
             LEFT JOIN (SELECT COUNT(1) AS VENDA_CANCELADA, 
                               TERMINAL, 
                               CODIGO_FILIAL, 
                               DATA_VENDA, 
                               LANCAMENTO_CAIXA 
                        FROM   #VENDAPGTO 
                        WHERE  DATA_VENDA = @DATA_VENDA 
                               AND CODIGO_FILIAL = @CODIGO_FILIAL 
                               AND MOTIVO_CANCELAMENTO IS NOT NULL 
                                OR TOTAL_QTDE_CANCELADA > 0 
                        GROUP  BY TERMINAL, 
                                  CODIGO_FILIAL, 
                                  DATA_VENDA, 
                                  LANCAMENTO_CAIXA) AS VC 
                    ON LV.CODIGO_FILIAL = VC.CODIGO_FILIAL 
                       AND LV.TERMINAL = VC.TERMINAL 
                       AND LV.LANCAMENTO_CAIXA = VC.LANCAMENTO_CAIXA 
             LEFT JOIN (SELECT SUM(VALOR)           AS VALOR, 
                               LVP.CODIGO_FILIAL    AS CODIGO_FILIAL, 
                               LVP.TERMINAL         AS TERMINAL, 
                               LVP.LANCAMENTO_CAIXA AS LANCAMENTO_CAIXA 
                        FROM   LOJA_VENDA_PARCELAS LVP --OBTER TOTAL SAT  
                               JOIN LOJA_VENDA_PGTO PGTO 
                                 ON PGTO.CODIGO_FILIAL = LVP.CODIGO_FILIAL 
                                    AND PGTO.TERMINAL = LVP.TERMINAL 
                                    AND PGTO.LANCAMENTO_CAIXA = 
                                        LVP.LANCAMENTO_CAIXA 
                        GROUP  BY LVP.CODIGO_FILIAL, 
                                  LVP.TERMINAL, 
                                  LVP.LANCAMENTO_CAIXA)LVP 
                    ON LV.CODIGO_FILIAL = LVP.CODIGO_FILIAL 
                       AND LV.TERMINAL = LVP.TERMINAL 
                       AND LV.LANCAMENTO_CAIXA = LVP.LANCAMENTO_CAIXA 
             LEFT JOIN #RZ RZ 
                    ON LV.DATA_VENDA = RZ.DATA_VENDA 
                       AND LV.CODIGO_FILIAL = RZ.CODIGO_FILIAL 
                       AND LV.TERMINAL = RZ.TERMINAL 
             LEFT JOIN #OMS OMS 
                    ON LV.CODIGO_FILIAL = OMS.CODIGO_FILIAL 
                       AND LV.TERMINAL = OMS.TERMINAL 
                       AND LV.DATA_VENDA = OMS.DATA_VENDA 
      WHERE  LV.DATA_VENDA = @DATA_VENDA 
             AND LV.CODIGO_FILIAL = @CODIGO_FILIAL 
      GROUP  BY LV.CODIGO_FILIAL, 
                LV.TERMINAL, 
                LV.DATA_VENDA, 
                RZ.QTDE_RZ 
      ORDER  BY LV.TERMINAL 


	  --RESUMO STATUS NF-E NFC-E
      UPDATE LJ_ETL 
      SET    LJ_ETL.AGUARDANDO_ENVIO = NFE.AGUARDANDO_ENVIO, 
             LJ_ETL.NOTA_REJ_LINX = NFE.NOTA_REJ_LINX, 
             LJ_ETL.AGUARDANDO_RETORNO = NFE.AGUARDANDO_RETORNO, 
             LJ_ETL.NOTA_REJ_SEFAZ = NFE.NOTA_REJ_SEFAZ, 
             LJ_ETL.NOTA_APROVADA = NFE.NOTA_APROVADA, 
             LJ_ETL.AGUARDANDO_CANC = NFE.AGUARDANDO_CANC, 
             LJ_ETL.ERRO_NO_CANC = NFE.ERRO_NO_CANC, 
             LJ_ETL.AGUARDANDO_INUTI = NFE.AGUARDANDO_INUTI, 
             LJ_ETL.ERRO_NA_INUTI = NFE.ERRO_NA_INUTI, 
             LJ_ETL.NOTA_CANCELADA = NFE.NOTA_CANCELADA, 
             LJ_ETL.NOTA_INUTILIZADA = NFE.NOTA_INUTILIZADA, 
             LJ_ETL.NOTA_DENEGADA = NFE.NOTA_DENEGADA 
      FROM   #LJ_ETL_DADOS_MONITORIA LJ_ETL 
             JOIN (SELECT CODIGO_FILIAL, 
                          EMISSAO, 
                          ISNULL(AGUARDANDO_ENVIO, 0)   AGUARDANDO_ENVIO, 
                          ISNULL(NOTA_REJ_LINX, 0)      NOTA_REJ_LINX, 
                          ISNULL(AGUARDANDO_RETORNO, 0) AGUARDANDO_RETORNO, 
                          ISNULL(NOTA_REJ_SEFAZ, 0)     NOTA_REJ_SEFAZ, 
                          ISNULL(NOTA_APROVADA, 0)      NOTA_APROVADA, 
                          ISNULL(AGUARDANDO_CANC, 0)    AGUARDANDO_CANC, 
                          ISNULL(ERRO_NO_CANC, 0)       ERRO_NO_CANC, 
                          ISNULL(AGUARDANDO_INUTI, 0)   AGUARDANDO_INUTI, 
                          ISNULL(ERRO_NA_INUTI, 0)      ERRO_NA_INUTI, 
                          ISNULL(NOTA_CANCELADA, 0)     NOTA_CANCELADA, 
                          ISNULL(NOTA_INUTILIZADA, 0)   NOTA_INUTILIZADA, 
                          ISNULL(NOTA_DENEGADA, 0)      NOTA_DENEGADA 
                   FROM   (SELECT COUNT(*) AS QTDE_NFE, 
                                  CASE 
                                    WHEN STATUS_NFE = 1 THEN 'NOTA NÃO ENVIADA' 
                                    WHEN STATUS_NFE = 2 
                                         AND LOG_STATUS_NFE = 0 THEN 
                                    'AGUARDANDO_ENVIO' 
                                    WHEN STATUS_NFE = 2 
                                         AND LOG_STATUS_NFE = 99 THEN 
                                    'NOTA_REJ_LINX' 
                                    WHEN STATUS_NFE = 3 
                                         AND LOG_STATUS_NFE = 0 THEN 
                                    'AGUARDANDO_RETORNO' 
                                    WHEN STATUS_NFE = 4 
                                         AND LOG_STATUS_NFE = 99 THEN 
                                    'NOTA_REJ_SEFAZ' 
                                    WHEN STATUS_NFE = 5 THEN 'NOTA_APROVADA' 
                                    WHEN STATUS_NFE = 42 
                                         AND LOG_STATUS_NFE = 0 THEN 
                                    'AGUARDANDO_CANC' 
                                    WHEN STATUS_NFE = 42 
                                         AND LOG_STATUS_NFE = 99 THEN 
                                    'ERRO_NO_CANC' 
                                    WHEN STATUS_NFE = 52 
                                         AND LOG_STATUS_NFE = 0 THEN 
                                    'AGUARDANDO_INUTI' 
                                    WHEN STATUS_NFE = 52 
                                         AND LOG_STATUS_NFE = 99 THEN 
                                    'ERRO_NA_INUTI' 
                                    WHEN STATUS_NFE = 49 
                                         AND LOG_STATUS_NFE = 00 THEN 
                                    'NOTA_CANCELADA' 
                                    WHEN STATUS_NFE = 59 
                                         AND LOG_STATUS_NFE = 0 THEN 
                                    'NOTA_INUTILIZADA' 
                                    WHEN STATUS_NFE = 70 
                                         AND LOG_STATUS_NFE = 0 THEN 
                                    'NOTA_DENEGADA' 
                                  END      AS STATUS_NOTA, 
                                  CODIGO_FILIAL, 
                                  EMISSAO 
                           FROM   #NF 
                                  JOIN #SERIENF SERIE 
                                    ON #NF.SERIE_NF = SERIE.SERIE_NF 
                                  JOIN CTB_ESPECIE_SERIE CTB 
                                    ON CTB.ESPECIE_SERIE = SERIE.ESPECIE_SERIE 
                           WHERE  CODIGO_FILIAL = @CODIGO_FILIAL 
                                  AND EMISSAO = @DATA_VENDA 
                                  AND CTB.NUMERO_MODELO_FISCAL IN ( '55', '65' ) 
                           GROUP  BY CODIGO_FILIAL, 
                                     EMISSAO, 
                                     STATUS_NFE, 
                                     LOG_STATUS_NFE) EM_LINHA 
                          PIVOT ( SUM(QTDE_NFE) 
                                FOR STATUS_NOTA IN ([AGUARDANDO_ENVIO], 
                                                    [NOTA_REJ_LINX], 
                                                    [AGUARDANDO_RETORNO], 
                                                    [NOTA_REJ_SEFAZ], 
                                                    [NOTA_APROVADA], 
                                                    [AGUARDANDO_CANC], 
                                                    [ERRO_NO_CANC], 
                                                    [AGUARDANDO_INUTI], 
                                                    [ERRO_NA_INUTI], 
                                                    [NOTA_CANCELADA], 
                                                    [NOTA_INUTILIZADA], 
                                                    [NOTA_DENEGADA] ) ) NFE) NFE 
               ON LJ_ETL.CODIGO_FILIAL = NFE.CODIGO_FILIAL 
                  AND LJ_ETL.DATA_MOVIMENTO = NFE.EMISSAO 
      WHERE  LJ_ETL.CODIGO_FILIAL = @CODIGO_FILIAL 
             AND LJ_ETL.DATA_MOVIMENTO = @DATA_VENDA 


			 --RESUMO LOJA_VENDA_PRODUTO
      UPDATE LJ_ETL 
      SET    LJ_ETL.QTDE_VENDA_PROD = VP.QTDE_VENDA_PROD, 
             LJ_ETL.QTDE_VENDA_PROD_CANC = VP.QTDE_VENDA_PROD_CANC 
      FROM   #LJ_ETL_DADOS_MONITORIA LJ_ETL 
             JOIN #VENDAPRODUTO VP 
               ON LJ_ETL.CODIGO_FILIAL = VP.CODIGO_FILIAL 
                  AND LJ_ETL.DATA_MOVIMENTO = VP.DATA_VENDA 
                  AND LJ_ETL.TERMINAL = VP.TERMINAL 
      WHERE  LJ_ETL.CODIGO_FILIAL = @CODIGO_FILIAL 
             AND LJ_ETL.DATA_MOVIMENTO = @DATA_VENDA 

			 --RESUMO SAIDAS
      UPDATE LJ_ETL 
      SET    LJ_ETL.TOTAL_SAIDAS = SAIDAS.TOTAL_SAIDAS, 
             LJ_ETL.TOTAL_SAIDAS_PROD = SAIDAS.TOTAL_SAIDAS_PROD, 
             LJ_ETL.QTDE_ITENS_SAIDAS = SAIDAS.QTDE_ITENS_SAIDAS, 
             LJ_ETL.QTDE_ITENS_SAIDAS_PRODUTO = SAIDAS.QTDE_ITENS_SAIDAS_PRODUTO 
      FROM   #LJ_ETL_DADOS_MONITORIA LJ_ETL 
             JOIN(SELECT 
                         A.FILIAL, 
                         EMISSAO, 
                         (SELECT COUNT(1) 
                          FROM   LOJA_SAIDAS 
                          WHERE  EMISSAO = @DATA_VENDA 
								 and filial = @FILIAL
								 and SAIDA_ENCERRADA = 1) AS QTDE_SAIDAS, 
                         COUNT(*) AS QTDE_SAIDAS_PRODUTO , 
                         (SELECT SUM( 
                         VALOR_TOTAL) 
                          FROM   LOJA_SAIDAS 
                          WHERE  EMISSAO = @DATA_VENDA 
						         and FILIAL = @FILIAL
								 and SAIDA_ENCERRADA = 1) AS TOTAL_SAIDAS, 
                         SUM(VALOR) AS TOTAL_SAIDAS_PROD , 
                         (SELECT SUM(QTDE_TOTAL) 
                          FROM   LOJA_SAIDAS 
                          WHERE  EMISSAO = @DATA_VENDA 
						  and filial = @filial
						  and SAIDA_ENCERRADA = 1) AS QTDE_ITENS_SAIDAS, 
						  SUM(QTDE_SAIDA) AS QTDE_ITENS_SAIDAS_PRODUTO 
                  FROM   LOJA_SAIDAS A 
                         JOIN LOJA_SAIDAS_PRODUTO D 
                         ON A.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO 
                         AND A.FILIAL = D.FILIAL 
                  WHERE  EMISSAO = @DATA_VENDA 
						 and a.filial = @filial
						 and SAIDA_ENCERRADA = 1
                  GROUP  BY A.FILIAL, 
                            EMISSAO) AS SAIDAS 
               ON LJ_ETL.FILIAL = SAIDAS.FILIAL 
                  AND LJ_ETL.DATA_MOVIMENTO = SAIDAS.EMISSAO 
      WHERE  LJ_ETL.FILIAL = @FILIAL 
             AND LJ_ETL.DATA_MOVIMENTO = @DATA_VENDA 

			 --RESUMO ENTRADAS
      UPDATE LJ_ETL 
      SET    LJ_ETL.TOTAL_ENTRADAS = ENTRADAS.TOTAL_ENTRADAS, 
             LJ_ETL.TOTAL_ENTRADAS_PROD = ENTRADAS.TOTAL_ENTRADAS_PROD, 
             LJ_ETL.QTDE_ITENS_ENTRADAS = ENTRADAS.QTDE_ITENS_ENTRADAS, 
             LJ_ETL.QTDE_ITENS_ENTRADAS_PRODUTO = 
             ENTRADAS.QTDE_ITENS_ENTRADAS_PRODUTO 
      FROM   #LJ_ETL_DADOS_MONITORIA LJ_ETL 
             JOIN (SELECT 
                          A.FILIAL, 
                          EMISSAO, 
                          (SELECT COUNT(1) 
                           FROM   LOJA_ENTRADAS 
                           WHERE  EMISSAO = @DATA_VENDA 
								 and filial = @filial
								 and ENTRADA_ENCERRADA = 1) AS  QTDE_ENTRADAS, 
                          COUNT(*) AS  QTDE_ENTRADAS_PRODUTO , 
                          (SELECT SUM(VALOR_TOTAL) 
                           FROM   LOJA_ENTRADAS 
                                  where EMISSAO = @DATA_VENDA 
								 and filial = @filial
								 and ENTRADA_ENCERRADA = 1) AS TOTAL_ENTRADAS, 
                          SUM(VALOR) AS  TOTAL_ENTRADAS_PROD , 
                          (SELECT SUM(QTDE_TOTAL) 
                           FROM   LOJA_ENTRADAS 
                                  where EMISSAO = @DATA_VENDA 
								 and filial = @filial
								 and ENTRADA_ENCERRADA = 1) AS 
                    QTDE_ITENS_ENTRADAS, 
                          SUM(QTDE_ENTRADA)                             AS 
                  QTDE_ITENS_ENTRADAS_PRODUTO 
                   FROM   LOJA_ENTRADAS A 
                          JOIN LOJA_ENTRADAS_PRODUTO D 
                            ON A.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO 
                               AND A.FILIAL = D.FILIAL 
                   WHERE  A.EMISSAO = @DATA_VENDA 
                          AND A.FILIAL = @FILIAL 
						  and ENTRADA_ENCERRADA = 1
                   GROUP  BY A.FILIAL, A.EMISSAO) ENTRADAS 
               ON LJ_ETL.FILIAL = ENTRADAS.FILIAL 
                  AND LJ_ETL.DATA_MOVIMENTO = ENTRADAS.EMISSAO 
      WHERE  LJ_ETL.FILIAL = @FILIAL 
             AND LJ_ETL.DATA_MOVIMENTO = @DATA_VENDA 
			 
			 --RESUMO SAT
      UPDATE LJ_ETL 
      SET    LJ_ETL.TOTAL_SAT = SAT.TOTAL_SAT, 
             LJ_ETL.TOTAL_SAT_ITEM = SAT.TOTAL_SAT_ITEM, 
             LJ_ETL.QTDE_ITENS_SAT = SAT.QTDE_ITENS_SAT, 
             LJ_ETL.QTDE_ITENS_SAT_ITEM = SAT.QTDE_ITENS_SAT_ITEM, 
             LJ_ETL.QTDE_LOJA_CF_SAT = SAT.QTDE_LOJA_CF_SAT 
      FROM   #LJ_ETL_DADOS_MONITORIA LJ_ETL 
             JOIN #SAT SAT 
               ON LJ_ETL.CODIGO_FILIAL = SAT.CODIGO_FILIAL 
                  AND LJ_ETL.DATA_MOVIMENTO = SAT.EMISSAO 
                  AND LJ_ETL.TERMINAL = SAT.TERMINAL 
      WHERE  LJ_ETL.CODIGO_FILIAL = @CODIGO_FILIAL 
             AND LJ_ETL.DATA_MOVIMENTO = @DATA_VENDA 

			--RESUMO NF-E E NFC-E
      UPDATE LJ_ETL 
      SET    LJ_ETL.TOTAL_NF = NF_RESUMO.TOTAL_NF, 
             LJ_ETL.TOTAL_NF_ITEM = NF_RESUMO.TOTAL_NF_ITEM, 
             LJ_ETL.QTDE_ITENS_NF = NF_RESUMO.QTDE_ITENS_NF, 
             LJ_ETL.QTDE_ITENS_NF_ITEM = NF_RESUMO.QTDE_ITENS_NF_ITEM, 
             LJ_ETL.QTDE_LOJA_NOTA_FISCAL = NF_RESUMO.QTDE_LOJA_NOTA_FISCAL 
      FROM   #LJ_ETL_DADOS_MONITORIA LJ_ETL 
             JOIN #NF_RESUMO NF_RESUMO 
               ON LJ_ETL.CODIGO_FILIAL = NF_RESUMO.CODIGO_FILIAL 
                  AND LJ_ETL.DATA_MOVIMENTO = NF_RESUMO.EMISSAO 
             JOIN #NF NF 
               ON NF.CODIGO_FILIAL = NF_RESUMO.CODIGO_FILIAL 
                  AND NF.EMISSAO = NF_RESUMO.EMISSAO 
             JOIN #SERIENF SERIE 
               ON NF.SERIE_NF = SERIE.SERIE_NF 
             JOIN CTB_ESPECIE_SERIE CTB 
               ON CTB.ESPECIE_SERIE = SERIE.ESPECIE_SERIE 
      WHERE  LJ_ETL.CODIGO_FILIAL = @CODIGO_FILIAL 
             AND LJ_ETL.DATA_MOVIMENTO = @DATA_VENDA 
             AND CTB.NUMERO_MODELO_FISCAL IN( '55', '65' ) 

	  --RESUMO ECF
      UPDATE LJ_ETL 
      SET    LJ_ETL.TOTAL_ECF_ITEM = DOC_FISCAL.TOTAL_ECF_ITEM, 
             LJ_ETL.TOTAL_ECF_ITEM_CANC = DOC_FISCAL.TOTAL_ECF_ITEM_CANC, 
             LJ_ETL.QTDE_ECF_ITEM = DOC_FISCAL.QTDE_ECF_ITEM, 
             LJ_ETL.QTDE_ECF_ITEM_CANC = DOC_FISCAL.QTDE_ECF_ITEM_CANC, 
             LJ_ETL.QTDE_LJ_ECF_ITEM = DOC_FISCAL.QTDE_LJ_ECF_ITEM 
      FROM   #LJ_ETL_DADOS_MONITORIA LJ_ETL 
             JOIN (SELECT SUM(VALOR_UNIT) AS TOTAL_ECF_ITEM, 
                          SUM(VALOR_CANC) AS TOTAL_ECF_ITEM_CANC, 
                          SUM(QTDE)       AS QTDE_ECF_ITEM, 
                          SUM(QTDE_CANC)  AS QTDE_ECF_ITEM_CANC, 
                          COUNT(*)        QTDE_LJ_ECF_ITEM, 
                          PGTO.CODIGO_FILIAL, 
                          PGTO.DATA_VENDA 
                   FROM   LJ_ECF_ITEM DOC_ITEM 
                          JOIN LJ_DOCUMENTO_ECF DOC 
                            ON DOC.ID_EQUIPAMENTO = DOC_ITEM.SERIE_ECF 
                               AND DOC.COO = DOC_ITEM.COO 
                               AND DOC.CODIGO_FILIAL = DOC_ITEM.CODIGO_FILIAL 
                          JOIN #VENDAPGTO PGTO 
                            ON PGTO.ID_EQUIPAMENTO = DOC.ID_EQUIPAMENTO 
                               AND PGTO.NUMERO_CUPOM_FISCAL = DOC.COO 
                               AND PGTO.CODIGO_FILIAL = DOC.CODIGO_FILIAL 
                   WHERE  DOC.CODIGO_FILIAL = @CODIGO_FILIAL 
                          AND DOC.DATA_FISCAL = @DATA_VENDA 
                   GROUP  BY PGTO.CODIGO_FILIAL, 
                             PGTO.DATA_VENDA) DOC_FISCAL 
               ON LJ_ETL.CODIGO_FILIAL = DOC_FISCAL.CODIGO_FILIAL 
                  AND LJ_ETL.DATA_MOVIMENTO = DOC_FISCAL.DATA_VENDA 
      WHERE  LJ_ETL.CODIGO_FILIAL = @CODIGO_FILIAL 
             AND LJ_ETL.DATA_MOVIMENTO = @DATA_VENDA 

      INSERT INTO LJ_ETL_DADOS_MONITORIA 
      SELECT * 
      FROM   #LJ_ETL_DADOS_MONITORIA 
  END 
GO

IF EXISTS (SELECT 1 FROM SYS.OBJECTS WHERE NAME = 'LJ_ETL_GERA_DADOS_FFC')
BEGIN
  DROP PROCEDURE [DBO].[LJ_ETL_GERA_DADOS_FFC] 
END
GO

CREATE PROCEDURE LJ_ETL_GERA_DADOS_FFC  (@CODIGO_FILIAL VARCHAR(6), @DATA_MOVIMENTO DATETIME)
AS 
BEGIN
	DECLARE @STATUSLOJA AS INT, @SDATA CHAR(08)
	SELECT @STATUSLOJA =
				CASE WHEN DAY(@DATA_MOVIMENTO) = 1 THEN DIA_1
					 WHEN DAY(@DATA_MOVIMENTO) = 2 THEN DIA_2
					 WHEN DAY(@DATA_MOVIMENTO) = 3 THEN DIA_3
					 WHEN DAY(@DATA_MOVIMENTO) = 4 THEN DIA_4
					 WHEN DAY(@DATA_MOVIMENTO) = 5 THEN DIA_5
					 WHEN DAY(@DATA_MOVIMENTO) = 6 THEN DIA_6
					 WHEN DAY(@DATA_MOVIMENTO) = 7 THEN DIA_7
					 WHEN DAY(@DATA_MOVIMENTO) = 8 THEN DIA_8
					 WHEN DAY(@DATA_MOVIMENTO) = 9 THEN DIA_9
					 WHEN DAY(@DATA_MOVIMENTO) = 10 THEN DIA_10
					 WHEN DAY(@DATA_MOVIMENTO) = 11 THEN DIA_11
					 WHEN DAY(@DATA_MOVIMENTO) = 12 THEN DIA_12
					 WHEN DAY(@DATA_MOVIMENTO) = 13 THEN DIA_13
					 WHEN DAY(@DATA_MOVIMENTO) = 14 THEN DIA_14
					 WHEN DAY(@DATA_MOVIMENTO) = 15 THEN DIA_15
					 WHEN DAY(@DATA_MOVIMENTO) = 16 THEN DIA_16
					 WHEN DAY(@DATA_MOVIMENTO) = 17 THEN DIA_17
					 WHEN DAY(@DATA_MOVIMENTO) = 18 THEN DIA_18
					 WHEN DAY(@DATA_MOVIMENTO) = 19 THEN DIA_19
					 WHEN DAY(@DATA_MOVIMENTO) = 20 THEN DIA_20
					 WHEN DAY(@DATA_MOVIMENTO) = 21 THEN DIA_21
					 WHEN DAY(@DATA_MOVIMENTO) = 22 THEN DIA_22
					 WHEN DAY(@DATA_MOVIMENTO) = 23 THEN DIA_23
					 WHEN DAY(@DATA_MOVIMENTO) = 24 THEN DIA_24
					 WHEN DAY(@DATA_MOVIMENTO) = 25 THEN DIA_25
					 WHEN DAY(@DATA_MOVIMENTO) = 26 THEN DIA_26
					 WHEN DAY(@DATA_MOVIMENTO) = 27 THEN DIA_27
					 WHEN DAY(@DATA_MOVIMENTO) = 28 THEN DIA_28
					 WHEN DAY(@DATA_MOVIMENTO) = 29 THEN DIA_29
					 WHEN DAY(@DATA_MOVIMENTO) = 30 THEN DIA_30
					 WHEN DAY(@DATA_MOVIMENTO) = 31 THEN DIA_31	END
		FROM W_ETL_MONITORIA A WHERE A.CODIGO_FILIAL = @CODIGO_FILIAL
		AND ANO = YEAR(@DATA_MOVIMENTO) AND MES = MONTH(@DATA_MOVIMENTO)

	SET @SDATA = CONVERT(CHAR(10), GETDATE(),112)

	IF OBJECT_ID('LX_FFC_GRAVA_STATUS_MONITOR') IS NOT NULL  --SUSTSP-2388	
	BEGIN
		IF @STATUSLOJA IS NULL OR @STATUSLOJA > 0
			Exec DBO.LX_FFC_GRAVA_STATUS_MONITOR 0,0,@CODIGO_FILIAL, @SDATA, @SDATA, 30,'DIVERGENCIA ETL','ETL',NULL,NULL,NULL
		ELSE
			Exec DBO.LX_FFC_GRAVA_STATUS_MONITOR 0,0,@CODIGO_FILIAL, @SDATA, @SDATA, 99,null,'ETL',NULL,NULL,NULL
	END
END
GO