USE [Cliente185_ERP_HML_Aux]
GO

/****** Object:  StoredProcedure [dbo].[LX_GERA_ENTRADA_FISCAL_LOJA]    Script Date: 28/10/2025 15:45:45 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



CREATE OR ALTER PROCEDURE [dbo].[LX_GERA_ENTRADA_FISCAL_LOJA] @ROMANEIO_PRODUTO VARCHAR(15), @FILIAL VARCHAR(25) 
AS 
  -- 15/07/2024 - Dario Silva			 - PRODSHOP-24785 - #58# - Ajuste na montagem do campo descricao_item
  -- 27/03/2024 - Juliana Nascimento	 - PRODSHOP-24230 - #57# - Ajuste na localização da exceção de imposto
  -- 08/03/2024 - Juliana Nascimento	 - PRODSHOP-24128 - #56# - Ajuste para gerar o item_nfe
  -- 08/02/2024 - Dario	Silva			 - PRODSHOP-23561 - #55# - Ajuste no indicador_cfop
  -- 06/07/2023 - Juliana Nascimento	 - PRODSHOP-20185 - #54# - Ajuste no nome_clifor para gerar os impostos 
  -- 17/05/2023 - WendelCrespigio        - PRODSHOP-19394 - #53# - Tratamento para a issue LINXERP-13490 para fazer o getdate em entradas já existentes pois não estava entrando no filtro para descer para as lojas pelo ETL cliente Valisere..
  -- 02/05/2023 - Juliana Nascimento	 - PRODSHOP-19145 - #52# - Ajuste no campo VALOR_SUB_ITENS no insert da tabela temporaria #ENTRADAS
  -- 11/04/2023 - Marcelo Faria			 - LINXERP-14223  - #51# - Caso integração com microvix e nf cancelada faz exclusão quando integração aciona a proc
  -- 10/03/2023 - Valmir Soares			 - LINXERP-13530  - #50# - geração de NF para compras sem pedido (recebidas na loja) 
  -- 01/03/2023 - Marcelo Faria			 - LINXERP-13692  - #49# - Melhoria para integração Microvix.
  -- 18/10/2022 - Dario Silva			 - PRODSHOP-15696 - #48# - Alteração na tabela #ENTRADAS, inserido o campo DESCONTO.
  -- 23/11/2021 - Rodrigo Souza			 - PRODSHOP-9465  - #47# - Correção no campo ROMANEIO_PRODUTO da tabela #ORIGEM_ENTRADA alterado o tamanho de 9 para 15.
  -- 20/11/2020 - Juliana Nascimento     - SUSTSP-1822  - #46# - Desfeita a correção #42#.
  -- 15/09/2020 - Rodrigo Souza			 - SUSTSP-1215  - #45# - Correção para gerar corretamente o item de impressão da tabela entradas item e atualização da tabela LOJA_ENTRADAS_PRODUTO.
  -- 24/03/2020 - Juliana Nascimento	 - MODASP-11916 - #44# - Ajuste na montagem do campo referencia_item
  -- 19/02/2020 - Juliana Nascimento	 - MODASP-11117 - #43# - Ajuste para o processamento de notas de franquia
  -- 18/02/2020 - Juliana Nascimento	 - MODASP-11038 - #42# - Ajuste no campo Emissão e Recebimento no insert da tabela temporaria #ENTRADAS
  -- 18/07/2019 - Carlos G. Gonçalves - ISSUE MODASP-3742 - #41# - Para entradas por compra, gerar agrupamento itens conforme definido no cadastro do fornecedor
  -- 24/05/2019 - Rodrigo Souza     - ISSUE MODASP-2289- #40# - Correção para atualizar o campo PRECO_UNITARIO_ORIGINAL da tabela entradas_item.
  -- 18/04/2019 - Wendel Crespigio  - ISSUE MODASP-400 - #39# - Alteração para processamento de entradas de lojas Ref a Franquias.  
  -- 17/08/2018 - Wendel Crespigio  - DM 89853		   - #38# - tratamento para o campo  NF_PROPRIA_EMITIDA validado com Varlos e Rodrigo o campo precisa ser 0
  -- 22/03/2018 - WENDEL CRESPIGIO  - DM 68253         - #37# - ALTERAÇÃO DO UPDATE QUE ESTAVA PEGANDO UTRA NOTA COM O MESMO NUMERO MESMA SERIE  
  -- 22/03/2018 - Wendel Crespigio  - DM 68255         - #36# - ALTERAÇÃO PARA CLIENTE NATURA PASSOU A ALIMENTAR A COLUNA PRECO_UNITARIO_ORIGINAL.   
  -- 12/06/2017 - Wendel Crespigio  - DM 34521         - #35# - Remoção da implementação #29#. Ocorreram problemas com o reprocessamento das transferencias e a perda do vínculo com a NF Entrada.
  -- 27/04/2017 - André Pereira     - DM 12090         - #34# - Inclusão da coluna INDICA_ENTRADA_AUTOMATICA na criação da tabela ENTRADAS para identificar entrada automatica.
  -- 16/02/2017 - Wendel Crespigio  - DM 21267         - #33# - Inclusão da coluna A.CHAVE_NFE na criação da tabela temporaria ENTRADAS.
  -- 14/02/2017 - Wendel Crespigio  - DM 20468	       - #32# - Ajuste no update do item impressão, feito validação do produto para evitar perca de referência (apoio suporte) 
  -- 11/01/2016 - Edson Filenti     - DM 10801         - #31# - Correção no select da CTE para geração de entradas para Franquia. Operações de entradas MANUAIS podem gerar numero_nf/serie já utilizadas pela loja em LOJA_NOTA_FISCAL, gerando duplicidade no na seleção do registro para criação da entrada
  -- 10/01/2017 - Edson Filenti     - DM 6370          - #30# - Correção dos parâmetros da função do CSP Fx_id_excecao_imposto e do alias dos campos codigo_item e Referencia
  -- 12/08/2016 - Wendel Crespigio  - DM 7688	       - #29# - Correção para atualizar campos somente quando loja_entrada for por FORNECEDOR 
  -- 01/06/2016 - Wendel Crespigio  - DM 2064          - #28# - Correção nos parâmetros da proc Lx_gera_impostos_entrada para ajustar valor para impostos que agregaram valor a nota.
  -- 23/05/2016 - Wendel Crespigio  - DM 2434          - #27# - Correção para geração do SPED nota fiscal de transferecia com serie oficial   
  -- 10/03/2016 - Wendel Crespigio  - DM 1528          - #26# - Correção no vínculo das tabelas porque a tabela LOJA_NOTA_FISCAL grava o 'CODIGO_FILIAL' da tabela LOJAS_VAREJO e estava amarrando errado com o 'COD_FILIAL' da tabela FILIAIS, que podem ser diferentes. 
  -- 07/12/2015 - Wendel Crespigio  - ID 949           - #25# - existem operações que podem ocorrer de existerem filiais com MATRIZ_FISCAL DIFERENTES e por ser ambiente de franquia, o cadastro das filiais vem do Franqueador e por poder tabalhar com lojas proprias o campo foi comentado.
  -- 03/11/2015 - Wendel Crespigio  - TP 10526405      - #24# - TRATAMENTO PARA CASO O CLIENTE TRABALHE COM MULTIEMP E TENHA O MESMO PRODUTO EM 2 SEGMENTOS DIFERENTES, OCORRIA DUPLICIDADE.   
  -- 11/09/2015 - Wendel Crespigio  - TP 9984476       - #23# - TRATAMENTO PARA QUANDO NÃO EXISTIR SERIE_NF_ENTRADA  
  -- 04/09/2015 - Diego Moreno      - TP 9984476       - #22# - Efetuei uma melhoria no UPDATE para que possa contemplar todos os tipos de entrada gerada uma vez que tenha dados em ENTRADAS e ENTRADAS_ITEM. 
  -- 22/08/2015 - Wendel Crespigio  - TP 9984476       - #21# - Tratamento para indicar como impresso a tabela LOJA_ENTRADAS_PRODUTO e agrupamento_itens.  
  -- 21/08/2015 - Wendel Crespigio  - TP 9961941       - #20# - PASSOU A CRIAR A TABELA TEMPORARIA ANTES E FAZER INSERT DE SELECT  
  -- 24/04/2015 - Wendel Crespigio  - TP 8365386       - #19# - Incluindo valor 'P' na coluna origem_item uma vez que o sintegra começou a validar tal informação	
  -- TP9499502 - JORGE.DAMASCO - #18# - (17/07/2015)   - COMENTADO OS TRECHOS POIS PODE EXISTIR SITUAÇÃO ONDE A MATRIZ FISCAL É IGUAL E EM OUTRAS É DIFERENTE.
  -- (SEM TP!) - JORGE.DAMASCO - #17# - (16/07/2015)   - ALTERAÇÃO DE "A.FILIAL_ORIGEM" POR "A.FILIAL" POIS JÁ OLHAVA A TABELA LOJA_ENTRADAS.
  -- TP9362443 - JORGE.DAMASCO - #16# - (08/07/2015)   - DUPLICAÇÃO DA CTE ABAIXO, POIS PASSOU A VERIFICAR A EXISTÊNCIA DA TABELA "FATURAMENTO_DADOS_FRANQUIA" (EXCLUSIVA DE FRANQUIA).
  -- 01/07/2015 - DIEGO MORENO - TP8562696 - #15#      - CRIAÇÃO DE BLOCO DE TRATAMENTO PARA ENTRADA DE FRANQUEADOR SENDO RECEBIDA NA FRANQUIA	
  -- 17/06/2015 - Edson Filenti	  - TP 8403649 - #14#  - Ajuste no processo de abatimento do pedido de compra. Alterado para verificar a existência de mais de 1 pedido.
  -- 09/06/2015 - Victor Kajiyama  - TP 8517126 - #13# - Caso houve Tribut_ICMS na exceção, ele vai considerar tal informação. Hoje ele só estava coletando da tabela PRODUTOS.  
  -- TP8170012 - JORGE.DAMASCO - #12# - (10/04/2015)   - PASSOU A VERIFICAR O PARÂMETRO "GERA_ENT_AUTOMATICA_LOJA" P/ DAR CONTINUIDADE AO PROCESSO.
  -- 23/03/2015 - Wendel Crespigio - TP 8117628 - #11#  - Passou a verificar se a filial de Origem é nula pois caso seja usa o fornecedor que já era usando no select do nome_clifor. 
  -- 03/03/2015 - Wendel Crespigio - TP 7967142 - #10#  - Passou a Usar o indicador do CFOP da tabela Produto_indicador_cfop.
  -- 03/03/2015 - Wendel Crespigio - TP 7959734 - #9#   - Passou a verificar o campo entrada_por da tabela LOJA_ENTRADAS.
  -- 21/01/2015 - Diego Moreno     - TP 7035555 - #8#   - Passou a utilizar trecho da proc. LX_GERA_TRANSFERENCIAS_PERIODO para a geração correta da Entrada quando a saida for via faturamento.
  -- 12/12/2014 - Gerson Prado     - TP 5545803 - #7#   - Acerto para considerar o nome fantasia da TRANSPORTADORA na tabela entradas proveniente da tabela LOJA_NOTA_FISCAL.
  -- 19/11/2014 - Wendel Crespigio - TP 6897607 - #6#   - Adicionado tratamento para que as informações da tabela Entradas_item sejam inseridas ao salvar a alteração do Romaneio na tela 120009. Também foi realizada alteração para que os itens sejam agrupados por Código de Produto.
  -- 25/09/2014 - Wendel Crespigio - TP 6044402 - #5#   - ADICIONADO TRATAMENTO PARA CONVERTER A DATA DE RECEBIMENTO PARA O PADRÃO SEM HORAS [AAAA-MM-DD 00:00:00.000]. 
  -- 18/07/2014 - Wendel Crespigio - TP 5805234 - #4#   - Erro ao importar dados na tabela ENTRADAS a partir da tabela LOJA_ENTRADAS quando adicionado a NOTA FISCAL uma série não cadastrada em SERIES_NF.
  -- 10/06/2014 - Roberto Beda     - TP 5278040 - #2#   - Tratamento para evitar linhas duplicadas quando existem notas diferentes com número e série iguais e o COD_FILIAL das filiais origem é o mesmo.
  -- 16/05/2014 - Diego Camargo    - TP 5349506 - #1#   - Passa a verificar se existe CFOP obrigatório para a exceção de imposto utilizada.
  -- 16/05/2014 - Diego Camargo    - TP                 - Passa a utilizar tabelas temporárias para serem atualizadas antes de inserir na tabela do banco. 

SET NOCOUNT ON 


IF (SELECT CASE WHEN APP_NAME() LIKE '%LinxETL%' OR APP_NAME() LIKE '%datasync%retail%' THEN 1 ELSE 0 END) = 1 
begin 
 Return 
end 

  BEGIN 
      DECLARE @FAT_NUMERO_MODELO_FISCAL      INT, 
              @FAT_STATUS_NFE                SMALLINT, 
              @FAT_PROTOCOLO_AUTORIZACAO_NFE VARCHAR(15), 
              @EMPRESA                       INT, 
              @RATEIO_CENTRO_CUSTO           VARCHAR(15), 
              @NATUREZA                      VARCHAR(15), 
              @MOEDA                         VARCHAR(6), 
              @SERIE_NF_ENTRADA              VARCHAR(6), 
              @SERIE_NF                      VARCHAR(6), 
              @SERIE_NF_DEFAULT              VARCHAR(6),--#4# 
              @CONDICAO_PGTO                 VARCHAR(3), 
              @ESPECIE_SERIE                 INT, 
              @NATUREZA_COMPRA               VARCHAR(15), 
              @NATUREZA_TRANSFERENCIA        VARCHAR(15), 
              @CTB_TIPO_OPERACAO_UTILIZADO   INT, 
              @ENTRADA_POR                   INT, 
              @TRANSPORTADORA_PADRAO         VARCHAR(25), 
              @FILIAL_ORIGEM                 VARCHAR(25), 
              @MATRIZ_CONTABIL               INT, 
              @TIPO_ENTRADAS_PADRAO          VARCHAR(25), 
              @ORIGEM_ENTRADA                SMALLINT,--#8#, 
              @TIPO_PRODUCAO                 VARCHAR(6), 
              @NOME_CLIFOR                   VARCHAR(30), 
              @NF_ENTRADA                    VARCHAR(15), 
              @PEDIDO                        VARCHAR(8), 
              @MOEDA_PADRAO                  VARCHAR(6),
              @GERA_ENT_AUTOMATICA_LOJA      VARCHAR(3),--#12# 
              @INDICA_ENTRADA_AUTOMATICA     BIT, --#34#
              @AGRUPAMENTO_ITENS            INT --#41#

		IF OBJECT_ID('tempdb..#ORIGEM_ENTRADA') is not null --#20#
		BEGIN 
			DROP TABLE #ORIGEM_ENTRADA 
		END 
		
		--#20#
		Create table #ORIGEM_ENTRADA --#20#
		(	ORIGEM            varchar(16) COLLATE DATABASE_DEFAULT, -- #22#
			ROMANEIO_PRODUTO  varchar(15) COLLATE DATABASE_DEFAULT, -- #47#
			FILIAL            varchar(60) COLLATE DATABASE_DEFAULT, 
			FILIAL_ORIGEM     varchar(60) COLLATE DATABASE_DEFAULT,
			ROMANEIO_NF_SAIDA varchar(19) COLLATE DATABASE_DEFAULT, 
			SERIE_NF_ENTRADA  varchar(9)  COLLATE DATABASE_DEFAULT,
			FORNECEDOR        varchar(30) COLLATE DATABASE_DEFAULT, 
			PEDIDO_COMPRA     varchar(9)  COLLATE DATABASE_DEFAULT,
			NF_NUMERO         varchar(15) COLLATE DATABASE_DEFAULT,
			CODIGO_FILIAL     varchar(6)  COLLATE DATABASE_DEFAULT
			)


		-- #16# - INÍCIO
		IF OBJECT_ID('tempdb..#ORIGEM_ENTRADA_FRANQUIA') is not null
		BEGIN 
		DROP TABLE ORIGEM_ENTRADA_FRANQUIA 
		END 
		-- #16# - FIM

		 -- == VARIAVEIS RECEBENDO VALORES ========================================================================================== <|INICIO|>

		 --#8# - INICIO
		
		SELECT @TIPO_PRODUCAO = VALOR_ATUAL 
		FROM   PARAMETROS 
		WHERE  PARAMETRO = 'TIPO_PRODUCAO' 

		SELECT @TIPO_ENTRADAS_PADRAO = RTRIM(VALOR_ATUAL) 
		FROM   PARAMETROS 
		WHERE  PARAMETRO = 'TIPO_ENTRADA_PADRAO' 

		SELECT @MOEDA_PADRAO = MOEDA 
		FROM   MOEDAS 
		WHERE  INDICA_PADRAO = 1 

		--#8# - FIM
		
		--#12# - INÍCIO
		SELECT @GERA_ENT_AUTOMATICA_LOJA = VALOR_ATUAL 
		FROM   PARAMETROS 
		WHERE  PARAMETRO = 'GERA_ENT_AUTOMATICA_LOJA'
		
		---- == SE O PARÂMETRO "GERA_ENT_AUTOMATICA_LOJA" FOR FALSO A ENTRADA FISCAL DA NOTA NÃO SERÁ GERADA. ====================================== <|INICIO|>
	    IF @GERA_ENT_AUTOMATICA_LOJA = '.F.'
			RETURN;
	    ---- == SE O PARÂMETRO "GERA_ENT_AUTOMATICA_LOJA" FOR FALSO A ENTRADA FISCAL DA NOTA NÃO SERÁ GERADA. ====================================== <|FIM|>
	    --#12# - FIM

		----#51# 
		IF EXISTS (SELECT * FROM ENTRADAS AS A
					JOIN LOJA_ENTRADAS B ON A.NF_ENTRADA=B.NF_ENTRADA AND A.SERIE_NF_ENTRADA=B.SERIE_NF_ENTRADA AND A.NOME_CLIFOR=B.NOME_CLIFOR
					JOIN PARAMETROS P ON P.PARAMETRO='INTEGRACAO_MICROVIX' AND P.VALOR_ATUAL='.T.'
					WHERE B.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO AND B.FILIAL = @FILIAL AND B.ENTRADA_CANCELADA = 1 )
		BEGIN
			DELETE A FROM ENTRADAS AS A
					JOIN LOJA_ENTRADAS B ON A.NF_ENTRADA=B.NF_ENTRADA AND A.SERIE_NF_ENTRADA=B.SERIE_NF_ENTRADA AND A.NOME_CLIFOR=B.NOME_CLIFOR
					JOIN PARAMETROS P ON P.PARAMETRO='INTEGRACAO_MICROVIX' AND P.VALOR_ATUAL='.T.'
					WHERE B.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO AND B.FILIAL = @FILIAL AND B.ENTRADA_CANCELADA = 1
			
			RETURN;

		END
		--#51# fim



		----#49# Valida não existência para não gerar duplicidade #53#
		IF EXISTS (SELECT * FROM ENTRADAS AS A
					JOIN LOJA_ENTRADAS B ON A.NF_ENTRADA=B.NF_ENTRADA AND A.SERIE_NF_ENTRADA=B.SERIE_NF_ENTRADA AND A.NOME_CLIFOR=B.NOME_CLIFOR
					WHERE B.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO AND B.FILIAL = @FILIAL )
            BEGIN 
				UPDATE 	ENTRADAS 
				SET 	DATA_PARA_TRANSFERENCIA = GETDATE()
				FROM 	ENTRADAS A
				Inner Join LOJA_ENTRADAS B 
                on       A.NOME_CLIFOR = B.FORNECEDOR
				WHERE A.NF_ENTRADA     = B.NUMERO_NF_TRANSFERENCIA 
                AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
                AND A.FILIAL           = @FILIAL 
                AND B.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
	
			RETURN;
		    END
		----#49# #53#

		SELECT @EMPRESA = EMPRESA 
		FROM   FILIAIS 
		WHERE  FILIAL = @FILIAL 

		SELECT @RATEIO_CENTRO_CUSTO = CASE 
		WHEN ISNULL(@RATEIO_CENTRO_CUSTO, '') = '' THEN DBO.FX_PARAMETRO_EMPRESA('RATEIO_CENTRO_CST_PADRAO',@EMPRESA) 
		ELSE @RATEIO_CENTRO_CUSTO 
		END, 
		@MOEDA = DBO.FX_PARAMETRO_EMPRESA('MOEDA_PADRAO', @EMPRESA), 
		@SERIE_NF = NULL,
		@SERIE_NF_DEFAULT = ISNULL ((SELECT DISTINCT( DIF.SERIE_NF_ENTRADA ) 
		FROM   LOJA_ENTRADAS_DIF DIF 
		WHERE  DIF.ROMANEIO_PRODUTO = LOJA_ENTRADAS.ROMANEIO_PRODUTO 
		AND DIF.FILIAL = LOJA_ENTRADAS.FILIAL), ISNULL(DBO.FX_PARAMETRO_EMPRESA('SERIE_NF_ENTRADA_AUTO', @EMPRESA), '1')),
		@CONDICAO_PGTO = DBO.FX_PARAMETRO_EMPRESA('COND_PGTO_PADRAO', @EMPRESA), 
		@ESPECIE_SERIE = DBO.FX_PARAMETRO_EMPRESA('ESPECIE_SERIE_AUTO', @EMPRESA) , 
		@NATUREZA_COMPRA = DBO.FX_PARAMETRO_EMPRESA('NATUREZA_ENTRADA_COMPRA', @EMPRESA) , 
		@NATUREZA_TRANSFERENCIA = DBO.FX_PARAMETRO_EMPRESA('NATUREZA_ENTRADA_TRANSF', @EMPRESA), 
		@CTB_TIPO_OPERACAO_UTILIZADO = '', 
		@TRANSPORTADORA_PADRAO = DBO.FX_PARAMETRO_EMPRESA('TRANSPORTADORA_PADRAO', @EMPRESA), 
		@FILIAL_ORIGEM = FILIAL_ORIGEM, 
		@ENTRADA_POR = ENTRADA_POR 
		FROM   LOJA_ENTRADAS LOJA_ENTRADAS 
		WHERE  LOJA_ENTRADAS.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
		AND LOJA_ENTRADAS.FILIAL = @FILIAL 

		SELECT @MATRIZ_CONTABIL = COUNT (DISTINCT MATRIZ) 
		FROM   FILIAIS 
		WHERE  FILIAL IN ( @FILIAL, @FILIAL_ORIGEM ) 
	  
		--#15# - INICIO
	    DECLARE @ENTRADA_FRANQUEADOR AS BIT  
		SELECT @ENTRADA_FRANQUEADOR = 0
		FROM LOJA_ENTRADAS ENT
		LEFT JOIN FATURAMENTO FAT
		ON ENT.FILIAL = FAT.FILIAL
		AND ENT.ROMANEIO_NF_SAIDA = FAT.NF_SAIDA
		AND ENT.SERIE_NF_ENTRADA = FAT.SERIE_NF
		INNER JOIN FILIAIS FILIAIS
		ON ENT.FILIAL = FILIAIS.FILIAL
		WHERE ENT.ROMANEIO_NF_SAIDA != ''
		AND FILIAIS.INDICA_FRANQUIA = 1
		AND ENT.FILIAL = @FILIAL
		AND ENT.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO
				
		SET @ENTRADA_FRANQUEADOR = CASE WHEN @@ROWCOUNT > 0 THEN 1 ELSE 0 END
		--#15# - FIM
	 
      ---- == SE A COMBINAÇÃO ABAIXO FOR VERDADEIRA A ENTRADA FISCAL DA NOTA NÃO SERÁ GERADA. ====================================== <|INICIO|>
      --#15# - INICIO
      --SE EXISTIR APENAS O REGISTRO NA TABELA ENTRADAS ESTE DADO SERÁ REMOVIDO.

      IF EXISTS(
				SELECT 1
                FROM   LOJA_ENTRADAS A 
                LEFT JOIN ENTRADAS B 
                ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                B.NOME_CLIFOR 
				AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
				LEFT JOIN ENTRADAS_ITEM C
				ON B.NF_ENTRADA = C.NF_ENTRADA
				AND B.NOME_CLIFOR = C.NOME_CLIFOR
				WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO
                           AND A.FILIAL = @FILIAL 
                           AND A.ENTRADA_CONFERIDA = 1 
                           AND A.STATUS_TRANSITO != 0 
                           --AND B.NF_ENTRADA IS NULL
                           AND C.NF_ENTRADA IS NULL
                           ) 
      
      BEGIN
				DELETE B
                FROM   LOJA_ENTRADAS A 
                LEFT JOIN ENTRADAS B 
                ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                B.NOME_CLIFOR 
				AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
				LEFT JOIN ENTRADAS_ITEM C
				ON B.NF_ENTRADA = C.NF_ENTRADA
				AND B.NOME_CLIFOR = C.NOME_CLIFOR
				WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                           AND A.FILIAL = @FILIAL
                           AND A.ENTRADA_CONFERIDA = 1 
                           AND A.STATUS_TRANSITO != 0 
                           --AND B.NF_ENTRADA IS NULL
                           AND C.NF_ENTRADA IS NULL
      END
      
	   -- == SE A COMBINAÇÃO ABAIXO FOR VERDADEIRA A ENTRADA FISCAL DA NOTA NÃO SERÁ GERADA. ====================================== <|FIM|>
	   --#8# - INICIO
	   --== DADOS DA ORIGEM ======================================================================================= <|INICIO|>
	   
	  -- #16# - INÍCIO - DUPLICAÇÃO DA CTE_ENTRADAS_ORIGEM
	  -- 1° - NÃO EXISTE A TABELA FATURAMENTO_DADOS_FRANQUIA
	  IF  NOT EXISTS (SELECT NAME FROM SYS.COLUMNS WHERE  OBJECT_ID = Object_id('DBO.FATURAMENTO_DADOS_FRANQUIA'))
	  BEGIN
      WITH CTE_ENTRADAS_ORIGEM(ORIGEM, ROMANEIO_PRODUTO, FILIAL, FILIAL_ORIGEM,ROMANEIO_NF_SAIDA, SERIE_NF_ENTRADA, FORNECEDOR, PEDIDO_COMPRA,NF_NUMERO,CODIGO_FILIAL) 
           AS ( 
              --COMPRAS 
              SELECT 'COMPRAS' AS ORIGEM, 
                     A.ROMANEIO_PRODUTO, 
                     A.FILIAL, 
                     A.FILIAL_ORIGEM, 
                     A.ROMANEIO_NF_SAIDA AS ROMANEIO_NF_SAIDA, 
                     A.SERIE_NF_ENTRADA, 
                     A.FORNECEDOR, 
                     D.PEDIDO_COMPRA, 
                     A.NUMERO_NF_TRANSFERENCIA AS NF_NUMERO,
					 LV.CODIGO_FILIAL AS CODIGO_FILIAL 
              FROM   LOJA_ENTRADAS A 
                     INNER JOIN (SELECT	TOP 1 FILIAL,ROMANEIO_PRODUTO, PEDIDO_COMPRA 
                                 FROM	LOJA_ENTRADAS_PRODUTO 
                                 WHERE	ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
								 AND FILIAL = @FILIAL) D 
					 ON A.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO 
                     AND A.FILIAL = D.FILIAL 
					 INNER JOIN LOJAS_VAREJO LV
					 ON A.FILIAL = LV.FILIAL
              WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                     AND A.FILIAL = @FILIAL
                 --  AND D.PEDIDO_COMPRA IS NOT NULL  -- #50#
                     AND A.ENTRADA_CONFERIDA = 1 
                     AND A.STATUS_TRANSITO != 0 
                     AND A.QTDE_TOTAL > 0 
              UNION ALL 
              --FATURAMENTO 
              SELECT 'FATURAMENTO' AS ORIGEM, 
					 A.ROMANEIO_PRODUTO, 
					 A.FILIAL, 
					 A.FILIAL_ORIGEM, 
                     ROMANEIO_NF_SAIDA AS ROMANEIO_NF_SAIDA, 
                     A.SERIE_NF_ENTRADA, 
                     A.FORNECEDOR, 
                     NULL AS PEDIDO_COMPRA, 
                     A.NUMERO_NF_TRANSFERENCIA AS NF_NUMERO,
					 F2.COD_FILIAL AS CODIGO_FILIAL 
       FROM   LOJA_ENTRADAS A 
                     LEFT JOIN ENTRADAS B 
					 ON A.FILIAL_ORIGEM = B.NOME_CLIFOR 
                     AND A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                     AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
                     INNER JOIN FILIAIS F 
					 ON A.FILIAL_ORIGEM = F.FILIAL 
                     INNER JOIN FATURAMENTO M 
                     ON M.NF_SAIDA = A.ROMANEIO_NF_SAIDA 
                     AND M.SERIE_NF = A.SERIE_NF_ENTRADA 
                     AND M.FILIAL = A.FILIAL_ORIGEM 
                     INNER JOIN FILIAIS F2 
                     ON F2.FILIAL = M.NOME_CLIFOR 
                     INNER JOIN SERIES_NF AS SN 
                     ON SN.SERIE_NF = A.SERIE_NF_ENTRADA 
                     INNER JOIN CTB_ESPECIE_SERIE CES 
                     ON CES.ESPECIE_SERIE = SN.ESPECIE_SERIE 
                     LEFT JOIN TRANSPORTADORAS TRANSP WITH (NOLOCK)  
					 ON TRANSP.TRANSPORTADORA = M.TRANSPORTADORA 
              WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                     AND A.FILIAL = @FILIAL 
                     AND A.ENTRADA_CONFERIDA = 1 
                     AND A.STATUS_TRANSITO != 0 
                     AND A.QTDE_TOTAL > 0 
                     AND F.INDICA_BENEFICIADOR = 0 
                     AND F.INDICA_FRANQUIA = 0 
                     AND M.NOTA_CANCELADA = 0 
                     --AND ISNULL(F.MATRIZ_FISCAL, '') <> ISNULL(F2.MATRIZ_FISCAL, '') -- #18#
                     --AND F.MATRIZ = F2.MATRIZ -- #18#
                     AND ( ( CES.NUMERO_MODELO_FISCAL = '55' 
					 AND M.STATUS_NFE = 5 ) 
                     OR CES.NUMERO_MODELO_FISCAL <> '55' ) 
                     AND NOT EXISTS (SELECT 1 
                                     FROM   ENTRADAS ENT (NOLOCK) 
                                     WHERE  ENT.NOME_CLIFOR = M.FILIAL 
                                            AND ENT.NF_ENTRADA = M.NF_SAIDA 
                                            AND ENT.SERIE_NF_ENTRADA = 
                                            M.SERIE_NF) 
               UNION ALL 
               --LOJA_NOTA_FISCAL 
               SELECT 'LOJA_NOTA_FISCAL' AS ORIGEM, 
				A.ROMANEIO_PRODUTO, 
                      A.FILIAL, 
                      A.FILIAL_ORIGEM, 
                      ISNULL(A.NUMERO_NF_TRANSFERENCIA, A.ROMANEIO_NF_SAIDA) AS ROMANEIO_NF_SAIDA, 
                      A.SERIE_NF_ENTRADA, 
                      A.FORNECEDOR, 
                      NULL AS PEDIDO_COMPRA, 
                      LJ.NF_NUMERO AS NF_NUMERO,
					  C.COD_FILIAL AS CODIGO_FILIAL 
               FROM   LOJA_ENTRADAS A 
                      LEFT JOIN ENTRADAS B 
                      ON A.FILIAL_ORIGEM = B.NOME_CLIFOR 
                      AND A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                      AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
						INNER JOIN FILIAIS C
						ON  C.FILIAL = A.FILIAL
						INNER JOIN FILIAIS F2
						ON  F2.FILIAL = A.FILIAL_ORIGEM
						INNER JOIN LOJAS_VAREJO LV
						ON  LV.FILIAL = F2.FILIAL
						INNER JOIN LOJA_NOTA_FISCAL LJ
					--  ON  LJ.CODIGO_FILIAL = F2.COD_FILIAL  --#26#
					    ON  LJ.CODIGO_FILIAL = LV.CODIGO_FILIAL  --#26#
						AND LJ.NF_NUMERO = A.NUMERO_NF_TRANSFERENCIA
						AND LJ.SERIE_NF = A.SERIE_NF_ENTRADA
                      AND LJ.SERIE_NF = A.SERIE_NF_ENTRADA 
                      INNER JOIN SERIES_NF AS SN 
                      ON SN.SERIE_NF = LJ.SERIE_NF 
                      INNER JOIN CTB_ESPECIE_SERIE CES 
                      ON CES.ESPECIE_SERIE = SN.ESPECIE_SERIE 
					  LEFT JOIN TRANSPORTADORAS TRANSP WITH (NOLOCK) 
                      ON TRANSP.TRANSPORTADORA = LJ.TRANSPORTADORA 
               WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                      AND A.FILIAL = @FILIAL 
                      AND A.ENTRADA_CONFERIDA = 1 
                      AND A.STATUS_TRANSITO != 0 
                      AND A.QTDE_TOTAL > 0 
                      AND C.INDICA_BENEFICIADOR = 0 
           AND C.INDICA_FRANQUIA = 0 
                      AND LJ.NOTA_CANCELADA = 0 
                      AND ISNULL(C.MATRIZ_FISCAL, '') <> ISNULL(F2.MATRIZ_FISCAL, '') 
                      AND C.MATRIZ = F2.MATRIZ 
                      AND ( ( CES.NUMERO_MODELO_FISCAL = '55' 
					  AND LJ.STATUS_NFE = 5 ) 
					  OR CES.NUMERO_MODELO_FISCAL <> '55' )  
                      AND B.NOME_CLIFOR IS NULL

				--#49# 

				UNION ALL 
				SELECT 'MICROVIX',A.ROMANEIO_PRODUTO, A.FILIAL, A.FILIAL_ORIGEM, A.ROMANEIO_NF_SAIDA, A.SERIE_NF_ENTRADA, ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM), NULL,A.NUMERO_NF_TRANSFERENCIA,LV.CODIGO_FILIAL
				FROM LOJA_ENTRADAS A 
				JOIN LOJAS_VAREJO LV 
						ON LV.FILIAL=A.FILIAL
				JOIN PARAMETROS P 
						ON P.PARAMETRO='INTEGRACAO_MICROVIX' AND P.VALOR_ATUAL='.T.'
				LEFT JOIN LOJAS_VAREJO V1 
						ON V1.FILIAL=A.FILIAL_ORIGEM
				LEFT JOIN LOJA_NOTA_FISCAL LJ
					    ON  LJ.CODIGO_FILIAL = V1.CODIGO_FILIAL 
						AND LJ.NF_NUMERO = A.NUMERO_NF_TRANSFERENCIA
						AND LJ.SERIE_NF = A.SERIE_NF_ENTRADA
				LEFT JOIN FATURAMENTO M 
						ON  M.NF_SAIDA = A.ROMANEIO_NF_SAIDA 
						AND M.SERIE_NF = A.SERIE_NF_ENTRADA 
						AND M.FILIAL = A.FILIAL_ORIGEM 
				LEFT JOIN 
						(SELECT	TOP 1 FILIAL,ROMANEIO_PRODUTO, PEDIDO_COMPRA 
						 FROM	LOJA_ENTRADAS_PRODUTO 
                         WHERE	ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
						 AND FILIAL = @FILIAL) D 
					 ON  A.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO 
                     AND A.FILIAL = D.FILIAL 
				WHERE A.ROMANEIO_PRODUTO=@ROMANEIO_PRODUTO AND A.FILIAL=@FILIAL
				AND LJ.NF_NUMERO IS NULL AND M.FILIAL IS NULL
				AND D.PEDIDO_COMPRA IS NULL

				--#49#

   --           --#15# - INICIO
			--		UNION ALL 
   --           --FRANQUEADOR
   --           SELECT 'FRANQUEADOR' AS ORIGEM, 
			--		 A.ROMANEIO_PRODUTO, 
			--		 A.FILIAL, 
			--		 A.FILIAL_ORIGEM, 
   --                  ROMANEIO_NF_SAIDA AS ROMANEIO_NF_SAIDA, 
   --                  A.SERIE_NF_ENTRADA, 
   --                  A.FORNECEDOR, 
   --                  NULL AS PEDIDO_COMPRA, 
   --                  A.NUMERO_NF_TRANSFERENCIA AS NF_NUMERO,
			--		 F2.COD_FILIAL AS CODIGO_FILIAL 
			--FROM   LOJA_ENTRADAS A 
   --                  LEFT JOIN ENTRADAS B 
			--		 ON A.FILIAL_ORIGEM = B.NOME_CLIFOR 
   --                  AND A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
   --                  AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
   --                  INNER JOIN FILIAIS F 
			--		 ON A.FILIAL_ORIGEM = F.FILIAL 
   --                  INNER JOIN FATURAMENTO_DADOS_FRANQUIA M 
   --                  ON M.NF_SAIDA = A.ROMANEIO_NF_SAIDA 
   --                  AND M.SERIE_NF = A.SERIE_NF_ENTRADA 
   --                  AND M.FILIAL = A.FILIAL_ORIGEM 
   --                  INNER JOIN FILIAIS F2 
   --                  ON F2.FILIAL = M.NOME_CLIFOR
   --          WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
   --                  AND A.FILIAL = @FILIAL 
   --                  AND A.ENTRADA_CONFERIDA = 1 
   --                  AND A.STATUS_TRANSITO != 0 
   --                  AND A.QTDE_TOTAL > 0 
   --                  AND F.INDICA_BENEFICIADOR = 0 
   --                  AND F.INDICA_FRANQUIA = 1
   --                  AND A.ENTRADA_CANCELADA = 0 
			--		 AND  M.STATUS_NFE = 5
			--		--#15# - FIM
                      ) 
				INSERT INTO #ORIGEM_ENTRADA (ORIGEM, ROMANEIO_PRODUTO, FILIAL, FILIAL_ORIGEM,ROMANEIO_NF_SAIDA, SERIE_NF_ENTRADA, FORNECEDOR, PEDIDO_COMPRA,NF_NUMERO,CODIGO_FILIAL) --#20#
				select ORIGEM, ROMANEIO_PRODUTO, FILIAL, FILIAL_ORIGEM,ROMANEIO_NF_SAIDA, SERIE_NF_ENTRADA, FORNECEDOR, PEDIDO_COMPRA,NF_NUMERO,CODIGO_FILIAL
				 FROM   CTE_ENTRADAS_ORIGEM 
				
		
		

			IF @@ROWCOUNT = 0 
				BEGIN 
					RETURN
					--SELECT @FORNECEDOR = ''
					--INSERT INTO #ORIGEM_ENTRADA (ORIGEM, ROMANEIO_PRODUTO, FILIAL, FILIAL_ORIGEM,ROMANEIO_NF_SAIDA, SERIE_NF_ENTRADA, FORNECEDOR, PEDIDO_COMPRA,NF_NUMERO,CODIGO_FILIAL) 
					--SELECT 0,A.ROMANEIO_PRODUTO, A.FILIAL, A.FILIAL_ORIGEM, A.ROMANEIO_NF_SAIDA, A.SERIE_NF_ENTRADA, A.FORNECEDOR, NULL, A.NUMERO_NF_TRANSFERENCIA,LV.CODIGO_FILIAL  FROM LOJA_ENTRADAS A 
					--	JOIN LOJAS_VAREJO LV ON LV.FILIAL=A.FILIAL
					--	WHERE A.ROMANEIO_PRODUTO=@ROMANEIO_PRODUTO AND A.FILIAL=@FILIAL

				
				END 


			

			SELECT @ORIGEM_ENTRADA = CASE 
										 WHEN ORIGEM = 'COMPRAS' THEN 0 
										 WHEN ORIGEM = 'LOJA_NOTA_FISCAL' THEN 1 
										 WHEN ORIGEM = 'FATURAMENTO' THEN 2 
										 WHEN ORIGEM = 'FRANQUEADOR' THEN 3 --#15#
										 WHEN ORIGEM = 'MICROVIX' AND FORNECEDOR IS NOT NULL THEN 0 --#49#
										 WHEN ORIGEM = 'MICROVIX' AND FORNECEDOR IS NULL THEN 1 --#49#
									  END, 
					@SERIE_NF_ENTRADA = SERIE_NF_ENTRADA, 
					@NOME_CLIFOR = CASE 
										WHEN ORIGEM = 'COMPRAS' THEN FORNECEDOR
										WHEN ORIGEM = 'MICROVIX' AND FORNECEDOR IS NOT NULL THEN FORNECEDOR --#49#
										WHEN ORIGEM = 'MICROVIX' AND FORNECEDOR IS NULL THEN FILIAL_ORIGEM --#49#
										ELSE ISNULL(FILIAL_ORIGEM, FORNECEDOR) 
									END, 
					@FILIAL = FILIAL, 
					@NF_ENTRADA = NF_NUMERO, 
					@PEDIDO = PEDIDO_COMPRA 
			 FROM   #ORIGEM_ENTRADA
	  END
		
	
	  -- 2° - EXISTE A TABELA FATURAMENTO_DADOS_FRANQUIA
	  IF EXISTS (SELECT NAME FROM SYS.COLUMNS WHERE  OBJECT_ID = Object_id('DBO.FATURAMENTO_DADOS_FRANQUIA'))
	  BEGIN
      WITH CTE_ENTRADAS_ORIGEM(ORIGEM, ROMANEIO_PRODUTO, FILIAL, FILIAL_ORIGEM,ROMANEIO_NF_SAIDA, SERIE_NF_ENTRADA, FORNECEDOR, PEDIDO_COMPRA,NF_NUMERO,CODIGO_FILIAL) 
           AS ( 
              --COMPRAS 
              SELECT 'COMPRAS' AS ORIGEM, 
                     A.ROMANEIO_PRODUTO, 
                     A.FILIAL, 
                     A.FILIAL_ORIGEM, 
                     A.ROMANEIO_NF_SAIDA AS ROMANEIO_NF_SAIDA, 
                     A.SERIE_NF_ENTRADA, 
                     A.FORNECEDOR, 
                     D.PEDIDO_COMPRA, 
                     A.NUMERO_NF_TRANSFERENCIA AS NF_NUMERO,
					 LV.CODIGO_FILIAL AS CODIGO_FILIAL 
              FROM   LOJA_ENTRADAS A 
                     INNER JOIN (SELECT	TOP 1 FILIAL,ROMANEIO_PRODUTO, PEDIDO_COMPRA 
                                 FROM	LOJA_ENTRADAS_PRODUTO 
                                 WHERE	ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
								 AND FILIAL = @FILIAL) D 
					 ON A.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO 
                     AND A.FILIAL = D.FILIAL 
					 INNER JOIN LOJAS_VAREJO LV
					 ON A.FILIAL = LV.FILIAL
              WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                     AND A.FILIAL = @FILIAL 
                --   AND D.PEDIDO_COMPRA IS NOT NULL -- #50# 
                     AND A.ENTRADA_CONFERIDA = 1 
                     AND A.STATUS_TRANSITO != 0 
                     AND A.QTDE_TOTAL > 0 
              UNION ALL 
              --FATURAMENTO 
              SELECT 'FATURAMENTO' AS ORIGEM, 
					 A.ROMANEIO_PRODUTO, 
					 A.FILIAL, 
					 A.FILIAL_ORIGEM, 
                     ROMANEIO_NF_SAIDA AS ROMANEIO_NF_SAIDA, 
                     A.SERIE_NF_ENTRADA, 
                     A.FORNECEDOR, 
                     NULL AS PEDIDO_COMPRA, 
                     A.NUMERO_NF_TRANSFERENCIA AS NF_NUMERO,
					 F2.COD_FILIAL AS CODIGO_FILIAL 
       FROM   LOJA_ENTRADAS A 
                     LEFT JOIN ENTRADAS B 
					 ON A.FILIAL_ORIGEM = B.NOME_CLIFOR 
                     AND A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                     AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
                     INNER JOIN FILIAIS F 
					 ON A.FILIAL_ORIGEM = F.FILIAL 
                     INNER JOIN FATURAMENTO M 
                     ON M.NF_SAIDA = A.ROMANEIO_NF_SAIDA 
                     AND M.SERIE_NF = A.SERIE_NF_ENTRADA 
                     AND M.FILIAL = A.FILIAL_ORIGEM 
                     INNER JOIN FILIAIS F2 
                     ON F2.FILIAL = M.NOME_CLIFOR 
                     INNER JOIN SERIES_NF AS SN 
                     ON SN.SERIE_NF = A.SERIE_NF_ENTRADA 
                     INNER JOIN CTB_ESPECIE_SERIE CES 
                     ON CES.ESPECIE_SERIE = SN.ESPECIE_SERIE 
                     LEFT JOIN TRANSPORTADORAS TRANSP WITH (NOLOCK)  
					 ON TRANSP.TRANSPORTADORA = M.TRANSPORTADORA 
              WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                     AND A.FILIAL = @FILIAL 
                     AND A.ENTRADA_CONFERIDA = 1 
                     AND A.STATUS_TRANSITO != 0 
                     AND A.QTDE_TOTAL > 0 
                     AND F.INDICA_BENEFICIADOR = 0 
                     AND F.INDICA_FRANQUIA = 0 
                     AND M.NOTA_CANCELADA = 0 
                     --AND ISNULL(F.MATRIZ_FISCAL, '') <> ISNULL(F2.MATRIZ_FISCAL, '') -- #18#
                     --AND F.MATRIZ = F2.MATRIZ -- #18#
                     AND ( ( CES.NUMERO_MODELO_FISCAL = '55' 
					 AND M.STATUS_NFE = 5 ) 
                     OR CES.NUMERO_MODELO_FISCAL <> '55' ) 
                     AND NOT EXISTS (SELECT 1 
                                     FROM   ENTRADAS ENT (NOLOCK) 
                                     WHERE  ENT.NOME_CLIFOR = M.FILIAL 
                                            AND ENT.NF_ENTRADA = M.NF_SAIDA 
                                            AND ENT.SERIE_NF_ENTRADA = 
                                            M.SERIE_NF) 
               UNION ALL 
               --LOJA_NOTA_FISCAL 
               SELECT 'LOJA_NOTA_FISCAL' AS ORIGEM, 
				A.ROMANEIO_PRODUTO, 
                      A.FILIAL, 
                      A.FILIAL_ORIGEM, 
                      ISNULL(A.NUMERO_NF_TRANSFERENCIA, A.ROMANEIO_NF_SAIDA) AS ROMANEIO_NF_SAIDA, 
                      A.SERIE_NF_ENTRADA, 
                      A.FORNECEDOR, 
                      NULL AS PEDIDO_COMPRA, 
                      LJ.NF_NUMERO AS NF_NUMERO,
					  C.COD_FILIAL AS CODIGO_FILIAL 
               FROM   LOJA_ENTRADAS A 
                      LEFT JOIN ENTRADAS B 
                      ON A.FILIAL_ORIGEM = B.NOME_CLIFOR 
                      AND A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                      AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
						INNER JOIN FILIAIS C
						ON  C.FILIAL = A.FILIAL
						INNER JOIN FILIAIS F2
						ON  F2.FILIAL = A.FILIAL_ORIGEM
						INNER JOIN LOJAS_VAREJO LV
						ON  LV.FILIAL = F2.FILIAL
						INNER JOIN LOJA_NOTA_FISCAL LJ
					--  ON  LJ.CODIGO_FILIAL = F2.COD_FILIAL  --#26#
					    ON  LJ.CODIGO_FILIAL = LV.CODIGO_FILIAL  --#26#
						AND LJ.NF_NUMERO = A.NUMERO_NF_TRANSFERENCIA
						AND LJ.SERIE_NF = A.SERIE_NF_ENTRADA
                      AND LJ.SERIE_NF = A.SERIE_NF_ENTRADA 
                      INNER JOIN SERIES_NF AS SN 
                      ON SN.SERIE_NF = LJ.SERIE_NF 
                      INNER JOIN CTB_ESPECIE_SERIE CES 
                      ON CES.ESPECIE_SERIE = SN.ESPECIE_SERIE 
					  LEFT JOIN TRANSPORTADORAS TRANSP WITH (NOLOCK) 
                      ON TRANSP.TRANSPORTADORA = LJ.TRANSPORTADORA 
               WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                      AND A.FILIAL = @FILIAL 
                      AND A.ENTRADA_CONFERIDA = 1 
                      AND A.STATUS_TRANSITO != 0 
                      AND A.QTDE_TOTAL > 0 
                      AND C.INDICA_BENEFICIADOR = 0 
					--AND C.INDICA_FRANQUIA = 0  #25#
                      AND LJ.NOTA_CANCELADA = 0 
                    --AND ISNULL(C.MATRIZ_FISCAL, '') <> ISNULL(F2.MATRIZ_FISCAL, '') #25#
                    --AND C.MATRIZ = F2.MATRIZ #25#
                      AND ( ( CES.NUMERO_MODELO_FISCAL = '55' 
					  AND LJ.STATUS_NFE = 5 ) 
					  OR CES.NUMERO_MODELO_FISCAL <> '55' )  
                      AND B.NOME_CLIFOR IS NULL
					  AND A.ROMANEIO_NF_SAIDA IS NOT NULL -- #31#
              --#15# - INICIO
					UNION ALL 
              --FRANQUEADOR
              SELECT 'FRANQUEADOR' AS ORIGEM, 
					 A.ROMANEIO_PRODUTO, 
					 A.FILIAL, 
					 A.FILIAL_ORIGEM, 
                     ROMANEIO_NF_SAIDA AS ROMANEIO_NF_SAIDA, 
                     A.SERIE_NF_ENTRADA, 
                     A.FORNECEDOR, 
                     NULL AS PEDIDO_COMPRA, 
                     A.NUMERO_NF_TRANSFERENCIA AS NF_NUMERO,
					 F2.COD_FILIAL AS CODIGO_FILIAL 
			FROM   LOJA_ENTRADAS A 
                     LEFT JOIN ENTRADAS B 
					 ON A.FILIAL_ORIGEM = B.NOME_CLIFOR 
                     AND A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                     AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
                     INNER JOIN FILIAIS F 
				   --ON A.FILIAL_ORIGEM = F.FILIAL -- #17#
					 ON A.FILIAL = F.FILIAL -- #17#
                     INNER JOIN FATURAMENTO_DADOS_FRANQUIA M 
                     ON M.NF_SAIDA  = A.ROMANEIO_NF_SAIDA 
                     AND M.SERIE_NF = A.SERIE_NF_ENTRADA 
                   --AND M.FILIAL   = A.FILIAL_ORIGEM #39# 
					 AND M.NOME_CLIFOR         = A.FILIAL_ORIGEM /*#39#*/
                     INNER JOIN FILIAIS F2 
                     ON F2.FILIAL              = M.NOME_CLIFOR
             WHERE  A.ROMANEIO_PRODUTO         = @ROMANEIO_PRODUTO 
                     AND A.FILIAL              = @FILIAL 
                     AND A.ENTRADA_CONFERIDA   = 1 
                     AND A.STATUS_TRANSITO    != 0 
                     AND A.QTDE_TOTAL          > 0 
                     AND F.INDICA_BENEFICIADOR = 0 
                     AND F.INDICA_FRANQUIA     = 1
                     AND A.ENTRADA_CANCELADA   = 0 
					 AND  M.STATUS_NFE         = 5
					--#15# - FIM
                      ) 
                --#20#
				INSERT INTO #ORIGEM_ENTRADA ( 
					ORIGEM, ROMANEIO_PRODUTO, FILIAL, FILIAL_ORIGEM,ROMANEIO_NF_SAIDA, SERIE_NF_ENTRADA, FORNECEDOR, PEDIDO_COMPRA,NF_NUMERO,CODIGO_FILIAL)
					Select ORIGEM, ROMANEIO_PRODUTO, FILIAL, FILIAL_ORIGEM,ROMANEIO_NF_SAIDA, SERIE_NF_ENTRADA, FORNECEDOR, PEDIDO_COMPRA,NF_NUMERO,CODIGO_FILIAL FROM 
					CTE_ENTRADAS_ORIGEM  


			IF @@ROWCOUNT = 0 
				BEGIN 
					RETURN 
				END 

			SELECT @ORIGEM_ENTRADA = CASE 
										 WHEN ORIGEM = 'COMPRAS' THEN 0 
										 WHEN ORIGEM = 'LOJA_NOTA_FISCAL' THEN 1 
										 WHEN ORIGEM = 'FATURAMENTO' THEN 2 
										 WHEN ORIGEM = 'FRANQUEADOR' THEN 3 --#15#
									 END, 
					@SERIE_NF_ENTRADA = SERIE_NF_ENTRADA, 
					@NOME_CLIFOR = CASE 
										WHEN ORIGEM = 'COMPRAS' THEN ISNULL(FORNECEDOR,FILIAL_ORIGEM) --#54#
										ELSE ISNULL(FILIAL_ORIGEM, FORNECEDOR) 
									END, 
					@FILIAL = FILIAL, 
					@NF_ENTRADA = NF_NUMERO, 
					@PEDIDO = PEDIDO_COMPRA 
			 FROM   #ORIGEM_ENTRADA

			 

 --SE A COMBINAÇÃO ABAIXO (EXISTENCIA DE ENTRADAS E ENTRDAS_ITEM FOR VERDADEIRO A ENTRADA NAÕ SERÁ GERADA) 
