Ir para conteúdo
  • Cadastre-se

dev botao

dev botao

NFe - Evento - 790700 Averbação para Exportação (Órgão Autor: AN), retorna teNaoMapeado


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 1814 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia a todos,
 

Um cliente solicitou uma solução para buscar as informações do evento de Averbação de Exportação código do Evento 790700, onde o mesmo fica vinculado as NF-e de Exportação Direta e Indireta (CFOPs 7.101, 7.102, 5.501, 5.502, 6.501, 6.502) emitida POR ELE MESMO.

Nesse evento tem os campos abaixo que são os importantes para eu pegar e fazer minha documentação, mas não são carregados nas propriedades do Componente ACBrNFe, só estão na propriedade XML é claro:
Item da NF-e, Item da DUE, Número da DUE, Quantidade Averbada (uTrib), Data do Embarque, Data da Averbação, Motivo da Alteração

Estou usando o componente ACBrNFe com a função:
ACBrNFe1.DistribuicaoDFePorUltNSU( UFtoCUF( s_UF_Autor ), s_CNPJ, IntToStr( i_UltimoNSU ) );

Faço o clássico loop usando repeat, e essa função me retorna certinho os XMLs das NF-e e os Eventos etc. Só que percebi que no caso do Evento de Averbação de Exportação, o componente ACBrNFe não está mapeando as propriedades desse Evento.
Aliais quando o evento é Averbação de Exportação a propriedade abaixo do componente nem é definida.

( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento = teAverbacaoExportacao )
Em vez de teAverbacaoExportacao ela fica teNaoMapeado.


E consigo ver as seguintes propriedades abaixo:

( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.schema = schprocEventoNFe )
( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.chDFe <> '' )
( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.cOrgao = 91 )
( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.CNPJ = '33683111000107' ) // CNPJ do SERPRO
( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento = teNaoMapeado )
( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.DetEvento.DescEvento = 'Averbação para Exportação' )
( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.RetInfEvento.cStat = 135 )


O XML está certinho dentro da Propriedade:
ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.XML

Eu sei que eu posso pegar os dados do XML (ficar lendo os XMLs que estão vindo) dessa propriedade e utilizar. Mas quero fazer a pergunta se eu estou tentando pegar os dados desse evento de maneira errada ou se o componente ainda não está preparado para trabalhar com esse Evento de Averbação de Exportação (daí o porquê de retornar Não Mapeado), nos Eventos de Manifestação do Destinatário e Carta de Correção o componente preenche certinho as propriedades e com isso facilitando muito a extração das informações.


Agradeço desde já a atenção de todos.
 

Evento_AverbacaoExportacao.jpg

Evento_AverbacaoExportacao_02.jpg

Evento_AverbacaoExportacao_04.jpg

  • Consultores
Postado

Boa tarde,

Esse evento não é enviado para SEFAZ pelo Emitente da Nota e sim pelo Fisco.

Pelo que notei o DistribuicaoDFe esta retornado o XML do evento gerado pelo Fisco que esta vinculado a nota.

Você tem o XML do evento?

Se sim, favor anexar para que possamos ver quais são as informações contidas nele e com isso acrescentar os campos nas classes.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado
  Em 20/09/2019 at 17:57, Italo Jurisato Junior disse:

Boa tarde,

Esse evento não é enviado para SEFAZ pelo Emitente da Nota e sim pelo Fisco.

Pelo que notei o DistribuicaoDFe esta retornado o XML do evento gerado pelo Fisco que esta vinculado a nota.

Você tem o XML do evento?

Se sim, favor anexar para que possamos ver quais são as informações contidas nele e com isso acrescentar os campos nas classes.

 

Expandir  

Boa tarde, Italo.

Sim, é o fisco (SISCOMEX) que emite esse evento.

O evento de averbação é um registro eletrônico vinculado às notas fiscais eletrônicas de exportação que instruíram a DU-E, com informações relativas (art. 93 da IN RFB nº 1.702/2017).

