Descrição: No módulo Notas Fiscais, ao tentar aprovar a NF-e, é retornada a seguinte mensagem: Error: 50000 Message: Rejeição: Falha no Schema XML do lote de NFe. Falha de Esquema: O elemento 'pag' está vazio. Informe seu conteúdo.

Causa: O incidente ocorre pois o elemento <PAG> no XML está vazio.

Solução: Para aprovar a NF-e, execute os passos a seguir:

  1. Consulte a NF-e pendente em LinxPOS Manager > Gerencial > Notas Fiscais;
  2. Abra a NF-e rejeitada, na aba Cabeçalho selecione ‘Presencial’ no campo Indica Presença Comprador;
  3. Na tela Nova nota fiscal, clique em Avançar duas vezes e clique em Finalizar;

  4. Clique em Ok e a nota será enviada novamente para autorização;

  5. Caso o incidente continue, feche o LinxPOS Manager;
  6. Abra o banco de dados (SQL) no servidor da loja e execute a query a seguir:

    Banco de dados
    ALTER PROCEDURE [DBO].[LX_GERA_NFE_SEFAZ_4_00]  @NOTAFISCAL VARCHAR(15), @SERIENOTA VARCHAR(6), @FILIALNOTA VARCHAR(25), @RETORNA_XML BIT = 0, @APP_VERSAO VARCHAR(20) = NULL
    	WITH ENCRYPTION 
    AS										
    /*
    -- DM 83158 - André Artuzo - #54# - 05/07/2018 - Não informar VPAG quando TPAG = 90
    -- DM 80414 - Diego Moreno - #53# - 26/06/2018 - Diego Moreno - NOTA TECNICA 2016.002 Versão 1.60.
    -- DM 77455	- Diego Moreno - #52# - 08/06/2018 - Melhoria de performance.
    -- DM 75228 - FABIO/WENDEL/RAFAEL VIANA/  #51# - 17/05/2018 - Correção para não enviar os campos de pagamento com cartão (tBand , CNPJ, cAut ) quando o pagamento for através de cartão manual.
    -- DM 70052 - Diego Moreno  #50# (09/04/2018) - Correção para gerar corretamente a tag tBand quando houver necessidade.
    -- DM 69834 - Giedson Silva  #49# (06/04/2018) - Tratamento para não considerar valor como inteiro durante o processo de comparação.
    -- DM 68765 - Wendel Crespigio  #48# (29/03/2018) - Tratamento para quando existir venda com arredondar e ou troco.
    -- DM 64234	- Diego Moreno - #47# - (20/09/2017)  - Adequacao NFE 4.00. Melhoria para atender ao layout 4.0.
    -- DM 61973 - Wendel Crespigio #46# - (09/02/2018) - NF-e 4.0 - Correção para nota fiscal de transferencia.  
    -- DM 58430	- Diego Moreno - #45# - (20/09/2017) - Adequacao NFE 4.00. Melhoria para atender ao layout 4.0.
    -- DM 34410   - Vívian Domingues - #44# - (22/06/2017) - Alteração para que some corretamente o valor total do imposto da nota.
    -- DM 3823    - Vívian Domingues - #43# - (17/08/2016) - Alteração do local da busca do campo IEST.
    -- ID 6969 - Fillipi Ramos - #42# - (Duplicação da Demanda 3824) - Correção para somente gerar as tags da partilha se existir valor de DICMS.
    -- DM 802  - Gerson Prado  #41# - (09/06/2016) - Correção na criação da TAG infAdFisco, formatar a variavel @OBS_INTERESSE_FISCO
    -- ID2454 - Giedson Silva - #40# - (20/04/20vPag16) - Retirada da soma dos campos FECP_DEST_VALOR e FECP_DEST na tag "vICMSUFDest"
    -- DM 804     - Edson Filenti    #39# (01/04/2016 -  Correção para gerar corretamente a NFE quando possui ICMS_SNST referente TP 9156094 e 9381183
    -- DM802          - Gilvano.Santos - #38# - (18/03/2016) - Correção na criação da tag "infAdFisco"
    -- DM1995 ou 129 - Giedson Silva #37# (07/03/2016) - Tratamento para gerar as informações do produto NVE.
    -- DM802      - Gerson Prado #36# (24/02/2016) - Tratamento para não gerar a TAG InfAdFisco quando o valor do campo for nulo ou vazio.
    -- DM1873     - Wendel Crespigio #35# (22/0/2016) -  Tratamento para nota fiscal NFE referenciada.
    -- ID 1218 - Gerson Prado - #34# - (17/12/2015) - Correção no calculo do diferemento de ICMS conforme a orientação de preenchimento da SEFAZ.
    -- TP10769689 - Diego.Moreno - #33# - (02/12/2015) - Deve gerar as tags mesmo zerado conforme NT 2015.003 1.40.
    -- TP10769689 - Diego.Moreno - #32# - (02/12/2015) - Austes referente ao documento Nota Técnica 2015.003 - v 1.40.
    -- TP10769689 - Diego.Moreno - #31# - (26/11/2015) - Deve ser gerado um grupo a parte do ICMS para a partilha e ID_DESTINO_OPERACAO deve ser 2.
    -- TP10769689 - Gilvano.Santos - #30# - (18/11/2015) - Adequação NT 2015.003 - Inclusão do codigo CEST
    -- TP10622549 - Gerson Prado e Roberto Beda - #29# - (11/10/2015) - Correção da clausula WHERE na validação dos itens referenciados na nota de troca
    -- TP9093691 - Giedson Silva - #28# - (01/09/2015) -  Implementação de ICMS Diferido para a NFE 3.10 (Alinhamento da geração TAG de Diferimento conforme procedure de Retaguarda). 
    -- TP8936960 - Victor kajiyama - #27# - (22/06/2015) -  Implementação de ICMS Diferido para a NFE 3.10. 
    -- TP8304984 - THIAGO.MARCON - #26# - (01/05/2015) - ACERTO IMPLEMENTACAO CONSIGNACAO
    -- (SEM TP!) - DIEGO.MORENO - #25# - (22/04/2015) - #FORÇA TAREFA LAYOUT 3.10# - CORREÇÃO PARA BUSCAR CORRETAMENTE DATA_CONTINGENCIA + UTC.
    - TP8304984 - JORGE.DAMASCO - #24# - (22/04/2015) - #FORÇA TAREFA LAYOUT 3.10# - CORREÇÃO PARA PEGAR "B.FILIAL" AO INVÉS DE @FILIALNOTA.
    -- TP8352903 - DIEGO.MORENO - #23# - (20/04/2015) - #FORÇA TAREFA LAYOUT 3.10# - Correção para que gere a tag "pDevol"/"vIPIDevol"/ impostoDevol corretamente.
    -- (SEM TP!) - JORGE.DAMASCO - #22# - (20/04/2015) - #FORÇA TAREFA LAYOUT 3.10#:
    --													ADD TRATAMENTO PARA LEVAR OITO DIGITOS NA TAG DE NCM QUANDO TAMBÉM QUANDO A SITUAÇÃO TRIBUTARIA DO IPI FOR '53' - "Saída Não-Tributada".
    --													ADD TRATAMENTO PARA LEVAR OITO DIGITOS NA TAG DE NCM QUANDO A SITUAÇÃO TRIBUTARIA DO IPI FOR '03'.
    -- TP8352903 - DIEGO.MORENO - #21# - (17/04/2015) - #FORÇA TAREFA LAYOUT 3.10# - Validar corretamente o IPI dos itens para gerar a tag PDEVOL.
    -- TP8304984 - JORGE.DAMASCO - #20# - (14/04/2015) - IMPLEMEfNTAÇÃO PARA QUANDO SE TRATAR DE UMA NOTA DE DEVOLUÇÃO P/ RESERVA/CONSIGNAÇÃO.
    -- TP8286728 - DIEGO.MORENO - #19# - (09/04/2015) - Correção no nome das colunas de: CGC_ENCOMENDANTE_ADIQUIRENTE e UF_ENCOMENDANTE_ADIQUIRENTE
    -- PARA : CGC_ENCOMENDANTE_ADQUIRENTE e UF_ENCOMENDANTE_ADQUIRENTE
    -- TP8226401 - JORGE.DAMASCO - #18# - (01/04/2015) - Replicações de demandas referentes à BANCO ONLINE.
    12/10/2014  -   GILVANO - #17# - REMOÇÃO DE ESPAÇO DO CAMPO CNPJ E CPF PARA A TAG autXML
    06/10/2014  -   GILVANO/EDSON - #16# - NOTA TÉCNICA 2013.005 V1.03 - 29.X - DOCUMENTO FISCAL REFERENCIADO 
    03/10/2014  -	RODRIGO- #15# - NOTA TÉCNICA 2013.005 V1.03 - Adicionado as tags campos indISS , nProcesso e indIncentivo.
    02/10/2014  -	RODRIGO- #14# - NOTA TÉCNICA 2013.005 V1.03 - Não gerar a tag CNPJ na operação com exterior.
    08/09/2014  -   SAMUEL - #13# - NOTA TÉCNICA 2013.005 V1.03 - 
    29/08/2014  -   EDSON  - #12# - NOTA TÉCNICA 2013.005 V1.02 - 03.7 - IDENTIFICAÇÃO DO DESTINATÁRIO
    29/08/2014  -   EDSON  - #11# - NOTA TÉCNICA 2013.005 v1.02 - 03.2 - ALTERAÇÃO NO FORMATO DA DATA PARA UTC E REMOVER INF HORA.
    29/08/2014  -   EDSON  - #10# - NOTA TÉCNICA 2013.005 V1.02 - 03.7 - IDENTIFICAÇÃO DO DESTINATÁRIO. OPERAÇÃO COM O EXTERIOR, OU PARA COMPRADOR ESTRANGEIRO. INFORMAR O NÚMERO DO PASSAPORTE OU OUTRO DOCUMENTO LEGAL PARA IDENTIFICAR PESSOA ESTRANGEIRA.
    29/08/2014  -   EDSON  - #9#  - NOTA TÉCNICA 2013.005 v1.02 - 03.6 - INDICA PRESENÇA DO COMPRADOR - indPres
    29/08/2014  -   EDSON  - #8#  - NOTA TÉCNICA 2013.005 v1.02 - 03.6 - INDICA OPERAÇÃO COM CONSUMIDOR FINAL - indFinal
    29/08/2014  -   EDSON  - #7#  - INCLUSÃO DA COLUNA idDest - Ref.: LAYOUT 3.10 - NOTA TÉCNICA 2013.005 v1.02 - 03.3 - INCLUSÃO DO ID LOCAL DESTINO. (1 - INTERNO; 2 - INTERESTADUAL; 3 - EXTERIOR)
    Versão Atualização Linx: 2.00.0010 <<<-- 
    29/08/2013  -	RAFAEL - #6# - ADD TRATAMENTO PARA CARREGAR O CAMPO CODIGO_FCI NOTA TÉCNICA 2013/006
    06/08/2013  -	RAFAEL - #5# - TP 3997086 - CORREÇÃO DO TRATAMENTO DO EMAIL
    19/07/2013  -   WENDEL OLIVEIRA - #4# - TP3997086 - TIRANDO ESPAÇO EM BRANCO DO CAMPO EMAIL_NFE 
    29/05/2013  -   SAMUEL - #3# - ACERTO NO CALCULO DO VALOR TOTAL DOS IMPOSTOS #2#
    16/05/2013	-	RAFAEL  - #2# - INCLUSAO DO TRATAMENTO PARA O VALOR TOTAL DOS IMPOSTOS DO ITEM CONFORME LEI 12741/2012
    25/04/2013	-	RAFAEL	- #1# - INCLUSAO DO TRATAMENTO PARA O VALOR TOTAL DOS IMPOSTOS DO ITEM
    09/10/2012  -	RAFAEL  - INCLUSAO DO CAMPO UF_PLACA_VEICULO
    08/10/2012  -	RAFAEL  - INCLUSAO DO TRATAMENTO DO VEICULO_PLACA
    27/09/2012	-	Roberto Beda - TP 2984304 - VARIÁVEL @NOME_CLIFOR PASSA A TER 40 CARACTERES PARA SUPORTAR CLIENTES_VAREJO.CLIENTE_VAREJO
    05/09/2012  -	RAFAEL  - INCLUSAO DO CAMPO - HORA_SAIDA
    18/11/2011  -   PADIAL	- INCLUSÃO DO CAMPO NOME_FANTASIA_EMITENTE PARA O EMITENTE DA NOTA DE ACORDO COM PARAMETRO EXIBE_NOME_FANTASIA_XML
    11/11/2011	-	PADIAL	- INCLUIDA A REGRA DA SUFRAMA DENTRO DA VIEW DE ACORDO COM O INDICADOR FISCAL TERCEIRO
    
    Versão Atualização Linx: 2.00.0008 <<<-- 
    
    NT2011.004
    31/10/2011  -	PADIAL	- ALTERAÇÃO DA REGRA DO IMPOSTO II PARA SEMPRE SER GERADO NO ITEM MESMO QUE FOR ZERADO
    17/10/2011  -   PADIAL	- SEPARACAO DAS INFORMACOES REFERENTES A NOTA DE SERVICO PARA TOTAL DOS ITENS, PIS E COFINS
    03/10/2011  -	PADIAL	- ERRO NA REGRA DE VALIDACAO DOS MUNICIPIOS 1600303 E 1600600 DO CAMPO ISUF
    19/09/2011	-	PADIAL	- INCLUSAO DO IMPOSTO ICMS_ZF PARA TRATAMENTO DE DESONERACAO DO ICMS40	
    19/04/2011	-	PADIAL	- ALTERACAO DO TRATAMENTO DO ICMS60 ONDE OS CAMPOS vBCSTRet, vICMSSTRet NÃO SÃO MAIS OBRIGATORIOS
    
    18/08/2011  -	PADIAL	- O IMPOSTO ISS_R NÃO ESTAVA SENDO TRATADO CORRETAMENTE
    16/08/2011  -	PADIAL	- ALTERACAO DA ESTRUTURA DO GRUPO ISSQN QUE ESTAVA NO LUGAR ERRADO DEVIDO AO SCHEMA IT 1.00
    						- INCLUIDO O GRUPO ISSQN ANTES DO IMPOSTO PIS
    
    Versão Atualização Linx: 2.00.0005 <<<--  
    24/05/2011	-	PADIAL	- INCLUSAO DOS CAMPOS COM VALOR DE PARAMETRO NA VIEW PARA RETIRAR O SELECT DO XML
    16/05/2011  -   PADIAL	- ALTERACAO DO GRUPO retTrib, ONDE NÃO É INCLUIDO OS ELEMENTOS COM OS VALORES ZERADOS
    06/05/2011	-	PADIAL	- INCLUSAO DO CAMPO EAN PARA O ITEM
    06/05/2011	-	PADIAL	- ALTERACAO DO GRUPO ICMSSN900 PARA INCLUIR O VALOR O SIMPLES_F NO LUGAR DO IMPOSTO ICMS QUE ERA UTILIZADO ANTERIORMENTE
    05/05/2011  -	PADIAL	- TRATAMENTO DO CAMPO EXTIPI PARA NAO ENVIAR COM VALOR MENOR QUE DOIS CARACTERES
    05/05/2011	-	PADIAL	- INCLUSAO DA FX REPLACE NO CAMPO CEP PARA TRATAMENTO DE CAMPOS NUMÉRICOS
    
    Versão Atualização Linx: 2.00.0004 <<<--  
    
    27/04/2011  -  PADIAL	- ALTERACAO DO CAMPO PMVAST QUE SE FOR ZERO COLOCAR NULO PARA NAO EXIBIR A TAG NO XML		
    
    11/04/2011 -	PADIAL	- INCLUSAO DO IMPOSTO ICMS_BST PARA SER TRATADO NO ICMS51 SOMENTE. EM NENHUM OUTRO CASO ELE GERA VALOR NO XML.
    04/04/2011 -	PADIAL	- TRATAMENTO PARA O CAMPO INFORMACAO DO FISCO, CASO SEJA EM BRANCO LEVAR NULLO PORQUE A SEFAZ NAO ACEITA	
    04/04/2011 -	PADIAL	- TRATAMENTO NOTA TÉCNICA 2010/009 
    
    Versão Atualização Linx: 2.00.0002 <<<--  
    
    25/02/2011 -	PADIAL - INCLUSAO DA ATUALIZACAO DA CHAVE NFE PARA LOJA/ENTRADA E FATURAMENTO
    25/02/2011 -    PADIAL - TRATAMENTO CARACTER ESPECIAL NO CAMPO "infAdProd"
    23/02/2011 -	PADIAL - INCLUIDO UPPER NA OBSERVACAO COLOCAR DEPOIS NOS OBJETOS DA NF-E
    23/02/2011 -	PADIAL - CORREÇÃO DOS DADOS DE ENTREGA QUE NAO ESTAVA CONTEMPLANDO PESSOA FISICA
    23/02/2011 -	PADIAL - INCLUSÃO DO TRATAMENTO DO IMPOSTO ICMS_SN (55) PARA O SIMPLES NACIONAL QDO HOVER AS TAGS "pCredSN" e "VCredICMSSN"
    						 ONDE O SIMPLES_F É O ICMS NORMAL DO SIMPLES NACIONAL E O IMPOSTO ICMS_SN É SOMENTE O VALOR DO ICMS A SE CREDITAR
    						 DEFINIDO COM JOAO CESTARI EM 23/02/2011
    16/02/2011 -	PADIAL  - FX_REPLACE_CARACTER_ESPECIAL_NFE NO CAMPO JUSTIFICATIVA_CONTINGENCIA
    03/02/2011 -	PADIAL	- CORREÇÃO DO CODIGO DO IPITRIB PARA QUANDO NAO É BEBIDA
    17/01/2011 -	PADIAL	- INCLUSÃO DE PARAMETRO NA FUNCAO FX_REPLACE_CARACTER_ESPECIAL
    
    12/01/2011	-	PADIAL	- ALTERADO O TRATAMENTO DO NOME FANTASIA E RAZAO SOCIAL PARA O EMITENTE DA NFE
    29/12/2010	-	PADIAL	- TEM QUE SER TRATADO O NOME CLIFOR CORRETO PARA ENTRADA SENAO DA PROBLEMA NA NOTA REFERENCIADA
    30/11/2010	-	PADIAL	- ALTERACAO DO TRATAMENTO DO NCM PARA O IPI NAO TRIBUTADO. VERIFICAR COM CESTARI SOBRE COMO TRATAR CORRETAMENTE ESTE CASO
    29/11/2010	-	PADIAL	- INCLUSAO DO TRATAMENTO PARA O IPI POR QUANTIDADE PARA BEBIDAS NOS ELEMENTOS qUnid e vUnid
    17/11/2010	-	PADIAL	- COMENTADO A PARTE DE VALORES DO ICMS 51 - DIFERIMENTO: EM CONVERSA COM CESTARI EM 17/10/2010, FICOU ACERTADO QUE NAO VAMOS ENVIAR 
    						  OS VALORES DO ICMS, PRINCIPALMENTE PORQUE TERIAMOS QUE FAZER UM TRATAMENTO ESPECIFICO PARA ESTES VALORES, PORQUE NAO FAZEM PARTE 
    						  DA BASE DE CALCULO DO TOTAL DA NOTA.
    17/11/2010	-	PADIAL	- TRATAMENTO DA VERSAO 2.0 PARA O CAMPO ISUF (INSCRICAO SUFRAMA)
    -------------------------------------------------------------------------------------
    16/11/2010	-	PADIAL	- INCLUIDO O CAMPO COD_MUNICIPIO DO IBGE NO LUGAR DOS SELECTS
    -------------------------------------------------------------------------------------
    12/11/2010	-	PADIAL	- INCLUSAO DO TRATAMENTO DA REFERENCIA DO ECF
    						- TRATAMENTO DO TELEFONE DO EXTERIOR COM A INCLUSÃO DO DDI
    						- INCLUSAO DO TRATAMENTO DO GRUPO DE ARMA
    10/11/2010 - PADIAL	- INCLUSÃO DO TRATAMENTO CORRETO DO IMPOSTO SIMPLES_F PARA TRATAMENTO DO CODIGO DE REGIME TRIBUTARIO 1 (SIMPLES NACIONAL)
    04/11/2010 - PADIAL - TRATAMENTO PARA O CAMPO OBS_INTERESSE_FISCO
    25/10/2010 - PADIAL - REGRAS DOS IMPOSTOS:
    					- O IMPOSTO ICMSST DEVERÁ SER PREENCHIDO NAS OPERAÇÕES INTERESTADUAIS COM COMBUSTÍVEIS PELO CONTRIBUINTE QUE TIVER RECEBIDO O
    					  COMBUSTÍVEL DIRETAMENTE DO SUJEITO PASSIVO POR SUBSTITUIÇÃO.
    					- O IMPOSTO ICMSPART REFERENTE AS INFORMAÇÕES RELATIVAS AO ICMS DA OPERAÇÃO DE FATURAMENTO DIREITO DE VEÍCULOS DEVEM SER INFORMADA NESTE GRUPO, FICANDO REVOGADA A
    					  ORIENTAÇÃO DE PREENCHIMENTO DO ICMS DIVULGADA NO ITEM 3 DA NT 2008/004. 
    
    VERSÃO ATUALIZAÇÃO LINX: 1.00.0005 - NAO LIBERADA
    02/11/2011 - PADIAL - TRATAMENTO DE CARACTER COM ACENTO NO CAMPO TIPO_VOLUME
    
    VERSÃO ATUALIZAÇÃO LINX: 1.00.0004
    14/10/2010 - PADIAL - INCLUSAO DOS NOVOS CODIGOS DO PIS E CONFINS (49,50,51,52,53,54,55,56,60,61,62,63,64,65,66,67,70,71,72,73,74,75,98) COMO O CODIGO 99.
    					  ESTRE TRATAMENTO FOI FEITO CONFORME NOTA TECNICA 2010/001 E PELO SCHEMA DA VERSAO 1.10 E 2.00 NAO POSSUIREM ESTE CAMPO	
    14/10/2010 - PADIAL	- ALTERAÇÃO DO CAMPO IE DESTINATARIO PARA LEVAR E ELEMENTO EM BRANCO CASO SEJA PESSOA FISICA INDEPENDENTE DO PREENCHIMENTO DO CAMPO(PROBLEMA PEGO EM GOIAS, EM SAO PAULO HOMOLOGOU)
    14/10/2010 - PADIAL	- INCLUIDO O TRATAMENTO DO RTRIM NO CODIGO DO MUNICIPIO PARA O GRUPO IDE
    27/09/2010 - PADIAL -- INICIO DO DESENVOLVIMENTO DA NF-E
    */
    DECLARE --@NOTAFISCAL VARCHAR(7), @SERIENOTA VARCHAR(6), @FILIALNOTA VARCHAR(25),  
    		@NFE_XML XML, @NFE_XML_REPLACE VARCHAR(MAX), 
    		@CHAVEACESSO CHAR(44), @CODIGONF AS CHAR(9), @SOMAPONDERACOES AS INT,  @CNT INT, @PESO INT, @RESTODIVISAO INT, @DIGITOVERIFICADOR CHAR(1),
    		@CONDICAO_PGTO CHAR(3), @INDICA_FORMA_PGTO CHAR(1), @TIPO_DOC CHAR(2), @TIPO_CONDICAO VARCHAR(6), @INFCOMPLEMENTAR VARCHAR(5000),
    		@OBS_FAT VARCHAR(5000), @TEXTO_LEGAL VARCHAR(5000), @NOME_CLIFOR VARCHAR(40), @VALOR_IMPOSTO_ITEM VARCHAR(16),
    		@CNPJ_EMITENTE VARCHAR(14),	@CIDADE_EMITENTE VARCHAR(35), @UF_EMITENTE CHAR(2), @AAMM_EMISSAO CHAR(4),
    		@MODELO CHAR(2), @TIPO_EMISSAO TINYINT, @VERSAO_CHAVE_NFE CHAR(6), @CODIGO_UF_IBGE CHAR(2), @SERIENOTA_OFICIAL VARCHAR(6), @VERSAO_LAYOUT_XML_NFE VARCHAR(5), @EMAIL_NFE VARCHAR(60), @EMAIL_DESTINATARIO VARCHAR(100), 
    		@OBS_INTERESSE_FISCO VARCHAR(2000), @COD_MUNICIPIO_IBGE CHAR(7), @TIPO_DOC_CHAVE CHAR(2), @CLIFOR_FILIALNOTA CHAR(6),
    		@PERC_DIF NUMERIC(5,2), @VALICMS_DIF NUMERIC(15,2), @VALDEV_DIF NUMERIC(15,2), --#34#
    		@NF_NUMERO_REFERENCIADA char(1),@QTDE_PARCELA int --#35#
    
    
    SELECT @MODELO = RTRIM(ES.NUMERO_MODELO_FISCAL), @SERIENOTA_OFICIAL = SN.COD_SERIE_SINTEGRA 
    	FROM SERIES_NF SN INNER JOIN CTB_ESPECIE_SERIE ES ON SN.ESPECIE_SERIE = ES.ESPECIE_SERIE 
    WHERE SERIE_NF = @SERIENOTA
    
    SELECT @CHAVEACESSO = NULL
    
    --SELECT @VERSAO_CHAVE_NFE = (SELECT RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'VERSAO_LAYOUT_XML_NFE')
    
    SELECT @CHAVEACESSO = NFE.CHAVE_NFE,
    	@OBS_FAT = NFE.OBS,
    	@TEXTO_LEGAL = NFE.TEXTO_LEGAL,
    	@TIPO_DOC = RIGHT(RTRIM(NFE.ORIGEM_NF),1),
    	@TIPO_DOC_CHAVE = SUBSTRING(ORIGEM_NF,1,1),	
    	@NOME_CLIFOR = NFE.NOME_CLIFOR,
    	@CNPJ_EMITENTE = NFE.CNPJ_EMITENTE,  
    	@CIDADE_EMITENTE  = NFE.CIDADE_EMITENTE,
    	@UF_EMITENTE =  NFE.UF_EMITENTE,
    	@AAMM_EMISSAO = SUBSTRING(CONVERT(VARCHAR(20),NFE.EMISSAO,112),3,4),
    	@TIPO_EMISSAO = NFE.TIPO_EMISSAO_NFE,
    	@CODIGO_UF_IBGE = SUBSTRING(NFE.EMITENTE_COD_MUNICIPIO_IBGE,1,2),
    	@EMAIL_NFE = LTRIM(RTRIM(EMAIL_NFE)), @EMAIL_DESTINATARIO = LTRIM(RTRIM(EMAIL_DESTINATARIO)), --#5#
    	@OBS_INTERESSE_FISCO = NFE.OBS_INTERESSE_FISCO,
    	@VERSAO_CHAVE_NFE = VERSAO_LAYOUT_NFE,
    	@NF_NUMERO_REFERENCIADA =  NF_NUMERO_REFERENCIADA          --#35#
    	
    FROM  W_IMPRESSAO_NFE NFE
    WHERE  NF = @NOTAFISCAL  AND 
      	   SERIE_NF = @SERIENOTA AND 
    	   FILIAL = @FILIALNOTA
    
    --#45# - Inicio
    SELECT @QTDE_PARCELA = MAX(PARCELA) FROM  W_INFORMACAO_PAGAMENTO WITH(NOLOCK)
    					  WHERE W_INFORMACAO_PAGAMENTO.NF = @NOTAFISCAL AND 
    							W_INFORMACAO_PAGAMENTO.SERIE_NF = @SERIENOTA AND
    							W_INFORMACAO_PAGAMENTO.FILIAL = @FILIALNOTA
    --#45# - Fim
    
    --#13#
    select @CLIFOR_FILIALNOTA = CLIFOR FROM FILIAIS WHERE FILIAL = @FILIALNOTA
    
    --#1#/#2#
    --#34#[Inicio]
    -- SELECT @VALOR_IMPOSTO_ITEM = CASE WHEN sum(ISNULL(VALOR_IMPOSTO_ITEM,0)) = 0 THEN '0.00' ELSE 
    -- --CONVERT(VARCHAR(16),((sum(ISNULL(VALOR_IMPOSTO_ITEM, 0))/sum(VALOR_ITEM))*100)) --#3#
    -- SUM(ISNULL(VALOR_IMPOSTO_ITEM,0)) END 
    -- FROM W_IMPRESSAO_NFE_ITENS NFE_VALOR
    -- WHERE  NF = @NOTAFISCAL  AND 
    --	SERIE_NF = @SERIENOTA AND 
    --	FILIAL = @FILIALNOTA
    
    --#44# - INÍCIO 
    SELECT @VALOR_IMPOSTO_ITEM = CASE WHEN sum(ISNULL(VALOR_IMPOSTO_ITEM,0)) = 0 THEN '0.00' ELSE 
    	SUM(ISNULL(VALOR_IMPOSTO_ITEM,0)) END
    FROM 
    	W_IMPRESSAO_NFE_ITENS NFE_VALOR_IMP
    WHERE  
    	NF = @NOTAFISCAL AND 
      	SERIE_NF = @SERIENOTA AND 
    	FILIAL = @FILIALNOTA
    --#44# - FIM 
    
    SELECT --@VALOR_IMPOSTO_ITEM = CASE WHEN sum(ISNULL(VALOR_IMPOSTO_ITEM,0)) = 0 THEN '0.00' ELSE -- #44#
    	--SUM(ISNULL(VALOR_IMPOSTO_ITEM,0)) END, -- #44#
    	@PERC_DIF = CONVERT(NUMERIC(5,2),((1-(NFE_VALOR.ICMS_BST_ALIQUOTA/CASE WHEN NFE_VALOR.ICMS_ALIQUOTA = 0 THEN 1 ELSE NFE_VALOR.ICMS_ALIQUOTA END))*100)),
    	@VALICMS_DIF = (NFE_VALOR.ICMS / 100) * @PERC_DIF,
    	@VALDEV_DIF = NFE_VALOR.ICMS - @VALICMS_DIF
    FROM 
    	W_IMPRESSAO_NFE_ITENS NFE_VALOR
    WHERE  
    	NF = @NOTAFISCAL AND 
      	SERIE_NF = @SERIENOTA AND 
    	FILIAL = @FILIALNOTA
    GROUP BY 
    	NFE_VALOR.ICMS_BST_ALIQUOTA, NFE_VALOR.ICMS_ALIQUOTA, NFE_VALOR.ICMS, NFE_VALOR.ICMS_BST 
    --#34#[Fim] 
    
    -- MONTAGEM DO CAMPO CHAVE
    IF @CHAVEACESSO IS NULL
    	BEGIN
    		-- BUSCA A SÉRIE OFICIAL DA NOTA FISCAL NA COLUNA COD_SERIE_SINTEGRA DA TABELA SERIES_NF PARA COMPOR A CHAVE NF-E
    		SELECT @SERIENOTA_OFICIAL = RTRIM(CASE WHEN COD_SERIE_SINTEGRA IS NULL OR COD_SERIE_SINTEGRA = '' THEN @SERIENOTA ELSE COD_SERIE_SINTEGRA END) FROM SERIES_NF WHERE SERIE_NF = @SERIENOTA
    		-- FIM DA BUSCA DA SÉRIE OFICIAL
    
    		IF @TIPO_EMISSAO = 0
    			SELECT @TIPO_EMISSAO = 1
    
    		--------------------------------------------
    		-- EXCLUIR ESTE CODIGO APOS CONCLUIR O TESTE
    		--------------------------------------------
    
    
    		-- @VERSAO_CHAVE_NFE: 1.10	
    		-- @VERSAO_CHAVE_NFE: 2.00	(ENTRA EM VIGOR A PARTIR DO DIA
    
    		-- MONTAGEM DA CHAVE DE ACESSO DA NOTA FISCAL E DO CALCULO DO DIGITO VERIFICADOR
    		IF RTRIM(@VERSAO_CHAVE_NFE) = '1.10'
    			BEGIN
    				SELECT @CODIGONF = RIGHT(STR(RAND(),11,9),9) 
    
    				SELECT @CHAVEACESSO = @CODIGO_UF_IBGE +
    										@AAMM_EMISSAO +
    										@CNPJ_EMITENTE +
    										@MODELO +
    										RIGHT('00'+RTRIM(CASE WHEN @SERIENOTA_OFICIAL = 'U' OR @SERIENOTA_OFICIAL = 'UN' THEN '0' ELSE @SERIENOTA_OFICIAL END),3)+
    										RIGHT('00000000'+RTRIM(@NOTAFISCAL),9)+
    										@CODIGONF
    
    			END
    
    		IF RTRIM(@VERSAO_CHAVE_NFE) = '2.00' OR RTRIM(@VERSAO_CHAVE_NFE) = '3.10'  OR RTRIM(@VERSAO_CHAVE_NFE) = '4.00'  -- VERSAO 2.00 #45#
    			BEGIN
    				SELECT @CODIGONF = RIGHT(STR(RAND(),11,9),8) 
    
    				SELECT @CHAVEACESSO = @CODIGO_UF_IBGE +
    										@AAMM_EMISSAO +
    										@CNPJ_EMITENTE +
    										@MODELO +
    										RIGHT('00'+RTRIM(CASE WHEN @SERIENOTA_OFICIAL = 'U' OR @SERIENOTA_OFICIAL = 'UN' THEN '0' ELSE @SERIENOTA_OFICIAL END),3)+
    										RIGHT('00000000'+RTRIM(@NOTAFISCAL),9)+
    										CONVERT(CHAR(1),@TIPO_EMISSAO)+
    										@CODIGONF
    			END
    
    		-- FAZ A VALIDAÇÃO DA SERIE, SE FOR CARACTER, NAO GERA O DIGITO VERIFICADOR
    		IF @SERIENOTA_OFICIAL NOT LIKE '%[!-/]%' AND @SERIENOTA_OFICIAL NOT LIKE '%[A-Z]%'
    		BEGIN
    			SELECT  @CNT = 43 , @PESO = 2, @SOMAPONDERACOES = 0
    			WHILE @CNT > 0
    				BEGIN
    					IF @PESO > 9
    						SELECT @PESO = 2
    
    					SELECT @SOMAPONDERACOES = @SOMAPONDERACOES + (CONVERT(INT,SUBSTRING(@CHAVEACESSO,@CNT,1)) * @PESO)
    
    					SELECT @PESO = @PESO + 1
    					SELECT @CNT  = @CNT - 1
    				END 
    
    			SELECT	@RESTODIVISAO = (@SOMAPONDERACOES - (FLOOR((@SOMAPONDERACOES / 11)) * 11))
    			SELECT @DIGITOVERIFICADOR = CASE WHEN @RESTODIVISAO = 1 OR @RESTODIVISAO = 0 THEN '0' ELSE LTRIM(RTRIM(STR(11 - @RESTODIVISAO))) END 
    		END
    
    		SELECT @CHAVEACESSO = RTRIM(@CHAVEACESSO)+RTRIM(@DIGITOVERIFICADOR) 
    		
    		-- CODIGO PARA ATUALIZACAO DA CHAVE NA TABELA DE ENTRADA/SAIDA/LOJA????
    		IF @TIPO_DOC_CHAVE = 'L'
    			UPDATE LOJA_NOTA_FISCAL
    				SET CHAVE_NFE = @CHAVEACESSO
    				WHERE NF_NUMERO = @NOTAFISCAL  AND 
      						SERIE_NF = @SERIENOTA AND 
    						CODIGO_FILIAL = (SELECT CODIGO_FILIAL FROM LOJAS_VAREJO (NOLOCK) WHERE FILIAL = @FILIALNOTA)
    		
    		IF @TIPO_DOC_CHAVE = 'S'
    			UPDATE FATURAMENTO
    				SET CHAVE_NFE = @CHAVEACESSO
    				WHERE NF_SAIDA = @NOTAFISCAL  AND 
      						SERIE_NF = @SERIENOTA AND 
    						FILIAL = @FILIALNOTA
    						
    		IF @TIPO_DOC_CHAVE = 'E'
    			UPDATE ENTRADAS
    				SET CHAVE_NFE = @CHAVEACESSO
    				WHERE NF_ENTRADA = @NOTAFISCAL  AND 
      						SERIE_NF_ENTRADA = @SERIENOTA AND 
    						NOME_CLIFOR = @NOME_CLIFOR		
    		
    	END
    ELSE
    	BEGIN
    		IF @SERIENOTA_OFICIAL IS NULL
    			SELECT @SERIENOTA_OFICIAL = @SERIENOTA
    	END 
    
    SELECT @INFCOMPLEMENTAR = ''
    
    IF (@TEXTO_LEGAL <> '' AND @TEXTO_LEGAL IS NOT NULL) 
    	SELECT @INFCOMPLEMENTAR = @INFCOMPLEMENTAR+' '+UPPER(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,@TEXTO_LEGAL))
    
    IF @OBS_FAT IS NOT NULL AND @OBS_FAT <> ' ' 
    	SELECT @INFCOMPLEMENTAR = @INFCOMPLEMENTAR+' '+UPPER(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,@OBS_FAT))
    
    ----#1#/#2#
    --IF @VALOR_IMPOSTO_ITEM IS NOT NULL AND @VALOR_IMPOSTO_ITEM <> '0.0000' 
    --	SELECT @INFCOMPLEMENTAR = @INFCOMPLEMENTAR+' VALOR TOTAL DE IMPOSTO NOS ITENS '+UPPER(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,@VALOR_IMPOSTO_ITEM))
    
    IF @INFCOMPLEMENTAR = '' OR LTRIM(RTRIM(@INFCOMPLEMENTAR))= '.' OR LTRIM(RTRIM(@INFCOMPLEMENTAR))= '..'
    	SELECT @INFCOMPLEMENTAR = NULL
    	
    -- SE @OBS_INTERESSE_FISCO FOR EM BRANCO, RETORNA NULL
    IF @OBS_INTERESSE_FISCO = '' 
    	SELECT @OBS_INTERESSE_FISCO = NULL	
    SELECT @OBS_INTERESSE_FISCO = DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,@OBS_INTERESSE_FISCO) --#41#
    
    SELECT @DIGITOVERIFICADOR = SUBSTRING(@CHAVEACESSO,44,1)
    
    SELECT @CODIGONF = CASE WHEN @VERSAO_CHAVE_NFE = '1.10' THEN SUBSTRING(@CHAVEACESSO,35,9) ELSE substring(@CHAVEACESSO,36,8) END 
    
    SELECT @NFE_XML = (
    
    -- NFE ---
    SELECT  'SUBSTITUIR' "@SUBSTITUI1",
    
    --- INFNFE
    (
    	SELECT RTRIM(@VERSAO_CHAVE_NFE)  "@versao",
    			'NFe'+RTRIM(@CHAVEACESSO) "@Id",
    
    			
    ------- IDE 	
    	(
    		SELECT	SUBSTRING(NFE.EMITENTE_COD_MUNICIPIO_IBGE,1,2)						"cUF",	-- CODIGO DO IBGE
    				RTRIM(@CODIGONF)													"cNF",	
    			   	DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.DESC_NATUREZA)		"natOp",
    				--#45# Retirado NFE 4.00
    				--NFE.TIPO_PGTO_NFE													"indPag", -- 0 - PAGTO A VISTA, 1 - PAGTO A PRAZO E 2 - OUTROS. 
    				--#45#
    
    				@MODELO																"mod",	  -- REFERENTE AO MODELO 1 E 1A. PEGAR DA TABELA CTB_ESPECIE_SERIE
    				CASE WHEN @SERIENOTA_OFICIAL = 'U' OR @SERIENOTA_OFICIAL = 'UN' THEN '0' ELSE Rtrim(@SERIENOTA_OFICIAL) END "serie",
    				RTRIM(LTRIM(CONVERT(INTEGER,NFE.NF)))								"nNF",
    				--convert(varchar(24),NFE.EMISSAO,127)+'-03:00'						"dhEmi",
    				--convert(varchar(24),NFE.DATA_SAIDA,127)+'-03:00'					"dhSaiEnt",	-- 1-0. CAMPO NÃO OBRIGATÓRIO
    				NFE.UTC_EMISSAO						"dhEmi",
    				NFE.UTC_DATA_SAIDA					"dhSaiEnt",	-- 1-0. CAMPO NÃO OBRIGATÓRIO
    
    
    				--NFE.HORA_SAIDA													"hSaiEnt",	-- #11# (2.0) removido para layout 3.10
    				--CONVERT(VARCHAR(8),NFE.DATA_SAIDA,108)							"hSaiEnt",	-- (2.0)
    				CASE WHEN RIGHT(RTRIM(NFE.ORIGEM_NF),1) = 'S' THEN 1 ELSE 0 END 	"tpNF",		-- CRIADO O CAMPO. 0-ENTRADA / 1-SAIDA
    				RTRIM(NFE.ID_DESTINO_OPERACAO)										"idDest",	-- #7# LAYOUT 3.10 - NOTA TÉCNICA 2013.005 v1.02 - 03.3 - INCLUSÃO DO ID LOCAL DESTINO. (1 - INTERNO; 2 - INTERESTADUAL; 3 - EXTERIOR)
    				RTRIM(NFE.EMITENTE_COD_MUNICIPIO_IBGE)								"cMunFG",	-- CODIGO DO IBGE
    
    	-- Edson -  removido	Bloco NFREF		
    		
    				
    				 
    			LTRIM(RTRIM(NFE.FORMATO_IMP_DANFE_NFE))																			"tpImp",		-- PARAMETRO DE ONDE SERA INFORMADO O TIPO DO FORMATO DA IMPRESSAO DO DANFE (RETRATO OU PAISAGEM)
    			CASE WHEN ISNULL(NFE.TIPO_EMISSAO_NFE,'') = '' THEN 1 ELSE RTRIM(NFE.TIPO_EMISSAO_NFE) END						"tpEmis",		-- FORMA EMISSAO DANFE 1-NORMAL / 2-CONTINGENCIA 
    			@DIGITOVERIFICADOR																								"cDV",			-- DIGITO VERIFICADOR DA CHAVE DE ACESSO
    			CASE WHEN LTRIM(RTRIM(NFE.AMBIENTE_NFE)) = 1 THEN '1' ELSE '2' END												"tpAmb",		-- 1-PRODUCAO / 2-HOMOLOGACAO   
    			CASE WHEN ISNULL(NFE.FIN_EMISSAO_NFE,'') = '' THEN 1 ELSE RTRIM(NFE.FIN_EMISSAO_NFE) END						"finNFe",		-- 1-NFE NORMAL/ 2-NFE COMPLEMENTAR / 3-NFE AJUSTE   
    			RTRIM(NFE.INDICA_OPERACAO_FINAL)																				"indFinal",		--#8#
    			RTRIM(NFE.INDICA_PRESENCA_COMPRADOR)																			"indPres",		--#9#
    			0																												"procEmi",		-- PROCESSO DE EMISSAO DA NFE
    			SUBSTRING(CASE WHEN @TIPO_DOC_CHAVE = 'L' THEN CASE WHEN LEN(ISNULL(@APP_VERSAO,'')) > 0 THEN @APP_VERSAO ELSE 'LINX' END ELSE ISNULL(@APP_VERSAO, RTRIM(NFE.VERSAO_EMISSOR_NFE)) END,1,20)     "verProc", -- VERSAO DO LINX / RETAGUARDA OU LOJA 			
    			CASE WHEN NFE.TIPO_EMISSAO_NFE = 1 THEN NULL ELSE DATA_CONTINGENCIA_UTC  END			"dhCont",		--(2.0) contingencia somente para tipo emissao <> 1 --#25#
    			CASE WHEN NFE.TIPO_EMISSAO_NFE = 1 THEN NULL ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.JUSTIFICATIVA_CONTINGENCIA) END	"xJust",				-- (2.0)
    
    
    	---------------------------------------------------------------------------------	
    	--Edson Inicio								
    -- NFREF 
    				( 
    				
    					  SELECT 
    								W_NOTAS_REFERENCIADAS.CHAVE_NFE									"refNFe",
    							
    						-- REFNF -- NOTA FISCAL ORIGINAL DA DEVOLUCAO  == TRATAMENTO ==
    						( SELECT 
    							SUBSTRING(W_NOTAS_REFERENCIADAS.CHAVEACESSO,1,2)					"cUF",	-- BUSCAR O CODIGO DO IBGE
    							SUBSTRING(W_NOTAS_REFERENCIADAS.CHAVEACESSO,3,4)					"AAMM",
    							SUBSTRING(W_NOTAS_REFERENCIADAS.CHAVEACESSO,7,14)					"CNPJ",
    							SUBSTRING(W_NOTAS_REFERENCIADAS.CHAVEACESSO,21,2)					"mod",	-- DE ONTE PEGAR O CODIGO DO MODELO FISCAL
    							CAST(SUBSTRING(W_NOTAS_REFERENCIADAS.CHAVEACESSO,23,3) AS INTEGER)	"serie",
    							CAST(SUBSTRING(W_NOTAS_REFERENCIADAS.CHAVEACESSO,26,9) AS INTEGER)  "nNF"
    						WHERE W_NOTAS_REFERENCIADAS.CHAVE_NFE IS NULL	
    						  FOR XML PATH(''), TYPE 
    						) AS refNF
    						
    						FROM W_NOTAS_REFERENCIADAS 
    						--LEFT JOIN LOJA_RESERVA B ON W_NOTAS_REFERENCIADAS.NF = B.NUMERO_NF_RETORNO										-- #20#
    						--	AND W_NOTAS_REFERENCIADAS.SERIE = B.SERIE_NF_RETORNO														-- #20#
    						WHERE --W_NOTAS_REFERENCIADAS.CHAVE_NFE IS NOT NULL AND
    							W_NOTAS_REFERENCIADAS.NF = @NOTAFISCAL
    								AND W_NOTAS_REFERENCIADAS.SERIE = @SERIENOTA
    								--AND W_NOTAS_REFERENCIADAS.FILIAL = @FILIALNOTA
    								AND W_NOTAS_REFERENCIADAS.FILIAL = CASE WHEN @TIPO_DOC = 'E' 
    								and (@TIPO_DOC_CHAVE != 'L'/*#26#*/ Or @NF_NUMERO_REFERENCIADA = 1) --#35#
    								THEN @NOME_CLIFOR ELSE @FILIALNOTA END	-- #20# - #24# --#26#
    								AND W_NOTAS_REFERENCIADAS.ORIGEM_ENTRADA_SAIDA = @TIPO_DOC
    								
    								--AND W_NOTAS_REFERENCIADAS.FILIAL = @FILIALNOTA --#18#
    				  FOR XML PATH('NFref'),TYPE 
    				),
    				-- EDSON -- NF ORIGEM VINCULADA A NF TROCA e CANCELAMENTO	#16#
    				( 
    					  SELECT 
    								W_NOTAS_REFERENCIADAS_DEV.CHAVE_NFE									"refNFe",							
    						( SELECT 
    							SUBSTRING(W_NOTAS_REFERENCIADAS_DEV.CHAVEACESSO,1,2)					"cUF",	-- BUSCAR O CODIGO DO IBGE
    							SUBSTRING(W_NOTAS_REFERENCIADAS_DEV.CHAVEACESSO,3,4)					"AAMM",
    							SUBSTRING(W_NOTAS_REFERENCIADAS_DEV.CHAVEACESSO,7,14)					"CNPJ",
    							SUBSTRING(W_NOTAS_REFERENCIADAS_DEV.CHAVEACESSO,21,2)					"mod",	-- DE ONTE PEGAR O CODIGO DO MODELO FISCAL
    							CAST(SUBSTRING(W_NOTAS_REFERENCIADAS_DEV.CHAVEACESSO,23,3) AS INTEGER)	"serie",
    							CAST(SUBSTRING(W_NOTAS_REFERENCIADAS_DEV.CHAVEACESSO,26,9) AS INTEGER)  "nNF"
    						WHERE W_NOTAS_REFERENCIADAS_DEV.CHAVE_NFE IS NULL	
    						  FOR XML PATH(''), TYPE 
    						) AS refNF
    						
    						FROM [dbo].[FN_NOTAS_REFERENCIADAS_DEV] (@NOTAFISCAL, @SERIENOTA, NULL) AS W_NOTAS_REFERENCIADAS_DEV --#52#
    						--WHERE W_NOTAS_REFERENCIADAS_DEV.NF = @NOTAFISCAL
    						--		AND W_NOTAS_REFERENCIADAS_DEV.SERIE = @SERIENOTA
    										
    						--		AND W_NOTAS_REFERENCIADAS_DEV.FILIAL  = @NOME_CLIFOR --#18#
    				  FOR XML PATH('NFref'),TYPE --#16#
    				),
    -- NFREF ECF				
    				( 
    					SELECT 
    						(
    							SELECT 
    								 MODELO_FISCAL			"mod", 
    								 NUMERO_ECF				"nECF", 
    								 NUMERO_COO				"nCOO"
    					
    						  FOR XML PATH('refECF'), TYPE 
    						) 
    						FROM W_REFERENCIA_ECF_NFE   
    							WHERE W_REFERENCIA_ECF_NFE.NF = @NOTAFISCAL
    									AND W_REFERENCIA_ECF_NFE.SERIE = @SERIENOTA
    									-- #29# AND W_REFERENCIA_ECF_NFE.FILIAL = CASE WHEN @TIPO_DOC = 'E' THEN  @NOME_CLIFOR ELSE @FILIALNOTA END
    									AND @TIPO_DOC = 'S'	-- #29# (As notas de entrada são tratadas com a view W_REFERENCIA_ECF_NFE_DEV)
    									AND W_REFERENCIA_ECF_NFE.ORIGEM_ENTRADA_SAIDA = @TIPO_DOC		
    									AND W_REFERENCIA_ECF_NFE.FILIAL = @FILIALNOTA --#18#
    					FOR XML PATH('NFref'),TYPE 
    				),
    				--EDSON #14#
    				-- VERIFICA OS ECF CASO NF DE ORIGEM NÃO EXISTA
    				(	
    					SELECT 
    						(
    							SELECT 
    									MODELO_FISCAL					"mod", 
    									NUMERO_ECF_ORIGEM				"nECF", 
    									NUMERO_COO_ORIGEM				"nCOO"
    							
    							FOR XML PATH('refECF'), TYPE 
    						) 
    						FROM W_REFERENCIA_ECF_NFE_DEV	   
    							WHERE W_REFERENCIA_ECF_NFE_DEV.NF = @NOTAFISCAL
    								AND W_REFERENCIA_ECF_NFE_DEV.SERIE = @SERIENOTA
    								--AND W_REFERENCIA_ECF_NFE_DEV.ORIGEM_ENTRADA_SAIDA = @TIPO_DOC	
    								AND W_REFERENCIA_ECF_NFE_DEV.CHAVE_NFE_ORIGEM IS NULL
    				FOR XML PATH('NFref'),TYPE 
    				)
    				--EDSON #14#			
    -- Edson Fim
    		---------------------------------------------------------------------------------
    		FOR XML PATH(''), TYPE 
    	) AS ide,
    
    ------- EMIT
    	(
    		SELECT CASE WHEN NFE.PJ_PF_EMITENTE = 1 THEN RTRIM(NFE.CNPJ_EMITENTE) ELSE NULL END							"CNPJ",
    				CASE WHEN NFE.PJ_PF_EMITENTE = 0 THEN RTRIM(NFE.CNPJ_EMITENTE) ELSE NULL END						"CPF",		
    				DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,SUBSTRING(NFE.RAZAO_SOCIAL_EMITENTE,1,60))				"xNome",
    				CASE WHEN NFE.PJ_PF_EMITENTE = 1 THEN DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.NOME_FANTASIA_EMITENTE) ELSE NULL END "xFant",
    		---------------------------------------------------------------------------------				
    		-- ENDEREMIT
    		( 	
    			SELECT SUBSTRING(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.ENDERECO_EMITENTE),1,60)				"xLgr",
    					CASE WHEN ISNULL(NFE.NUMERO_EMITENTE,'') = '' 
    						THEN '0' 
    						ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.NUMERO_EMITENTE) END					"nro",
    					CASE WHEN ISNULL(NFE.COMPLEMENTO_EMITENTE,'') = '' 
    						THEN NULL 
    						ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.COMPLEMENTO_EMITENTE) END				"xCpl",
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.BAIRRO_EMITENTE)								"xBairro",
    					RTRIM(NFE.EMITENTE_COD_MUNICIPIO_IBGE)															"cMun",	-- BUSCAR O CODIGO DO MUNICIPIO DO IBGE
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.CIDADE_EMITENTE)								"xMun",
    					RTRIM(NFE.UF_EMITENTE) "UF",
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,RTRIM(NFE.CEP_EMITENTE))									"CEP",
    					(SELECT TOP 1 RIGHT(RTRIM(COD_PAIS_BC),4) FROM LCF_LX_PAIS WHERE DESC_PAIS = NFE.PAIS_EMITENTE) "cPais", -- CODIGO DO PAIS DO IBGE
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.PAIS_EMITENTE)									"xPais",
    					CASE WHEN NFE.DDD1_EMITENTE IS NOT NULL AND NFE.TELEFONE1_EMITENTE IS NOT NULL and (DDD1_EMITENTE + TELEFONE1_EMITENTE) <> ''  
    						THEN RIGHT(RTRIM(NFE.DDD1_EMITENTE),2) + RIGHT(RTRIM(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.TELEFONE1_EMITENTE)),8) 
    						ELSE NULL END  "fone"
    						
    				FOR XML PATH(''), TYPE 
    		) AS enderEmit,		
    		---------------------------------------------------------------------------------	
    			CASE WHEN ISNULL(NFE.IE_EMITENTE,'') = '' THEN NULL ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.IE_EMITENTE) END		"IE",
    			--CASE WHEN (NFE.ICMS_ST > 0 OR NFE.ICMS_STR > 0) THEN DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.IEST) ELSE NULL END			"IEST",	-- CRIADO "IEST PARA SUBSTITUIÇÃO TRIBUTÁRIA"  --#43#
    			CASE WHEN ISNULL(NFE.IEST,'') = '' THEN NULL ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.IEST) END  AS					                     "IEST",	-- CRIADO "IEST PARA SUBSTITUIÇÃO TRIBUTÁRIA"  --#43#
    			CASE WHEN (NFE.ISS_R > 0 OR NFE.ISS > 0) THEN DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.IM_EMITENTE) ELSE NULL END 		"IM",   --0.1 = CRIADO O CAMPO
    			CASE WHEN (NFE.ISS_R > 0 OR NFE.ISS > 0) THEN DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.CNAE) ELSE NULL END				"CNAE",	--0.1 = CRIADO O CAMPO
    			NFE.CRT	  "CRT"	--(2.0)
    
    		FOR XML PATH(''), TYPE 
    
    	) AS emit,
    
    ------- AVULSA  (VERIFICAR COM O JOAO CESTARI SE HÁ NECESSIDADE DESTE GRUPO DE INFORMAÇÕES PARA A LINX. R: NAO SERA UTILIZADA.)
    
    ------- DEST
    	(
    		SELECT  CASE WHEN NFE.PJ_PF = 1 AND NFE.UF <> 'EX' THEN RTRIM(NFE.CNPJ_DESTINATARIO) ELSE NULL END								"CNPJ",
    				--CASE WHEN NFE.PJ_PF = 1 AND NFE.UF  = 'EX' THEN '' ELSE NULL END														"CNPJ", --#14#
    				CASE WHEN NFE.PJ_PF = 0 AND NFE.UF <> 'EX' THEN RTRIM(NFE.CNPJ_DESTINATARIO) ELSE NULL END								"CPF",	
    				--CASE WHEN NFE.PJ_PF = 0 AND NFE.UF  = 'EX' THEN '' ELSE NULL END														"CNPJ",	--#14#	
    				RTRIM(NFE.DOC_ESTRANGEIRO)																								"idEstrangeiro", --#10#	
    				DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,SUBSTRING(NFE.RAZAO_SOCIAL,1,60))											"xNome",
    		---------------------------------------------------------------------------------		
    		-- ENDERDEST
    		( 	
    			SELECT SUBSTRING(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.ENDERECO),1,60)											"xLgr",
    					CASE WHEN ISNULL(NFE.NUMERO,'') = '' 
    						THEN '0' 
    						ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.NUMERO) END												"nro",
    					CASE WHEN ISNULL(NFE.COMPLEMENTO,'') = '' 
    						THEN NULL 
    						ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.COMPLEMENTO) END											"xCpl",
    					CASE WHEN ISNULL(NFE.BAIRRO,'') = '' THEN NULL ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.BAIRRO) END	"xBairro",
    					CASE WHEN NFE.UF = 'EX' THEN '9999999' ELSE RTRIM(NFE.COD_MUNICIPIO_IBGE) END										"cMun",  -- CODIGO DO MUNICIPIO DO IBGE
    					CASE WHEN NFE.UF = 'EX' THEN 'EXTERIOR' ELSE 
    						DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.CIDADE) END													"xMun",
    					CASE WHEN ISNULL(NFE.UF,'') = '' THEN NULL ELSE RTRIM(NFE.UF) END													"UF",
    					CASE WHEN ISNULL(NFE.CEP,'') = '' THEN NULL ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,RTRIM(NFE.CEP)) END			"CEP",
    					(SELECT TOP 1 RIGHT(RTRIM(COD_PAIS_BC),4) FROM LCF_LX_PAIS WHERE DESC_PAIS = NFE.PAIS)								"cPais", -- CODIGO DO PAIS DO IBGE
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.PAIS)																"xPais",
    					CASE WHEN NFE.DDD1 IS NOT NULL AND NFE.TELEFONE1 IS NOT NULL AND (DDD1 + TELEFONE1) <> '' AND NFE.UF <> 'EX'
    						THEN RIGHT(RTRIM(NFE.DDD1),2) + RIGHT(RTRIM(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.TELEFONE1)),8) 
    						ELSE NULL END																									"fone",						
    					CASE WHEN NFE.DDI IS NOT NULL AND NFE.DDD1 IS NOT NULL AND NFE.TELEFONE1 IS NOT NULL AND (DDI + DDD1 + TELEFONE1) <> '' AND NFE.UF = 'EX'
    						THEN RIGHT(RTRIM(NFE.DDI),5) + RIGHT(RTRIM(NFE.DDD1),2) + RIGHT(RTRIM(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.TELEFONE1)),8) 
    						ELSE NULL END																									"fone"
    					
    			FOR XML PATH(''), TYPE 
    
    		) AS enderDest,		
    		---------------------------------------------------------------------------------	
    		NFE.INDICADOR_IE_DESTINARARIO																			"indIEDest", -- #12#
    		DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.RG_IE)    "IE",
    		--CASE WHEN (NFE.PJ_PF = 0) THEN NULL ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.RG_IE) END			"IE",
    		-- RETIRADO EM 11/11/2011 REGRA INSCR. SUFRAMA INFORMADA: AC-ACRE, OU AM-AMAZONAS, OU RO-RONDÔNIA, OU RR-RORAIMA, OU AP-AMAPÁ (SÓ PARA MUNICÍPIOS 1600303-MACAPÁ E 1600600-SANTANA)
    		--CASE WHEN (NFE.PJ_PF = 0 AND ISNULL(NFE.INSCRICAO_SUFRAMA,'') = '') OR (NFE.UF NOT IN ('AC','AM','RO','RR')) 
    		--			OR (NFE.COD_MUNICIPIO_IBGE NOT IN ('1600303','1600600'))	
    		--	THEN NULL ELSE RTRIM(NFE.INSCRICAO_SUFRAMA) END														"ISUF",	-- Regra 2.00
    		RTRIM(NFE.INSCRICAO_SUFRAMA)																			"ISUF",	-- Regra 2.00
    		LTRIM(RTRIM(NFE.EMAIL_NFE))																				"email"	--(2.0) --#5#
    
    		FOR XML PATH(''), TYPE 
    	) AS dest,
    
    ------- RETIRADA (NAO INCLUI ESTE GRUPO)
    
    ------- ENTREGA
    		( 	
    			SELECT CASE WHEN NFE.PJ_PF = 1 AND NFE.UF <> 'EX' THEN RTRIM(NFE.ENTREGA_CGC) ELSE NULL END				"CNPJ",
    					CASE WHEN NFE.PJ_PF = 1 AND NFE.UF = 'EX' THEN '' ELSE NULL END									"CNPJ",
    					CASE WHEN NFE.PJ_PF = 0 AND NFE.UF <> 'EX' THEN RTRIM(NFE.ENTREGA_CGC) ELSE NULL END			"CPF",	 -- (2.0)
    					CASE WHEN NFE.PJ_PF = 0 AND NFE.UF = 'EX' THEN '' ELSE NULL END									"CNPJ",			
    					SUBSTRING(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.ENTREGA_ENDERECO),1,60)				"xLgr",
    					CASE WHEN NFE.ENTREGA_NUMERO = '' OR NFE.ENTREGA_NUMERO IS NULL 
    						THEN '0' 
    						ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.ENTREGA_NUMERO) END					"nro",
    					CASE WHEN NFE.ENTREGA_COMPLEMENTO = '' OR NFE.ENTREGA_COMPLEMENTO IS NULL 
    						THEN NULL 
    						ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.ENTREGA_COMPLEMENTO) END				"xCpl",
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.ENTREGA_BAIRRO)								"xBairro",
    					CASE WHEN NFE.UF = 'EX' THEN '9999999' ELSE 
    						RTRIM(NFE.COD_MUNICIPIO_IBGE_ENTREGA) END													"cMun",	-- BUSCAR O CODIGO DO MUNICIPIO DO IBGE
    					CASE WHEN NFE.UF = 'EX' THEN 'EXTERIOR' ELSE 
    						DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.ENTREGA_CIDADE) END						"xMun",
    					RTRIM(NFE.ENTREGA_UF) "UF"
    
    			WHERE NFE.ENDERECO <> NFE.ENTREGA_ENDERECO OR NFE.NUMERO <> NFE.ENTREGA_NUMERO
    			FOR XML PATH(''), TYPE 
    		) AS entrega,
    		
    
    ------- AUTXML	(Pessoas autorizadas a acessar o XML da NF-e)	 --#3.10#
    ------- XML permite até 10 ocorrencias da tag autXML
    		( 
    				SELECT TOP 10 
    						CASE WHEN FAX.PJ_PF = 1 THEN RTRIM(CGC_CPF) ELSE NULL END "CNPJ", --#17#
    						CASE WHEN FAX.PJ_PF = 0 THEN RTRIM(CGC_CPF) ELSE NULL END "CPF" --#17#
    				FROM FILIAIS_ACESSO_XML as FAX			 
    				WHERE FAX.CLIFOR = @CLIFOR_FILIALNOTA AND FAX.INATIVO = 0
    
    			FOR XML PATH('autXML'), TYPE),  --#3.10#
    
    
    ------- DET (Detalhamento de Produtos e Serviços)
    		(	
    			SELECT	CASE WHEN NFE_ITENS.ITEM_NFE IS NULL 
    						THEN RTRIM(LTRIM(STR(CONVERT(INT,NFE_ITENS.ITEM_IMPRESSAO))))
    						ELSE RTRIM(LTRIM(STR(NFE_ITENS.ITEM_NFE))) END "@nItem",
    
    ------- PROD		
    			(
    
    				SELECT DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE_ITENS.CODIGO_ITEM)											"cProd",
    					NFE_ITENS.EAN																									"cEAN",	-- ???(2.0) CRIAR FUNCAO
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE_ITENS.DESCRICAO_ITEM)											"xProd",
    
    					CASE WHEN NFE_ITENS.ISS + NFE_ITENS.ISS_R > 0 
    							THEN SUBSTRING(REPLACE(NFE_ITENS.CLASSIF_FISCAL,'.',''),1,2) ELSE
    						CASE WHEN SUBSTRING(NFE_ITENS.CODIGO_FISCAL_OPERACAO,1,1) IN ('3','7') 
    								--OR (NFE_ITENS.CST_IPI IS NOT NULL AND NFE_ITENS.CST_IPI NOT IN('03','53') ) OR (NFE.CRT = 3) --#22#
    								--OR (NFE_ITENS.CST_IPI IS NOT NULL AND NFE_ITENS.CST_IPI NOT IN('53') ) OR (NFE.CRT = 3) --#22#
    								OR (NFE_ITENS.CST_IPI IS NOT NULL ) OR (NFE.CRT = 3) --#22#
    							THEN SUBSTRING(REPLACE(NFE_ITENS.CLASSIF_FISCAL,'.',''),1,8) ELSE 
    						CASE WHEN NFE_ITENS.CST_IPI IS NULL OR NFE_ITENS.IPI = 0
    							THEN SUBSTRING(REPLACE(NFE_ITENS.CLASSIF_FISCAL,'.',''),1,8) END END END 				"NCM",	-- (2.0)
    
    		( 
    				--SELECT TOP 8  RTRIM(LTRIM(NFE_ITENS_NVE.NVE))  "NVE"
    				--FROM W_IMPRESSAO_NFe_ITENS_NVE  as NFE_ITENS_NVE			 
    				--WHERE NFE_ITENS_NVE.NF_ENTRADA = NFE_ITENS.NF 
    					  --AND NFE_ITENS_NVE.SERIE_NF_ENTRADA = NFE_ITENS.SERIE_NF
    					  --AND NFE_ITENS_NVE.NOME_CLIFOR = NFE_ITENS.NOME_CLIFOR
    					  --AND NFE_ITENS_NVE.ITEM_IMPRESSAO = NFE_ITENS.ITEM_IMPRESSAO
    					  --AND NFE_ITENS_NVE.SUB_ITEM_TAMANHO = NFE_ITENS.SUB_ITEM_TAMANHO
    				SELECT TOP 8  RTRIM(LTRIM(NFE_ITENS_NVE.NVE))  "NVE" --#37#
    				FROM W_IMPRESSAO_NFE_ITENS_NVE  AS NFE_ITENS_NVE	--#37#		 
    				WHERE NFE_ITENS_NVE.NF_NUMERO = NFE_ITENS.NF --#37#
    					  AND NFE_ITENS_NVE.SERIE_NF = NFE_ITENS.SERIE_NF --#37#
    					  AND NFE_ITENS_NVE.ITEM_IMPRESSAO = NFE_ITENS.ITEM_IMPRESSAO --#37#
    					  AND NFE_ITENS_NVE.SUB_ITEM_TAMANHO = NFE_ITENS.SUB_ITEM_TAMANHO --#37#					  
    				FOR XML PATH(''), TYPE),
    
    					REPLACE(NFE_ITENS.CODIGO_CEST,'.','')																			"CEST",	 --#30#		
    					CASE WHEN (NFE_ITENS.ISS + NFE_ITENS.ISS_R > 0 )
    						OR (SUBSTRING(REPLACE(NFE_ITENS.CLASSIF_FISCAL,'.',''),9,3) = '') OR LEN(SUBSTRING(REPLACE(NFE_ITENS.CLASSIF_FISCAL,'.',''),9,3)) <= 1 THEN NULL ELSE
    						SUBSTRING(REPLACE(NFE_ITENS.CLASSIF_FISCAL,'.',''),9,3) END													"EXTIPI",		-- 1-0 TIRAR A TAG CASO SEJA NF DE SERVICO					
    						
    					--CASE WHEN NFE_ITENS.ISS > 0 OR NFE_ITENS.ISS_R > 0 THEN 99 ELSE
    					--	SUBSTRING(NFE_ITENS.CLASSIF_FISCAL,1,2)	END																	"genero",	-- (2.0) NAO EXISTE MAIS
    					NFE_ITENS.CODIGO_FISCAL_OPERACAO																				"CFOP",
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE_ITENS.UNIDADE)													"uCom",
    					CONVERT(NUMERIC(15,4), NFE_ITENS.QTDE_ITEM) 																	"qCom",
    					CONVERT(NUMERIC(21,10), NFE_ITENS.PRECO_UNITARIO)																"vUnCom",
    					CONVERT(NUMERIC(15,2), NFE_ITENS.VALOR_ITEM)																	"vProd",	-- DEVE SER O VALOR BRUTO DO PRODUTO
    					NFE_ITENS.EAN																									"cEANTrib",	-- ???(2.0) CRIAR FUNCAO												
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE_ITENS.UNIDADE)													"uTrib",	--
    					CONVERT(NUMERIC(15,4),NFE_ITENS.QTDE_ITEM)																		"qTrib",
    					CONVERT(NUMERIC(21,10),NFE_ITENS.PRECO_UNITARIO)																"vUnTrib",
    					CASE WHEN NFE_ITENS.FRETE = 0 THEN NULL ELSE CONVERT(NUMERIC(15,2),NFE_ITENS.FRETE) END							"vFrete",-- FALTA COLOCAR NO ITEM (CRIAR CAMPO) --OK
    					CASE WHEN NFE_ITENS.SEGURO = 0 THEN NULL ELSE CONVERT(NUMERIC(15,2),NFE_ITENS.SEGURO) END						"vSeg",	 -- FALTA COLOCAR NO ITEM (CRIAR CAMPO) --OK
    					CASE WHEN (NFE_ITENS.VALOR_DESCONTOS) = 0 THEN NULL ELSE CONVERT(NUMERIC(15,2),NFE_ITENS.VALOR_DESCONTOS) END	"vDesc",										
    					CASE WHEN (NFE_ITENS.ENCARGO) = 0 THEN NULL ELSE CONVERT(NUMERIC(15,2),NFE_ITENS.ENCARGO) END					"vOutro",--(2.0)
    					CASE WHEN NFE_ITENS.ISS > 0 OR NFE_ITENS.ISS_R > 0 THEN 0 ELSE NFE_ITENS.INDTOT END								"indTot",-- (2.0)
    					-------------------------------------------------------
    					--- DI
    					(
    						SELECT RTRIM(W_DI_NFE.NUMERO_DI)													"nDI", -- FALTA CUPOM FISCAL ??	
    								CONVERT(CHAR(10),W_DI_NFE.DATA_REGISTRO_DI,21)								"dDI",
    								DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,W_DI_NFE.LOCAL_DESEMBARACO)	"xLocDesemb",
    								W_DI_NFE.UF_DESEMBARACO														"UFDesemb",
    								CONVERT(CHAR(10),W_DI_NFE.DATA_DESEMBARACO,21)								"dDesemb",
    								
    								--#3.10#
    								W_DI_NFE.TIPO_TRANSPORTE													"tpViaTransp",
    								W_DI_NFE.VALOR_AFRMM														"vAFRMM",
    								W_DI_NFE.TIPO_INTERMEDIO													"tpIntermedio",
    								--W_DI_NFE.CGC_ENCOMENDANTE_ADIQUIRENTE										"CNPJ",
    								CASE WHEN (W_DI_NFE.TIPO_INTERMEDIO=2 OR W_DI_NFE.TIPO_INTERMEDIO=3) THEN W_DI_NFE.CGC_ENCOMENDANTE_ADQUIRENTE ELSE NULL END	"CNPJ", --#19#								
    								W_DI_NFE.UF_ENCOMENDANTE_ADQUIRENTE										"UFTerceiro", --#19#
    								--#3.10#
    								
    								DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,W_DI_NFE.CODIGO_EXPORTADOR) 	"cExportador",
    								--- ADI
    								(
    									SELECT W_ADICAO_DI_NFE.NUMERO_DA_ADICAO									"nAdicao",
    											W_ADICAO_DI_NFE.ID_ITEM											"nSeqAdic",
    											DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,W_ADICAO_DI_NFE.FABRICANTE_ESTRANGEIRO)  "cFabricante",
    											CASE WHEN W_ADICAO_DI_NFE.DESCONTO_ITEM = 0 OR W_ADICAO_DI_NFE.DESCONTO_ITEM IS NULL THEN NULL ELSE CONVERT(NUMERIC(15,2),W_ADICAO_DI_NFE.DESCONTO_ITEM) END "vDescDI",
    											--#3.10#
    											W_ADICAO_DI_NFE.NUMERO_DRAWBACK "nDraw"
    											--#3.10#
    									FROM W_ADICAO_DI_NFE
    									WHERE W_ADICAO_DI_NFE.NF_ENTRADA = NFE_ITENS.NF 
    										AND W_ADICAO_DI_NFE.SERIE_NF_ENTRADA = NFE_ITENS.SERIE_NF 
    										AND W_ADICAO_DI_NFE.ITEM_IMPRESSAO = NFE_ITENS.ITEM_IMPRESSAO 
    										AND W_ADICAO_DI_NFE.SUB_ITEM_TAMANHO = NFE_ITENS.SUB_ITEM_TAMANHO
    										AND W_ADICAO_DI_NFE.NUMERO_DI = W_DI_NFE.NUMERO_DI 
    									FOR XML PATH('adi'), TYPE				
    								)  			
                            FROM ( SELECT DISTINCT NUMERO_DI, DATA_REGISTRO_DI, LOCAL_DESEMBARACO, UF_DESEMBARACO, DATA_DESEMBARACO, CODIGO_EXPORTADOR, 
    											   TIPO_TRANSPORTE, VALOR_AFRMM, TIPO_INTERMEDIO, CGC_ENCOMENDANTE_ADQUIRENTE, UF_ENCOMENDANTE_ADQUIRENTE -- #19#
                                           FROM W_DI_NFE
                                           WHERE W_DI_NFE.ITEM_IMPRESSAO = NFE_ITENS.ITEM_IMPRESSAO
                                           AND         W_DI_NFE.SUB_ITEM_TAMANHO = NFE_ITENS.SUB_ITEM_TAMANHO
                                           AND         W_DI_NFE.NF_ENTRADA = NFE_ITENS.NF
                                           AND         W_DI_NFE.SERIE_NF_ENTRADA = NFE_ITENS.SERIE_NF
                                           AND         W_DI_NFE.NOME_CLIFOR = NFE_ITENS.NOME_CLIFOR) W_DI_NFE
                            FOR XML PATH('DI'), TYPE       
    					),														
    					
    ------ #3.10#
    ------ detExport
    					--- detExport
    					(
    						SELECT 	detEexportacao.NUMERO_DRAWBACK "nDraw",
    								--- exportInd
    								(
    									SELECT  NUMERO_REGISTRO		"nRE",
    											CHAVE_ACESSO_NFE	"chNFe",
    											QTDE_ITEM			"qExport"
    									FROM W_IMPRESSAO_NFE_ITENS_EXPORTACAO ItensExport
    									WHERE ItensExport.NF_SAIDA			= detEexportacao.NF_SAIDA AND 
    										  ItensExport.SERIE_NF			= detEexportacao.SERIE_NF AND 
    										  ItensExport.ITEM_IMPRESSAO	= detEexportacao.ITEM_IMPRESSAO AND 
    										  ItensExport.SUB_ITEM_TAMANHO	= detEexportacao.SUB_ITEM_TAMANHO AND 
    										  ItensExport.NUMERO_DRAWBACK	= detEexportacao.NUMERO_DRAWBACK 
    									FOR XML PATH('exportInd'), TYPE				
    								)  			
                            FROM ( SELECT DISTINCT ItensExportacao.NUMERO_DRAWBACK, ItensExportacao.NF_SAIDA, ItensExportacao.SERIE_NF, 
    											   ItensExportacao.FILIAL, ItensExportacao.ITEM_IMPRESSAO, ItensExportacao.SUB_ITEM_TAMANHO 
    							   FROM W_IMPRESSAO_NFE_ITENS_EXPORTACAO ItensExportacao
    							      WHERE ItensExportacao.ITEM_IMPRESSAO		= NFE_ITENS.ITEM_IMPRESSAO AND
                                            ItensExportacao.SUB_ITEM_TAMANHO	= NFE_ITENS.SUB_ITEM_TAMANHO AND
                                            ItensExportacao.NF_SAIDA			= NFE_ITENS.NF AND
                                            ItensExportacao.SERIE_NF			= NFE_ITENS.SERIE_NF AND
                                            ItensExportacao.FILIAL				= NFE_ITENS.FILIAL) detEexportacao
                            FOR XML PATH('detExport'), TYPE       
    					),
    
    ------ detExport
    ------ #3.10#
    
    					
    					-- VERIFICAR ONDE ESTAO ESTES DADOS
    					---------------------------------------------------------
    					NFE_ITENS.PEDIDO_COMPRA				"xPed",				--(2.0) ?? Número do Pedido de Compra - C(15)
    					NFE_ITENS.ITEM_PEDIDO_COMPRA		"nItemPed",			--(2.0) ?? Item do Pedido de Compra   - N(6)
    					CONVERT(UNIQUEIDENTIFIER, NFE_ITENS.CODIGO_FCI)	 "nFCI",				--#6#
    						
    					-- arma - 2.00
    					(
    						SELECT 
    							 TIPO_ARMA				"tpArma", 
    							 NUMERO_SERIE			"nSerie", 
    							 NUMERO_SERIE_CANO		"nCano",
    							 DESCRICAO_ARMA			"descr"
    							 
    							FROM W_ARMA_NFE  
    								WHERE W_ARMA_NFE.NF = @NOTAFISCAL
    										AND W_ARMA_NFE.SERIE = @SERIENOTA
    										AND W_ARMA_NFE.FILIAL = CASE WHEN @TIPO_DOC = 'E' THEN  @NOME_CLIFOR ELSE @FILIALNOTA END
    										AND W_ARMA_NFE.ORIGEM_ENTRADA_SAIDA = @TIPO_DOC							 
    
    						  FOR XML PATH('arma'), TYPE 
    					)
    
    				FOR XML PATH(''), TYPE
    			) AS prod, 
    
    ------------- IMPOSTO		
    			( SELECT
    --#2#			
    --------------- VTOTTRIB		
    				( SELECT NFE_ITENS.VALOR_IMPOSTO_ITEM "vTotTrib" FOR XML PATH(''), TYPE ),-- AS vTotTrib,
    --------------- VTOTTRIB
    --#2#
    
    				--- ICMS
    				( SELECT  	
    
    					--- ICMS00
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)					"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)					"CST",
    								3												"modBC",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)		"vBC",
    							 	CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)	"pICMS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)			"vICMS",
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ALIQUOTA) ELSE NULL END	"pFCP",
    								CASE WHEN NFE_ITENS.FECP_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_VALOR)   ELSE NULL END	"vFCP"
    								--#45#
    						WHERE NFE_ITENS.TRIBUT_ICMS = '00'
    						FOR XML PATH(''), TYPE				
    					) AS ICMS00,
    
    					--- ICMS10
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)													"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)													"CST",
    								3																				"modBC",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)										"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)									"pICMS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)											"vICMS",
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_BASE	  > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_BASE)	 ELSE NULL END  "vBCFCP",
    								CASE WHEN NFE_ITENS.FECP_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ALIQUOTA) ELSE NULL END	"pFCP",
    								CASE WHEN NFE_ITENS.FECP_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_VALOR)   ELSE NULL END	"vFCP",
    								--#45#
    								4																				"modBCST",
    
    								CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END				"pMVAST",	-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST)										"pRedBCST",	-- NAO POSSUI CONFORME CONVERSA COM JC --#13#
    								
    
    						(	SELECT  -- PEGA O IMPOSTO 12 + 13
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST"
    
    							WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    							FOR XML PATH(''), TYPE
    						),
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_ST_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_BASE)		ELSE NULL END  "vBCFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ST_ALIQUOTA)	ELSE NULL END  "pFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_VALOR)	ELSE NULL END  "vFCPST"								
    								--#45#
    
    						WHERE NFE_ITENS.TRIBUT_ICMS = '10'
    						FOR XML PATH(''), TYPE				
    					) AS ICMS10,
    
    					--- ICMS20   -- REDUCAO POSITIVO: ACRESCIMO /  NEGATIVO
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)					"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)					"CST",
    								3												"modBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBC)			"pRedBC",						-- PERCENTUAL DE REDUCAO DA MARGEM DE CALCULO (PORCENT_REDUCAO_DE_BASE)--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)		"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)	"pICMS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)			"vICMS",
    
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_BASE	  > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_BASE)	 ELSE NULL END  "vBCFCP",
    								CASE WHEN NFE_ITENS.FECP_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ALIQUOTA) ELSE NULL END	"pFCP",
    								CASE WHEN NFE_ITENS.FECP_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_VALOR)   ELSE NULL END	"vFCP",
    								--#45#	
    								--#3.10# 
    								--#18#
    								( SELECT
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ZF)	"vICMSDeson",  --#3.10# "vICMS", --(2.0) ICMS ZF para tratamento de qq desoneração
    									RTRIM(NFE_ITENS.ST_MOT_DESONERACAO) 		"motDesICMS"  --(2.0) Motivos conforme nota técnica
    								  WHERE	 NFE_ITENS.ICMS_ZF > 0 
    								  FOR XML PATH(''), TYPE
    								)
    								--CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ZF)	"vICMSDeson",
    								--RTRIM(NFE_ITENS.ST_MOT_DESONERACAO) 		"motDesICMS"  
    								--#18#
    								--#3.10#  
    						WHERE NFE_ITENS.TRIBUT_ICMS = '20'
    						FOR XML PATH(''), TYPE				
    					) AS ICMS20,
    
    					--- ICMS30
    					( 
    
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)										"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)										"CST",
    								4																	"modBCST",
    								CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END	"pMVAST",	-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST)							"pRedBCST",	-- NAO POSSUI CONFORME CONVERSA COM JC --#13#
    
    						(	SELECT  -- PEGA O IMPOSTO 12 + 13
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST",
    								--#3.10# 
    
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_ST_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_BASE)		ELSE NULL END  "vBCFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ST_ALIQUOTA)	ELSE NULL END  "pFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_VALOR)	ELSE NULL END  "vFCPST",								
    								--#45#				
    								--#18#
    								( SELECT
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ZF)	"vICMSDeson",  --#3.10# "vICMS", --(2.0) ICMS ZF para tratamento de qq desoneração
    									RTRIM(NFE_ITENS.ST_MOT_DESONERACAO) 		"motDesICMS"  --(2.0) Motivos conforme nota técnica
    								  WHERE	 NFE_ITENS.ICMS_ZF > 0 
    								  FOR XML PATH(''), TYPE
    								)
    								--CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ZF)	"vICMSDeson",
    								--RTRIM(NFE_ITENS.ST_MOT_DESONERACAO) 		"motDesICMS"  
    								--#18#
    								--#3.10#  
    
    							WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    							FOR XML PATH(''), TYPE
    						)
    
    						WHERE NFE_ITENS.TRIBUT_ICMS = '30'
    						FOR XML PATH(''), TYPE				
    					) AS ICMS30,
    
    					--- ICMS40
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)					"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)					"CST",	
    								( SELECT
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ZF)	"vICMSDeson",  --#3.10# "vICMS", --(2.0) ICMS ZF para tratamento de qq desoneração
    									RTRIM(NFE_ITENS.ST_MOT_DESONERACAO) 		"motDesICMS"  --(2.0) Motivos conforme nota técnica
    								  WHERE NFE_ITENS.ICMS_ZF > 0 
    								  FOR XML PATH(''), TYPE
    								)
    
    						WHERE NFE_ITENS.TRIBUT_ICMS IN ('40','41','50')
    						FOR XML PATH(''), TYPE				
    					) AS ICMS40,
    
    					--- ICMS51
    					--- COMENTADO A PARTE DE ICMS 51 - DIFERIMENTO: EM CONVERSA COM CESTARI EM 17/10/2010, FICOU ACERTADO QUE NAO VAMOS ENVIAR OS VALORES DO ICMS 
    					--- PRINCIPALMENTE PORQUE TERIAMOS QUE FAZER UM TRATAMENTO ESPECIFICO PARA ESTES VALORES, PORQUE NAO FAZEM PARTE DA BASE DE CALCULO DO TOTAL DA NOTA.
    					
    					-- 25/03/2011   - PADIAL    - RETIRADO A TRAVA PARA CALCULO DO ICMS DOS CSTS QUE POSSUEM VALOR DE ICMS SOMENTE. CONFORME CONVERSA COM CESTARI, ACOMPANHADO POR RAFAEL,
    					--							  ONDE SERA SEMPRE INCLUIDO O VALOR DO ICMS NO DESTAQUE INDEPENDEMENTE DA REGRA DA SEFAZ, SEGUINDO SEMPRE A PARAMETRIZACAO DO LINX.
    					--							  IMPLEMENTAÇÃO DO IMPOSTO 51 QUE HAVIA SIDO OCULTO DA GERACAO DOS VALORES E TAMBEM DO XML PARA O CLIENTE
    					--#45# - INICIO
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)																												"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)																												"CST",
    						(	SELECT 
    								3																																			"modBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBC)																										"pRedBC", -- PERCENTUAL DE REDUCAO DA MARGEM DE CALCULO (PORCENT_REDUCAO_DE_BASE)--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)																									"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)																								"pICMS", --#13#					
    								--#3.1# #21#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)																										"vICMSOp",
    								CONVERT(NUMERIC(5,2),((1-(NFE_ITENS.ICMS_BST_ALIQUOTA/CASE WHEN NFE_ITENS.ICMS_ALIQUOTA = 0 THEN 1 ELSE NFE_ITENS.ICMS_ALIQUOTA END))*100)) "pDif",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS-NFE_ITENS.ICMS_BST)																					"vICMSDif", 
    								--#3.1# #21#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BST)																									"vICMS",
    								--#61#	
    								CASE WHEN NFE_ITENS.FECP_BASE	  > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_BASE)	 ELSE NULL END										"vBCFCP",
    								CASE WHEN NFE_ITENS.FECP_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ALIQUOTA) ELSE NULL END										"pFCP",
    								CASE WHEN NFE_ITENS.FECP_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_VALOR)   ELSE NULL END										"vFCP"
    								--#61#	
    							WHERE NFE_ITENS.ICMS_BST > 0
    							FOR XML PATH(''), TYPE				
    						)
    						WHERE TRIBUT_ICMS = '51'
    						FOR XML PATH(''), TYPE				
    					) AS ICMS51,
    					--#45# - Fim
    					----- ICMS60
    					--( 
    					--	SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)											"orig",
    					--			RTRIM(NFE_ITENS.TRIBUT_ICMS)											"CST",
    
    					--	(	SELECT  -- PEGA O IMPOSTO 12 + 13
    					--			CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)	"vBCSTRet",		--(2.0)
    					--			CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)			"vICMSSTRet"	--(2.0)
    
    					--		WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) > 0 AND NFE_ITENS.PMVAST IS NOT NULL
    					--		FOR XML PATH(''), TYPE
    					--	)
    
    					--	WHERE NFE_ITENS.TRIBUT_ICMS = '60'
    					--	FOR XML PATH(''), TYPE				
    					--) AS ICMS60,
    						--- ICMS60
    					( --#47# - Inicio
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)																									"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)																									"CST",
    
    						(	SELECT  -- PEGA O IMPOSTO 12 + 13 + 64 + 65
    								--#61#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE  + 
    													  NFE_ITENS.ICMS_STR_BASE + 
    													  NFE_ITENS.ICMS_STA_BASE + 
    													  NFE_ITENS.ICMS_STAR_BASE)																					"vBCSTRet",		--(2.0)													
    								
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_STA_ALIQUOTA + 
    													  NFE_ITENS.FECP_STR_ALIQUOTA + 
    													  NFE_ITENS.ICMS_STAR_ALIQUOTA +
    													  NFE_ITENS.FECP_ALIQUOTA)																					"pST", --47
    								
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST  + 
    													  NFE_ITENS.ICMS_STR + 
    													  NFE_ITENS.ICMS_STA + 
    													  NFE_ITENS.ICMS_STAR)																						"vICMSSTRet"	--(2.0)
    								
    							--#61#
    							WHERE ((NFE_ITENS.ICMS_ST ) > 0 AND NFE_ITENS.PMVAST IS NOT NULL) OR 
    							(NFE_ITENS.ICMS_STR + NFE_ITENS.ICMS_STA + NFE_ITENS.ICMS_STAR) > 0 --#61#
    							FOR XML PATH(''), TYPE						
    						),
    						--#61#
    						(							
    							SELECT
    								CASE 
    									WHEN (NFE_ITENS.FECP_STA_BASE + NFE_ITENS.FECP_STAR_BASE) > 0 
    									THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_STA_BASE + NFE_ITENS.FECP_STAR_BASE) 
    								ELSE NULL END 																												"vBCFCPSTRet",
    								CASE 
    									WHEN (NFE_ITENS.FECP_STA_ALIQUOTA + NFE_ITENS.FECP_STAR_ALIQUOTA) > 0 
    									THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_STA_ALIQUOTA + NFE_ITENS.FECP_STAR_ALIQUOTA) 
    								ELSE NULL END																												"pFCPSTRet",
    								CASE 
    									WHEN (NFE_ITENS.FECP_STA + NFE_ITENS.FECP_STAR) > 0 
    									THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_STA + NFE_ITENS.FECP_STAR)	
    							ELSE NULL END																													"vFCPSTRet"							
    							WHERE (NFE_ITENS.FECP_STA + NFE_ITENS.FECP_STAR) > 0 
    							--#61#
    							FOR XML PATH(''), TYPE
    						),						
    						(							
    						--#53# - NF 1.60							
    							SELECT							
    								CASE WHEN NFE_ITENS.pRedBCEfet			> 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.pRedBCEfet)			ELSE NULL	END		"pRedBCEfet",
    								CASE WHEN NFE_ITENS.ICMS_EFET_BASE		> 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_EFET_BASE)		ELSE NULL	END		"vBCEfet",
    								CASE WHEN NFE_ITENS.ICMS_EFET_ALIQUOTA	> 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_EFET_ALIQUOTA)		ELSE NULL	END		"pICMSEfet",
    								CASE WHEN NFE_ITENS.ICMS_EFET_VALOR		> 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_EFET_VALOR)		ELSE NULL	END		"vICMSEfet"				
    							WHERE NFE_ITENS.ICMS_EFET_VALOR > 0
    							
    							FOR XML PATH(''), TYPE
    						--#53# - NF 1.60	
    						)
    						--#61#
    						WHERE NFE_ITENS.TRIBUT_ICMS = '60'
    						FOR XML PATH(''), TYPE	
    									
    					) AS ICMS60,
    
    					--#47# - Fim
    					--- ICMS70
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)					"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)					"CST",
    
    							(select	
    								3												"modBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBC)			"pRedBC", -- PERCENTUAL DE REDUCAO DA MARGEM DE CALCULO (PORCENT_REDUCAO_DE_BASE)--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)		"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)	"pICMS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)			"vICMS"
    								WHERE NFE_ITENS.ICMS > 0
    								FOR XML PATH(''), TYPE
    							),
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_BASE	  > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_BASE)	 ELSE NULL END  "vBCFCP",
    								CASE WHEN NFE_ITENS.FECP_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ALIQUOTA) ELSE NULL END	"pFCP",
    								CASE WHEN NFE_ITENS.FECP_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_VALOR)   ELSE NULL END	"vFCP",
    								--#45#	
    						(	SELECT
    								4																		"modBCST",							
    								CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END		"pMVAST",	-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST)								"pRedBCST",	-- NAO POSSUI CONFORME CONVERSA COM JC--#13#
    
    						--(	SELECT  -- PEGA O IMPOSTO 12 + 13
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST",
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_ST_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_BASE)		ELSE NULL END  "vBCFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ST_ALIQUOTA)	ELSE NULL END  "pFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_VALOR)	ELSE NULL END  "vFCPST",		
    								--#45#	
    								--#3.1#
    								--#18#
    								( SELECT
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ZF)	"vICMSDeson",  --#3.10# "vICMS", --(2.0) ICMS ZF para tratamento de qq desoneração
    									RTRIM(NFE_ITENS.ST_MOT_DESONERACAO) 		"motDesICMS"  --(2.0) Motivos conforme nota técnica
    								  WHERE NFE_ITENS.ICMS_ZF > 0 
    								  FOR XML PATH(''), TYPE
    								)
    								--#18#
    								--#3.1#
    
    							WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    							FOR XML PATH(''), TYPE
    						)
    
    						WHERE NFE_ITENS.TRIBUT_ICMS = '70'
    						FOR XML PATH(''), TYPE				
    					) AS ICMS70,
    
    					--- ICMS90 -- ICMS OUTROS  
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)	"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)	"CST",
    
    							( SELECT
    
    								3																"modBC",							-- DAQUI PARA BAIXO TODOS SAO NÃO OBRIGATORIOS(NO)
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)						"vBC",
    								CASE WHEN NFE_ITENS.PREDBC > 0 AND NFE_ITENS.ICMS > 0 
    									THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBC) ELSE NULL END	"pRedBC",		-- PERCENTUAL DE REDUCAO DA MARGEM DE CALCULO (PORCENT_REDUCAO_DE_BASE)	--#13#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)					"pICMS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)							"vICMS"
    								WHERE NFE_ITENS.ICMS > 0
    								FOR XML PATH(''), TYPE
    							),
    								--#45#	
    								CASE WHEN NFE_ITENS.FECP_BASE	  > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_BASE)	 ELSE NULL END  "vBCFCP",
    								CASE WHEN NFE_ITENS.FECP_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ALIQUOTA) ELSE NULL END	"pFCP",
    								CASE WHEN NFE_ITENS.FECP_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_VALOR)   ELSE NULL END	"vFCP",
    								--#45#	
    							( SELECT
    									4																				"modBCST",
    									CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END					"pMVAST",						-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    									CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST)										"pRedBCST",						-- NAO POSSUI CONFORME CONVERSA COM JC--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    									CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST",
    								--#3.1#
    								--#18#
    								( SELECT
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ZF)	"vICMSDeson",  --#3.10# "vICMS", --(2.0) ICMS ZF para tratamento de qq desoneração
    									RTRIM(NFE_ITENS.ST_MOT_DESONERACAO) 		"motDesICMS"  --(2.0) Motivos conforme nota técnica
    								  WHERE NFE_ITENS.ICMS_ZF > 0 
    								  FOR XML PATH(''), TYPE
    								)
    								--#18#
    								--#3.1#
    								WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    								FOR XML PATH(''), TYPE
    							),
    							--#45#	
    								CASE WHEN NFE_ITENS.FECP_ST_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_BASE)		ELSE NULL END  "vBCFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ST_ALIQUOTA)	ELSE NULL END  "pFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_VALOR)	ELSE NULL END  "vFCPST"								
    							--#45#		
    
    						WHERE NFE_ITENS.TRIBUT_ICMS = '90'
    						FOR XML PATH(''), TYPE				
    					)   AS ICMS90,
    					
    					--- ICMSPart (2.0)  SOMENTE PARA VEICULOS
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)	"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)	"CST",
    
    							( SELECT
    
    								3																"modBC",							-- DAQUI PARA BAIXO TODOS SAO NÃO OBRIGATORIOS(NO)
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)						"vBC",
    								CASE WHEN NFE_ITENS.PREDBC > 0 AND NFE_ITENS.ICMS > 0 
    									THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBC) ELSE NULL END	"pRedBC",		-- PERCENTUAL DE REDUCAO DA MARGEM DE CALCULO (PORCENT_REDUCAO_DE_BASE)	--#13#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)					"pICMS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)							"vICMS"
    								WHERE NFE_ITENS.ICMS > 0
    								FOR XML PATH(''), TYPE
    							),
    							
    							( SELECT
    									4																				"modBCST",
    									CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END					"pMVAST",						-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    									CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST)										"pRedBCST",						-- NAO POSSUI CONFORME CONVERSA COM JC--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    									CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST",
    									CONVERT(NUMERIC(7,4),0)															"pBCOp",		-- (2.0)	???? --#13#
    									NFE.UF																			"UFST"			-- (2.0)
    									
    
    								WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    								FOR XML PATH(''), TYPE
    
    							)
    
    						WHERE 1=2		-- NFE_ITENS.TRIBUT_ICMS = '90' OR NFE_ITENS.TRIBUT_ICMS = '10' 
    						FOR XML PATH(''), TYPE				
    					)   AS ICMSPart,
    					
    					--- ICMSST (2.0)  SOMENTE PARA COMBUSTIVEL
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)	"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)	"CST",
    							( SELECT
    									CONVERT(NUMERIC(15,2),0)														"vBCSTRet",						-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST
    									CONVERT(NUMERIC(15,2),0)														"vICMSSTRet",						-- NAO POSSUI CONFORME CONVERSA COM JC
    									CONVERT(NUMERIC(15,2),0)														"vBCSTDest",
    									CONVERT(NUMERIC(15,2),0)														"vICMSSTDest"
    
    								WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    								FOR XML PATH(''), TYPE
    							)
    
    						WHERE 1=2		-- NFE_ITENS.TRIBUT_ICMS = '41'
    						FOR XML PATH(''), TYPE				
    					)   AS ICMSST,
    					
    					--- ICMSSN101 (2.0)  OK
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)						"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)						"CSOSN",
    							 	CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_SN_ALIQUOTA)	"pCredSN", --#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_SN)			"vCredICMSSN"
    
    						WHERE NFE_ITENS.TRIBUT_ICMS = '101' AND NFE.CRT = 1
    						FOR XML PATH(''), TYPE				
    	
    					)   AS ICMSSN101,		
    					
    					--- ICMSSN102 (2.0)  OK
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)					"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)					"CSOSN"
    
    						WHERE NFE_ITENS.TRIBUT_ICMS IN ('102','103','300','400') AND NFE.CRT = 1
    						FOR XML PATH(''), TYPE				
    	
    					)   AS ICMSSN102,
    					
    					--- ICMSSN201 (2.0)  OK
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)														"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)														"CSOSN",
    
    							( SELECT
    									4																				"modBCST",
    									CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END					"pMVAST",						-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    									CASE WHEN NFE_ITENS.PREDBCST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST) ELSE NULL END					"pRedBCST",						-- NAO POSSUI CONFORME CONVERSA COM JC--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    									CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST"
    
    								WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    								FOR XML PATH(''), TYPE
    							),
    							--#45#	
    								CASE WHEN NFE_ITENS.FECP_ST_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_BASE)		ELSE NULL END  "vBCFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ST_ALIQUOTA)	ELSE NULL END  "pFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_VALOR)	ELSE NULL END  "vFCPST",							
    							--#45#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_SN_ALIQUOTA)									"pCredSN", --#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_SN)											"vCredICMSSN"
    
    
    							WHERE NFE_ITENS.TRIBUT_ICMS = '201' AND NFE.CRT = 1
    							FOR XML PATH(''), TYPE										
    					)   AS ICMSSN201,						
    
    					--- ICMSSN202 (2.0)  OK
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)														"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)														"CSOSN",
    
    							( SELECT
    									4																				"modBCST",
    									CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END					"pMVAST",						-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    									CASE WHEN NFE_ITENS.PREDBCST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST) ELSE NULL END					"pRedBCST",						-- NAO POSSUI CONFORME CONVERSA COM JC--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    									CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST"
    
    								WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    								FOR XML PATH(''), TYPE
    							),
    
    							--#45#	
    								CASE WHEN NFE_ITENS.FECP_ST_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_BASE)		ELSE NULL END  "vBCFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ST_ALIQUOTA)	ELSE NULL END  "pFCPST",
    								CASE WHEN NFE_ITENS.FECP_ST_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_VALOR)	ELSE NULL END  "vFCPST"								
    							--#45#
    
    						WHERE NFE_ITENS.TRIBUT_ICMS IN ('202','203') AND NFE.CRT = 1
    						FOR XML PATH(''), TYPE										
    					)   AS ICMSSN202,
    					
    					--- ICMSSN500 (2.0)  OK
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)					"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)					"CSOSN",
    								
    						(	SELECT  -- PEGA O IMPOSTO 12 + 13 + 64 + 65
    								--#61#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE  + 
    													  NFE_ITENS.ICMS_STR_BASE + 
    													  NFE_ITENS.ICMS_STA_BASE + 
    													  NFE_ITENS.ICMS_STAR_BASE)																					"vBCSTRet",		--(2.0)													
    								
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_STA_ALIQUOTA + 
    													  NFE_ITENS.FECP_STA_ALIQUOTA + 
    													  NFE_ITENS.ICMS_STAR_ALIQUOTA +
    													  NFE_ITENS.FECP_STAR_ALIQUOTA )																				"pST",/*#65#*/
    								
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST  + 
    													  NFE_ITENS.ICMS_STR + 
    													  NFE_ITENS.ICMS_STA + 
    													  NFE_ITENS.ICMS_STAR)																						"vICMSSTRet"	--(2.0)
    								--#61#
    
    							WHERE ((NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) > 0 AND NFE_ITENS.PMVAST IS NOT NULL) OR
    								   (NFE_ITENS.ICMS_STR + NFE_ITENS.ICMS_STA + NFE_ITENS.ICMS_STAR) > 0 --#61#
    							FOR XML PATH(''), TYPE
    						),	
    						--#61#
    						(							
    							SELECT
    								CASE 
    									WHEN (NFE_ITENS.FECP_STA_BASE + NFE_ITENS.FECP_STAR_BASE) > 0 
    									THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_STA_BASE + NFE_ITENS.FECP_STAR_BASE) 
    								ELSE NULL END 																												"vBCFCPSTRet",
    								CASE 
    									WHEN (NFE_ITENS.FECP_STA_ALIQUOTA + NFE_ITENS.FECP_STAR_ALIQUOTA) > 0 
    									THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_STA_ALIQUOTA + NFE_ITENS.FECP_STAR_ALIQUOTA) 
    								ELSE NULL END																												"pFCPSTRet",
    								CASE 
    									WHEN (NFE_ITENS.FECP_STA + NFE_ITENS.FECP_STAR) > 0 
    									THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_STA + NFE_ITENS.FECP_STAR)	
    							ELSE NULL END																													"vFCPSTRet"										
    							WHERE (NFE_ITENS.FECP_STA + NFE_ITENS.FECP_STAR) > 0 
    							
    							FOR XML PATH(''), TYPE
    						), 					
    						--#61#
    						(		
    						--#53# - NF 1.60					
    							SELECT																			
    								CASE WHEN NFE_ITENS.pRedBCEfet		 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.pRedBCEfet)			ELSE NULL	END			"pRedBCEfet",
    								CASE WHEN NFE_ITENS.ICMS_EFET_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_EFET_BASE)		ELSE NULL	END			"vBCEfet",
    								CASE WHEN NFE_ITENS.ICMS_EFET_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_EFET_ALIQUOTA)	ELSE NULL	END			"pICMSEfet",
    								CASE WHEN NFE_ITENS.ICMS_EFET_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_EFET_VALOR)	ELSE NULL	END			"vICMSEfet"														
    							WHERE (NFE_ITENS.ICMS_EFET_VALOR) > 0 
    							
    							FOR XML PATH(''), TYPE
    						--#53# - NF 1.60	
    						) 
    						WHERE NFE_ITENS.TRIBUT_ICMS = '500' AND NFE.CRT = 1 -- Mesma parametrizacao do ICMS 60
    						FOR XML PATH(''), TYPE				
    	
    					)   AS ICMSSN500,			
    					
    					--- ICMSSN900 (2.0)  ALTERADO EM 06/05/2011 APOS DEFINICAO COM CESTARI E FABIANO ARAUJO. USO DO SIMPLES_F NO LUGAR DO ICMS (AGUARDANDO DEFINICAO PORQUE DEU ERRO NA SEFAZ)
    					( 
    						SELECT 	RTRIM(NFE_ITENS.TRIBUT_ORIGEM)	"orig",
    								RTRIM(NFE_ITENS.TRIBUT_ICMS)	"CSOSN",
    								
    							( SELECT
    
    								3																"modBC",							-- DAQUI PARA BAIXO TODOS SAO NÃO OBRIGATORIOS(NO)
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_BASE)						"vBC",
    								CASE WHEN NFE_ITENS.PREDBC > 0 AND NFE_ITENS.ICMS > 0 
    									THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBC) ELSE NULL END	"pRedBC",		-- PERCENTUAL DE REDUCAO DA MARGEM DE CALCULO (PORCENT_REDUCAO_DE_BASE)	--#13#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ALIQUOTA)					"pICMS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS)							"vICMS"
    								WHERE NFE_ITENS.ICMS > 0
    								FOR XML PATH(''), TYPE
    							),
    
    							( SELECT
    									4																				"modBCST",
    									CASE WHEN NFE_ITENS.PMVAST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PMVAST) ELSE NULL END					"pMVAST",						-- PEGAR DA PORCENTAGEM DO VALOR NEGATIVO(PORCENT_REDUCAO_DE_BASE) NO CASO DO ICMS ST --#13#
    									CASE WHEN NFE_ITENS.PREDBCST > 0  
    										THEN CONVERT(NUMERIC(7,4),NFE_ITENS.PREDBCST) ELSE NULL END					"pRedBCST",						-- NAO POSSUI CONFORME CONVERSA COM JC
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST_BASE + NFE_ITENS.ICMS_STR_BASE)			"vBCST",
    									CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_ST_ALIQUOTA + NFE_ITENS.ICMS_STR_ALIQUOTA)	"pICMSST",--#13#
    									CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR)					"vICMSST"
    
    								WHERE (NFE_ITENS.ICMS_ST + NFE_ITENS.ICMS_STR) >= 0 AND NFE_ITENS.PMVAST IS NOT NULL
    								FOR XML PATH(''), TYPE
    							),
    							--#45#	
    							CASE WHEN NFE_ITENS.FECP_ST_BASE	 > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_BASE)		ELSE NULL END  "vBCFCPST",
    							CASE WHEN NFE_ITENS.FECP_ST_ALIQUOTA > 0 THEN CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_ST_ALIQUOTA)	ELSE NULL END  "pFCPST",
    							CASE WHEN NFE_ITENS.FECP_ST_VALOR    > 0 THEN CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_ST_VALOR)	ELSE NULL END  "vFCPST",								
    							--#45#
    							( SELECT
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_SN_ALIQUOTA)									"pCredSN",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_SN)											"vCredICMSSN"
    								WHERE NFE_ITENS.ICMS_SN > 0
    								FOR XML PATH(''), TYPE
    							)	
    
    							WHERE NFE_ITENS.TRIBUT_ICMS = '900' AND NFE.CRT = 1
    							FOR XML PATH(''), TYPE										
    					)   AS ICMSSN900						
    				
    				  WHERE (NFE_ITENS.ISS + NFE_ITENS.ISS_R = 0)							
    				  FOR XML PATH(''), TYPE
    				) AS ICMS,
    
    				--- IPI --- VERIFICAR ONDE ENCONTRA A SITUACAO TRIBUTARIA DO IPI
    				( SELECT  	
    						RTRIM(NFE_ITENS.CODIGO_CLASSE_TRIBUTACAO)	"clEnq",					-- CRIADO CAMPO NA EXCECAO
    						NULL										"CNPJProd",					-- VERIFICAR A NECESSIDADE. DESC.: CNPJ DO PRODUTOR DA MERCADORIA, QUANDO DIFERENTE DO EMITENTE. SOMENTE PARA OS CASOS DE EXPORTAÇÃO DIRETA OU INDIRETA.
    						NULL										"cSelo",
    						NULL										"qSelo",
    						RTRIM(NFE_ITENS.CODIGO_ENQUADRAMENTO)		"cEnq",						-- CRIADO CAMPO NA EXCECAO
    
    						
    					--- IPITRIB POR BASE E ALIQUOTA
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_IPI)						"CST",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.IPI_BASE)		"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.IPI_ALIQUOTA)	"pIPI", --#13#
    								NULL											"qUnid",				 
    								NULL											"vUnid",				 
    								CONVERT(NUMERIC(15,2),NFE_ITENS.IPI)			"vIPI"
    
    						WHERE NFE_ITENS.CST_IPI IN ('00','49','50','99') AND NFE_ITENS.CODIGO_CLASSE_TRIBUTACAO IS NULL
    						FOR XML PATH(''), TYPE				
    
    					) AS IPITrib,
    					
    					--- IPITRIB POR QTDE E VALOR UNITARIO(BEBIDAS)
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_IPI)						"CST",
    								NULL											"vBC",
    								NULL											"pIPI",
    								CONVERT(NUMERIC(16,4),NFE_ITENS.IPI_ALIQUOTA)	"qUnid",		-- UTILIZAR A ALIQUOTA DO IPI DA EXCECAO 
    								CONVERT(NUMERIC(15,4),NFE_ITENS.IPI_BASE)		"vUnid",		-- QTDE NORMAL DO ITEM 
    								CONVERT(NUMERIC(15,2),NFE_ITENS.IPI)			"vIPI"
    
    						WHERE NFE_ITENS.CST_IPI IN ('00','49','50','99') AND NFE_ITENS.CODIGO_CLASSE_TRIBUTACAO IS NOT NULL
    						FOR XML PATH(''), TYPE				
    					) AS IPITrib,							
    
    
    					--- IPINT
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_IPI)	"CST"
    						
    						WHERE NFE_ITENS.CST_IPI IN ('01','02','03','04','05','51','52','53','54','55')
    						FOR XML PATH(''), TYPE				
    					) AS IPINT
    
    
    					WHERE --NFE_ITENS.IPI > 0 AND 
    						NFE_ITENS.CST_IPI IN ('01','02','03','04','05','51','52','53','54','55','00','49','50','99')
    						AND (NFE_ITENS.ISS + NFE_ITENS.ISS_R = 0)
    					FOR XML PATH(''), TYPE			
    				) AS IPI,
    
    				--- II   (DEFINIR DE ONDE VIRÃO ESTAS INFORMAÇÕES)  IMPOSTO 7 -  IIMPORT 
    				( SELECT	CONVERT(NUMERIC(15,2),NFE_ITENS.I_IMPORT_BASE)		"vBC",
    							CONVERT(NUMERIC(15,2),vDespAdu)						"vDespAdu",  -- OK
    							CONVERT(NUMERIC(15,2),NFE_ITENS.I_IMPORT)			"vII",
    							CONVERT(NUMERIC(15,2),0)							"vIOF"		-- CONFORME CONVERSA JC E COMO NÃO TEMOS IOF, COLOCAR 0	
    					WHERE NFE_ITENS.I_IMPORT >= 0
    						AND (NFE_ITENS.ISS + NFE_ITENS.ISS_R = 0)
    						AND SUBSTRING(NFE_ITENS.CODIGO_FISCAL_OPERACAO,1,1) = '3' 
    					FOR XML PATH(''), TYPE	
    				) AS II,
    
    				--- ISSQN  (0-1)  PEGAR O IMPOSTO 14-ISS OU 22-ISSR
    				-- FOI QUEBRADO EM DOIS SELECTS PARA MOSTRAR OS DOIS TIPOS DE ISS (VISTO COM JC)
    				(
    					SELECT 		CONVERT(NUMERIC(15,2),NFE_ITENS.ISS_BASE)		"vBC",   
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ISS_ALIQUOTA)	"vAliq", --#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ISS)			"vISSQN",
    								CASE WHEN NFE.ENDERECO <> NFE.ENTREGA_ENDERECO 
    									THEN RTRIM(NFE.COD_MUNICIPIO_IBGE_ENTREGA) 
    									ELSE RTRIM(NFE.COD_MUNICIPIO_IBGE) 
    									 END										"cMunFG",		-- MUNICIPIO DO DESTINATARIO DO IBGE
    								RTRIM(REPLACE(NFE_ITENS.COD_SERVICO,'.',''))	"cListServ",	-- INCLUIDO CAMPO NO ITEM DA NOTA FISCAL
    
    								--#3.1# Nao informar este bloco, campo não obrigatorios
    																				--"vDeducao",
    																				--"vOutro",
    																				--"vDescIncond",
    																				--"vDescCond",
    																				--"vISSRet",
    								RTRIM(NFE_ITENS.CST_ISS)						"indISS", --#15#
    																				--"cServico",
    								case when NFE.ENTREGA_UF = 'EX' then '9999999' else NFE.COD_MUNICIPIO_IBGE_ENTREGA end "cMun",
    																				--"cPais",
    							case	when RTRIM(NFE_ITENS.CST_ISS)='6' then RTRIM(NFE_ITENS.NUMERO_PROCESSO_ISS)
    									when RTRIM(NFE_ITENS.CST_ISS)='7' then RTRIM(NFE_ITENS.NUMERO_PROCESSO_ISS) ELSE NULL END "nProcesso", --#15#
    								
    							case	when ISNULL(NFE_ITENS.INDICADOR_INCENTIVO_ISS,0)=0 then 2  
    									when NFE_ITENS.INDICADOR_INCENTIVO_ISS =0 then 2  
    									else NFE_ITENS.INDICADOR_INCENTIVO_ISS end 		"indIncentivo" --#15#
    								--#3.1#
    								--RTRIM(NFE_ITENS.CST_ISS)						"cSitTrib"		-- (2.0) CÓDIGO DE TRIBUTAÇÃO DO ISSQN 009075 - criar CST especifico para isto em conversa com JC em 29/09/2010
    								
    
    						WHERE NFE_ITENS.ISS > 0 
    						FOR XML PATH(''), TYPE				
    	
    				) AS ISSQN,
    
    				(
    					SELECT 		CONVERT(NUMERIC(15,2),NFE_ITENS.ISS_R_BASE)		"vBC",   
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ISS_R_ALIQUOTA)	"vAliq",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ISS_R)			"vISSQN",
    								CASE WHEN NFE.ENDERECO <> NFE.ENTREGA_ENDERECO 
    									THEN RTRIM(NFE.COD_MUNICIPIO_IBGE_ENTREGA) 
    									ELSE RTRIM(NFE.COD_MUNICIPIO_IBGE) 
    									 END										"cMunFG",		-- MUNICIPIO DO DESTINATARIO DO IBGE
    								RTRIM(REPLACE(NFE_ITENS.COD_SERVICO,'.',''))	"cListServ",	-- INCLUIDO CAMPO NO ITEM DA NOTA FISCAL
    								RTRIM(NFE_ITENS.CST_ISS)						"indISS", --#15#
    								
    								
    								--#3.1# - Nao informar este bloco,  campo não obrigatorios
    																				--"vDeducao",
    																				--"vOutro",
    																				--"vDescIncond",
    																				--"vDescCond",
    																				--"vISSRet",
    																				--"indISS",
    																				--"cServico",
    																				--"cMun",
    																				--"cPais",
    																				--"nProcesso",
    																				--"indIncentivo",
    								--#3.1#
    							case	when RTRIM(NFE_ITENS.CST_ISS)='6' then RTRIM(NFE_ITENS.NUMERO_PROCESSO_ISS)
    									when RTRIM(NFE_ITENS.CST_ISS)='7' then RTRIM(NFE_ITENS.NUMERO_PROCESSO_ISS) ELSE NULL END "nProcesso", --#15#
    								
    							case	when ISNULL(NFE_ITENS.INDICADOR_INCENTIVO_ISS,0)=0 then 2  
    									when NFE_ITENS.INDICADOR_INCENTIVO_ISS =0 then 2  
    									else NFE_ITENS.INDICADOR_INCENTIVO_ISS end 		"indIncentivo" --#15#
    								--RTRIM(NFE_ITENS.CST_ISS)						"cSitTrib"		-- (2.0) CÓDIGO DE TRIBUTAÇÃO DO ISSQN 009075 - criar CST especifico para isto em conversa com JC em 29/09/2010								
    
    						WHERE NFE_ITENS.ISS_R > 0
    						FOR XML PATH(''), TYPE				
    	
    				) AS ISSQN,
    				-- ISSQN
    
    				--- PIS   
    				( SELECT	
    	
    					--- PISALIQ
    					( 
    						SELECT	RTRIM(NFE_ITENS.CST_PIS)						"CST",			
    								CONVERT(NUMERIC(15,2),NFE_ITENS.PIS_BASE)		"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PIS_ALIQUOTA)	"pPIS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.PIS)			"vPIS"
    
    						WHERE NFE_ITENS.CST_PIS IN ('01','02')
    						FOR XML PATH(''), TYPE				
    					) AS PISAliq,
    
    					--- PISQTDE
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_PIS)						"CST",
    								CONVERT(NUMERIC(16,4),NFE_ITENS.QTDE_ITEM)		"qBCProd",
    								CONVERT(NUMERIC(15,4),NFE_ITENS.PIS_ALIQUOTA)	"vAliqProd",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.PIS)			"vPIS"
    
    						WHERE NFE_ITENS.CST_PIS IN ('03')
    						FOR XML PATH(''), TYPE				
    					) AS PISQtde,
    
    					--- PISNT
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_PIS)	"CST"
    						
    						WHERE NFE_ITENS.CST_PIS IN ('04','05','06','07','08','09')
    						FOR XML PATH(''), TYPE				
    
    					) AS PISNT,
    
    					--- PISOUTR
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_PIS)						"CST", -- DAQUI PARA BAIXO TODOS SAO NÃO OBRIGATORIOS(NO) - 
    								CONVERT(NUMERIC(15,2),NFE_ITENS.PIS_BASE)		"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PIS_ALIQUOTA)	"pPIS",--#13#
    								--CONVERT(NUMERIC(16,4),NFE_ITENS.QTDE_ITEM)	"qBCProd"
    								--CONVERT(NUMERIC(15,4),NFE_ITENS.PIS_ALIQUOTA)	"vAliqProd",   -- VERIFICAR O QUE COLOCAR
    								CONVERT(NUMERIC(15,2),NFE_ITENS.PIS)			"vPIS"
    
    						WHERE NFE_ITENS.CST_PIS IN ('99','49','50','51','52','53','54','55','56','60','61','62','63','64','65','66','67','70','71','72','73','74','75','98')
    						FOR XML PATH(''), TYPE				
    					) AS PISOutr
    
    				  WHERE --NFE_ITENS.PIS > 0 AND 
    					NFE_ITENS.CST_PIS IN ('01','02','03','04','05','06','07','08','09','99','49','50','51','52','53','54','55','56','60','61','62','63','64','65','66','67','70','71','72','73','74','75','98')
    				  FOR XML PATH(''), TYPE
    				) AS PIS,
    
    				--- PISST   NAO POSSUI ESTE IMPOSTO PREVISTO AINDA (CONVERSA JC)
    				(
    					SELECT 		''	"vBC",
    								''	"pPIS",
    								''	"qBCProd",
    								''	"vAliqProd",
    								''	"vPIS"
    
    						WHERE 1=2
    						FOR XML PATH(''), TYPE				
    	
    				) AS PISST,
    
    -------------------------------- COFINS ------------------------------------------
    				--- COFINS  
    				( SELECT	
    	
    					--- COFINSALIQ
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_COFINS)						"CST",			
    								CONVERT(NUMERIC(15,2),NFE_ITENS.COFINS_BASE)	"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.COFINS_ALIQUOTA)	"pCOFINS",--#13#
    								CONVERT(NUMERIC(15,2),NFE_ITENS.COFINS)			"vCOFINS"
    						
    						WHERE NFE_ITENS.CST_COFINS IN ('01','02')
    						FOR XML PATH(''), TYPE				
    
    					) AS COFINSAliq,
    
    					--- COFINSQTDE
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_COFINS)							"CST",
    								CONVERT(NUMERIC(16,4),NFE_ITENS.QTDE_ITEM)			"qBCProd",
    								CONVERT(NUMERIC(15,4),NFE_ITENS.COFINS_ALIQUOTA)	"vAliqProd",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.COFINS)				"vCOFINS"
    									
    						WHERE NFE_ITENS.CST_COFINS IN ('03')
    						FOR XML PATH(''), TYPE				
    
    					) AS COFINSQtde,
    
    					--- COFINSNT
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_COFINS)	"CST"
    						
    						WHERE NFE_ITENS.CST_COFINS IN ('04','05','06','07','08','09')
    						FOR XML PATH(''), TYPE				
    
    					) AS COFINSNT,
    
    					--- COFINSOUTR
    					( 
    						SELECT 	RTRIM(NFE_ITENS.CST_COFINS)							"CST", -- DAQUI PARA BAIXO TODOS SAO NÃO OBRIGATORIOS(NO) - RTRIM(NFE_ITENS.CST_COFINS)
    								CONVERT(NUMERIC(15,2),NFE_ITENS.COFINS_BASE)		"vBC",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.COFINS_ALIQUOTA)		"pCOFINS",--#13#
    								--CONVERT(NUMERIC(16,4),NFE_ITENS.QTDE_ITEM)		"qBCProd"
    								--CONVERT(NUMERIC(15,4),NFE_ITENS.COFINS_ALIQUOTA)	"vAliqProd",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.COFINS)				"vCOFINS"
    
    						WHERE	NFE_ITENS.CST_COFINS IN ('99','49','50','51','52','53','54','55','56','60','61','62','63','64','65','66','67','70','71','72','73','74','75','98')
    						FOR XML PATH(''), TYPE				
    					) AS COFINSOutr
    
    				  WHERE	-- NFE_ITENS.COFINS > 0 AND 
    						NFE_ITENS.CST_COFINS IN ('01','02','03','04','05','06','07','08','09','99','49','50','51','52','53','54','55','56','60','61','62','63','64','65','66','67','70','71','72','73','74','75','98')
    				  FOR XML PATH(''), TYPE
    				) AS COFINS,
    
    				--- COFINSST    NAO POSSUI ESTE IMPOSTO PREVISTO AINDA (CONVERSA JC)
    				(
    					SELECT 		 -- DAQUI PARA BAIXO TODOS SAO NÃO OBRIGATORIOS(NO)
    								''	"vBC",
    								''	"pCOFINS",
    								''	"qBCProd",
    								''	"vAliqProd",
    								''	"vCOFINS"
    
    						WHERE 1 = 2
    						FOR XML PATH(''), TYPE				
    	
    				) AS COFINSST,
    				----#31# Inicio
    				----Partilha do ICMS
    				( 
    						SELECT 	CONVERT(NUMERIC(15,2),NFE_ITENS.DICMS_BASE)							"vBCUFDest",
    								--#45#
    										CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_DEST_BASE)					"vBCFCPUFDest",
    								--#45#
    								CONVERT(NUMERIC(7,4),NFE_ITENS.FECP_DEST_ALIQUOTA)					"pFCPUFDest",
    								CONVERT(NUMERIC(7,4),NFE_ITENS.ICMS_DEST_ALIQUOTA)					"pICMSUFDest",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.ICMS_ALIQUOTA)						"pICMSInter", 
    								CONVERT(NUMERIC(7,4),NFE_ITENS.PART_ICMS_DEST_ALIQUOTA)				"pICMSInterPart",
    								CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_DEST_VALOR) 					"vFCPUFDest",					
    								CONVERT(NUMERIC(15,2),NFE_ITENS.DICMS_DEST_VALOR)					"vICMSUFDest",  -- #32#  #40# +  CONVERT(NUMERIC(15,2),NFE_ITENS.FECP_DEST_VALOR)		              			
    								CONVERT(NUMERIC(15,2),NFE_ITENS.DICMS_ORIG_VALOR)					"vICMSUFRemet"
    						WHERE NFE.ID_DESTINO_OPERACAO = 2
    						AND NFE.UF_EMITENTE <> NFE.UF
    						AND SUBSTRING(NFE_ITENS.CODIGO_FISCAL_OPERACAO,1,1) = '6'  
    						AND NFE.INDICADOR_IE_DESTINARARIO = 9 --#33#
    						AND NFE_ITENS.DICMS_BASE > 0 --#42#
    						--AND NFE_ITENS.ICMS_DEST_ALIQUOTA > NFE_ITENS.ICMS_ALIQUOTA  --#33#
    						FOR XML PATH(''), TYPE
    				  ) AS ICMSUFDest
    				--#31# Fim 
    				
    				FOR XML PATH(''), TYPE		
    			) AS imposto,
    ------------ IMPOSTO
    
    --#18#
    -------------- impostoDevol 
    --								(SELECT 
    --									(      SELECT   pDevol AS "pDevol" FROM 
    --																			(
    --																			SELECT CONVERT(NUMERIC(3,2), (A.QTDE_ITEM/H.QTDE_ITEM)) * 100 AS "pDevol"
    --																			FROM W_IMPRESSAO_NFE_ITENS A
    --																				INNER JOIN FILIAIS B ON A.FILIAL = B.FILIAL
    --																				INNER JOIN LOJA_VENDA_PGTO C ON A.NF = C.NUMERO_FISCAL_TROCA AND A.serie_nf = C.SERIE_NF_ENTRADA AND B.COD_FILIAL = C.CODIGO_FILIAL
    --																				INNER JOIN LOJA_VENDA D ON C.LANCAMENTO_CAIXA = D.LANCAMENTO_CAIXA AND C.CODIGO_FILIAL = D.CODIGO_FILIAL
    --																				INNER JOIN LOJA_VENDA_TROCA_ORIGEM E ON D.TICKET = E.TICKET AND D.CODIGO_FILIAL = E.CODIGO_FILIAL
    --																				INNER JOIN LOJA_VENDA F ON E.TICKET_ORIGEM = F.TICKET AND E.CODIGO_FILIAL_ORIGEM = F.CODIGO_FILIAL
    --																				INNER JOIN LOJA_VENDA_PGTO G ON F.LANCAMENTO_CAIXA = G.LANCAMENTO_CAIXA AND F.CODIGO_FILIAL = G.CODIGO_FILIAL
    --																				INNER JOIN LOJA_NOTA_FISCAL_ITEM H ON G.NUMERO_FISCAL_VENDA = H.NF_NUMERO AND G.SERIE_NF_SAIDA = H.SERIE_NF AND G.CODIGO_FILIAL = H.CODIGO_FILIAL AND A.ITEM_IMPRESSAO = H.ITEM_IMPRESSAO
    --																				WHERE      A.NOME_CLIFOR = NFE_ITENS.NOME_CLIFOR
    --																					AND    A.ITEM_IMPRESSAO = NFE_ITENS.ITEM_IMPRESSAO
    --																					AND    A.SUB_ITEM_TAMANHO = NFE_ITENS.SUB_ITEM_TAMANHO
    --																					AND    A.NF = NFE_ITENS.NF
    --																					AND    A.SERIE_NF =NFE_ITENS.SERIE_NF
    --																					and  IPI > 0) IPI_DEVOLUCAO
    
    --															FOR XML PATH(''), TYPE    
    --													 ) , 
    --											  (
    --												   SELECT       IPI AS "vIPIDevol"--                                                                        FROM   W_IMPRESSAO_NFE_ITENS A --																				INNER JOIN FILIAIS B ON A.FILIAL = B.FILIAL --#23#--																				INNER JOIN LOJA_VENDA_PGTO C ON A.NF = C.NUMERO_FISCAL_TROCA AND A.serie_nf = C.SERIE_NF_ENTRADA AND B.COD_FILIAL = C.CODIGO_FILIAL --#23#--																				INNER JOIN LOJA_VENDA D ON C.LANCAMENTO_CAIXA = D.LANCAMENTO_CAIXA AND C.CODIGO_FILIAL = D.CODIGO_FILIAL --#23#--																				INNER JOIN LOJA_VENDA_TROCA_ORIGEM E ON D.TICKET = E.TICKET AND D.CODIGO_FILIAL = E.CODIGO_FILIAL --#23#--																				INNER JOIN LOJA_VENDA F ON E.TICKET_ORIGEM = F.TICKET AND E.CODIGO_FILIAL_ORIGEM = F.CODIGO_FILIAL --#23#--																				INNER JOIN LOJA_VENDA_PGTO G ON F.LANCAMENTO_CAIXA = G.LANCAMENTO_CAIXA AND F.CODIGO_FILIAL = G.CODIGO_FILIAL --#23#--																				INNER JOIN LOJA_NOTA_FISCAL_ITEM H ON G.NUMERO_FISCAL_VENDA = H.NF_NUMERO AND G.SERIE_NF_SAIDA = H.SERIE_NF AND G.CODIGO_FILIAL = H.CODIGO_FILIAL AND A.ITEM_IMPRESSAO = H.ITEM_IMPRESSAO --#23#--                                                                        WHERE  A.NOME_CLIFOR = NFE_ITENS.NOME_CLIFOR --#23#--                                                                            AND  A.ITEM_IMPRESSAO = NFE_ITENS.ITEM_IMPRESSAO --#23#--                                                                            AND  A.SUB_ITEM_TAMANHO = NFE_ITENS.SUB_ITEM_TAMANHO --#23#--                                                                            AND  A.NF = NFE_ITENS.NF --#23#--                                                                            AND  A.SERIE_NF =NFE_ITENS.SERIE_NF --#23#--                                                                        and   IPI > 0 --#23#
    --												  FOR XML PATH(''), TYPE 
    --											  )   AS    IPI
    --									     WHERE NFE.FIN_EMISSAO_NFE = 4 and NFE_ITENS.IPI > 0 /*#18# #21#*/ 
    --										 /*#23#*/
    --										  AND EXISTS( SELECT TOP 1 1 --														FROM W_IMPRESSAO_NFE_ITENS A--																INNER JOIN FILIAIS B ON A.FILIAL = B.FILIAL--																INNER JOIN LOJA_VENDA_PGTO C ON A.NF = C.NUMERO_FISCAL_TROCA AND A.serie_nf = C.SERIE_NF_ENTRADA AND B.COD_FILIAL = C.CODIGO_FILIAL--																INNER JOIN LOJA_VENDA D ON C.LANCAMENTO_CAIXA = D.LANCAMENTO_CAIXA AND C.CODIGO_FILIAL = D.CODIGO_FILIAL--																INNER JOIN LOJA_VENDA_TROCA_ORIGEM E ON D.TICKET = E.TICKET AND D.CODIGO_FILIAL = E.CODIGO_FILIAL--																INNER JOIN LOJA_VENDA F ON E.TICKET_ORIGEM = F.TICKET AND E.CODIGO_FILIAL_ORIGEM = F.CODIGO_FILIAL--																INNER JOIN LOJA_VENDA_PGTO G ON F.LANCAMENTO_CAIXA = G.LANCAMENTO_CAIXA AND F.CODIGO_FILIAL = G.CODIGO_FILIAL--																INNER JOIN LOJA_NOTA_FISCAL_ITEM H ON G.NUMERO_FISCAL_VENDA = H.NF_NUMERO AND G.SERIE_NF_SAIDA = H.SERIE_NF AND G.CODIGO_FILIAL = H.CODIGO_FILIAL AND A.ITEM_IMPRESSAO = H.ITEM_IMPRESSAO--																WHERE      A.NOME_CLIFOR = NFE_ITENS.NOME_CLIFOR--																	AND    A.ITEM_IMPRESSAO = NFE_ITENS.ITEM_IMPRESSAO--																	AND    A.SUB_ITEM_TAMANHO = NFE_ITENS.SUB_ITEM_TAMANHO--																	AND    A.NF = NFE_ITENS.NF--																	AND    A.SERIE_NF =NFE_ITENS.SERIE_NF--																	and  IPI > 0)
    --										/*#23#*/
    --								FOR XML PATH(''), TYPE   
    --					) AS   impostoDevol,  
    -------------- impostoDevol 
    --#18#
    
    ------------- INFADPROD		
    			DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE_ITENS.INFORMACAO_ADICIONAL_PROD) "infAdProd"
    ------------- INFADPROD	
    
    		FROM  W_IMPRESSAO_NFE_ITENS NFE_ITENS
    		WHERE  NF = @NOTAFISCAL  AND 
    				SERIE_NF = @SERIENOTA AND 
    				FILIAL = @FILIALNOTA
    		ORDER BY NFE_ITENS.ITEM_NFE
    
    		FOR XML PATH('det'), TYPE
    		),
    ------- DET
    ------- TOTAL
    		(	
    			SELECT 
    
    -------------ICMSTOT		
    			(
    				SELECT CONVERT(NUMERIC(15,2),NFE.ICMS_BASE)																		"vBC",
    					CONVERT(NUMERIC(15,2),CASE WHEN NFE.ICMS_BST > 0 THEN NFE.ICMS_BST ELSE NFE.ICMS END)						"vICMS", --#27# - Caso a coluna ICMS_BST estiver com valor, considera-la. 
    					CONVERT(NUMERIC(15,2),NFE.ICMS_ZF)																			"vICMSDeson",
    					CONVERT(NUMERIC(15,2),NFE.FECP_DEST)																		"vFCPUFDest", --#31#
    					CONVERT(NUMERIC(15,2),NFE.DICMS_DEST)																		"vICMSUFDest", --#31#
    					CONVERT(NUMERIC(15,2),NFE.DICMS_ORIG)																		"vICMSUFRemet", --#31#
    					CONVERT(NUMERIC(15,2),NFE.FECP)																				"vFCP", --#45#
    					CONVERT(NUMERIC(15,2),NFE.ICMS_ST_BASE + NFE.ICMS_STR_BASE)													"vBCST",--#39#
    					CONVERT(NUMERIC(15,2),NFE.ICMS_ST + NFE.ICMS_STR)															"vST", --#39#
    					CONVERT(NUMERIC(15,2),NFE.FECP_ST)																			"vFCPST", --#45#
    					--0																											"vFCPSTRet", --#45#
    					CONVERT(NUMERIC(15,2),NFE.FECP_STA + NFE.FECP_STAR)															"vFCPSTRet", --#47#
    
    					CONVERT(NUMERIC(15,2),ABS(NFE.VALOR_SUB_ITENS - NFE.VALOR_SUB_ITENS_BRUTO))									"vProd",
    					CONVERT(NUMERIC(15,2),NFE.FRETE)																			"vFrete",
    					CONVERT(NUMERIC(15,2),NFE.SEGURO)																			"vSeg",
    					CONVERT(NUMERIC(15,2),NFE.DESCONTO + NFE.DESCONTO_COND_PGTO + NFE.ICMS_ZF + NFE.PIS_ZF + NFE.COFINS_ZF)		"vDesc",
    					CONVERT(NUMERIC(15,2),NFE.I_IMPORT)																			"vII",
    					CONVERT(NUMERIC(15,2),NFE.IPI)																				"vIPI",
    
    					--#45#
    					(
    						SELECT	ISNULL(SUM(A.IPI),0.00) AS "vIPIDevol"
    							FROM   W_IMPRESSAO_NFE_ITENS A
    								INNER JOIN W_IMPRESSAO_NFE B 
    									ON     A.NF=B.NF
    									AND    A.SERIE_NF=B.SERIE_NF
    									AND    A.FILIAL =B.FILIAL									
    						WHERE A.NOME_CLIFOR = @NOME_CLIFOR AND
    							  A.FILIAL = @FILIALNOTA  AND
    							  A.NF = @NOTAFISCAL AND
    							  A.SERIE_NF = @SERIENOTA	
    							  AND  A.IPI > 0
    							  AND B.FIN_EMISSAO_NFE = 4 and A.IPI > 0 /*#27# #31#*/
    										--#34#
    										AND  EXISTS(	
    												--LOJA
    												SELECT 1
    												FROM W_IMPRESSAO_NFE_ITENS A
    													INNER JOIN FILIAIS B ON A.FILIAL = B.FILIAL
    													INNER JOIN LOJA_VENDA_PGTO C ON A.NF = C.NUMERO_FISCAL_TROCA AND A.serie_nf = C.SERIE_NF_ENTRADA AND B.COD_FILIAL = C.CODIGO_FILIAL
    													INNER JOIN LOJA_VENDA D ON C.LANCAMENTO_CAIXA = D.LANCAMENTO_CAIXA AND C.CODIGO_FILIAL = D.CODIGO_FILIAL
    													INNER JOIN LOJA_VENDA_TROCA_ORIGEM E ON D.TICKET = E.TICKET AND D.CODIGO_FILIAL = E.CODIGO_FILIAL
    													INNER JOIN LOJA_VENDA F ON E.TICKET_ORIGEM = F.TICKET AND E.CODIGO_FILIAL_ORIGEM = F.CODIGO_FILIAL
    													INNER JOIN LOJA_VENDA_PGTO G ON F.LANCAMENTO_CAIXA = G.LANCAMENTO_CAIXA AND F.CODIGO_FILIAL = G.CODIGO_FILIAL
    													INNER JOIN LOJA_NOTA_FISCAL_ITEM H ON G.NUMERO_FISCAL_VENDA = H.NF_NUMERO AND G.SERIE_NF_SAIDA = H.SERIE_NF AND G.CODIGO_FILIAL = H.CODIGO_FILIAL AND A.ITEM_IMPRESSAO = H.ITEM_IMPRESSAO
    													WHERE      A.NOME_CLIFOR = @NOME_CLIFOR
    														AND    A.ITEM_IMPRESSAO = A.ITEM_IMPRESSAO
    														AND    A.SUB_ITEM_TAMANHO = A.SUB_ITEM_TAMANHO
    														AND    A.NF = @NOTAFISCAL
    														AND    A.SERIE_NF = @SERIENOTA
    														and  IPI > 0)
    												--#34#
    						FOR XML PATH(''), TYPE 
    					),
    					--#45#
    
    					--0																											"vIPIDevol", --#45#,
    					CONVERT(NUMERIC(15,2),ABS(NFE.PIS - NFE.PIS_SOBRE_SERVICO))													"vPIS",
    					CONVERT(NUMERIC(15,2),ABS(NFE.COFINS - NFE.COFINS_SOBRE_SERVICO))											"vCOFINS",
    					CONVERT(NUMERIC(15,2),NFE.ENCARGO)																			"vOutro", -- NFE.VALOR_IMPOSTO_AGREGAR
    					CONVERT(NUMERIC(15,2),NFE.VALOR_TOTAL)																		"vNF"
    					--#2#
    					,CONVERT(NUMERIC(15,2),@VALOR_IMPOSTO_ITEM)																	"vTotTrib"
    					--#2#
    					FOR XML PATH(''), TYPE
    
    			) AS ICMSTot,
    -------------ICMSTOT
    	
    -------------ISSQNTOT	   0 OU 1	    --- ACORDADO COM CESTARI
    			(
    				SELECT	CASE WHEN NFE.VALOR_SUB_ITENS > 0 THEN  CONVERT(NUMERIC(15,2),NFE.VALOR_SUB_ITENS_BRUTO) ELSE NULL END		"vServ",
    						CASE WHEN NFE.ISS_BASE  > 0 THEN CONVERT(NUMERIC(15,2),NFE.ISS_BASE) ELSE NULL END							"vBC",
    						CASE WHEN NFE.ISS  > 0 THEN CONVERT(NUMERIC(15,2),NFE.ISS) ELSE NULL END									"vISS",
    						CASE WHEN NFE.PIS_SOBRE_SERVICO  > 0 THEN CONVERT(NUMERIC(15,2),NFE.PIS_SOBRE_SERVICO) ELSE NULL END		"vPIS",
    						CASE WHEN NFE.COFINS_SOBRE_SERVICO  > 0 THEN CONVERT(NUMERIC(15,2),NFE.COFINS_SOBRE_SERVICO) ELSE NULL END	"vCOFINS"
    				WHERE NFE.ISS > 0
    				FOR XML PATH(''), TYPE
    
    			) AS ISSQNtot,
    			(
    				SELECT CASE WHEN NFE.VALOR_SUB_ITENS > 0 THEN  CONVERT(NUMERIC(15,2),NFE.VALOR_SUB_ITENS_BRUTO) ELSE NULL END		"vServ",
    						CASE WHEN NFE.ISS_R_BASE > 0 THEN  CONVERT(NUMERIC(15,2),NFE.ISS_R_BASE) ELSE NULL END						"vBC",
    						CASE WHEN NFE.ISS_R > 0 THEN  CONVERT(NUMERIC(15,2),NFE.ISS_R) ELSE NULL END								"vISS",
    						CASE WHEN NFE.PIS_SOBRE_SERVICO > 0 THEN  CONVERT(NUMERIC(15,2),NFE.PIS_SOBRE_SERVICO) ELSE NULL END		"vPIS",
    						CASE WHEN NFE.COFINS_SOBRE_SERVICO > 0 THEN  CONVERT(NUMERIC(15,2),NFE.COFINS_SOBRE_SERVICO) ELSE NULL END	"vCOFINS"
    				WHERE NFE.ISS_R > 0
    				FOR XML PATH(''), TYPE
    
    			) AS ISSQNtot,
    -------------ISSQNTOT
    
    -------------RETTRIB		0 OU 1		
    			(
    				SELECT  CASE WHEN NFE.PIS_S > 0 THEN CONVERT(NUMERIC(15,2),NFE.PIS_S) ELSE NULL END			"vRetPIS",
    						CASE WHEN NFE.COFINS_S > 0 THEN CONVERT(NUMERIC(15,2),NFE.COFINS_S) ELSE NULL END 	"vRetCOFINS",
    						CASE WHEN NFE.CSLL_S > 0 THEN CONVERT(NUMERIC(15,2),NFE.CSLL_S) ELSE NULL END		"vRetCSLL",
    						CASE WHEN NFE.IRRF_BASE > 0 THEN CONVERT(NUMERIC(15,2),NFE.IRRF_BASE) ELSE NULL END	"vBCIRRF",
    						CASE WHEN NFE.IRRF > 0 THEN CONVERT(NUMERIC(15,2),NFE.IRRF) ELSE NULL END			"vIRRF",
    						CASE WHEN NFE.INSS_BASE > 0 THEN CONVERT(NUMERIC(15,2),NFE.INSS_BASE) ELSE NULL END	"vBCRetPrev",
     						CASE WHEN NFE.INSS > 0 THEN CONVERT(NUMERIC(15,2),NFE.INSS) ELSE NULL END			"vRetPrev"
    
    					WHERE (NFE.PIS_S+NFE.COFINS_S+NFE.CSLL_S+NFE.IRRF_BASE+NFE.IRRF+NFE.INSS_BASE+NFE.INSS) > 0
    					FOR XML PATH(''), TYPE
    
    			) AS retTrib
    -------------ISSQNTOT
    
    		FOR XML PATH(''), TYPE
    		) AS total,
    ------- TOTAL
    
    
    
    ------- TRANSP
    		(	
    
    				SELECT CASE WHEN NFE.ENTREGA_CIF = 1 THEN 0 ELSE 
    					   CASE WHEN NFE.ENTREGA_CIF = 0 THEN 1 ELSE NFE.ENTREGA_CIF END END "modFrete",
    
    				--- TRANSPORTA      OK
    				( 
    					SELECT 	
    							CASE WHEN NFE.TRANSPORTADORA_PF_PJ = 0 THEN RTRIM(NFE.TRANSPORTADORA_CNPJ) ELSE NULL END "CNPJ",
    							CASE WHEN NFE.TRANSPORTADORA_PF_PJ = 1 THEN RTRIM(NFE.TRANSPORTADORA_CNPJ) ELSE NULL END "CPF",		
    							CASE WHEN ISNULL(NFE.TRANSPORTADORA,'') = '' THEN NULL ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.TRANSPORTADORA) END	"xNome",
    							CASE WHEN (NFE.TRANSPORTADORA_PF_PJ = 1 AND NFE.TRANSPORTADORA_IE IS NULL) THEN '' ELSE DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(1,NFE.TRANSPORTADORA_IE) END	"IE",
    							CASE WHEN ISNULL(NFE.TRANSPORTADORA_ENDERECO,'') = '' THEN NULL ELSE  DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,SUBSTRING(NFE.TRANSPORTADORA_ENDERECO,1,60)) END 	"xEnder",
    							CASE WHEN ISNULL(NFE.TRANSPORTADORA_CIDADE,'') = '' THEN NULL ELSE  DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.TRANSPORTADORA_CIDADE) END 	"xMun",
    							CASE WHEN ISNULL(NFE.TRANSPORTADORA_UF,'') = '' THEN NULL ELSE  RTRIM(NFE.TRANSPORTADORA_UF) END 	"UF"
    					WHERE NFE.TRANSPORTADORA IS NOT NULL
    					FOR XML PATH(''), TYPE
    				) AS transporta,
    
    				--- RETTRANSP      --- VERIFICAR SE É NECESSÁRIO ESTA TAG
    				( 
    					SELECT 	0	"vServ",   
    							0	"vBCRet",
    							0	"pICMSRet",
    							0	"vICMSRet",
    							0	"CFOP",
    							''	"cMunFG"
    
    					WHERE 1 = 2
    					FOR XML PATH(''), TYPE
    				) AS retTransp,
    
    				--- VEICTRANSP    --  VERIFICAR POSSIVEL NECESSIDADE
    				( 
    					SELECT 	NFE.VEICULO_PLACA		"placa",   --''	"placa",   
    							NFE.UF_PLACA_VEICULO	"UF",		--''	"UF",
    							NULL					"RNTC"	 --''	"RNTC"
    
    					WHERE NFE.VEICULO_PLACA IS NOT NULL
    					FOR XML PATH(''), TYPE
    				) AS veicTransp,
    
    				--- REBOQUE    --  VERIFICAR POSSIVEL NECESSIDADE
    				( 
    					SELECT 	NFE.VEICULO_PLACA		"placa",   --''	"placa",   
    							NFE.UF_PLACA_VEICULO	"UF", --''	"UF",
    							NULL					"RNTC" --''	"RNTC"
    
    					WHERE 1 = 2
    					FOR XML PATH(''), TYPE
    				) AS reboque,
    
    				--- VOL    --  VERIFICAR A NECESSIDADE DOS DADOS E SIGNIFICADO - IMFORMACAO 1..N
    				( 
    					SELECT 	CASE WHEN NFE.VOLUMES > 0 THEN NFE.VOLUMES ELSE NULL END									"qVol",   
    							CASE WHEN ISNULL(NFE.TIPO_VOLUME,'') = '' THEN NULL ELSE RTRIM(DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.TIPO_VOLUME)) END	"esp",
    							DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.MARCA_VOLUMES)								"marca",
    							DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.NUMERACAO_VOLUMES)							"nVol",
    							CASE WHEN NFE.PESO_LIQUIDO > 0 THEN CONVERT(NUMERIC(15,3),NFE.PESO_LIQUIDO) ELSE NULL END	"pesoL",
    							CASE WHEN NFE.PESO_BRUTO > 0 THEN CONVERT(NUMERIC(15,3),NFE.PESO_BRUTO) ELSE NULL END		"pesoB",
    							(
    								SELECT		0																			"nLacre"
    								WHERE 1 = 2
    								FOR XML PATH(''), TYPE	
    							) AS lacres
    					WHERE NFE.VOLUMES > 0 OR NFE.PESO_LIQUIDO > 0 OR NFE.PESO_BRUTO > 0 OR (NFE.TIPO_VOLUME <> '' OR NFE.TIPO_VOLUME IS NOT NULL)
    					FOR XML PATH(''), TYPE
    				) AS vol
    				FOR XML PATH(''), TYPE
    		
    		) AS transp,
    
    
    ------- TRANSP
    
    --- PAGAMENTO #45#  #46#
    		(
    			SELECT 
    				(
    					SELECT 	CONVERT(varchar(3),RTRIM(W_INFORMACAO_PAGAMENTO.INFO_PGTO))					"tPag",
    
    							  CASE WHEN W_INFORMACAO_PAGAMENTO.TIPO_NOTA = 'O' THEN 0 ELSE
    							  (CONVERT(NUMERIC(15,2),RTRIM(W_INFORMACAO_PAGAMENTO.VALOR)) +  CONVERT(NUMERIC(15,2),RTRIM(W_INFORMACAO_PAGAMENTO.TROCO))	+ --#48##54#	
    							  CONVERT(NUMERIC(15,2),RTRIM(b.valor)))	END "vPag",--#54#
    						    --CONVERT(NUMERIC(15,2),RTRIM(W_INFORMACAO_PAGAMENTO.VALOR)) +  CONVERT(NUMERIC(15,2),RTRIM(W_INFORMACAO_PAGAMENTO.TROCO))	+ --#48#
    							--CASE WHEN W_INFORMACAO_PAGAMENTO.TIPO_NOTA = 'V' THEN CONVERT(NUMERIC(15,2),RTRIM(b.valor))  ELSE 0 END "vPag",  
    																				( 
    								SELECT 	CONVERT(varchar(3),RTRIM(W_INFORMACAO_PAGAMENTO.TIPO_INTEGRA))																				"tpIntegra",
    						 				CASE WHEN W_INFORMACAO_PAGAMENTO.TIPO_INTEGRA IS NOT NULL AND W_INFORMACAO_PAGAMENTO.TIPO_INTEGRA = 1 THEN CONVERT(varchar(14),RTRIM(W_INFORMACAO_PAGAMENTO.CNPJ_CREDENCIADORA)) END	"CNPJ",  --#51#
    										CASE WHEN W_INFORMACAO_PAGAMENTO.TIPO_INTEGRA IS NOT NULL AND W_INFORMACAO_PAGAMENTO.TIPO_INTEGRA = 1 THEN CONVERT(varchar(2),RTRIM(W_INFORMACAO_PAGAMENTO.BANDEIRA)) END				"tBand", --#51#
    										CASE WHEN W_INFORMACAO_PAGAMENTO.TIPO_INTEGRA IS NOT NULL AND W_INFORMACAO_PAGAMENTO.TIPO_INTEGRA = 1 THEN RTRIM(W_INFORMACAO_PAGAMENTO.AUTORIZACAO) END								"cAut" 
    								WHERE W_INFORMACAO_PAGAMENTO.NF = @NOTAFISCAL AND 
    									  W_INFORMACAO_PAGAMENTO.SERIE_NF = @SERIENOTA AND
    									  W_INFORMACAO_PAGAMENTO.FILIAL = @FILIALNOTA AND
    									  W_INFORMACAO_PAGAMENTO.INFO_PGTO in ('03','04')  
    									  and (
    											CONVERT(NUMERIC(15,2),RTRIM(W_INFORMACAO_PAGAMENTO.VALOR)) > 0.00  --#48##49# 
    											OR RTRIM(b.valor) > 0.00)--#49# #50#
    								FOR XML PATH('card'), TYPE
    							)
    								
    				FROM W_INFORMACAO_PAGAMENTO W_INFORMACAO_PAGAMENTO
    				inner join [DBO].[FX_CALCULA_RATEIO_PARCELAS](@qtde_parcela,
    					case 
    						when (CONVERT(NUMERIC(15,2),NFE.ICMS_ST + NFE.ICMS_STR)> 0 and CONVERT(NUMERIC(15,2),NFE.FECP_ST) > 0) 
    						then CONVERT(NUMERIC(15,2),NFE.ICMS_ST + NFE.ICMS_STR) + CONVERT(NUMERIC(15,2),NFE.FECP_ST) else 0 end) b
    
    				on W_INFORMACAO_PAGAMENTO.PARCELA = b.parcela
    				WHERE W_INFORMACAO_PAGAMENTO.NF = @NOTAFISCAL AND 
    							W_INFORMACAO_PAGAMENTO.SERIE_NF = @SERIENOTA AND
    							W_INFORMACAO_PAGAMENTO.FILIAL = @FILIALNOTA  
    							and W_INFORMACAO_PAGAMENTO.valor >= 0.00  --#48##49#
    
    					FOR XML PATH('detPag'),TYPE
    				),
    				
    									
    				(
    					SELECT	
    					case when CONVERT(NUMERIC(15,2),RTRIM(SUM(W_INFORMACAO_PAGAMENTO.TROCO))) >0 then  CONVERT(NUMERIC(15,2),RTRIM(SUM(W_INFORMACAO_PAGAMENTO.TROCO)))--#54#
    					else null end		"vTroco" --##54#
    					--case when CONVERT(NUMERIC(15,2),RTRIM(SUM(W_INFORMACAO_PAGAMENTO.TROCO))) >=0 then  CONVERT(NUMERIC(15,2),RTRIM(SUM(W_INFORMACAO_PAGAMENTO.TROCO)))
    					--else  CONVERT(NUMERIC(15,2),RTRIM(SUM(W_INFORMACAO_PAGAMENTO.TROCO)))	*-1 end		"vTroco" --#48#
    						FROM W_INFORMACAO_PAGAMENTO
    						inner join [DBO].[FX_CALCULA_RATEIO_PARCELAS](@qtde_parcela,
    					case 
    						when (CONVERT(NUMERIC(15,2),NFE.ICMS_ST + NFE.ICMS_STR)> 0 and CONVERT(NUMERIC(15,2),NFE.FECP_ST) > 0) 
    						then CONVERT(NUMERIC(15,2),NFE.ICMS_ST + NFE.ICMS_STR) + CONVERT(NUMERIC(15,2),NFE.FECP_ST) else 0 end) b
        				on W_INFORMACAO_PAGAMENTO.PARCELA = b.parcela
    					WHERE W_INFORMACAO_PAGAMENTO.NF = @NOTAFISCAL AND 
    							W_INFORMACAO_PAGAMENTO.SERIE_NF = @SERIENOTA AND
    							W_INFORMACAO_PAGAMENTO.FILIAL = @FILIALNOTA   
    							--and b.valor < 0 --#48#
    							
    
    					
    					FOR XML PATH(''), TYPE
    				)
    																									
    				FOR XML PATH(''), TYPE	
    
    			) AS pag,
    --#45# -- #46#
    
    
    --------- PAGAMENTO #61#
    --		( 	
    
    
    --			SELECT
    --				( 
    --					SELECT 	CONVERT(varchar(3),RTRIM(NFE.INFO_PGTO))			"tPag",
    --							CONVERT(NUMERIC(15,2),RTRIM(NFE.VALOR_TOTAL))		"vPag"
    --							--0.00 as												"vTroco"
    	
    --					FOR XML PATH(''), TYPE
    --				) AS detPag,
    --				0.00 as															"vTroco"												
    			
    --			FOR XML PATH(''), TYPE				
    			
    --		) AS pag,
    --		--#61#
    ----#61# - Retirado o trecho não já na documentação da NF-e 4.0
    --------- COBR --  
    		
    --		(	-- FATURAMENTO
    --			SELECT 	
    --				--- FAT 1..1     --- PREPARAR A VIEW PARA PEGAR ESTES DADOS OU FAZER SELECT EM CTB_A_RECEBER_FATURAS
    --				( 
    --					SELECT  RTRIM(MAX(FAT.NFAT))											"nFat", 
    --							SUM(FAT.VORIG)													"vOrig",
    --							CASE WHEN SUM(FAT.VDESC) > 0 THEN SUM(FAT.VDESC) ELSE NULL END	"vDesc",	-- CAMPO REQUERIDO NO SCHEMA DA IT GROUP
    --							SUM(FAT.VLIQ)													"vLiq"		-- CAMPO REQUERIDO NO SCHEMA DA IT GROUP
    --					FROM DBO.FX_CTB_SIMULA_PARCELAS(@FILIALNOTA,@NOTAFISCAL,@SERIENOTA,@TIPO_DOC,NFE.COD_TRANSACAO) AS FAT
    --					FOR XML PATH('fat'), TYPE
    --				) ,
    
    --				--- DUP  1..N    --- PREPARAR A VIEW PARA PEGAR ESTES DADOS OU FAZER SELECT EM CTB_A_RECEBER_FATURAS
    
    --				( 
    --					SELECT RTRIM(NDUP)										"nDup",   
    --							CONVERT(CHAR(10),DUP.DVENC,21)					"dVenc",
    --							CONVERT(NUMERIC(15,2),DUP.VDUP)					"vDup"
    --					FROM DBO.FX_CTB_SIMULA_PARCELAS(@FILIALNOTA,@NOTAFISCAL,@SERIENOTA,@TIPO_DOC,NFE.COD_TRANSACAO) AS DUP
    --					FOR XML PATH('dup'), TYPE
    --				) 
    --			WHERE @TIPO_DOC = 'S' AND EXISTS(SELECT VORIG FROM DBO.FX_CTB_SIMULA_PARCELAS(@FILIALNOTA,@NOTAFISCAL,@SERIENOTA,@TIPO_DOC,NFE.COD_TRANSACAO)) 
    --			FOR XML PATH(''), TYPE
    --		) AS cobr,
    
    
    ------- INFADIC --  
    		(	
    			SELECT 
    
    					-- #36# [Inicio]
    					-- DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,@OBS_INTERESSE_FISCO) "infAdFisco",
    					( SELECT 
    						--#41#DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,@OBS_INTERESSE_FISCO) --"infAdFisco" #38#
    						@OBS_INTERESSE_FISCO --#41#
    						WHERE 
    							-- #41# @OBS_INTERESSE_FISCO IS NOT NULL OR @OBS_INTERESSE_FISCO = '' 
    							isnull(@OBS_INTERESSE_FISCO,'') <> '' --#41#
    							FOR XML PATH('infAdFisco'), TYPE ),	 --#38#					
    					-- #36# [Fim]							
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,@INFCOMPLEMENTAR)		  "infCpl",
    					(
    						SELECT 'XXX'	"@xCampo",
    								''		"xTexto"
    						WHERE 1= 2
    						FOR XML PATH('obsCont'), TYPE	
    					) ,
    					(
    						SELECT 'XXX'	"@xCampo",
    								''		"xTexto"
    						WHERE 1= 2	
    						FOR XML PATH('obsFisco'), TYPE	
    					) ,
    					(
    						SELECT		0	"nProc",
    									0	"indProc"
    						WHERE 1= 2
    						FOR XML PATH(''), TYPE	
    					) AS procRef
    
    			WHERE (@INFCOMPLEMENTAR <> '' AND @INFCOMPLEMENTAR IS NOT NULL) OR (@OBS_INTERESSE_FISCO <> '' AND @OBS_INTERESSE_FISCO IS NOT NULL)
    			FOR XML PATH(''), TYPE
    		) AS infAdic,
    
    
    ------- INFADIC
    ------- EXPORTA --  ESTA INFORMACAO FOI INCLUIDA EM 29/09/2010 E FOI CONVERSADO COM CESTARIA SOBRE A INCLUSAO DESTES CAMPOS
    		(	
    			SELECT	NFE.UF_EMBARQUE_EXPORTACAO														    "UFSaidaPais",  --"UFEmbarq", #13#
    					DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT,NFE.LOCAL_EMBARQUE_EXPORTACAO)			"xLocExporta",  --"xLocEmbarq" #13#
    					null "xLocDespacho" --  #13# Nova Tag, por enquanto null...
    			WHERE NFE.UF_EMBARQUE_EXPORTACAO IS NOT NULL AND NFE.LOCAL_EMBARQUE_EXPORTACAO IS NOT NULL
    			FOR XML PATH(''), TYPE
    		) AS exporta,
    ------- EXPORTA
    
    ------- COMPRA --  VERIFICAR POSSIVEL NECESSIDADE
    		(	
    			SELECT  NFE.NOTA_EMPENHO_COMPRA		"xNEmp",
    					NFE.PEDIDO_COMPRA			"xPed",
    					NFE.CONTRATO_COMPRA			"xCont"
    
    			WHERE NFE.NOTA_EMPENHO_COMPRA IS NOT NULL OR NFE.PEDIDO_COMPRA IS NOT NULL OR NFE.CONTRATO_COMPRA IS NOT NULL
    			FOR XML PATH(''), TYPE
    		) AS compra
    ------- COMPRA
    
    FROM  W_IMPRESSAO_NFE NFE
    WHERE  NF = @NOTAFISCAL  AND 
    		SERIE_NF = @SERIENOTA AND 
    		FILIAL = @FILIALNOTA
    FOR XML PATH('infNFe'), TYPE 
    
    ) --AS INFNFE
    FOR XML PATH('NFe'),TYPE 
    
    )
    
    SELECT @NFE_XML_REPLACE = CONVERT(VARCHAR(MAX) ,@NFE_XML )
    
    --SELECT @NFE_XML_REPLACE =  ('<?'+'xml version="1.0" encoding="UTF-8"?>'+@NFE_XML_REPLACE)
    SELECT @NFE_XML_REPLACE = REPLACE(@NFE_XML_REPLACE,'SUBSTITUI1="SUBSTITUIR"','xmlns="http://www.portalfiscal.inf.br/nfe"')
    
    IF @RETORNA_XML = 1
    	SELECT CONVERT(XML,@NFE_XML_REPLACE) AS XML_NFE, ROUND(LEN(@NFE_XML_REPLACE)/1024.00,2) AS TAMANHO_XML, RTRIM(@CHAVEACESSO) AS CHAVE_NFE, @EMAIL_NFE AS EMAIL_NFE, @EMAIL_DESTINATARIO AS EMAIL_DESTINATARIO
    ELSE
    	SELECT @NFE_XML_REPLACE AS XML_NFE, ROUND(LEN(@NFE_XML_REPLACE)/1024.00,2) AS TAMANHO_XML, RTRIM(@CHAVEACESSO) AS CHAVE_NFE, @EMAIL_NFE AS EMAIL_NFE, @EMAIL_DESTINATARIO AS EMAIL_DESTINATARIO
    
    
  7. Após executar a query, abra o LinxPOS Manager;
  8. Acesse Gerencial > Notas Fiscais;
  9. Abra a NF-e pendente e clique em Ok para reprocessar a nota fiscal.