IF EXISTS(
					SELECT 1 
                    FROM   LOJA_ENTRADAS A 
                           INNER JOIN 
                           (
                            SELECT B.NOME_CLIFOR, B.NF_ENTRADA,B.SERIE_NF_ENTRADA FROM ENTRADAS B 
                           INNER JOIN ENTRADAS_ITEM C
                           ON B.NF_ENTRADA = C.NF_ENTRADA
                           AND B.SERIE_NF_ENTRADA = C.SERIE_NF_ENTRADA
                           AND B.NOME_CLIFOR = C.NOME_CLIFOR
                           )B         
                           ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                           AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                           B.NOME_CLIFOR 
                           AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
					WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                           AND A.FILIAL = @FILIAL 
                           AND A.ENTRADA_CONFERIDA = 1 
                           AND A.STATUS_TRANSITO != 0 
                           --AND B.NF_ENTRADA IS NULL
                    ) 

Begin 
        EXEC Lx_gera_impostos_entrada 
        @NOME_CLIFOR, 
        @NF_ENTRADA, 
        @SERIE_NF_ENTRADA 

      EXEC Lx_concilia_impostos_entrada_por_saida 
        @NOME_CLIFOR, 
        @NF_ENTRADA, 
        @SERIE_NF_ENTRADA 

      --INTEGRAÇÃO CONTÁBIL  ------------------------------------------------------------------------  
      IF EXISTS(SELECT 1 
                FROM   parametros (nolock) 
                WHERE  parametro = 'CONTABILIDADE_ATIVA' 
                       AND valor_atual = '.T.') 
        EXEC Lx_ctb_integrar_entrada 
          @NOME_CLIFOR, 
          @NF_ENTRADA, 
          @SERIE_NF_ENTRADA
					   
      RETURN; 