Este evento é registrado nas notas fiscais pelo Portal siscomex.gov.br, depois da autorização de embarque ou de transposição de fronteira.

Não basta que a mercadoria tenha sido desembaraçada para que o evento seja enviado à nota fiscal. É necessária a confirmação do embarque. Somente depois desta confirmação é que o evento de averbação de embarque é gerado.

 

Em anexo o XML do Evento de Averbação para Exportação (por questão de segurança eu só troquei o CNPJ na Chave de Acesso, por um fictício, caso precise do XML original posso passar por e-mail).

 

Meu muito obrigado pela atenção.

 

Evento_AverbacaoExportacao_05.jpg

AverbacaoExportacao.xmlFetching info...

Postado
  Em 20/09/2019 at 20:16, Mom disse:

Boa tarde, Italo.

Sim, é o fisco (SISCOMEX) que emite esse evento.

O evento de averbação é um registro eletrônico vinculado às notas fiscais eletrônicas de exportação que instruíram a DU-E, com informações relativas (art. 93 da IN RFB nº 1.702/2017).

Este evento é registrado nas notas fiscais pelo Portal siscomex.gov.br, depois da autorização de embarque ou de transposição de fronteira.

Não basta que a mercadoria tenha sido desembaraçada para que o evento seja enviado à nota fiscal. É necessária a confirmação do embarque. Somente depois desta confirmação é que o evento de averbação de embarque é gerado.

 

Em anexo o XML do Evento de Averbação para Exportação (por questão de segurança eu só troquei o CNPJ na Chave de Acesso, por um fictício, caso precise do XML original posso passar por e-mail).

 

Meu muito obrigado pela atenção.

 

Evento_AverbacaoExportacao_05.jpg

AverbacaoExportacao.xml 5 kB · 0 downloads

Expandir  

 

Para melhorar a documentação desse post.

 

Esse evento foi divulgado na Nota Técnica 2014/002, Web Service de Distribuição de DF-e de Interesse dos Atores da NF-e (PF ou PJ), Versão 1.02b de Maio 2017.

http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=s/plBMpQotg=

 

Obrigado!

 

 

Evento_AverbacaoExportacao_06.jpg

Evento_AverbacaoExportacao_07.jpg

  • Curtir 1
  • Consultores
Postado

Boa tarde,

Muito obrigado pelo XML de retorno que contem o evento de averbação.

Agora é possível implementar a classe para poder ler os dados desse evento.

Em breve será disponibilizado a atualização dos fontes com a leitura correta desse evento.

  • Obrigado 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • 2 semanas depois ...
Postado
  Em 03/10/2019 at 23:15, Italo Jurisato Junior disse:

Boa noite,

Favor atualizar os fontes, reinstale a suíte ACBr e faça novos testes.

Expandir  

Boa tarde, Italo.

Eu segui o seu procedimento de atualizar e instalar o ACBr novamente.

 

Agora consigo ver mais propriedades alimentadas como por exemplo:

ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento = teAverbacaoExportacao

ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.FRetInfEvento.FtpEvento = teAverbacaoExportacao

 

Pelo que vi o que mudou:

Dentro de propriedade "ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.FDetEvento" agora tem a "ItensAverbados" que pelo que vi é uma Collection

Onde creio que poderia acessar os valores assim:

ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.DetEvento.itensAverbados.Items[0]

Mais isso no Debug "Evaluate/Modify" retorna o erro (em anexo imagem):

"Delphi exception EListError at $3052F8A1"

 

ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.detEvento.itensAverbados.Items[0].dhEmbarque

Debug "Inaccessible value"

Em execução da o erro: "List index out of bounds (0)"

 

 

Agradeço pela atenção,

Evento_AverbacaoExportacao_08.jpg

Postado
  Em 11/10/2019 at 15:32, Italo Jurisato Junior disse:

Bom dia,

Não sei quando você atualizou os fontes, pois enviei para o repositório no dia 3/10 as 20:11 e depois uma correção no mesmo dia as 20:14

Favor atualizar novamente.

Expandir  

Bom dia, Italo.

Hoje fiz a atualização geral e reinstalei o componente ACBr.

E testei novamente a busca pelos eventos de Averbação de Exportação e continuou o problema citado acima.

Não consigo ler o que está dentro da Propriedade "itensAverbados", não lista itens ou qualquer propriedade valida, conforme imagem em anexo.

 

// Por hora estou pegando os itens Averbados dentro do XML

// Minha rotina é parecida com a citada abaixo...
// No loop dos eventos retornado pelo "ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip"

  if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.tpEvento = teAverbacaoExportacao ) then
  begin

    XMLDocument1.LoadFromXML( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].XML );
    nodedetEvento := XMLDocument1.ChildNodes.FindNode('procEventoNFe').ChildNodes.FindNode('evento').ChildNodes.FindNode('infEvento').ChildNodes.FindNode('detEvento');

    for i_ChildNodes := 0 to nodedetEvento.ChildNodes.Count - 1 do
    begin

      if ( nodedetEvento.ChildNodes[i_ChildNodes].NodeName = 'itensAverbados' ) then
      begin

        nodeitensAverbados := nodedetEvento.ChildNodes[i_ChildNodes];

        xml_dhEmbarque   := ISO8601ToDate( nodeitensAverbados.ChildValues['dhEmbarque'], False );
        xml_dhAverbacao  := ISO8601ToDate( nodeitensAverbados.ChildValues['dhAverbacao'], False );
        xml_nDue         := FormatMaskText('99aa999999999\-9;0;', nodeitensAverbados.ChildValues['nDue'] );

        xml_nItem        := nodeitensAverbados.ChildValues['nItem'];
        xml_nItemDue     := nodeitensAverbados.ChildValues['nItemDue'];
        xml_qItem        := StringReplace( nodeitensAverbados.ChildValues['qItem'], '.', ',', [rfReplaceAll] );
        xml_motAlteracao := nodeitensAverbados.ChildValues['motAlteracao'];

        Inc( i_itensAverbados );

      end;

    end;
  end;

 

Obrigado pela atenção.

 

 

Evento_AverbacaoExportacao_09.jpg

  • Consultores
Postado

Boa tarde,

Notei que a sua rotina tem um IF que compara o valor de tpEvento com o valor teAverbacaoExportacao.

Primeira pergunta ao executar essa rotina ele entra dentro desse IF?

Notei que você carrega o conteúdo do campo XML para poder ler os valores das TAGs (não porque você fez dessa forma, mas tudo bem),

a propriedade XML contem o XML do evento?

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado
  Em 16/10/2019 at 19:10, Italo Jurisato Junior disse:

Boa tarde,

Notei que a sua rotina tem um IF que compara o valor de tpEvento com o valor teAverbacaoExportacao.

Primeira pergunta ao executar essa rotina ele entra dentro desse IF?

Notei que você carrega o conteúdo do campo XML para poder ler os valores das TAGs (não porque você fez dessa forma, mas tudo bem),

a propriedade XML contem o XML do evento?

 

Expandir  

Boa noite, Italo.

 

Primeira pergunta ao executar essa rotina ele entra dentro desse IF?

Sim, você conseguiu acertar essa parte no ACBrNFe.

 

a propriedade XML contem o XML do evento?

Sim, quando "procEvento.tpEvento = teAverbacaoExportacao" e nodedetEvento.ChildNodes[i_ChildNodes].NodeName = 'itensAverbados' eu consigo pegar o XML do evento corretamente em DistribuicaoDFe.retDistDFeInt.docZip.Items.XML.

 