end 
      --#15# - FIM
END 
else
begin 


        EXEC Lx_gera_impostos_entrada 
			@NOME_CLIFOR, 
			@NF_ENTRADA, 
			@SERIE_NF_ENTRADA 

      EXEC Lx_concilia_impostos_entrada_por_saida 
        @NOME_CLIFOR, 
        @NF_ENTRADA, 
        @SERIE_NF_ENTRADA 

      --INTEGRAÇÃO CONTÁBIL  ------------------------------------------------------------------------  
      IF EXISTS(SELECT 1 
                FROM   parametros (nolock) 
                WHERE  parametro = 'CONTABILIDADE_ATIVA' 
                       AND valor_atual = '.T.') 
        EXEC Lx_ctb_integrar_entrada 
          @NOME_CLIFOR, 
          @NF_ENTRADA, 
          @SERIE_NF_ENTRADA

end 

	  -- #16# - FIM - DUPLICAÇÃO DA CTE_ENTRADAS_ORIGEM

       --== DADOS DA ORIGEM ======================================================================================= <|FIM|>
	   --#8# - FIM

      IF @ORIGEM_ENTRADA IN(0,1,3)  --#8# #15# 
        BEGIN 
			
            -- 1-) TABELA #ENTRADAS 
            CREATE TABLE #ENTRADAS 
              ( 
                 NOME_CLIFOR               VARCHAR(25) COLLATE DATABASE_DEFAULT, 
                 NF_ENTRADA                CHAR(15)    COLLATE DATABASE_DEFAULT, 
                 FILIAL                    VARCHAR(25) COLLATE DATABASE_DEFAULT, 
                 COD_TRANSACAO             CHAR(23)    COLLATE DATABASE_DEFAULT, 
                 NATUREZA                  CHAR  (15)  COLLATE DATABASE_DEFAULT, 
                 CONDICAO_PGTO             CHAR  (3)   COLLATE DATABASE_DEFAULT, 
                 SERIE_NF                  VARCHAR(6)  COLLATE DATABASE_DEFAULT, 
                 RECEBIMENTO               DATETIME, 
                 NF_FATURA                 BIT, 
                 EMISSAO                   DATETIME, 
                 FATURA                    CHAR   (15) COLLATE DATABASE_DEFAULT, 
                 FRETE                     NUMERIC(14, 2), 
                 SEGURO                    NUMERIC(14, 2), 
                 QTDE_TOTAL                DECIMAL, 
                 VALOR_TOTAL               NUMERIC(15, 5), 
				 DESCONTO				   NUMERIC(15, 5), --#48#
                 TABELA_FILHA              CHAR   (18) COLLATE DATABASE_DEFAULT, 
                 MOEDA                     CHAR   (6)  COLLATE DATABASE_DEFAULT, 
                 DATA_DIGITACAO            DATETIME, 
                 SERIE_NF_ENTRADA          VARCHAR(6)  COLLATE DATABASE_DEFAULT, 
                 EMPRESA                   INT, 
                 FATURA_NOME_CLIFOR        VARCHAR(25) COLLATE DATABASE_DEFAULT, 
                 FATURA_NUMERO             CHAR   (15) COLLATE DATABASE_DEFAULT, 
                 FATURA_SERIE              VARCHAR(6)  COLLATE DATABASE_DEFAULT, 
                 RATEIO_CENTRO_CUSTO       VARCHAR(15) COLLATE DATABASE_DEFAULT, 
                 RATEIO_FILIAL             VARCHAR(15) COLLATE DATABASE_DEFAULT, 
                 VALOR_SUB_ITENS           NUMERIC(14, 2), 
                 ESPECIE_SERIE             INT, 
                 COD_CLIFOR_SACADO         CHAR   (6)  COLLATE DATABASE_DEFAULT, 
                 CHAVE_NFE                 VARCHAR(44) COLLATE DATABASE_DEFAULT, 
                 PROTOCOLO_AUTORIZACAO_NFE VARCHAR(15) COLLATE DATABASE_DEFAULT, 
                 DATA_AUTORIZACAO_NFE      DATETIME, 
                 STATUS_NFE                SMALLINT, 
                 FIN_EMISSAO_NFE           TINYINT, 
                 TIPO_EMISSAO_NFE          TINYINT, 
                 TRANSPORTADORA_A_PAGAR    VARCHAR(25) COLLATE DATABASE_DEFAULT,
                 INDICA_ENTRADA_AUTOMATICA BIT --#34#
              ) 

            -- 2-) TABELA #ENTRADAS_ITEM 
            CREATE TABLE #ENTRADAS_ITEM 
              ( 
                 CLASSIF_FISCAL         CHAR(10)    COLLATE DATABASE_DEFAULT, 
				 CODIGO_FISCAL_OPERACAO CHAR(4)     COLLATE DATABASE_DEFAULT, 
                 NOME_CLIFOR            VARCHAR(25) COLLATE DATABASE_DEFAULT, 
                 NF_ENTRADA             CHAR(15)    COLLATE DATABASE_DEFAULT, 
                 ITEM_IMPRESSAO         CHAR(4)     COLLATE DATABASE_DEFAULT, 
                 SUB_ITEM_TAMANHO       INT, 
                 CODIGO_ITEM            VARCHAR(50) COLLATE DATABASE_DEFAULT, 
                 DESCRICAO_ITEM         VARCHAR(80) COLLATE DATABASE_DEFAULT, 
                 UNIDADE                VARCHAR(5)  COLLATE DATABASE_DEFAULT, 
                 QTDE_ITEM              NUMERIC(9,3), 
                 PRECO_UNITARIO         NUMERIC(15,5), 
				 PRECO_UNITARIO_ORIGINAL  NUMERIC(15,5),  --#36#
                 DESCONTO_ITEM          NUMERIC(15,5), 
                 VALOR_ITEM             NUMERIC(14,2), 
                 PESO                   NUMERIC(9,5), 
                 FAIXA                  CHAR(1)     COLLATE DATABASE_DEFAULT, 
                 REFERENCIA             VARCHAR(50) COLLATE DATABASE_DEFAULT, 
                 REFERENCIA_ITEM        VARCHAR(12) COLLATE DATABASE_DEFAULT, 
                 REFERENCIA_PEDIDO      VARCHAR(12) COLLATE DATABASE_DEFAULT, 
                 COD_TABELA_FILHA       CHAR(1)     COLLATE DATABASE_DEFAULT, 
                 TRIBUT_ORIGEM          CHAR(3)     COLLATE DATABASE_DEFAULT, 
                 TRIBUT_ICMS            CHAR(3)     COLLATE DATABASE_DEFAULT, 
                 INDICADOR_CFOP         TINYINT, 
                 SERIE_NF_ENTRADA       VARCHAR(6)  COLLATE DATABASE_DEFAULT, 
                 RATEIO_CENTRO_CUSTO    VARCHAR(15) COLLATE DATABASE_DEFAULT, 
                 RATEIO_FILIAL          VARCHAR(15) COLLATE DATABASE_DEFAULT, 
                 CONTA_CONTABIL         VARCHAR(20) COLLATE DATABASE_DEFAULT, 
                 ID_EXCECAO_IMPOSTO     INT 
              ) 
	
	
	
	END
 
 
 
 IF @ORIGEM_ENTRADA IN(0,1)  --#8#  
        BEGIN 
   
            -- == INSERINDO DADOS NAS TEMPORÁRIA ENTRADA =============================================================================== <|INICIO|>
            INSERT INTO #ENTRADAS 
                        (NOME_CLIFOR, NF_ENTRADA, FILIAL, COD_TRANSACAO, NATUREZA, CONDICAO_PGTO, SERIE_NF, RECEBIMENTO, NF_FATURA, EMISSAO, FATURA, 
                         FRETE, SEGURO, QTDE_TOTAL, VALOR_TOTAL, DESCONTO, TABELA_FILHA, MOEDA, DATA_DIGITACAO, SERIE_NF_ENTRADA, EMPRESA, FATURA_NOME_CLIFOR, 
                         FATURA_NUMERO, FATURA_SERIE, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, VALOR_SUB_ITENS, ESPECIE_SERIE, COD_CLIFOR_SACADO, 
                         CHAVE_NFE, PROTOCOLO_AUTORIZACAO_NFE, DATA_AUTORIZACAO_NFE, STATUS_NFE, FIN_EMISSAO_NFE, TIPO_EMISSAO_NFE, TRANSPORTADORA_A_PAGAR,INDICA_ENTRADA_AUTOMATICA)--#34# 
            
			SELECT ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS NOME_CLIFOR, 
			LEFT(REPLACE(A.NUMERO_NF_TRANSFERENCIA, ' ', ''), 15) AS NF_ENTRADA, 

                   MAX(A.FILIAL) AS FILIAL,CASE 
											   WHEN( ISNULL(CASE 
											   WHEN MAX(B.UF) = MAX(G.UF) THEN MAX(I.NATUREZA_ENTRADA) 
											   ELSE MAX(J.NATUREZA_ENTRADA) 
											END, 
											CASE 
											   WHEN (A.FORNECEDOR IS NULL AND @MATRIZ_CONTABIL = 1 ) THEN @NATUREZA_TRANSFERENCIA
											   ELSE @NATUREZA_COMPRA 
											END)) = @NATUREZA_COMPRA THEN 'ENTRADAS_112' 
											   ELSE 'ENTRADAS_109' 
											END AS COD_TRANSACAO, 
					ISNULL(CASE 
								WHEN MAX(B.UF) = MAX(G.UF) THEN MAX(I.NATUREZA_ENTRADA) 
								ELSE MAX(J.NATUREZA_ENTRADA) 
						   END, 
						   CASE 
                                WHEN ( A.FORNECEDOR IS NULL AND @MATRIZ_CONTABIL = 1 ) THEN @NATUREZA_TRANSFERENCIA 
								ELSE @NATUREZA_COMPRA 
                           END) AS NATUREZA, 
                   MAX(ISNULL(E.CONDICAO_PGTO, ISNULL(F.CONDICAO_PGTO, @CONDICAO_PGTO) )) AS CONDICAO_PGTO,
                   /*@SERIE_NF, CAST(CONVERT(VARCHAR(20), MAX(A.DATA_ENTRADA_CONFERIDA), 112) AS DATETIME) AS RECEBIMENTO,'1' AS NF_FATURA, --#42#
				   MAX(ISNULL(A.EMISSAO, A.DATA_SAIDA)) --#42#*/
				   @SERIE_NF, CAST(CONVERT(VARCHAR(20), MAX(A.EMISSAO), 112) AS DATETIME) AS RECEBIMENTO,'1' AS NF_FATURA, --#46#
				   MAX(ISNULL(A.DATA_SAIDA, A.EMISSAO)) --#46#
                   AS EMISSAO,LEFT(REPLACE(A.NUMERO_NF_TRANSFERENCIA, ' ', ''), 15) AS FATURA, 0 AS FRETE, 0 AS SEGURO, SUM(A.QTDE_TOTAL) AS QTDE_TOTAL, 
                   SUM(A.VALOR_TOTAL)-SUM(ISNULL(E.DESCONTO,0)) AS VALOR_TOTAL, SUM(ISNULL(E.DESCONTO,0)) AS DESCONTO, 'ENTRADAS_NF' AS TABELA_FILHA, @MOEDA AS MOEDA, GETDATE() AS DATA_DIGITACAO,---#48# 
				   ISNULL(A.SERIE_NF_ENTRADA, @SERIE_NF_DEFAULT) AS SERIE_NF_ENTRADA,@EMPRESA AS EMPRESA, 
                   ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS FATURA_NOME_CLIFOR, A.NUMERO_NF_TRANSFERENCIA AS FATURA_NUMERO, ISNULL(A.SERIE_NF_ENTRADA, @SERIE_NF) AS FATURA_SERIE, 
                   @RATEIO_CENTRO_CUSTO AS RATEIO_CENTRO_CUSTO, MAX(C.COD_FILIAL) AS RATEIO_FILIAL, --SUM(A.QTDE_TOTAL) AS VALOR_SUB_ITENS #52#, 
				   SUM(A.VALOR_TOTAL) AS VALOR_SUB_ITENS,
				   MAX(ISNULL(N.ESPECIE_SERIE, @ESPECIE_SERIE)) AS ESPECIE_SERIE, MAX(B.COD_CLIFOR) AS COD_CLIFOR_SACADO,
				   --#33# - Inclusão da coluna A.CHAVE_NFE na criação da tabela temporaria ENTRADAS.(INÍCIO)
				   MAX(COALESCE(
					CASE WHEN L.CHAVE_NFE IS NULL THEN M.CHAVE_NFE ELSE NULL END,
					CASE WHEN M.CHAVE_NFE is null THEN A.CHAVE_NFE ELSE NULL END,
					L.CHAVE_NFE)) CHAVE_NFE,
                   --#33# - Inclusão da coluna A.CHAVE_NFE na criação da tabela temporaria ENTRADAS.(TÉRMINO)				   
				   MAX(CASE WHEN L.PROTOCOLO_AUTORIZACAO_NFE IS NULL THEN M.PROTOCOLO_AUTORIZACAO_NFE ELSE L.PROTOCOLO_AUTORIZACAO_NFE END) PROTOCOLO_AUTORIZACAO_NF,
                   MAX(CASE WHEN L.DATA_AUTORIZACAO_NFE IS NULL THEN M.DATA_AUTORIZACAO_NFE ELSE L.DATA_AUTORIZACAO_NFE END) DATA_AUTORIZACAO_NFE,
				   MAX(CASE WHEN L.STATUS_NFE IS NULL THEN M.STATUS_NFE ELSE L.STATUS_NFE END) STATUS_NFE,
				   MAX(CASE WHEN L.FIN_EMISSAO_NFE IS NULL THEN M.FIN_EMISSAO_NFE ELSE L.FIN_EMISSAO_NFE END) FIN_EMISSAO_NFE,
                   MAX(CASE WHEN L.TIPO_EMISSAO_NFE IS NULL THEN M.TIPO_EMISSAO_NFE ELSE L.TIPO_EMISSAO_NFE END) TIPO_EMISSAO_NFE,
                   MAX(CASE WHEN M.TRANSPORTADORA IS NULL THEN CASE WHEN L.TRANSPORTADORA IS NULL THEN ISNULL(E.TRANSPORTADORA, @TRANSPORTADORA_PADRAO) ELSE L.TRANSPORTADORA END ELSE M.TRANSPORTADORA END) TRANSPORTADORA_A_PAGAR,
                   1 ---INDICA_ENTRADA_AUTOMATICA --#34#
            FROM   LOJA_ENTRADAS A 
                   INNER JOIN CADASTRO_CLI_FOR B 
				   ON ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                   B.NOME_CLIFOR 
                   INNER JOIN FILIAIS C 
                   ON A.FILIAL = C.FILIAL 
                   INNER JOIN (SELECT TOP 1 FILIAL, ROMANEIO_PRODUTO, PEDIDO_COMPRA 
                               FROM   LOJA_ENTRADAS_PRODUTO 
                               WHERE  ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
							   AND FILIAL = @FILIAL) D 
							   ON A.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO 
                               AND A.FILIAL = D.FILIAL 
                   LEFT JOIN COMPRAS E 
                   ON D.PEDIDO_COMPRA = E.PEDIDO 
                   LEFT JOIN FORNECEDORES F 
                   ON B.NOME_CLIFOR = F.FORNECEDOR 
                   LEFT JOIN CADASTRO_CLI_FOR G 
                   ON C.FILIAL = G.NOME_CLIFOR 
                   LEFT JOIN LOJA_TIPOS_ENTRADA_SAIDA H 
                   ON A.TIPO_ENTRADA_SAIDA = H.TIPO_ENTRADA_SAIDA 
                   LEFT JOIN LOJAS_NATUREZA_OPERACAO I 
                   ON H.NATUREZA_OPERACAO_ESTADUAL = 
                   I.NATUREZA_OPERACAO_CODIGO 
                   LEFT JOIN LOJAS_NATUREZA_OPERACAO J 
                   ON H.NATUREZA_OPERACAO_INTERESTADUAL = 
                   J.NATUREZA_OPERACAO_CODIGO 
                   LEFT JOIN LOJAS_VAREJO LV 
                   ON A.FILIAL_ORIGEM = LV.FILIAL 
                   LEFT JOIN LOJA_NOTA_FISCAL L 
                   ON L.CODIGO_FILIAL = LV.CODIGO_FILIAL 
                   AND L.NF_NUMERO = A.NUMERO_NF_TRANSFERENCIA 
                   AND L.SERIE_NF = A.SERIE_NF_ENTRADA 
                   LEFT JOIN FATURAMENTO M 
                   ON (M.NF_SAIDA = A.ROMANEIO_NF_SAIDA OR M.NF_SAIDA = A.NUMERO_NF_TRANSFERENCIA ) 
                   AND M.SERIE_NF = A.SERIE_NF_ENTRADA 
                   AND M.FILIAL = ISNULL(A.FILIAL_ORIGEM,A.FORNECEDOR) --#11#
				-- LEFT JOIN FATURAMENTO M #11#
				-- ON M.NF_SAIDA = A.NUMERO_NF_TRANSFERENCIA #11#
				-- AND M.SERIE_NF = A.SERIE_NF_ENTRADA #11#
				-- AND M.FILIAL = A.FORNECEDOR #11#
                   LEFT JOIN SERIES_NF N 
                   ON A.SERIE_NF_ENTRADA = N.SERIE_NF 
            WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                   AND A.FILIAL = @FILIAL 
                   AND A.ENTRADA_CONFERIDA = 1 
                   AND A.STATUS_TRANSITO != 0 
                   AND A.QTDE_TOTAL > 0 
            GROUP  BY A.FORNECEDOR, 
                      A.FILIAL_ORIGEM, 
                      A.NUMERO_NF_TRANSFERENCIA, 
                      A.SERIE_NF_ENTRADA 

		--Passou a fazer o update em tudo tratado somente no final da proc #29#
		    UPDATE A 
            SET    NF_ENTRADA = B.NF_ENTRADA, 
                   NOME_CLIFOR = B.NOME_CLIFOR, 
                   SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA, 
                   A.ENTRADA_POR = @ENTRADA_POR 
            FROM   LOJA_ENTRADAS A 
                   INNER JOIN #ENTRADAS B 
                   ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                   AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
				   AND ISNULL(A.SERIE_NF_ENTRADA, B.SERIE_NF_ENTRADA) = B.SERIE_NF_ENTRADA 
            WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                   AND A.FILIAL = @FILIAL 

            --  ======================================================================================================================== <|FIM|>
            SELECT @CTB_TIPO_OPERACAO_UTILIZADO = A.CTB_TIPO_OPERACAO 
            FROM   NATUREZAS_ENTRADAS A 
                   INNER JOIN(SELECT NATUREZA 
                              FROM   LOJA_ENTRADAS A 
                                     INNER JOIN #ENTRADAS B 
                                     ON A.NUMERO_NF_TRANSFERENCIA = 
                                     B.NF_ENTRADA 
									 AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
									 AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
                              WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                                     AND A.FILIAL = @FILIAL) AS B 
									 ON A.NATUREZA = B.NATUREZA 

            -- == INSERINDO DADOS NAS TEMPORÁRIA ENTRADA_ITEM ========================================================================== <|INICIO|>

            --#41# - INICIO - separado em blocos com if para cada tipo de agrupamento montar um select diferente
            
            SELECT @AGRUPAMENTO_ITENS = CASE WHEN @ENTRADA_POR = 1 THEN 0 ELSE (SELECT AGRUPAMENTO_ITENS FROM CADASTRO_CLI_FOR WHERE NOME_CLIFOR=@NOME_CLIFOR) END

            IF @AGRUPAMENTO_ITENS = 0  -- AGRUPAMENTO = PRODUTO
            BEGIN
            INSERT INTO #ENTRADAS_ITEM (CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, 
                         DESCRICAO_ITEM, UNIDADE, QTDE_ITEM, PRECO_UNITARIO,
						 PRECO_UNITARIO_ORIGINAL, --#36#
						 DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, 
                         REFERENCIA_PEDIDO, COD_TABELA_FILHA, TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, 
						 RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO) 
				   SELECT MAX(C.CLASSIF_FISCAL) AS CLASSIF_FISCAL ,
						 MAX(CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END)	AS CODIGO_FISCAL_OPERACAO,-- #2# 
                   ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS NOME_CLIFOR, A.NUMERO_NF_TRANSFERENCIA  AS NF_ENTRADA , 
                   RIGHT('0000' + CONVERT(VARCHAR, ROW_NUMBER() OVER(PARTITION BY MAX(B.ROMANEIO_PRODUTO) ORDER BY MAX(B.ROMANEIO_PRODUTO), B.PRODUTO)), 4) AS ITEM_IMPRESSAO ,
                   1 AS SUB_ITEM_TAMANHO, B.PRODUTO AS CODIGO_ITEM, MAX(C.DESC_PROD_NF) AS DESCRICAO_ITEM , MAX(C.UNIDADE) AS UNIDADE, 
                   SUM(B.QTDE_ENTRADA) AS QTDE_ITEM, MAX(B.PRECO1) AS PRECO_UNITARIO , MAX(B.PRECO1)  AS PRECO_UNITARIO_ORIGINAL  , 0 AS DESCONTO_ITEM, SUM(B.VALOR) AS VALOR_ITEM , 0 AS PESO , 
                   '1' AS FAIXA, B.PRODUTO  AS REFERENCIA , ''  AS REFERENCIA_ITEM,'' AS REFERENCIA_PEDIDO, 'P' AS COD_TABELA_FILHA, MAX(C.TRIBUT_ORIGEM), 
				   /*MAX(C.TRIBUT_ICMS)#13#*/NULL ,
				   ISNULL(MAX(L.INDICADOR_CFOP),MAX(C.INDICADOR_CFOP)),	/*#10#*/		   
				   ISNULL(A.SERIE_NF_ENTRADA, @SERIE_NF) AS SERIE_NF_ENTRADA, 
				   @RATEIO_CENTRO_CUSTO  AS RATEIO_CENTRO_CUSTO, 
				   MAX(G.COD_FILIAL) AS RATEIO_FILIAL,
     			   CASE WHEN A.ENTRADA_POR = 1 then MAX(C.CONTA_CONTABIL) WHEN A.ENTRADA_POR = 2 Then MAX(C.CONTA_CONTABIL_COMPRA) End AS CONTA_CONTABIL, /*#9#*/
				   MAX(DBO.FX_ID_EXCECAO_IMPOSTO(J.CTB_TIPO_OPERACAO, K.CLIFOR,ISNULL(L.INDICADOR_CFOP,C.INDICADOR_CFOP),'E', G.MATRIZ_FISCAL, A.FILIAL, I.RECEBIMENTO, C.TRIBUT_ORIGEM, --#57#
				   CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END,
				   B.PRODUTO, A.NOME_CLIFOR, 'P',I.NATUREZA, G.COD_FILIAL)) AS ID_EXCECAO_IMPOSTO  /*#30# Inclusão da G.Matriz_Fiscal*/
            FROM   LOJA_ENTRADAS A 
                   INNER JOIN LOJA_ENTRADAS_PRODUTO B 
                   ON A.ROMANEIO_PRODUTO = B.ROMANEIO_PRODUTO 
                   AND A.FILIAL = B.FILIAL 
                   INNER JOIN PRODUTOS C 
                   ON B.PRODUTO = C.PRODUTO 
                   INNER JOIN PRODUTO_CORES D 
                   ON B.PRODUTO = D.PRODUTO 
                   AND B.COR_PRODUTO = D.COR_PRODUTO 
                   INNER JOIN CADASTRO_CLI_FOR E 
                   ON ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                   E.NOME_CLIFOR 
                   /*LEFT JOIN CTB_LX_CARACTERISTICA_CFOP F 
                   ON E.INDICADOR_FISCAL_TERCEIRO = F.INDICADOR_FISCAL_TERCEIRO 
                   AND F.CTB_TIPO_OPERACAO = @CTB_TIPO_OPERACAO_UTILIZADO 
                   AND F.INDICADOR_CFOP = C.INDICADOR_CFOP*/ 
                   INNER JOIN FILIAIS G 
                   ON A.FILIAL = G.FILIAL 
                   INNER JOIN CADASTRO_CLI_FOR H 
                   ON G.FILIAL = H.NOME_CLIFOR 
                   INNER JOIN #ENTRADAS I 
                   ON A.NF_ENTRADA = I.NF_ENTRADA 
                   AND A.SERIE_NF_ENTRADA = I.SERIE_NF_ENTRADA 
                   AND A.NOME_CLIFOR = I.NOME_CLIFOR 
                   INNER JOIN NATUREZAS_ENTRADAS J 
                   ON I.NATUREZA = J.NATUREZA 
                   INNER JOIN CADASTRO_CLI_FOR K 
                   ON I.NOME_CLIFOR = K.NOME_CLIFOR
				   LEFT JOIN PRODUTOS_INDICADOR_CFOP L /*#10#*/ 
				   --on C.INDICADOR_CFOP = L.INDICADOR_CFOP /*#55#*/
				   ON C.PRODUTO       = L.PRODUTO			/*#55#*/
				   AND L.FILIAL        = @FILIAL /*#24#*/
				   LEFT JOIN CTB_LX_CARACTERISTICA_CFOP F 
                   ON E.INDICADOR_FISCAL_TERCEIRO = F.INDICADOR_FISCAL_TERCEIRO 
                   AND F.CTB_TIPO_OPERACAO = @CTB_TIPO_OPERACAO_UTILIZADO 
                   AND F.INDICADOR_CFOP = ISNULL(L.INDICADOR_CFOP,C.INDICADOR_CFOP) --#57#
            WHERE  A.ROMANEIO_PRODUTO  = @ROMANEIO_PRODUTO 
                   AND A.FILIAL = @FILIAL 
                   AND A.ENTRADA_CONFERIDA = 1 
                   AND A.STATUS_TRANSITO != 0 
                   AND B.QTDE_ENTRADA > 0 
            GROUP  BY A.FORNECEDOR, 
                      A.FILIAL_ORIGEM, 
                      A.NUMERO_NF_TRANSFERENCIA, 
                      A.SERIE_NF_ENTRADA, 
                      B.PRODUTO ,
					  A.ENTRADA_POR, --#9#
					  L.FILIAL /*#24#*/
        END
        IF @AGRUPAMENTO_ITENS = 1 -- AGRUPAMENTO =  PRODUTO + COR
            BEGIN
            INSERT INTO #ENTRADAS_ITEM (CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, 
                         DESCRICAO_ITEM, UNIDADE, QTDE_ITEM, PRECO_UNITARIO,
						 PRECO_UNITARIO_ORIGINAL, --#36#
						 DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, 
                         REFERENCIA_PEDIDO, COD_TABELA_FILHA, TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, 
						 RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO) 
				   SELECT MAX(C.CLASSIF_FISCAL) AS CLASSIF_FISCAL ,
						 MAX(CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END)	AS CODIGO_FISCAL_OPERACAO,-- #2# 
                   ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS NOME_CLIFOR, A.NUMERO_NF_TRANSFERENCIA  AS NF_ENTRADA , 
                   --RIGHT('0000' + CONVERT(VARCHAR, ROW_NUMBER() OVER(ORDER BY B.PRODUTO, B.COR_PRODUTO)), 4) AS ITEM_IMPRESSAO , --#45#
				   NULL AS ITEM_IMPRESSAO ,--#45#
                   1 AS SUB_ITEM_TAMANHO, LTRIM(RTRIM(B.PRODUTO))+B.COR_PRODUTO AS CODIGO_ITEM, LTRIM(RTRIM(MAX(C.DESC_PROD_NF)))+ ' '+max(D.DESC_COR_PRODUTO) AS DESCRICAO_ITEM , MAX(C.UNIDADE) AS UNIDADE, 
                   SUM(B.QTDE_ENTRADA) AS QTDE_ITEM, MAX(B.PRECO1) AS PRECO_UNITARIO , MAX(B.PRECO1)  AS PRECO_UNITARIO_ORIGINAL  , 0 AS DESCONTO_ITEM, SUM(B.VALOR) AS VALOR_ITEM , 0 AS PESO , 
                   '1' AS FAIXA, B.PRODUTO  AS REFERENCIA , B.COR_PRODUTO  AS REFERENCIA_ITEM,'' AS REFERENCIA_PEDIDO, 'P' AS COD_TABELA_FILHA, MAX(C.TRIBUT_ORIGEM), 
				   /*MAX(C.TRIBUT_ICMS)#13#*/NULL ,
				   ISNULL(MAX(L.INDICADOR_CFOP),MAX(C.INDICADOR_CFOP)),	/*#10#*/		   
				   ISNULL(A.SERIE_NF_ENTRADA, @SERIE_NF) AS SERIE_NF_ENTRADA, 
				   @RATEIO_CENTRO_CUSTO  AS RATEIO_CENTRO_CUSTO, 
				   MAX(G.COD_FILIAL) AS RATEIO_FILIAL,
     			   CASE WHEN A.ENTRADA_POR = 1 then MAX(C.CONTA_CONTABIL) WHEN A.ENTRADA_POR = 2 Then MAX(C.CONTA_CONTABIL_COMPRA) End AS CONTA_CONTABIL, /*#9#*/
				   MAX(DBO.FX_ID_EXCECAO_IMPOSTO(J.CTB_TIPO_OPERACAO, K.CLIFOR,ISNULL(L.INDICADOR_CFOP,C.INDICADOR_CFOP),'E', G.MATRIZ_FISCAL, A.FILIAL, I.RECEBIMENTO, C.TRIBUT_ORIGEM, --#57#
				   CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END,
				   B.PRODUTO, A.NOME_CLIFOR, 'P',I.NATUREZA, G.COD_FILIAL)) AS ID_EXCECAO_IMPOSTO  /*#30# Inclusão da G.Matriz_Fiscal*/
            FROM   LOJA_ENTRADAS A 
                   INNER JOIN LOJA_ENTRADAS_PRODUTO B 
                   ON A.ROMANEIO_PRODUTO = B.ROMANEIO_PRODUTO 
                   AND A.FILIAL = B.FILIAL 
                   INNER JOIN PRODUTOS C 
                   ON B.PRODUTO = C.PRODUTO 
                   INNER JOIN PRODUTO_CORES D 
                   ON B.PRODUTO = D.PRODUTO 
                   AND B.COR_PRODUTO = D.COR_PRODUTO 
                   INNER JOIN CADASTRO_CLI_FOR E 
                   ON ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                   E.NOME_CLIFOR 
				   /*
                   LEFT JOIN CTB_LX_CARACTERISTICA_CFOP F 
                   ON E.INDICADOR_FISCAL_TERCEIRO = F.INDICADOR_FISCAL_TERCEIRO 
                   AND F.CTB_TIPO_OPERACAO = @CTB_TIPO_OPERACAO_UTILIZADO 
                   AND F.INDICADOR_CFOP = C.INDICADOR_CFOP*/ 
                   INNER JOIN FILIAIS G 
                   ON A.FILIAL = G.FILIAL 
                   INNER JOIN CADASTRO_CLI_FOR H 
                   ON G.FILIAL = H.NOME_CLIFOR 
                   INNER JOIN #ENTRADAS I 
                   ON A.NF_ENTRADA = I.NF_ENTRADA 
                   AND A.SERIE_NF_ENTRADA = I.SERIE_NF_ENTRADA 
                   AND A.NOME_CLIFOR = I.NOME_CLIFOR 
                   INNER JOIN NATUREZAS_ENTRADAS J 
                   ON I.NATUREZA = J.NATUREZA 
                   INNER JOIN CADASTRO_CLI_FOR K 
                   ON I.NOME_CLIFOR = K.NOME_CLIFOR
				   LEFT JOIN PRODUTOS_INDICADOR_CFOP L /*#10#*/ 
				   --on C.INDICADOR_CFOP = L.INDICADOR_CFOP /*#55#*/
				   ON C.PRODUTO       = L.PRODUTO			/*#55#*/	
				   AND L.FILIAL        = @FILIAL /*#24#*/
				   LEFT JOIN CTB_LX_CARACTERISTICA_CFOP F 
                   ON E.INDICADOR_FISCAL_TERCEIRO = F.INDICADOR_FISCAL_TERCEIRO 
                   AND F.CTB_TIPO_OPERACAO = @CTB_TIPO_OPERACAO_UTILIZADO 
                   AND F.INDICADOR_CFOP = ISNULL(L.INDICADOR_CFOP,C.INDICADOR_CFOP) --#57#
            WHERE  A.ROMANEIO_PRODUTO  = @ROMANEIO_PRODUTO 
                   AND A.FILIAL = @FILIAL 
                   AND A.ENTRADA_CONFERIDA = 1 
                   AND A.STATUS_TRANSITO != 0 
                   AND B.QTDE_ENTRADA > 0 
            GROUP  BY A.FORNECEDOR, 
                      A.FILIAL_ORIGEM, 
                      A.NUMERO_NF_TRANSFERENCIA, 
                      A.SERIE_NF_ENTRADA, 
                      B.PRODUTO,B.COR_PRODUTO ,
					  A.ENTRADA_POR, --#9#
					  L.FILIAL /*#24#*/
        END

        IF @AGRUPAMENTO_ITENS >= 2 -- AGRUPAMENTO =  PRODUTO + COR + TAMANHO
            BEGIN
            INSERT INTO #ENTRADAS_ITEM (CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, 
                         DESCRICAO_ITEM, UNIDADE, QTDE_ITEM, PRECO_UNITARIO,
						 PRECO_UNITARIO_ORIGINAL, --#36#
						 DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, 
                         REFERENCIA_PEDIDO, COD_TABELA_FILHA, TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, 
						 RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO) 
		     SELECT MAX(C.CLASSIF_FISCAL) AS CLASSIF_FISCAL ,
						 MAX(CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END)	AS CODIGO_FISCAL_OPERACAO,-- #2# 
                   ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS NOME_CLIFOR, A.NUMERO_NF_TRANSFERENCIA  AS NF_ENTRADA , 
                   --RIGHT('0000' + CONVERT(VARCHAR, ROW_NUMBER() OVER(ORDER BY M.PRODUTO, M.COR_PRODUTO, M.TAMANHO)), 4) AS ITEM_IMPRESSAO ,--#45#
                   NULL AS ITEM_IMPRESSAO ,--#45#
                   M.ORDEM AS SUB_ITEM_TAMANHO, LTRIM(RTRIM(M.PRODUTO))+LTRIM(RTRIM(M.COR_PRODUTO))+ltrim(rtrim(M.TAMANHO)) AS CODIGO_ITEM, LTRIM(RTRIM(MAX(C.DESC_PROD_NF)))+ ''+LTRIM(RTRIM(max(D.DESC_COR_PRODUTO)))/*+' '+LTRIM(RTRIM(M.TAMANHO))--#58#*/ AS DESCRICAO_ITEM , MAX(C.UNIDADE) AS UNIDADE, 
                   M.QTDE AS QTDE_ITEM, MAX(B.PRECO1) AS PRECO_UNITARIO , AVG(B.PRECO1)  AS PRECO_UNITARIO_ORIGINAL  , 0 AS DESCONTO_ITEM, CAST((B.VALOR/B.QTDE_ENTRADA) * M.QTDE AS numeric(14,2)) VALOR_ITEM , 0 AS PESO , 
                   '1' AS FAIXA, M.PRODUTO  AS REFERENCIA , LTRIM(RTRIM(M.COR_PRODUTO))/*+ltrim(rtrim(M.TAMANHO))--#44#*/  AS REFERENCIA_ITEM,'' AS REFERENCIA_PEDIDO, 'P' AS COD_TABELA_FILHA, MAX(C.TRIBUT_ORIGEM), 
				   /*MAX(C.TRIBUT_ICMS)#13#*/NULL ,
				   ISNULL(MAX(L.INDICADOR_CFOP),MAX(C.INDICADOR_CFOP)),	/*#10#*/		   
				   ISNULL(A.SERIE_NF_ENTRADA, @SERIE_NF) AS SERIE_NF_ENTRADA, 
				   @RATEIO_CENTRO_CUSTO  AS RATEIO_CENTRO_CUSTO, 
				   MAX(G.COD_FILIAL) AS RATEIO_FILIAL,
     			   CASE WHEN A.ENTRADA_POR = 1 then MAX(C.CONTA_CONTABIL) WHEN A.ENTRADA_POR = 2 Then MAX(C.CONTA_CONTABIL_COMPRA) End AS CONTA_CONTABIL, /*#9#*/
				   MAX(DBO.FX_ID_EXCECAO_IMPOSTO(J.CTB_TIPO_OPERACAO, K.CLIFOR,ISNULL(L.INDICADOR_CFOP,C.INDICADOR_CFOP),'E', G.MATRIZ_FISCAL, A.FILIAL, I.RECEBIMENTO, C.TRIBUT_ORIGEM, --#57#
				   CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END,
				   B.PRODUTO, A.NOME_CLIFOR, 'P',I.NATUREZA, G.COD_FILIAL)) AS ID_EXCECAO_IMPOSTO  /*#30# Inclusão da G.Matriz_Fiscal*/
                FROM   LOJA_ENTRADAS A 
                   INNER JOIN LOJA_ENTRADAS_PRODUTO B 
                   ON A.ROMANEIO_PRODUTO = B.ROMANEIO_PRODUTO 
                   AND A.FILIAL = B.FILIAL 
                   INNER JOIN PRODUTOS C 
                   ON B.PRODUTO = C.PRODUTO 
                   INNER JOIN PRODUTO_CORES D 
                   ON B.PRODUTO = D.PRODUTO 
                   AND B.COR_PRODUTO = D.COR_PRODUTO 
                   INNER JOIN CADASTRO_CLI_FOR E 
                   ON ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                   E.NOME_CLIFOR 
				   /*
                   LEFT JOIN CTB_LX_CARACTERISTICA_CFOP F 
                   ON E.INDICADOR_FISCAL_TERCEIRO = F.INDICADOR_FISCAL_TERCEIRO 
                   AND F.CTB_TIPO_OPERACAO = @CTB_TIPO_OPERACAO_UTILIZADO 
                   AND F.INDICADOR_CFOP = C.INDICADOR_CFOP */
                   INNER JOIN FILIAIS G 
                   ON A.FILIAL = G.FILIAL 
                   INNER JOIN CADASTRO_CLI_FOR H 
                   ON G.FILIAL = H.NOME_CLIFOR 
                   INNER JOIN #ENTRADAS I 
                   ON A.NF_ENTRADA = I.NF_ENTRADA 
                   AND A.SERIE_NF_ENTRADA = I.SERIE_NF_ENTRADA 
                   AND A.NOME_CLIFOR = I.NOME_CLIFOR 
                   INNER JOIN NATUREZAS_ENTRADAS J 
                   ON I.NATUREZA = J.NATUREZA 
                   INNER JOIN CADASTRO_CLI_FOR K 
                   ON I.NOME_CLIFOR = K.NOME_CLIFOR
				   LEFT JOIN PRODUTOS_INDICADOR_CFOP L /*#10#*/ 
				   --on C.INDICADOR_CFOP = L.INDICADOR_CFOP /*#55#*/
				   ON C.PRODUTO       = L.PRODUTO			/*#55#*/
				   AND L.FILIAL        = @FILIAL /*#24#*/
				   LEFT JOIN CTB_LX_CARACTERISTICA_CFOP F 
                   ON E.INDICADOR_FISCAL_TERCEIRO = F.INDICADOR_FISCAL_TERCEIRO 
                   AND F.CTB_TIPO_OPERACAO = @CTB_TIPO_OPERACAO_UTILIZADO 
                   AND F.INDICADOR_CFOP = ISNULL(L.INDICADOR_CFOP,C.INDICADOR_CFOP) --#57#
                   INNER JOIN W_LOJA_ENTRADAS_PRODUTO_VERTICAL M 
                    ON A.ROMANEIO_PRODUTO = M.ROMANEIO_PRODUTO 
                   AND A.FILIAL = M.FILIAL AND B.PRODUTO = M.PRODUTO AND B.COR_PRODUTO = M.COR_PRODUTO
            WHERE  A.ROMANEIO_PRODUTO  = @ROMANEIO_PRODUTO 
                   AND A.FILIAL = @FILIAL 
                   AND A.ENTRADA_CONFERIDA = 1 
                   AND A.STATUS_TRANSITO != 0 
                   AND B.QTDE_ENTRADA > 0 
            GROUP  BY A.FORNECEDOR, 
                      A.FILIAL_ORIGEM, 
                      A.NUMERO_NF_TRANSFERENCIA, 
                      A.SERIE_NF_ENTRADA, 
                      M.PRODUTO,M.COR_PRODUTO, M.TAMANHO,M.QTDE,B.VALOR,B.QTDE_ENTRADA,M.ORDEM,
					  A.ENTRADA_POR, --#9#
					  L.FILIAL /*#24#*/
        END
					  
        --#41# - FIM