Até o componente ACBrNFe for implementado corretamente essa função do Averbação de Exportação, estarei fazendo essa engenharia alternativa (esta dando 100% certo), até porque o cliente não espera muito. rsss

 

Obrigado pela atenção, até mais.

 

  • 3 meses depois ...
Postado
  Em 17/10/2019 at 00:34, William Mometti disse:

Boa noite, Italo.

 

Primeira pergunta ao executar essa rotina ele entra dentro desse IF?

Sim, você conseguiu acertar essa parte no ACBrNFe.

 

a propriedade XML contem o XML do evento?

Sim, quando "procEvento.tpEvento = teAverbacaoExportacao" e nodedetEvento.ChildNodes[i_ChildNodes].NodeName = 'itensAverbados' eu consigo pegar o XML do evento corretamente em DistribuicaoDFe.retDistDFeInt.docZip.Items.XML.

 

Até o componente ACBrNFe for implementado corretamente essa função do Averbação de Exportação, estarei fazendo essa engenharia alternativa (esta dando 100% certo), até porque o cliente não espera muito. rsss

 

Obrigado pela atenção, até mais.

 

Expandir  

Boa Tarde,

Estou verificando uma forma de buscar estes campos da NFE sem ser necessário consultar nota por nota. Pergunto:

Este cenário sobre XML do evento 790700 "Averbação para Exportação", também é válido para o evento 990 910 "Internalização SUFRAMA"???

Obrigada,

Postado
  Em 12/02/2020 at 18:52, Bea disse:

Boa Tarde,

Estou verificando uma forma de buscar estes campos da NFE sem ser necessário consultar nota por nota. Pergunto:

Este cenário sobre XML do evento 790700 "Averbação para Exportação", também é válido para o evento 990 910 "Internalização SUFRAMA"???

Obrigada,

Expandir  

 

Boa noite, Bea.

A forma de buscar o evento "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA" é da mesma maneira que o "790700 - Averbação para Exportação".

O problema que eu encontrei foi que a variável "teConfInternalizacao" não está carregando valor nela, ou seja, esse evento "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA" está vindo como Não Mapeado, que é a mesma coisa que estava acontecendo com a variável "teAverbacaoExportacao" do evento "790700 - Averbação para Exportação" ( o Italo acerto no fonte do ACBr ), agora seria top se o Italo pudesse acertar também o evento "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA" no ACBr. 😅

Para mim esses eventos "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA", começaram a ficar disponíveis a partir da data de autorização 23/12/2019.

Esse novo evento começou a ser emitido devido ao novo sistema do SUFRAMA o SIMNAC - Sistema de Ingresso de Mercadoria Nacional (Clique aqui para ver o Manual). (A partir de agora fica extinta a Declaração de Ingresso emitida pelo SUFRAMA, mas no lugar será gerado o Evento “990910 - Internalização SUFRAMA” )

 

Segue mais ou menos a rotina que eu fiz, onde foi feita "a toque de caixa", ou seja, precisa ser melhorada...

 

procedure ConsultarNFeEmitente;
var
  s_CNPJ, s_UF_Autor, s_ChaveNFe, s_NSU_Atual: String;
  docZip: TdocZipCollectionItem;
  i_UltimoNSU, i, j: Integer;
  node_infEvento, node_detEvento: IXMLNode;
  xml_dhEvento, xml_dhVistoria: TDateTime;
  xml_tpEvento, xml_NumeroPINe, xml_LocalidadeVistoria, xml_Posto, xml_Historico: String;
  i_Qtd_DFe_Encontrado: Integer;