-----  #13# Início -----  
	-- O sistema considerava apenas o Tribut_ICMS da tabela PRODUTOS. Com essa modificação, caso houve na exceção, ele vai considera-la. 
		UPDATE	#ENTRADAS_ITEM
		SET		TRIBUT_ICMS = CASE 
								WHEN CEI.TRIBUT_ICMS IS NOT NULL THEN CEI.TRIBUT_ICMS
								ELSE (	SELECT	MAX(PROD.TRIBUT_ICMS) 
										FROM	PRODUTOS PROD
										JOIN	#ENTRADAS_ITEM EI
											ON	EI.REFERENCIA = PROD.PRODUTO) --#41# - TROCADO CODIGO_ITEM POR REFERENCIA, POIS EM CASO DE AGRUPAMENTO DIFERENTE DE 0 SERA RELACIONADO NO CAMPO REFERENCIA
							  END
		FROM	#ENTRADAS_ITEM EI
		LEFT JOIN	CTB_EXCECAO_IMPOSTO CEI
			ON	EI.ID_EXCECAO_IMPOSTO = CEI.ID_EXCECAO_IMPOSTO
		JOIN	PRODUTOS PROD
			ON	PROD.PRODUTO = EI.REFERENCIA --#41# - TROCADO CODIGO_ITEM POR REFERENCIA, POIS EM CASO DE AGRUPAMENTO DIFERENTE DE 0 SERA RELACIONADO NO CAMPO REFERENCIA