begin
  
  i_Qtd_DFe_Encontrado := 0;
  
  s_CNPJ     := '000000000000'; // CNPJ da Empresa
  s_UF_Autor := ACBrNFe1.Configuracoes.WebServices.UF;
  
  // Aqui antes de começar busco qual foi o ultimo NSU que ficou gravado, e caso for a primeira vez será "0"...  
  with qryTemp do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT ... ');
    Open;
    i_UltimoNSU := FieldByName('CodigoUltimoNSU').AsInteger;
  end;

  
  repeat

    try

      ACBrNFe1.DistribuicaoDFePorUltNSU( UFtoCUF( s_UF_Autor ), s_CNPJ, IntToStr( i_UltimoNSU ) );

      i_UltimoNSU := StrToInt( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU );
      
      // Rotina que grava o Ultimo NSU consultado, com Data/Hora e Usuário do sistema
      if ( i_UltimoNSU > 0 ) then
        GravaUltimoNSU( i_UltimoNSU );
	  
    except
      on er: Exception do
      begin

        if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 0 ) then // Pode ser o Erro de Inativo e Inoperante
        begin

          Sleep( 5000 );

          ACBrNFe1.DistribuicaoDFePorUltNSU( UFtoCUF( s_UF_Autor ), s_CNPJ, IntToStr( i_UltimoNSU ) );

          i_UltimoNSU := StrToInt( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU );

          if ( i_UltimoNSU > 0 ) then
            GravaUltimoNSU( i_UltimoNSU );

        end
        else
        begin
          MessageDlg( 'cStat: ' + IntToStr( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat ) + #13#10 +
                      er.Message, mtError, [mbOk], 0 );

          Abort;
        end;

      end;
    end;
    
    // caso haja retorno [138-Documento localizado]
    try
      if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 ) then
      begin
        j := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count -1;

        for i:= 0 to j do
        begin

          Inc( i_Qtd_DFe_Encontrado );

          frmAtualizandoDados.Repaint;
          frmAtualizandoDados.Refresh;
          Application.ProcessMessages;

          XMLDocument1.XML.Clear;

          s_ChaveNFe := '';

          if not ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento = nil ) and
             not ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.chDFe = EmptyStr ) then
          begin

            s_ChaveNFe := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.chDFe;
            s_NSU_Atual := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU;

            // Verifica se é o evento Completo de "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA".
            // Estarei fazendo esse monte de verificações até o ACBr acertar a variável "teConfInternalizacao"
            if ( ( s_ChaveNFe <> '' ) and
                 ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].schema = schprocEventoNFe ) ) and
               ( ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.tpEvento = teConfInternalizacao ) or
                 ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento = 'Confirmacao de Internalizacao da Mercadoria na SUFRAMA' ) or
                 ( ( AnsiPos('Internalizacao', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) and
                   ( AnsiPos('SUFRAMA', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) ) or
                 ( ( AnsiPos('Internalização', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) and
                   ( AnsiPos('SUFRAMA', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) ) ) then
            begin

              // Consulta no Banco de Dados para verificar se a NF-e é "Venda destinada à Zona Franca de Manaus ou Áreas de Livre Comércio - CFOP 6.109 e 6.110"
              // Regra de Negócio minha...
              with qryTemp do
              begin
                Close;
                SQL.Clear;
                SQL.Add('SELECT ...');
                SQL.Add('  FROM ... ns');
                SQL.Add(' WHERE ... ');
                SQL.Add('   AND ns.CFOP IN ( ''6.109'', ''6.110'' )');
                ParamByName('p_ChaveNFE').AsString := s_ChaveNFe;
                Open;
              end;

              if ( qryTemp.RecordCount > 0 ) then
              begin
                // Carrega o XML no "XMLDocument1", onde será possível acessar os "Nodes" de maneira mais fácil...
                // Foi feito essa rotina que lê direto no XML, pois, até na data "10/02/2020" o componente ACBrNFe não estava totalmente preparado para trabalhar com esse evento...
                XMLDocument1.XML.Clear;
                XMLDocument1.LoadFromXML( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].XML );

                node_infEvento := XMLDocument1.ChildNodes.FindNode('procEventoNFe').ChildNodes.FindNode('evento').ChildNodes.FindNode('infEvento');
                xml_dhEvento   := ISO8601ToDate( node_infEvento.ChildValues['dhEvento'], False );
                xml_tpEvento   := node_infEvento.ChildValues['tpEvento'];

                node_detEvento         := XMLDocument1.ChildNodes.FindNode('procEventoNFe').ChildNodes.FindNode('evento').ChildNodes.FindNode('infEvento').ChildNodes.FindNode('detEvento');
                xml_NumeroPINe         := node_detEvento.ChildValues['PINe'];
                xml_dhVistoria         := ISO8601ToDate( node_detEvento.ChildValues['dVistoria'], False );
                xml_LocalidadeVistoria := node_detEvento.ChildValues['locVistoria'];
                xml_Posto              := node_detEvento.ChildValues['postoVistoria'];
                xml_Historico          := node_detEvento.ChildValues['xHistorico'];

                // Aqui eu faço a Inserção do Evento no meu Banco de Dados...
                qryTemp2.Close;
                qryTemp2.SQL.Clear;
                qryTemp2.SQL.Add('BEGIN');
                qryTemp2.ExecSQL;

                qryTemp2.Close;
                qryTemp2.SQL.Clear;
                qryTemp2.SQL.Add('INSERT INTO ... ');
                
                qryTemp2.ParamByName('chNFe').AsString                := s_ChaveNFe;
                qryTemp2.ParamByName('NSUProtocolo').AsString         := s_NSU_Atual;
                qryTemp2.ParamByName('dhEvento').AsDateTime           := xml_dhEvento;
                qryTemp2.ParamByName('tpEvento').AsString             := xml_tpEvento;
                qryTemp2.ParamByName('nSeqEvento').AsInteger          := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.nSeqEvento;
                qryTemp2.ParamByName('descEvento').AsString           := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento;
                qryTemp2.ParamByName('ProtocoloEvento').AsString      := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.RetinfEvento.nProt;
                qryTemp2.ParamByName('dhAutorizacaoSEFAZ').AsDateTime := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.RetinfEvento.dhRegEvento;
                qryTemp2.ParamByName('NumeroPINe').AsString           := xml_NumeroPINe;
                qryTemp2.ParamByName('dhVistoria').AsDateTime         := xml_dhVistoria;
                qryTemp2.ParamByName('LocalidadeVistoria').AsString   := xml_LocalidadeVistoria;
                qryTemp2.ParamByName('Posto').AsString                := xml_Posto;
                qryTemp2.ParamByName('Historico').AsString            := xml_Historico;

                qryTemp2.ExecSQL;

                qryTemp2.Close;
                qryTemp2.SQL.Clear;
                qryTemp2.SQL.Add('COMMIT');
                qryTemp2.ExecSQL;

              end;

            end;

          end;

        end;
      end;
    except
      on er: exception do
      begin
        raise Exception.Create('Erro Capturado: ' + er.Message);
      end;
    end;

  until ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat IN [108,109,137] );

  if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 108 ) then
  begin
    MessageDlg('cStat = 108: Serviço Paralisado Momentaneamente (curto prazo).', mtWarning, [mbOk], 0);
  end
  else if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 108 ) then
  begin
    MessageDlg('cStat = 109: Serviço Paralisado sem Previsão.', mtWarning, [mbOk], 0);
  end
  else if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 ) then
  begin

    // Caso tenha encontrado Documento Fiscal Eletrônica, irá da a mensagem "Pesquisa NF-e executado com sucesso!".
    if ( i_Qtd_DFe_Encontrado > 0 ) then
    begin
      MessageDlg('Pesquisa de NF-e que foram Internalizadas foi executado com sucesso!', mtInformation, [mbOk], 0);
    end
    else
    begin
      MessageDlg('cStat = 137: Nenhum documento localizado.', mtWarning, [mbOk], 0);
    end;

  end;
  
end;

 

Espero que eu posso ter ajudado em alguma coisa. 👍

 

Até mais...

 

  • Curtir 1
  • Administradores
Postado

Bom dia.

Caso queira aplicar a correção e nos enviar o fonte, será muito bem vindo tb.

Att.

  • Curtir 1
Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
  Em 13/02/2020 at 11:49, Juliana Tamizou disse:

Bom dia.

Caso queira aplicar a correção e nos enviar o fonte, será muito bem vindo tb.

Att.

Expandir  

 

Boa, Juliana! 

Todos que puderem vamos ajudar a comunidade.

 

Para resolver o problema do "ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento", não mapear os eventos “990900 - Vistoria Suframa” e "990910 - Internalização Suframa" efetuar a seguinte modificação no Fonte do ACBr.


Diretório:
ACBr\Fontes\ACBrDFe\ACBrNFe\PCNNFe

Alterar a function "StrToTpEventoNFe" no arquivo: "pcnConversaoNFe.pas"

De:

function StrToTpEventoNFe(out ok: boolean; const s: string): TpcnTpEvento;
begin
  Result := StrToEnumerado(ok, s,
            ['-99999', '110110', '110111', '110112', '110140', '111500',
             '111501', '111502', '111503', '210200', '210210', '210220',
             '210240', '610600', '610614', '790700'],
            [teNaoMapeado, teCCe, teCancelamento, teCancSubst, teEPECNFe,
             tePedProrrog1, tePedProrrog2, teCanPedProrrog1, teCanPedProrrog2,
             teManifDestConfirmacao, teManifDestCiencia,
             teManifDestDesconhecimento, teManifDestOperNaoRealizada,
             teRegistroCTe, teMDFeAutorizadoComCTe, teAverbacaoExportacao ]);