-----  #13# Fim -----  

            BEGIN TRAN 


				INSERT INTO ENTRADAS (NOME_CLIFOR, NF_ENTRADA, FILIAL, COD_TRANSACAO, NATUREZA, CONDICAO_PGTO, SERIE_NF, RECEBIMENTO, NF_FATURA, EMISSAO, FATURA, 
							 FRETE, SEGURO, QTDE_TOTAL, VALOR_TOTAL, DESCONTO, TABELA_FILHA, MOEDA, DATA_DIGITACAO, SERIE_NF_ENTRADA, EMPRESA, FATURA_NOME_CLIFOR, FATURA_NUMERO, 
							 FATURA_SERIE, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, VALOR_SUB_ITENS, ESPECIE_SERIE, COD_CLIFOR_SACADO, CHAVE_NFE, PROTOCOLO_AUTORIZACAO_NFE, 
							 DATA_AUTORIZACAO_NFE, STATUS_NFE, FIN_EMISSAO_NFE, TIPO_EMISSAO_NFE, TRANSPORTADORA_A_PAGAR,INDICA_ENTRADA_AUTOMATICA, --#34#
                             AGRUPAMENTO_ITENS) ---#41# ---#48#
				SELECT NOME_CLIFOR,NF_ENTRADA, FILIAL, COD_TRANSACAO, NATUREZA, CONDICAO_PGTO, SERIE_NF, RECEBIMENTO, NF_FATURA, EMISSAO, FATURA, FRETE, 
					   SEGURO, QTDE_TOTAL, VALOR_TOTAL, DESCONTO, TABELA_FILHA, MOEDA, DATA_DIGITACAO, SERIE_NF_ENTRADA, EMPRESA, FATURA_NOME_CLIFOR, FATURA_NUMERO, FATURA_SERIE, 
					   RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, VALOR_SUB_ITENS, ESPECIE_SERIE, COD_CLIFOR_SACADO, CHAVE_NFE, PROTOCOLO_AUTORIZACAO_NFE, DATA_AUTORIZACAO_NFE, 
					   STATUS_NFE, FIN_EMISSAO_NFE, TIPO_EMISSAO_NFE, TRANSPORTADORA_A_PAGAR,INDICA_ENTRADA_AUTOMATICA, --#34#
                       @AGRUPAMENTO_ITENS ---#41# ---#48#
				FROM   #ENTRADAS 

				UPDATE A  
				SET    A.CODIGO_FISCAL_OPERACAO = CASE 
													  WHEN B.CFOP_OBRIGATORIO IS NOT NULL THEN B.CFOP_OBRIGATORIO --#1# 
												  ELSE A.CODIGO_FISCAL_OPERACAO 
												  END 
				FROM   
				#ENTRADAS_ITEM A 
				INNER JOIN CTB_EXCECAO_IMPOSTO B (NOLOCK) 
				ON A.ID_EXCECAO_IMPOSTO = B.ID_EXCECAO_IMPOSTO 

				--#45#
				IF @AGRUPAMENTO_ITENS IN(1,2)
				BEGIN

					DECLARE @CREFERENCIA VARCHAR(50),@CREFERENCIA_ITEM VARCHAR(12),@CPRECO_UNITARIO NUMERIC(15,5),@ITEM_IMPRESSAO CHAR(4),@ITEM INT

					DECLARE CUR_ITEM_IMPRESSAO CURSOR FAST_FORWARD 
					FOR
					SELECT	REFERENCIA,REFERENCIA_ITEM,PRECO_UNITARIO
					FROM	#ENTRADAS_ITEM

					OPEN CUR_ITEM_IMPRESSAO

					FETCH NEXT FROM CUR_ITEM_IMPRESSAO INTO @CREFERENCIA,@CREFERENCIA_ITEM,@CPRECO_UNITARIO

					WHILE @@FETCH_STATUS = 0 
					BEGIN

						SELECT @ITEM_IMPRESSAO=ITEM_IMPRESSAO FROM #ENTRADAS_ITEM WHERE REFERENCIA = @CREFERENCIA AND REFERENCIA_ITEM = @CREFERENCIA_ITEM AND PRECO_UNITARIO = @CPRECO_UNITARIO

						IF @ITEM_IMPRESSAO IS NULL
						BEGIN
							SELECT @ITEM = ISNULL(MAX(ITEM_IMPRESSAO),0) FROM #ENTRADAS_ITEM
							SELECT @ITEM = @ITEM+1

							SELECT @ITEM_IMPRESSAO = RIGHT('0000'+CONVERT(VARCHAR,@ITEM),4)
						END

						UPDATE #ENTRADAS_ITEM SET ITEM_IMPRESSAO = @ITEM_IMPRESSAO WHERE REFERENCIA = @CREFERENCIA AND REFERENCIA_ITEM = @CREFERENCIA_ITEM AND PRECO_UNITARIO = @CPRECO_UNITARIO

						FETCH NEXT FROM CUR_ITEM_IMPRESSAO INTO @CREFERENCIA,@CREFERENCIA_ITEM,@CPRECO_UNITARIO

					END

					CLOSE CUR_ITEM_IMPRESSAO  
					DEALLOCATE CUR_ITEM_IMPRESSAO 
				END
				--#45#

				-- == INSERINDO NA TABELA DE ENTRADAS_ITEM A PARTIR DE SUA TEMPORARIA ====================================================== <|INICIO|>
				INSERT INTO ENTRADAS_ITEM (CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, 
							 DESCRICAO_ITEM, UNIDADE, QTDE_ITEM, PRECO_UNITARIO,
							 PRECO_UNITARIO_ORIGINAL , --#36#
							 DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, 
							 REFERENCIA_PEDIDO, COD_TABELA_FILHA, TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, 
							 RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO,/*#19#*/ORIGEM_ITEM /*#19#*/) 
				SELECT CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, DESCRICAO_ITEM, UNIDADE, 
					   QTDE_ITEM, PRECO_UNITARIO,PRECO_UNITARIO_ORIGINAL, DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, REFERENCIA_PEDIDO, COD_TABELA_FILHA, 
					   TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO ,
					   /*#19#*/'P' /*#19#*/ 
				FROM   #ENTRADAS_ITEM 

            COMMIT 
        END 

 -- /*FATURAMENTO*/ 
 --     --else 

 

    IF @ORIGEM_ENTRADA = 2 --#8# - INICIO
        BEGIN 
            -----------------------------------------------------------------------------------------------------------------------------------------------    
            -- CRIAÇÃO DA ESTRUTURA DA TABELA TEMP DE FATURAMENTO - INICIO
			SELECT DISTINCT FAT.filial, FAT.nf_saida, FAT.serie_nf, FAT.nome_clifor, FAT.natureza_saida, FAT.condicao_pgto, FAT.tabela_filha, FAT.emissao, 
                            FAT.qtde_total, FAT.timestamp, FAT.valor_total, FAT.frete, FAT.seguro, FAT.encargo, FAT.desconto, FAT.icms, FAT.icms_base, 
                            FAT.ipi_valor, FAT.acerto_contas_p_r, FAT.nf_fatura, FAT.devolucao, FAT.moeda, FAT.valor_imposto_agregar, FAT.rateio_centro_custo, 
                            FAT.valor_sub_itens, FAT.chave_nfe, FAT.protocolo_autorizacao_nfe, FAT.data_autorizacao_nfe, FAT.fin_emissao_nfe,
                            FAT.tipo_emissao_nfe,FAT.status_nfe,FAT.transportadora,FAT.emissao AS DATA_RECEBIMENTO,fat.AGRUPAMENTO_ITENS, '' as INDICA_ENTRADA_AUTOMATICA --#34#
            INTO   #faturamento 
            FROM   faturamento FAT (nolock) 
           JOIN empresa EMP (nolock) 
             ON EMP.empresa = FAT.empresa 
                   JOIN naturezas_saidas NS (nolock) 
                     ON FAT.natureza_saida = NS.natureza_saida 
                   JOIN naturezas_entradas NE (nolock) 
                     ON ( NS.natureza_entrada_automatica = NE.natureza ) 
                   JOIN filiais F (nolock) 
                     ON FAT.nome_clifor = F.filial 
                   JOIN filiais F2 (nolock) 
                     ON ( FAT.filial = F2.filial ) 
                   INNER JOIN series_nf AS SN  
                           ON SN.serie_nf = FAT.serie_nf 
                   INNER JOIN ctb_especie_serie CES  
                           ON CES.especie_serie = SN.especie_serie 
                   INNER JOIN #origem_entrada AS LE  
                           ON FAT.filial = LE.filial_origem  
                              AND FAT.nf_saida = LE.romaneio_nf_saida  
                              AND FAT.serie_nf = LE.serie_nf_entrada  
				WHERE 1 = 2
        

			-- CRIAÇÃO DA ESTRUTURA DA TABELA TEMP DE FATURAMENTO - FIM

            -- INSERT NA TEMP DE FATURAMENTO - INICIO
            INSERT INTO #faturamento 
            SELECT DISTINCT FAT.filial, FAT.nf_saida, FAT.serie_nf, FAT.nome_clifor, FAT.natureza_saida, FAT.condicao_pgto, FAT.tabela_filha, FAT.emissao, 
                            FAT.qtde_total, FAT.timestamp, FAT.valor_total, FAT.frete, FAT.seguro, FAT.encargo, FAT.desconto, FAT.icms, FAT.icms_base, 
                            FAT.ipi_valor, FAT.acerto_contas_p_r, FAT.nf_fatura, FAT.devolucao, FAT.moeda, FAT.valor_imposto_agregar, FAT.rateio_centro_custo, 
                            FAT.valor_sub_itens, FAT.chave_nfe, FAT.protocolo_autorizacao_nfe, FAT.data_autorizacao_nfe, FAT.fin_emissao_nfe,FAT.tipo_emissao_nfe,
                            FAT.status_nfe,FAT.transportadora,COALESCE(LE.data_entrada_conferida, LE.emissao, FAT.emissao),fat.AGRUPAMENTO_ITENS ,1 
           FROM   faturamento FAT (nolock) 
                   JOIN empresa EMP (nolock) 
                     ON EMP.empresa = FAT.empresa 
                   JOIN naturezas_saidas NS (nolock) 
                     ON FAT.natureza_saida = NS.natureza_saida 
                   JOIN naturezas_entradas NE (nolock) 
                     ON ( NS.natureza_entrada_automatica = NE.natureza ) 
                   JOIN filiais F (nolock) 
                     ON FAT.nome_clifor = F.filial 
                   JOIN filiais F2 (nolock) 
                     ON ( FAT.filial = F2.filial ) 
                   INNER JOIN series_nf AS SN 
                           ON SN.serie_nf = FAT.serie_nf 
                   INNER JOIN ctb_especie_serie CES 
                           ON CES.especie_serie = SN.especie_serie 
                   INNER JOIN loja_entradas AS LE 
                           ON FAT.filial = LE.filial_origem 
                              AND FAT.nf_saida = LE.romaneio_nf_saida 
                              AND FAT.serie_nf = LE.serie_nf_entrada 
            WHERE  LE.romaneio_produto = @ROMANEIO_PRODUTO 
                   AND LE.filial = @FILIAL 
                   AND LE.entrada_conferida = 1 
                   AND LE.status_transito != 0 
                   AND LE.qtde_total > 0 

            -- FIM - TABELA TEMP DE FATURAMENTO    
            -----------------------------------------------------------------------------------------------------------------------------------------------    
            -- TABELA TEMP DE FATURAMENTO_ITEM - INICIO   
            SELECT FI.classif_fiscal, FI.codigo_item, FI.cod_tabela_filha, FI.comissao_item, FI.comissao_item_gerente,FI.referencia, FI.conta_contabil, 
                   FI.desconto_item, FI.descricao_item, FI.faixa, FI.indicador_cfop, FI.tribut_origem, FI.item_impressao, FI.nf_saida, FI.filial, 
                   FI.peso, FI.porcentagem_item_rateio, FI.preco_unitario, FI.qtde_devolvida, FI.qtde_item, FI.qtde_retornar_beneficiamento, FI.serie_nf, 
                   FI.sub_item_tamanho, FI.tribut_icms, FI.unidade, FI.valor_item, FI.referencia_item, FI.referencia_pedido, FI.timestamp, FI.mpadrao_valor_encargos, 
                   FI.mpadrao_valor_descontos, FI.nao_soma_valor , FI.preco_unitario_original, --#40#
				   FI.ITEM_NFE --#56#
            INTO   #faturamento_item_periodo 
            FROM   faturamento_item FI (nolock) 
                   INNER JOIN #faturamento FP 
                           ON FP.nf_saida = FI.nf_saida 
                              AND FP.serie_nf = FI.serie_nf 
                              AND FP.filial = FI.filial 

            SELECT NOME_CLIFOR = FAT.filial, 
                   NF_ENTRADA = nf_saida, 
                   SERIE_NF_ENTRADA = serie_nf, 
                   TABELA_FILHA = tabela_filha, 
                   FILIAL = FAT.nome_clifor, 
                   EMISSAO = FAT.emissao, 
                   RECEBIMENTO = FAT.data_recebimento,
                   QTDE_TOTAL = FAT.qtde_total, 
                   VALOR_TOTAL = CASE 
                                   WHEN serie_nf = 
                                        dbo.Fx_parametro('TIPO_PRODUCAO') 
                                 THEN 
                                   dbo.Fx_producao_preco(FAT.timestamp, 'F') 
                                   ELSE FAT.valor_total 
                                 END, 
                   FRETE = frete, 
                   SEGURO = seguro, 
                   DESCONTO = FAT.desconto, 
                   ENCARGO = FAT.encargo, 
                   ICMS_VALOR = icms, 
				   IPI_VALOR = ipi_valor, 
                   ICMS_BASE = icms_base, 
                   NATUREZA = NE.natureza, 
                   ACERTO_CONTAS_P_R = acerto_contas_p_r, 
                   CONDICAO_PGTO = Isnull(FPG.cond_pgto_entrada, 
                                   (SELECT Max(condicao_pgto) 
                                    FROM 
                                   cond_ent_pgtos (nolock) 
                                                                  WHERE 
                                   tipo_condicao = 'VISTA')), 
                   COD_TRANSACAO = 'ENTRADAS_109', 
                   NF_FATURA = nf_fatura, 
                   DEVOLUCAO = devolucao, 
                   NF_PROPRIA_EMITIDA = 0, --#38#
                   TRANSF_FILIAL = 1, 
                   NF_ENTRADA_PROPRIA = 0, 
                   FRETE_A_PAGAR = frete, 
                   IMPORTACAO = 0, 
                   MOEDA = Isnull(moeda, @MOEDA), 
                   VALOR_IMPOSTO_AGREGAR = valor_imposto_agregar, 
                   RATEIO_FILIAL = CLIFOR.cod_clifor, 
                   ESPECIE_SERIE = Isnull((SELECT series_nf.especie_serie 
                                           FROM   series_nf (nolock) 
                                           WHERE  series_nf.serie_nf = 
                                                  FAT.serie_nf), 
                                   @ESPECIE_SERIE), 
                   RATEIO_CENTRO_CUSTO = Isnull(rateio_centro_custo, 
                                         @RATEIO_CENTRO_CUSTO), 
                   TIPO_ENTRADAS = @TIPO_ENTRADAS_PADRAO, 
                   COD_CLIFOR_SACADO = F.cod_filial, 
                   VALOR_SUB_ITENS = FAT.valor_sub_itens, 
                   CHAVE_NFE = chave_nfe, 
                   PROTOCOLO_AUTORIZACAO_NFE = protocolo_autorizacao_nfe, 
                   DATA_AUTORIZACAO_NFE = data_autorizacao_nfe, 
                   DATA_DIGITACAO = Cast(CONVERT(CHAR(8), Getdate(), 112)AS 
                                         DATETIME), 
                   FIN_EMISSAO_NFE = FAT.fin_emissao_nfe,
                   TIPO_EMISSAO_NFE = FAT.tipo_emissao_nfe,
                   STATUS_NFE = FAT.status_nfe,
                   TRANSPORTADORA_A_PAGAR = FAT.transportadora, 
				   Agrupamento_itens = fat.agrupamento_itens,
				   INDICA_ENTRADA_AUTOMATICA = fat.INDICA_ENTRADA_AUTOMATICA --#34#
            INTO   #entradas_periodo_1 
            FROM   #faturamento FAT 
                   JOIN filiais F (nolock) 
                     ON FAT.nome_clifor = F.filial 
                   JOIN cadastro_cli_for CLIFOR (nolock) 
                     ON FAT.nome_clifor = CLIFOR.nome_clifor 
                   JOIN naturezas_saidas NS (nolock) 
                     ON FAT.natureza_saida = NS.natureza_saida 
                   JOIN naturezas_entradas NE (nolock) 
                     ON NS.natureza_entrada_automatica = NE.natureza 
                   LEFT JOIN (SELECT 
                             filial_origem,
                                     numero_nf_transferencia, 
                                     serie_nf_entrada, 
                                     Max(emissao) 
                             AS 
                             EMISSAO, 
                                     Max(Cast(Isnull(( 
                                         loja_entradas.entrada_conferida 
                                                     ) 
                                              , 1) 
                                              AS INT 
                                         )) AS 
                                     ENTRADA_CONFERIDA 
                              FROM   loja_entradas (nolock) 
                              GROUP  BY filial_origem, 
                                        numero_nf_transferencia, 
                                        serie_nf_entrada) LE 
                          ON FAT.filial = LE.filial_origem 
                             AND FAT.nf_saida = LE.numero_nf_transferencia 
                             AND FAT.serie_nf = LE.serie_nf_entrada 
                   LEFT JOIN forma_pgto FPG (nolock) 
                          ON FPG.condicao_pgto = FAT.condicao_pgto 
            