end;

 

Para:

function StrToTpEventoNFe(out ok: boolean; const s: string): TpcnTpEvento;
begin
  Result := StrToEnumerado(ok, s,
            ['-99999', '110110', '110111', '110112', '110140', '111500',
             '111501', '111502', '111503', '210200', '210210', '210220',
             '210240', '610600', '610614', '790700', '990900', '990910'],
            [teNaoMapeado, teCCe, teCancelamento, teCancSubst, teEPECNFe,
             tePedProrrog1, tePedProrrog2, teCanPedProrrog1, teCanPedProrrog2,
             teManifDestConfirmacao, teManifDestCiencia,
             teManifDestDesconhecimento, teManifDestOperNaoRealizada,
             teRegistroCTe, teMDFeAutorizadoComCTe, teAverbacaoExportacao,
             teVistoriaSuframa, teConfInternalizacao]);
end;

 

Fiz o teste em minha aplicação e deu certo. 😉👍

 

  • Curtir 1
  • Administradores
Postado

Boa tarde.

  Em 13/02/2020 at 17:28, William Mometti disse:

Todos que puderem vamos ajudar a comunidade.

Expandir  

Esse é o espirito 😀

  Em 13/02/2020 at 17:28, William Mometti disse:

Fiz o teste em minha aplicação e deu certo. 😉👍

Expandir  

Pode por favor anexar a unit alterada.

Att.

Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Administradores
Postado

Boa tarde.

Adicionado para validação, retornaremos no tópico assim que possível.

Att.

  • Curtir 1
Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 6 meses depois ...
Postado

Aproveitando o tópico, gostaria de saber se consigo retornar esses dados de itens averbados, para notas onde minha empresa é a emitente. Como pego esses dados nessa situação?

 

Desde já agradeço.

 

  • Administradores
Postado

Boa tarde.

  Em 28/08/2020 at 23:43, PAULOHPSANTOS disse:

Aproveitando o tópico, gostaria de saber se consigo retornar esses dados de itens averbados, para notas onde minha empresa é a emitente. Como pego esses dados nessa situação?

Expandir  

Para novas dúvidas queira por favor criar um novo tópico.

Att.

Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 1814 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 8 segundos...