-- FIM - TABELA TEMP DE ENTRADAS (FATURAMENTO VERIFICANDO LOJA_ENTRADAS)  
-----------------------------------------------------------------------------------------------------------------------------------------------    
-- TABELA TEMP DE ENTRADAS_ITEM (FATURAMENTO_ITEM VERIFICANDO LOJA_ENTRADAS)   
            SELECT CLASSIF_FISCAL = FI.classif_fiscal, CODIGO_FISCAL_OPERACAO = CASE 
																					WHEN CTBE.cfop_obrigatorio IS NOT NULL THEN CTBE.cfop_obrigatorio 
																					ELSE ( CASE WHEN CLIFOR.pais <> F.pais THEN CTBC.codigo_fiscal_exterior 
																									WHEN CLIFOR.uf <> F.uf THEN CTBC.codigo_fiscal_interestadual 
																							ELSE CTBC.codigo_fiscal_operacao END ) 
																					END, 
				 CODIGO_ITEM = FI.codigo_item, COD_TABELA_FILHA = FI.cod_tabela_filha, COMISSAO_ITEM = FI.comissao_item, COMISSAO_ITEM_GERENTE = FI.comissao_item_gerente, 
				 CONTA_CONTABIL = Isnull(dbo.Fx_conta_contabil_operacao_inversa( Isnull(FI.referencia, FI.codigo_item), NS.tipo_operacao, 'E' , FI.cod_tabela_filha), FI.conta_contabil), 
				 DESCONTO_ITEM = FI.desconto_item, DESCRICAO_ITEM = FI.descricao_item, FAIXA = FI.faixa, 
				 ID_EXCECAO_IMPOSTO = dbo.Fx_id_excecao_imposto(CTBO.ctb_tipo_operacao, 
																F.cod_clifor, 
																Isnull(dbo.Fx_indicador_cfop(FP.nome_clifor, Isnull(FI.referencia, FI.codigo_item), FI.cod_tabela_filha), FI.indicador_cfop), 'E', 
																FP2.MATRIZ_FISCAL, /*#30#*/
																FP.nome_clifor, FP.emissao, 
																FI.tribut_origem, (CASE WHEN CLIFOR.pais <> F.pais THEN CTBC.codigo_fiscal_exterior 
																						WHEN CLIFOR.uf <> F.uf THEN CTBC.codigo_fiscal_interestadual 
																						ELSE CTBC.codigo_fiscal_operacao 
																					END ), 
																Isnull(FI.referencia, FI.codigo_item), -- #30#
																F.nome_clifor, (CASE WHEN FI.cod_tabela_filha = 'R' THEN 'P' 
																					ELSE ( CASE WHEN FI.cod_tabela_filha = 'T' THEN 'M' 
																								ELSE FI.cod_tabela_filha 
																							END ) 
																				END ), NS.natureza_entrada_automatica, CLIFOR.cod_clifor), 
				INDICADOR_CFOP = Isnull(dbo.Fx_indicador_cfop(FP.nome_clifor, 
				Isnull(FI.referencia, FI.codigo_item), --#30#
				FI.cod_tabela_filha), FI.indicador_cfop), ITEM_IMPRESSAO = FI.item_impressao, NF_ENTRADA = FI.nf_saida, 
				NOME_CLIFOR = FI.filial, PESO = FI.peso, PORCENTAGEM_ITEM_RATEIO = FI.porcentagem_item_rateio, PRECO_UNITARIO = FI.preco_unitario, QTDE_DEVOLVIDA = FI.qtde_devolvida, 
				QTDE_ITEM = FI.qtde_item, QTDE_RETORNAR_BENEFICIAMENTO= FI.qtde_retornar_beneficiamento, SERIE_NF_ENTRADA = FI.serie_nf, SUB_ITEM_TAMANHO = FI.sub_item_tamanho, 
				TRIBUT_ICMS = FI.tribut_icms, TRIBUT_ORIGEM = FI.tribut_origem, UNIDADE = FI.unidade, VALOR_ITEM = FI.valor_item, REFERENCIA = Isnull(FI.referencia, FI.codigo_item), 
				REFERENCIA_ITEM = FI.referencia_item, REFERENCIA_PEDIDO = FI.referencia_pedido, DIVERGENTE = 0, TIMESTAMP = FI.timestamp, REFERENCIA_ENTREGA_PEDIDO = NULL, 
				VALOR_ENCARGOS = FI.mpadrao_valor_encargos, VALOR_DESCONTOS = FI.mpadrao_valor_descontos, NAO_SOMA_VALOR = FI.nao_soma_valor, VALOR_ENCARGOS_IMPORTACAO = 0, 
				RATEIO_FILIAL = CLIFOR.cod_clifor, RATEIO_CENTRO_CUSTO = Isnull(FP.rateio_centro_custo, @RATEIO_CENTRO_CUSTO ) , FI.PRECO_UNITARIO_ORIGINAL, --#40#
				FI.ITEM_NFE --#56#
				INTO   #entradas_item_periodo_1 
				FROM   #faturamento FP 
				JOIN FILIAIS FP2
				    ON FP2.FILIAL = FP.nome_clifor /*#30#*/
				JOIN naturezas_saidas NS (nolock) 
				ON ( FP.natureza_saida = NS.natureza_saida ) 
				JOIN #faturamento_item_periodo FI 
				ON ( FP.filial = FI.filial 
				AND FP.nf_saida = FI.nf_saida 
				AND FP.serie_nf = FI.serie_nf ) 
				JOIN cadastro_cli_for CLIFOR (nolock) 
				ON ( FP.nome_clifor = CLIFOR.nome_clifor ) 
				JOIN cadastro_cli_for F (nolock) 
				ON ( FP.filial = F.nome_clifor ) 
				JOIN naturezas_entradas NE (nolock) 
				ON ( NS.natureza_entrada_automatica = NE.natureza ) 
				JOIN ctb_lx_tipo_operacao CTBO (nolock) 
				ON ( CTBO.ctb_tipo_operacao = NE.ctb_tipo_operacao ) 
				JOIN ctb_lx_caracteristica_cfop CTBC (nolock) 
				ON ( CTBC.ctb_tipo_operacao = CTBO.ctb_tipo_operacao 
				AND CTBC.indicador_fiscal_terceiro = F.indicador_fiscal_terceiro 
				AND CTBC.indicador_cfop = Isnull( dbo.Fx_indicador_cfop(FP.nome_clifor, Isnull(FI.referencia, FI.codigo_item), FI.cod_tabela_filha), FI.indicador_cfop) ) 
				LEFT JOIN (SELECT filial_origem, numero_nf_transferencia, serie_nf_entrada, Max(emissao) AS EMISSAO, 
						   Max(Cast(Isnull(( loja_entradas.entrada_conferida ), 1) AS INT) ) AS ENTRADA_CONFERIDA 
						   FROM   loja_entradas (nolock) 
						   GROUP  BY filial_origem, 
						numero_nf_transferencia, 
						serie_nf_entrada) LE 
				ON FP.filial = LE.filial_origem 
				AND FP.nf_saida = LE.numero_nf_transferencia 
				AND FP.serie_nf = LE.serie_nf_entrada 
				LEFT JOIN ctb_excecao_imposto CTBE (nolock) 
				ON CTBE.id_excecao_imposto = dbo.Fx_id_excecao_imposto(CTBO.ctb_tipo_operacao, 
																		F.cod_clifor, 
																		Isnull(dbo.Fx_indicador_cfop(FP.nome_clifor, 
																		Isnull(FI.referencia, FI.codigo_item), 
																		FI.cod_tabela_filha), FI.indicador_cfop), 'E', 
																		FP2.MATRIZ_FISCAL, /*#30#*/
																		FP.nome_clifor, 
																		FP.emissao, 
																		FI.tribut_origem, ( CASE 
																							WHEN CLIFOR.pais <> F.pais THEN CTBC.codigo_fiscal_exterior 
																							WHEN CLIFOR.uf <> F.uf THEN CTBC.codigo_fiscal_interestadual 
																							ELSE CTBC.codigo_fiscal_operacao END ), 
																		Isnull(FI.referencia, FI.codigo_item), /*#30#*/
																		F.nome_clifor, ( CASE WHEN FI.cod_tabela_filha = 'R' THEN 'P' 
																							  ELSE ( CASE WHEN FI.cod_tabela_filha = 'T' THEN 'M' 
																								 		 ELSE FI.cod_tabela_filha 
																									END ) 
																						END ), NS.natureza_entrada_automatica, CLIFOR.cod_clifor) 

      -- FIM - TABELA TEMP DE ENTRADAS_ITEM (FATURAMENTO_ITEM VERIFICANDO LOJA_ENTRADAS)  
      -----------------------------------------------------------------------------------------------------------------------------------------------    
      -- INSERÇÃO NAS TABELAS FÍSICAS (ENTRADAS E ENTRADAS_ITEM VERIFICANDO LOJA_ENTRADAS)   
      BEGIN TRAN 
		INSERT INTO entradas (nome_clifor, nf_entrada, serie_nf_entrada, tabela_filha, filial, emissao, recebimento, qtde_total, valor_total, frete, 
			seguro, desconto, encargo, icms_valor, ipi_valor, icms_base, natureza, acerto_contas_p_r, condicao_pgto, cod_transacao, nf_fatura, devolucao, 
			nf_propria_emitida, transf_filial, nf_entrada_propria, frete_a_pagar, importacao, moeda, valor_imposto_agregar, rateio_filial, especie_serie, 
			rateio_centro_custo, tipo_entradas, cod_clifor_sacado, valor_sub_itens, chave_nfe, protocolo_autorizacao_nfe, data_autorizacao_nfe, data_digitacao, 
			fin_emissao_nfe,tipo_emissao_nfe, status_nfe,transportadora_a_pagar,agrupamento_itens,INDICA_ENTRADA_AUTOMATICA)--#34# 
		SELECT nome_clifor, nf_entrada, serie_nf_entrada, tabela_filha, filial, emissao, recebimento, qtde_total, valor_total, frete, seguro, desconto, encargo, 
			icms_valor, ipi_valor, icms_base, natureza, acerto_contas_p_r, condicao_pgto, cod_transacao, nf_fatura, devolucao, nf_propria_emitida, transf_filial, 
			nf_entrada_propria, frete_a_pagar, importacao, moeda, valor_imposto_agregar, rateio_filial, especie_serie, rateio_centro_custo, tipo_entradas, cod_clifor_sacado, 
			valor_sub_itens, chave_nfe, protocolo_autorizacao_nfe, data_autorizacao_nfe, data_digitacao, fin_emissao_nfe,tipo_emissao_nfe,status_nfe,transportadora_a_pagar,Agrupamento_itens,INDICA_ENTRADA_AUTOMATICA  --#34#
		FROM   #entradas_periodo_1 

		INSERT INTO entradas_item (classif_fiscal, codigo_fiscal_operacao, codigo_item, cod_tabela_filha, comissao_item, comissao_item_gerente, conta_contabil, desconto_item, 
			descricao_item, faixa, id_excecao_imposto, indicador_cfop, item_impressao, nf_entrada, nome_clifor, peso, porcentagem_item_rateio, preco_unitario, qtde_devolvida, 
			qtde_item, qtde_retornar_beneficiamento, serie_nf_entrada, sub_item_tamanho, tribut_icms, tribut_origem, unidade, valor_item, referencia, referencia_item, 
			referencia_pedido, divergente, timestamp, referencia_entrega_pedido, valor_encargos, valor_descontos, nao_soma_valor, valor_encargos_importacao, rateio_filial, rateio_centro_custo,
			/*#19#*/ORIGEM_ITEM /*#19#*/, PRECO_UNITARIO_ORIGINAL,ITEM_NFE) --#40# --#56#
		SELECT classif_fiscal, codigo_fiscal_operacao, codigo_item, cod_tabela_filha, comissao_item, comissao_item_gerente, conta_contabil, desconto_item, descricao_item, faixa, 
			id_excecao_imposto, indicador_cfop, item_impressao, nf_entrada, nome_clifor, peso, porcentagem_item_rateio, preco_unitario, qtde_devolvida, qtde_item, qtde_retornar_beneficiamento, 
			serie_nf_entrada, sub_item_tamanho, tribut_icms, tribut_origem, unidade, valor_item, referencia, referencia_item, referencia_pedido, divergente, timestamp, referencia_entrega_pedido, 
			valor_encargos, valor_descontos, nao_soma_valor, valor_encargos_importacao, rateio_filial, rateio_centro_custo,/*#19#*/'P'/*#19#*/ , preco_unitario_original,item_nfe --#40# --#56#
		FROM   #entradas_item_periodo_1 

      COMMIT 

      -- FIM - INSERÇÃO NAS TABELAS FÍSICAS (ENTRADAS E ENTRADAS_ITEM VERIFICANDO LOJA_ENTRADAS)   
      -----------------------------------------------------------------------------------------------------------------------------------------------    
      -- GRAVAR REFERÊNCIA DA NF NA TABELA LOJA_ENTRADAS  
		    
		  UPDATE A 
		  SET    NF_ENTRADA = B.nf_entrada, 
		  NOME_CLIFOR = B.nome_clifor, 
		  SERIE_NF_ENTRADA = B.serie_nf_entrada 
		  FROM   loja_entradas A (nolock) 
		  JOIN entradas B (nolock) 
		   ON B.NOME_CLIFOR = A.FILIAL_ORIGEM -- A.filial --ON B.nome_clifor = A.filial #37#
		  AND B.nf_entrada = A.romaneio_nf_saida 
		  AND B.serie_nf_entrada = A.serie_nf_entrada 
		  JOIN #faturamento C 
		  ON A.filial_origem = C.filial 
		  AND A.romaneio_nf_saida = C.nf_saida 
		  AND A.serie_nf_entrada = C.serie_nf 
		  WHERE  A.nf_entrada IS NULL 

      END 

--#15# - INICIO
--*DIEGO MORENO VERIFICA SE A ORIGEM É O FRANQUEADOR*/	
IF @ORIGEM_ENTRADA = 3 
        BEGIN 
			  INSERT INTO #ENTRADAS (NOME_CLIFOR, NF_ENTRADA, FILIAL, COD_TRANSACAO, NATUREZA, CONDICAO_PGTO, SERIE_NF, RECEBIMENTO, NF_FATURA, EMISSAO, FATURA, 
                         FRETE, SEGURO, QTDE_TOTAL, VALOR_TOTAL, TABELA_FILHA, MOEDA, DATA_DIGITACAO, SERIE_NF_ENTRADA, EMPRESA, FATURA_NOME_CLIFOR, 
                         FATURA_NUMERO, FATURA_SERIE, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, VALOR_SUB_ITENS, ESPECIE_SERIE, COD_CLIFOR_SACADO, 
                         CHAVE_NFE, PROTOCOLO_AUTORIZACAO_NFE, DATA_AUTORIZACAO_NFE, STATUS_NFE, FIN_EMISSAO_NFE, TIPO_EMISSAO_NFE, TRANSPORTADORA_A_PAGAR) 
			  SELECT ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS NOME_CLIFOR, LEFT(REPLACE(A.NUMERO_NF_TRANSFERENCIA, ' ', ''), 15) AS NF_ENTRADA, 
              MAX(A.FILIAL) AS FILIAL,
              CASE WHEN( ISNULL(CASE WHEN MAX(B.UF) = MAX(G.UF) 
					THEN MAX(I.NATUREZA_ENTRADA) 
					ELSE MAX(J.NATUREZA_ENTRADA) 
				END, 
				CASE WHEN (A.FORNECEDOR IS NULL AND @MATRIZ_CONTABIL = 1 ) 
					THEN @NATUREZA_TRANSFERENCIA
					ELSE @NATUREZA_COMPRA 
				END)) = @NATUREZA_COMPRA THEN 'ENTRADAS_112' 
					ELSE 'ENTRADAS_109' 
				END AS COD_TRANSACAO, 
				ISNULL(CASE WHEN MAX(B.UF) = MAX(G.UF) THEN MAX(I.NATUREZA_ENTRADA) 
					ELSE MAX(J.NATUREZA_ENTRADA) 
				END, 
				CASE WHEN ( A.FORNECEDOR IS NULL AND @MATRIZ_CONTABIL = 1 ) 
					THEN @NATUREZA_TRANSFERENCIA 
					ELSE @NATUREZA_COMPRA 
                END) AS NATUREZA, 
				MAX(@CONDICAO_PGTO) AS CONDICAO_PGTO,
				SERIE_NF_ENTRADA, CAST(CONVERT(VARCHAR(20), MAX(A.EMISSAO), 112) AS DATETIME) AS RECEBIMENTO,'1' AS NF_FATURA, 
				MAX(ISNULL(A.DATA_SAIDA, A.EMISSAO)) AS EMISSAO,
				LEFT(REPLACE(A.NUMERO_NF_TRANSFERENCIA, ' ', ''), 15) AS FATURA, 0 AS FRETE, 0 AS SEGURO, SUM(A.QTDE_TOTAL) AS QTDE_TOTAL, 
				SUM(A.VALOR_TOTAL) AS VALOR_TOTAL, 'ENTRADAS_NF' AS TABELA_FILHA, @MOEDA AS MOEDA, GETDATE() AS DATA_DIGITACAO, 
				ISNULL(A.SERIE_NF_ENTRADA, @SERIE_NF_DEFAULT) AS SERIE_NF_ENTRADA,@EMPRESA AS EMPRESA, 
                ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS FATURA_NOME_CLIFOR, A.NUMERO_NF_TRANSFERENCIA AS FATURA_NUMERO,A.SERIE_NF_ENTRADA AS FATURA_SERIE, 
                @RATEIO_CENTRO_CUSTO AS RATEIO_CENTRO_CUSTO, MAX(C.COD_FILIAL) AS RATEIO_FILIAL,-- SUM(A.QTDE_TOTAL) AS VALOR_SUB_ITENS #52#, 
				SUM(A.VALOR_TOTAL) AS VALOR_SUB_ITENS,
				MAX(ISNULL(N.ESPECIE_SERIE, @ESPECIE_SERIE)) AS ESPECIE_SERIE, MAX(B.COD_CLIFOR) AS COD_CLIFOR_SACADO,
				MAX(M.CHAVE_NFE) CHAVE_NFE,
				MAX(M.PROTOCOLO_AUTORIZACAO_NFE ) PROTOCOLO_AUTORIZACAO_NF,
				MAX(M.DATA_AUTORIZACAO_NFE ) DATA_AUTORIZACAO_NFE,
				MAX(M.STATUS_NFE ) STATUS_NFE,
				MAX(M.FIN_EMISSAO_NFE ) FIN_EMISSAO_NFE,
				MAX(M.TIPO_EMISSAO_NFE ) TIPO_EMISSAO_NFE,
				MAX(@TRANSPORTADORA_PADRAO) TRANSPORTADORA_A_PAGAR 
				FROM   LOJA_ENTRADAS A 
                   INNER JOIN CADASTRO_CLI_FOR B 
				   ON ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                   B.NOME_CLIFOR 
                   INNER JOIN FILIAIS C 
                   ON A.FILIAL = C.FILIAL 
                   INNER JOIN (SELECT TOP 1 FILIAL, ROMANEIO_PRODUTO, PEDIDO_COMPRA 
                               FROM   LOJA_ENTRADAS_PRODUTO 
                               WHERE  ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO
							   AND FILIAL = @FILIAL) D 
							   ON A.ROMANEIO_PRODUTO = D.ROMANEIO_PRODUTO 
                               AND A.FILIAL = D.FILIAL 
                  LEFT JOIN CADASTRO_CLI_FOR G 
                   ON C.FILIAL = G.NOME_CLIFOR 
                   LEFT JOIN LOJA_TIPOS_ENTRADA_SAIDA H 
                   ON A.TIPO_ENTRADA_SAIDA = H.TIPO_ENTRADA_SAIDA 
                   LEFT JOIN LOJAS_NATUREZA_OPERACAO I 
                   ON H.NATUREZA_OPERACAO_ESTADUAL = 
                   I.NATUREZA_OPERACAO_CODIGO 
                   LEFT JOIN LOJAS_NATUREZA_OPERACAO J 
                   ON H.NATUREZA_OPERACAO_INTERESTADUAL = 
                   J.NATUREZA_OPERACAO_CODIGO 
                   LEFT JOIN LOJAS_VAREJO LV 
                   ON A.FILIAL_ORIGEM = LV.FILIAL 
                   LEFT JOIN SERIES_NF N 
                   ON A.SERIE_NF_ENTRADA = N.SERIE_NF 
                    INNER JOIN FATURAMENTO_DADOS_FRANQUIA M 
                   ON (M.NF_SAIDA = A.ROMANEIO_NF_SAIDA OR M.NF_SAIDA = A.NUMERO_NF_TRANSFERENCIA ) 
                   AND M.SERIE_NF = A.SERIE_NF_ENTRADA 
			     --AND M.FILIAL = ISNULL(A.FILIAL_ORIGEM,A.FORNECEDOR) /*#43#*/ 
				   AND M.NOME_CLIFOR = ISNULL(A.FILIAL_ORIGEM,A.FORNECEDOR) /*#43#*/ 
            WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO
                   AND A.FILIAL = @FILIAL
                   AND A.ENTRADA_CONFERIDA = 1 
                   AND A.STATUS_TRANSITO != 0 
                   AND A.QTDE_TOTAL > 0 
            GROUP  BY A.FORNECEDOR, 
                      A.FILIAL_ORIGEM, 
                      A.NUMERO_NF_TRANSFERENCIA, 
                      A.SERIE_NF_ENTRADA 
                     
			UPDATE A 
            SET    NF_ENTRADA = B.NF_ENTRADA, 
                   NOME_CLIFOR = B.NOME_CLIFOR, 
                   SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA, 
                   A.ENTRADA_POR = @ENTRADA_POR 
            FROM   LOJA_ENTRADAS A 
                   INNER JOIN #ENTRADAS B 
                   ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
                   AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
				   AND ISNULL(A.SERIE_NF_ENTRADA, B.SERIE_NF_ENTRADA) = B.SERIE_NF_ENTRADA 
            WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                   AND A.FILIAL = @FILIAL 

            --  ======================================================================================================================== <|FIM|>
            SELECT @CTB_TIPO_OPERACAO_UTILIZADO = A.CTB_TIPO_OPERACAO 
            FROM   NATUREZAS_ENTRADAS A 
                   INNER JOIN(SELECT NATUREZA 
                              FROM   LOJA_ENTRADAS A 
                                     INNER JOIN #ENTRADAS B 
                                     ON A.NUMERO_NF_TRANSFERENCIA = 
                                     B.NF_ENTRADA 
									 AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
									 AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
                              WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                                     AND A.FILIAL = @FILIAL) AS B 
									 ON A.NATUREZA = B.NATUREZA  
									 
									 
		 --== INSERINDO DADOS NAS TEMPORÁRIA ENTRADA_ITEM ========================================================================== <|INICIO|>
            INSERT INTO #ENTRADAS_ITEM (CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, 
                         DESCRICAO_ITEM, UNIDADE, QTDE_ITEM, PRECO_UNITARIO, 
						 PRECO_UNITARIO_ORIGINAL, --#36#
						 DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, 
                         REFERENCIA_PEDIDO, COD_TABELA_FILHA, TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, 
						 RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO) 
				   SELECT MAX(C.CLASSIF_FISCAL) AS CLASSIF_FISCAL ,
						 MAX(CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END)	AS CODIGO_FISCAL_OPERACAO,-- #2# 
                   ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) AS NOME_CLIFOR, A.NUMERO_NF_TRANSFERENCIA  AS NF_ENTRADA , 
                   RIGHT('0000' + CONVERT(VARCHAR, ROW_NUMBER() OVER(PARTITION BY MAX(B.ROMANEIO_PRODUTO) ORDER BY MAX(B.ROMANEIO_PRODUTO), B.PRODUTO)), 4) AS ITEM_IMPRESSAO ,
                   1 AS SUB_ITEM_TAMANHO, B.PRODUTO AS CODIGO_ITEM, MAX(C.DESC_PROD_NF) AS DESCRICAO_ITEM , MAX(C.UNIDADE) AS UNIDADE, 
                   SUM(B.QTDE_ENTRADA) AS QTDE_ITEM, MAX(B.PRECO1) AS PRECO_UNITARIO ,  MAX(B.PRECO1)  AS PRECO_UNITARIO_ORIGINAL ,   0 AS DESCONTO_ITEM, SUM(B.VALOR) AS VALOR_ITEM , 0 AS PESO , 
                   '1' AS FAIXA, B.PRODUTO  AS REFERENCIA , ''  AS REFERENCIA_ITEM,'' AS REFERENCIA_PEDIDO, 'P' AS COD_TABELA_FILHA, MAX(C.TRIBUT_ORIGEM), 
				   /*MAX(C.TRIBUT_ICMS)#13#*/NULL ,
				   ISNULL(MAX(L.INDICADOR_CFOP),MAX(C.INDICADOR_CFOP)),	/*#10#*/		   
				   ISNULL(A.SERIE_NF_ENTRADA, @SERIE_NF) AS SERIE_NF_ENTRADA, 
				   @RATEIO_CENTRO_CUSTO  AS RATEIO_CENTRO_CUSTO, 
				   MAX(G.COD_FILIAL) AS RATEIO_FILIAL,
     			   CASE WHEN A.ENTRADA_POR = 1 then MAX(C.CONTA_CONTABIL) WHEN A.ENTRADA_POR = 2 Then MAX(C.CONTA_CONTABIL_COMPRA) End AS CONTA_CONTABIL, /*#9#*/
				   MAX(DBO.FX_ID_EXCECAO_IMPOSTO(J.CTB_TIPO_OPERACAO, K.CLIFOR,C.INDICADOR_CFOP,'E', A.FILIAL, I.RECEBIMENTO, C.TRIBUT_ORIGEM, 
				   CASE WHEN RTRIM(E.UF) = RTRIM(H.UF) THEN F.CODIGO_FISCAL_OPERACAO ELSE F.CODIGO_FISCAL_INTERESTADUAL END,
				   B.PRODUTO, A.NOME_CLIFOR, 'P',I.NATUREZA, G.COD_FILIAL)) AS ID_EXCECAO_IMPOSTO  
            FROM   LOJA_ENTRADAS A 
                   INNER JOIN LOJA_ENTRADAS_PRODUTO B 
                   ON A.ROMANEIO_PRODUTO = B.ROMANEIO_PRODUTO 
                   AND A.FILIAL = B.FILIAL 
                   INNER JOIN PRODUTOS C 
                   ON B.PRODUTO = C.PRODUTO 
                   INNER JOIN PRODUTO_CORES D 
                   ON B.PRODUTO = D.PRODUTO 
                   AND B.COR_PRODUTO = D.COR_PRODUTO 
                   INNER JOIN CADASTRO_CLI_FOR E 
                   ON ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = 
                   E.NOME_CLIFOR 
                   LEFT JOIN CTB_LX_CARACTERISTICA_CFOP F 
                   ON E.INDICADOR_FISCAL_TERCEIRO = F.INDICADOR_FISCAL_TERCEIRO 
                   AND F.CTB_TIPO_OPERACAO = @CTB_TIPO_OPERACAO_UTILIZADO 
                   AND F.INDICADOR_CFOP = C.INDICADOR_CFOP 
                   INNER JOIN FILIAIS G 
                   ON A.FILIAL = G.FILIAL 
                   INNER JOIN CADASTRO_CLI_FOR H 
                   ON G.FILIAL = H.NOME_CLIFOR 
                   INNER JOIN #ENTRADAS I 
                   ON A.NF_ENTRADA = I.NF_ENTRADA 
                   AND A.SERIE_NF_ENTRADA = I.SERIE_NF_ENTRADA 
                   AND A.NOME_CLIFOR = I.NOME_CLIFOR 
                   INNER JOIN NATUREZAS_ENTRADAS J 
                   ON I.NATUREZA = J.NATUREZA 
                   INNER JOIN CADASTRO_CLI_FOR K 
                   ON I.NOME_CLIFOR = K.NOME_CLIFOR
				   LEFT JOIN PRODUTOS_INDICADOR_CFOP L /*#10#*/
				   --on C.INDICADOR_CFOP =L.INDICADOR_CFOP /*#55#*/
				   ON C.PRODUTO = L.PRODUTO				   /*#55#*/	
            WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
                   AND A.FILIAL = @FILIAL 
                   AND A.ENTRADA_CONFERIDA = 1 
         AND A.STATUS_TRANSITO != 0 
                  AND B.QTDE_ENTRADA > 0 
            GROUP  BY A.FORNECEDOR, 
                      A.FILIAL_ORIGEM, 
                      A.NUMERO_NF_TRANSFERENCIA, 
                      A.SERIE_NF_ENTRADA, 
                      B.PRODUTO ,
					  A.ENTRADA_POR --#9#
					  
		UPDATE	#ENTRADAS_ITEM
		SET		TRIBUT_ICMS = CASE 
		WHEN CEI.TRIBUT_ICMS IS NOT NULL THEN CEI.TRIBUT_ICMS
		ELSE (	SELECT	MAX(PROD.TRIBUT_ICMS) 
		FROM	PRODUTOS PROD
		JOIN	#ENTRADAS_ITEM EI
		ON	EI.CODIGO_ITEM = PROD.PRODUTO)
		END
		FROM	#ENTRADAS_ITEM EI
		LEFT JOIN	CTB_EXCECAO_IMPOSTO CEI
			ON	EI.ID_EXCECAO_IMPOSTO = CEI.ID_EXCECAO_IMPOSTO
		JOIN	PRODUTOS PROD
			ON	PROD.PRODUTO = EI.CODIGO_ITEM
					  										 
		 BEGIN TRAN 

				INSERT INTO ENTRADAS (NOME_CLIFOR, NF_ENTRADA, FILIAL, COD_TRANSACAO, NATUREZA, CONDICAO_PGTO, SERIE_NF, RECEBIMENTO, NF_FATURA, EMISSAO, FATURA, 
							 FRETE, SEGURO, QTDE_TOTAL, VALOR_TOTAL, TABELA_FILHA, MOEDA, DATA_DIGITACAO, SERIE_NF_ENTRADA, EMPRESA, FATURA_NOME_CLIFOR, FATURA_NUMERO, 
							 FATURA_SERIE, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, VALOR_SUB_ITENS, ESPECIE_SERIE, COD_CLIFOR_SACADO, CHAVE_NFE, PROTOCOLO_AUTORIZACAO_NFE, 
							 DATA_AUTORIZACAO_NFE, STATUS_NFE, FIN_EMISSAO_NFE, TIPO_EMISSAO_NFE, TRANSPORTADORA_A_PAGAR) 
				SELECT NOME_CLIFOR,NF_ENTRADA, FILIAL, COD_TRANSACAO, NATUREZA, CONDICAO_PGTO, SERIE_NF, RECEBIMENTO, NF_FATURA, EMISSAO, FATURA, FRETE, 
					   SEGURO, QTDE_TOTAL, VALOR_TOTAL, TABELA_FILHA, MOEDA, DATA_DIGITACAO, SERIE_NF_ENTRADA, EMPRESA, FATURA_NOME_CLIFOR, FATURA_NUMERO, FATURA_SERIE, 
					   RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, VALOR_SUB_ITENS, ESPECIE_SERIE, COD_CLIFOR_SACADO, CHAVE_NFE, PROTOCOLO_AUTORIZACAO_NFE, DATA_AUTORIZACAO_NFE, 
					   STATUS_NFE, FIN_EMISSAO_NFE, TIPO_EMISSAO_NFE, TRANSPORTADORA_A_PAGAR 
				FROM   #ENTRADAS 

				UPDATE A  
				SET    A.CODIGO_FISCAL_OPERACAO = CASE 
													  WHEN B.CFOP_OBRIGATORIO IS NOT NULL THEN B.CFOP_OBRIGATORIO --#1# 
												  ELSE A.CODIGO_FISCAL_OPERACAO 
												  END 
				FROM   
				#ENTRADAS_ITEM A 
				INNER JOIN CTB_EXCECAO_IMPOSTO B (NOLOCK) 
				ON A.ID_EXCECAO_IMPOSTO = B.ID_EXCECAO_IMPOSTO 

				-- == INSERINDO NA TABELA DE ENTRADAS_ITEM A PARTIR DE SUA TEMPORARIA ====================================================== <|INICIO|>
				INSERT INTO ENTRADAS_ITEM (CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, 
							 DESCRICAO_ITEM, UNIDADE, QTDE_ITEM, PRECO_UNITARIO,
							 PRECO_UNITARIO_ORIGINAL, --#36#
							 DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, 
							 REFERENCIA_PEDIDO, COD_TABELA_FILHA, TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, 
							 RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO) 
				SELECT CLASSIF_FISCAL, CODIGO_FISCAL_OPERACAO, NOME_CLIFOR, NF_ENTRADA, ITEM_IMPRESSAO, SUB_ITEM_TAMANHO, CODIGO_ITEM, DESCRICAO_ITEM, UNIDADE, 
					   QTDE_ITEM, PRECO_UNITARIO, PRECO_UNITARIO_ORIGINAL,  DESCONTO_ITEM, VALOR_ITEM, PESO, FAIXA, REFERENCIA, REFERENCIA_ITEM, REFERENCIA_PEDIDO, COD_TABELA_FILHA, 
					   TRIBUT_ORIGEM, TRIBUT_ICMS, INDICADOR_CFOP, SERIE_NF_ENTRADA, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONTA_CONTABIL, ID_EXCECAO_IMPOSTO 
				FROM   #ENTRADAS_ITEM 


                        COMMIT 
        END 		                      
--#15# - FIM 

--#45#
	UPDATE	PROD 
	SET		PROD.ITEM_IMPRESSAO = C.ITEM_IMPRESSAO 
	FROM   LOJA_ENTRADAS A (NOLOCK)
		INNER JOIN ENTRADAS B (NOLOCK)
			ON	A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
			AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
			AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
		INNER JOIN ENTRADAS_ITEM C
			ON	B.NF_ENTRADA		= C.NF_ENTRADA
			AND B.NOME_CLIFOR		= C.NOME_CLIFOR
		INNER JOIN LOJA_ENTRADAS_PRODUTO PROD
			ON	A.ROMANEIO_PRODUTO = PROD.ROMANEIO_PRODUTO  
			AND	A.FILIAL= PROD.FILIAL 
			AND PROD.PRODUTO = C.REFERENCIA 
			AND PROD.COR_PRODUTO = C.REFERENCIA_ITEM 
	WHERE	A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO
	AND		A.FILIAL = @FILIAL          
	AND		B.NF_ENTRADA IS NOT NULL
	AND		C.NF_ENTRADA IS NOT NULL
--#45#

-- #21#
			--UPDATE PROD SET PROD.ITEM_IMPRESSAO = ENT_ITEM.ITEM_IMPRESSAO 
			--FROM   LOJA_ENTRADAS A (NOLOCK)
			--INNER JOIN ENTRADAS B (NOLOCK)
			--ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
			--AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
			--AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
			--INNER JOIN ENTRADAS_ITEM C
			--ON B.NF_ENTRADA		= C.NF_ENTRADA
			--AND B.NOME_CLIFOR   = C.NOME_CLIFOR
			--INNER JOIN LOJA_ENTRADAS_PRODUTO PROD
			--ON A.ROMANEIO_PRODUTO = PROD.ROMANEIO_PRODUTO  AND
			--A.FILIAL              = PROD.FILIAL AND PROD.PRODUTO = C.CODIGO_ITEM -- #32#
			--INNER JOIN --ENTRADAS_ITEM ENT_ITEM
			--(
			--	SELECT NOME_CLIFOR, 
			--	NF_ENTRADA, 
			--	SERIE_NF_ENTRADA, 
			--	ITEM_IMPRESSAO, 
			--	MAX(REFERENCIA)PRODUTO, 
			--	MAX(REFERENCIA_ITEM) COR_PRODUTO 
			--	FROM ENTRADAS_ITEM  
			--	GROUP BY NOME_CLIFOR, 
			--	NF_ENTRADA, 
			--	SERIE_NF_ENTRADA, 
			--	ITEM_IMPRESSAO 
			--)ENT_ITEM
			--ON ENT_ITEM.NF_ENTRADA		  = C.NF_ENTRADA
			--AND ENT_ITEM.SERIE_NF_ENTRADA = C.SERIE_NF_ENTRADA
			--AND ENT_ITEM.NOME_CLIFOR	  = B.NOME_CLIFOR
			--AND ENT_ITEM.PRODUTO = PROD.PRODUTO -- #32#
			--WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO
			--AND A.FILIAL = @FILIAL 
			--AND B.NF_ENTRADA IS NOT NULL
			--AND C.NF_ENTRADA IS NOT NULL
			--AND (PROD.ITEM_IMPRESSAO IS NULL or (PROD.ITEM_IMPRESSAO <> ENT_ITEM.ITEM_IMPRESSAO))

      --TRATAMENTO PARA ITEM IMPRESSAO

	  	IF OBJECT_ID('tempdb..#TEMP_ITEM_IMPRESSAO') is not null
		BEGIN 
			DROP TABLE #TEMP_ITEM_IMPRESSAO 
		END 

      SELECT ENT_ITEM.ITEM_IMPRESSAO ,PROD.PRODUTO,PROD.COR_PRODUTO ,A.ROMANEIO_PRODUTO,NUMERO_NF_TRANSFERENCIA
			INTO #TEMP_ITEM_IMPRESSAO
			FROM   LOJA_ENTRADAS A (NOLOCK)
			INNER JOIN ENTRADAS B (NOLOCK)
			ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
			AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
			AND A.SERIE_NF_ENTRADA = B.SERIE_NF_ENTRADA 
			INNER JOIN ENTRADAS_ITEM C
			ON B.NF_ENTRADA		= C.NF_ENTRADA
			AND B.NOME_CLIFOR   = C.NOME_CLIFOR
			INNER JOIN LOJA_ENTRADAS_PRODUTO PROD
			ON A.ROMANEIO_PRODUTO = PROD.ROMANEIO_PRODUTO  AND
			A.FILIAL              = PROD.FILIAL 
			INNER JOIN --ENTRADAS_ITEM ENT_ITEM
			(
				SELECT NOME_CLIFOR, 
				NF_ENTRADA, 
				SERIE_NF_ENTRADA, 
				ITEM_IMPRESSAO, 
				MAX(REFERENCIA)PRODUTO, 
				MAX(REFERENCIA_ITEM) COR_PRODUTO 
				FROM ENTRADAS_ITEM  
				GROUP BY NOME_CLIFOR, 
				NF_ENTRADA, 
				SERIE_NF_ENTRADA, 
				ITEM_IMPRESSAO 
			)ENT_ITEM
			ON ENT_ITEM.NF_ENTRADA		  = C.NF_ENTRADA
			AND ENT_ITEM.SERIE_NF_ENTRADA = C.SERIE_NF_ENTRADA
			AND ENT_ITEM.NOME_CLIFOR	  = B.NOME_CLIFOR
			WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO
			AND A.FILIAL = @FILIAL 
			AND B.NF_ENTRADA IS NOT NULL
			AND C.NF_ENTRADA IS NOT NULL
			AND (PROD.ITEM_IMPRESSAO IS NULL or (PROD.ITEM_IMPRESSAO <> ENT_ITEM.ITEM_IMPRESSAO))


		UPDATE C SET ITEM_IMPRESSAO = B.ITEM_IMPRESSAO
		FROM #TEMP_ITEM_IMPRESSAO A
		INNER JOIN FATURAMENTO_PROD B
		ON A.PRODUTO = B.PRODUTO 
		AND A.NUMERO_NF_TRANSFERENCIA =  B.NF_SAIDA 
		AND A.COR_PRODUTO =B.COR_PRODUTO 
		INNER JOIN LOJA_ENTRADAS_PRODUTO C
		ON B.PRODUTO =C.PRODUTO 
		AND B.COR_PRODUTO = C.COR_PRODUTO
		AND C.ROMANEIO_PRODUTO = A.ROMANEIO_PRODUTO 

--#21# FIM 





If isnull(@SERIE_NF_ENTRADA,'') = '' --#23#
Begin 
	 Select @SERIE_NF_ENTRADA = SERIE_NF_ENTRADA from Loja_entradas where ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO and FILIAL = @FILIAL
End 
	 -- #28#
	
      EXEC Lx_gera_impostos_entrada @NOME_CLIFOR, @NF_ENTRADA, @SERIE_NF_ENTRADA, 0, 1, 1 

      EXEC Lx_concilia_impostos_entrada_por_saida @NOME_CLIFOR, @NF_ENTRADA, @SERIE_NF_ENTRADA 

      --INTEGRAÇÃO CONTÁBIL    
      IF EXISTS(SELECT 1 FROM   parametros (nolock) 
                WHERE  parametro = 'CONTABILIDADE_ATIVA' 
                       AND valor_atual = '.T.') 

        EXEC Lx_ctb_integrar_entrada @NOME_CLIFOR, @NF_ENTRADA, @SERIE_NF_ENTRADA 

      IF Isnull(@PEDIDO, '') != '' 
        BEGIN 
			-- #14# - Entrada pode conter mais de 1 pedido. Necessário verificação abaixo para ajuste nos pedidos de compra.
			--EDSON
					--EXEC Lx_movimenta_compras_pa 
					-- @PEDIDO 
			--#8# - FIM
			DECLARE @PEIDO_COMPRA VARCHAR(1000)
			DECLARE CUR_MOVIMENTA_PEDIDO CURSOR FOR
					SELECT DISTINCT LOJA_ENTRADAS_PRODUTO.PEDIDO_COMPRA
					FROM		LOJA_ENTRADAS LOJA_ENTRADAS 
					INNER JOIN  LOJA_ENTRADAS_PRODUTO LOJA_ENTRADAS_PRODUTO ON LOJA_ENTRADAS_PRODUTO.FILIAL = LOJA_ENTRADAS.FILIAL AND  LOJA_ENTRADAS_PRODUTO.ROMANEIO_PRODUTO = LOJA_ENTRADAS.ROMANEIO_PRODUTO 
					INNER JOIN	LOJAS_VAREJO LOJAS_VAREJO ON LOJA_ENTRADAS.FILIAL = LOJAS_VAREJO.FILIAL
					WHERE  
						LOJA_ENTRADAS.ROMANEIO_PRODUTO	 = @ROMANEIO_PRODUTO 
					AND LOJA_ENTRADAS.FILIAL			 = @FILIAL 
					AND LOJA_ENTRADAS.ENTRADA_CONFERIDA  = 1 
					AND LOJA_ENTRADAS.STATUS_TRANSITO	!= 0 
					AND LOJA_ENTRADAS.QTDE_TOTAL		> 0 
					AND LEN(LOJA_ENTRADAS_PRODUTO.PEDIDO_COMPRA) > 0

				OPEN CUR_MOVIMENTA_PEDIDO
				FETCH NEXT FROM CUR_MOVIMENTA_PEDIDO INTO @PEIDO_COMPRA
				WHILE @@FETCH_STATUS=0
				BEGIN
					BEGIN TRY
						EXEC Lx_movimenta_compras_pa  @PEIDO_COMPRA
					END TRY
					BEGIN
						CATCH
						 IF @@TRANCOUNT > 0 ROLLBACK TRAN
					END CATCH	
					FETCH NEXT FROM CUR_MOVIMENTA_PEDIDO INTO @PEIDO_COMPRA
				END
				CLOSE CUR_MOVIMENTA_PEDIDO
				DEALLOCATE CUR_MOVIMENTA_PEDIDO
		END
  
  -- #35# Remoção do Update devido ao processo de reprocessamento das transferências.
  -- #29# ATUALIZAR APENAS ENTRADAS POR FORNECEDOR ENTRADA_POR = 1 PARA FINS DE CUSTO MEDIO.
			-- UPDATE A 
            -- SET    NF_ENTRADA = null, 
            --        SERIE_NF_ENTRADA = null				   
            -- FROM   LOJA_ENTRADAS A 
            --       INNER JOIN ENTRADAS B 
            --        ON A.NUMERO_NF_TRANSFERENCIA = B.NF_ENTRADA 
            --        AND ISNULL(A.FORNECEDOR, A.FILIAL_ORIGEM) = B.NOME_CLIFOR 
			-- 	   AND ISNULL(A.SERIE_NF_ENTRADA, B.SERIE_NF_ENTRADA) = B.SERIE_NF_ENTRADA 
            -- WHERE  A.ROMANEIO_PRODUTO = @ROMANEIO_PRODUTO 
            --        AND A.FILIAL = @FILIAL 
			--     AND A.ENTRADA_POR = 1
  
  
  END 
GO

