Ir para conteúdo
  • Cadastre-se

William Mometti

Membros
  • Total de ítens

    33
  • Registro em

  • Última visita

Posts postados por William Mometti

  1. 5 horas atrás, Juliana Tamizou disse:

    Bom dia.

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

    Att.

     

    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
  2. 3 horas atrás, 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,

     

    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
  3. 5 horas atrás, 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?

     

    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.

     

  4. Em 11/10/2019 at 12: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.

    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

  5. 17 horas atrás, Italo Jurisato Junior disse:

    Boa noite,

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

    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

  6. 10 minutos atrás, 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

     

    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
  7. 2 horas atrás, 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.

     

    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

  8. 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

  9. Em 28/08/2019 at 08:00, osmargyn disse:

    Bom dia pessoal!

    obs.: Me desculpem se estou postam no lugar errado o tópico.

    E o seguinte: desde de sexta nao consigo lançar notas por esta dando erro com SEFAZ.

    Na sexta eu confirmava as notas e só depois de 5 a 10 minutos que conseguia escriturar. Porem no sábado, nao consegui escriturar nenhum nota.

    Entrei em contado com meu suporte para ver se tinha solução e ele atualizaram o programa. Agora consigo escriturar mas só depois de 5 minutos apos confirmar a nota.

    A vezes também da erro quando vai confirmar, parece que nao esta conseguindo comunicação com o SEFAZ. 

    Sou de Goiânia e ja entrei em contato com SEFAZ mas eles falam que esta tudo certo.

    Uso Windows 7 e 10 sempre atualizados. 

    OBS: o windows nao foi atualizado antes do problema começar.

    Alguem pode me dar um luz a respeito?

    errofdfd.JPG

    Bom dia, osmargyn

    Eu também estou tendo o mesmo problema em utilizar o WebService de Distribuição de DFe, para mim, começou no dia 27/08/2019, de principio ficando intermitente e depois sempre ocorrendo.

    Só de abrir o link do WebService pelo navegador já da erro:
    https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx

    HTTP Error 503. The service is unavailable. (O serviço esta indisponível).

     

    Tempos em tempos, a Receita faz esse maravilho trabalho de ferrar com seus contribuintes. Eles são fantásticos em fazer os contribuintes se ferrarem... 😠

    Esse serviço deveria ser um exemplo um modelo de funcionamento perfeito, porque os documentos em questão geram impostos = receita para o governo.

    Dai você vê sites como arquivei.com.br que oferece esse tipo de serviço, claro que pago, sem dar nenhum problema, e porque isso, porque o governo criou um WebService exclusivo para "grandes" empresas oferecerem esse serviço (que deveria ser gratuito) sem dar problemas.

    Que WebService que o arquivei.com.br e sites do gênero usam? 

    Eles utilizam a API do SERPRO (Serviço Federal de Processamento de Dados) do Governo Federal, consulte os preço para utilizar a API da SERPRO, são espetaculares 🤥.

    https://servicos.serpro.gov.br/api-serpro/biblioteca/index.html

     

    É uma absurdo uma situação dessa, muito deprimente.

  10. 12 minutos atrás, Leonardo Gregianin disse:

    Lentidão dos webservices do governo é comum, existem técnicas de programação que podemos fazer para minimizar isso.

    Erro de timeout do webservice pode ser tratado com um simples try..except no nosso software.

    Podemos fazer uma thread para ficar consultando o webservice de tempos em tempos.

    Acho que o povo reclama demais.

     

     

    Sim... Colega... a lentidão nos WebServices do Governo é comum (pela quantidade de impostos que pagamos jamais deveria ser assim), se for gratuito mas se for pago como no caso do SERPRO é instantâneo as consultas, não precisa ficar horas criando rotinas para tratar erros e fazer malabarismo loucos por uma simples consulta de WebService.

    Todos nós temos que nos contentar (com toda essa quantidade de impostos que pagamos) com isso e ponto final... kkk

    Acho que pedir um servicinho decente para o governo é reclamar de mais... só me resta rir numa dessa😂

  11. 56 minutos atrás, Leonardo Gregianin disse:

    Tem empresas utilizando o Manifestador de NF-e disponibilizado gratuito a anos pela SEFAZ para baixar os XMLs.

    http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=AxaPNP1BtFk=

     

    Esse aplicativo em Java de Manifestação do Governo, também está com problemas de lentidão e está dando mensagem TimeOut (imagem em anexo)... Pois, deve está usando o mesmo WebService de Distribuição de NF-e do Ambiente Nacional.

    Só que o legal desse aplicativo do Governo que ele tem uma rotina muito boa para ficar dando Loop, mesmo que parece que vai ficar eternamente... rsss... E trata bem os erros do WebService.

    O legal de os desenvolvedores acessarem direto o WebService é implementar essa rotina em seus ERPs e não ficar usando softwares de terceiros e importando de um lado para o outro...

    Manifestacao_Destinatario.jpg

  12. Para mim o governo está deixando de propósito o WebService de distribuição ruim/péssimo para que as pessoas migrarem para os serviços pagos. Se alguém tiver outra opinião compartilhe.

    No SERPRO até 999 consultas valor fixo de R$ 662,40 (mensalmente)

    Caso passe de 999 da faixa 1.000 a 9.000, começa a ser cobrado R$ 0,66 por consulta com mais a mensalidade de R$ 662,42.

    E o valor por consulta só irá baixar se contratar planos caríssimos, é onde só compensa se abrir um site como o Arquivei.com.br, que tem quer um monte de clientes para tornar viável o negócio.

    No site arquivei.com.br tem o plano de R$ 139,90 por mês no pagamento anual, onde tem o limite mensal de 3.000 NFes, CTes e NFSe (quase R$ 0,05 por documento).

    Ainda para quem não pegou nas entre linhas nos comentários anteriores o governo está criando mais uma máfia para empresas grandes lucrarem, mais uma para os contribuintes pagarem a conta (que insistem em ficarem quietos e achar que é isso mesmo).

    É obvio que um serviço desses tem que ser gratuito como já estava sendo, e só ser disponibilizado para quem tem certificado digital para conseguir baixar os XMLs, até mesmo a consulta resumida dos documentos teria que ter o certificado e com isso não precisaria ter essa máfia. O próprio WebService de distribuição poderia fazer o controle por CNPJ para controlar o limite de consultas diárias, para evitar consumo indevido.

     

    "Para que o mal triunfe basta que os bons fiquem de braços cruzados."
    Edmund Burke
    (Considerado o pai do conservadorismo moderno. No século XIX Burke inspirou tanto conservadores quanto liberais)
     

  13. 3 horas atrás, vilcenski disse:

    Bom dia,

    Pelo que andei vendo existe um serviço novo disponibilizado pelo Serpro, para download de documentos, mas o serviço é cobrado. O FSist está testando essa nova funcionalidade, mas como o custo é elevado eles parecem estar analisando a viabilidade.

    No caso do Arquivei, acredito que devem estar utilizando o mesmo recurso, mas devem estar "bancando" o investimento inicial até conseguirem um número de clientes que viabilizem o negócio.

    Seguem os links:
    https://www.fsist.com.br/
    https://www.servicos.gov.br/servico/contratar-api-consulta-nfe?campaign=area-de-interesse
    https://servicos.serpro.gov.br/api-serpro/biblioteca/consulta-nfe/precos.html#abas

     

    Alison

     

     

    Com essa notícia, fiquei mais orgulhoso ainda de ser brasileiro. sqn.

    Meu, o contribuinte paga os impostos da NF-e, paga o certificado digital e não tem um servicinho descente do governo, que loucura... Realmente estamos ferrados se continuarmos quietos...

    Quase todos os dias, eu me lembro daquela música "Que País É Este" do Legião Urbana.

    "Mas o sangue anda solto
    Manchando os papéis
    Documentos fiéis
    Ao descanso do patrão ..."

    • Obrigado 1
  14. Pessoal,

    Aqui também continuamos com problema persistente de TimeOut no WebService NFeDistribuicaoDFe (NF-e – Componente TACBrNFe), já no WebService CTeDistribuicaoDFe ( CT-e – Componente TACBrCTe) não estamos tendo problemas.

     

    Eu entrei em contato para questionar esse problema com Central NF-e 0800 9782338 (serpro.gov.br) e com o SEFAZ-SP.

    Tentei primeiramente o contato com a Central NF-e 0800 9782338 (serpro.gov.br), mas me disseram que eu tenho que resolver esse problema com o meu SEFAZ, ainda insisti com o atendente falando que o WebService é de Ambiente Nacional e seria com eles não no SEFAZ, claro não adiantou nada :(...

    Daí enviei e-mail para [email protected] e me responderam assim:

    “Prezado contribuinte,

    O Web Service de Distribuição de DFe (NFeDistribuicaoDFE) é de responsabilidade do ambiente nacional. Não temos relatos semelhantes de outros contribuintes.

    Não temos conhecimento dos sites indicados "lite.arquivei.com.br e fsist.com.br".

    Estão sendo tomadas medidas para evitar ferramentas que buscam informações de NF-es por meio das consulta públicas. No portal da NF-e SP já está sendo exigido certificado digital para consulta completa do documento. Em breve, o ambiente nacional também exigirá.”

     

    O maluco do SEFAZ-SP que me respondeu, não conhece o arquivei.com (pois, tinha questionado como esses sites conseguem fazer a consulta sem dar nenhum problema)... kkkk

     

    Estou pensando em fazer testes de madrugada, para ver se o WebService nesse horário está melhor, caso estiver, vou criar um robô para fazer as consultas, só que para meus clientes eles não precisam manifestar e nem baixar todos os XMLs, então o uso acaba tendo que ser mesmo no horário comercial, ai fica mais uma para o Analista Programador dar seus pulos.

     

  15. 9 horas atrás, douglaswf disse:

    Essa do arquivei lite é pesada.  Já até abri protocolos no sefaz pedindo como ele acessa , se tem documentação,  mas só sou enrolado na resposta.  No site eles dizem que é um meio oficial,  mas não é documentado.  Muito misterioso...

    Também tem o www.fsist.com.br serviço top também... kkk. Ontem esse site estava até dando opção fazer a manifestação do destinatário pelo site.
    Você manda baixar um XML é na hora.

     

    Precisamos fazer um movimento em massa, questionar o SEFAZ porque disso, porque esses sites estão conseguindo acesso privilegiado. 😡

     

  16. Boa tarde, Pessoal.

    Eu também estou com esse problema de TimeOut, desde hoje cedo. Não tive sucesso em nenhuma consulta.

    Tinha dia que até dava erro mais logo depois funcionava.

    O que a gente conclui que é problema do WebService, que no caso é no Ambiente Nacional e não no SEFAZ autorizadora.

    NFeDistribuicaoDFe: https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx

    Esse WebService estava bem lento na parte dá manhã, agora já está dando a mensagem: “The service is unavailable.”.

     

    Meu eu fico aqui pensando com meus botões, não é possível que um serviço desse está em uma situação desastrosa dessa. Quantos impostos os contribuintes pagam e quando precisam de uma simples consulta dos documentos fiscais, que ela pagou os impostos não conseguem fazer.

    E agora está aparecendo empresas/sites que fazem essa consulta e cobram pelo serviço.

    É uma situação absurda!

    Erro_WebServDist.jpg

  17. Boa tarde, Pessoal.

    Acabei de atualizar na última Revision (16057) e ao executar o instalador "ACBrInstall_Trunk2.exe" está dando o abaixo:

    Já tentei usar o "apagarAcbr.bat".

    Utilizo no Windows 10 com Delphi 10.2 Tokyo Professional

     

    A única alteração que eu fiz no fonte é no arquivo ACBr.inc, linha 270 "{$DEFINE USE_MINGW}", habilitei o MinGW.

     

    Log:

    Caminho: C:\ACBR\
    Versão do delphi: Delphi 10.2 Tokyo (0)
    Plataforma: Win32(0)
    ================================================================================
    Criando diretórios de bibliotecas...
    Removendo diretorios e pacotes antigos instalados...
    Adicionando library paths...
    COMPILANDO OS PACOTES...
    Compiling package C:\ACBR\Pacotes\Delphi\synapse\ACBr_synapse.dpk
    "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\dcc32.exe" "C:\ACBR\Pacotes\Delphi\synapse\ACBr_synapse.dpk"
    Embarcadero Delphi for Win32 compiler version 32.0
    Copyright (c) 1983,2017 Embarcadero Technologies, Inc.
    37134 lines, 0.36 seconds, 369552 bytes code, 29384 bytes data.
    Compilation success
    Pacote "ACBr_synapse.dpk" compilado com sucesso.
    Compiling package C:\ACBR\Pacotes\Delphi\ACBrComum\ACBr_Comum.dpk
    "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\dcc32.exe" "C:\ACBR\Pacotes\Delphi\ACBrComum\ACBr_Comum.dpk"
    Embarcadero Delphi for Win32 compiler version 32.0
    Copyright (c) 1983,2017 Embarcadero Technologies, Inc.
    C:\ACBR\Fontes\ACBrComum\ACBrBase.pas(181) Error: E2008 Incompatible types
    C:\ACBR\Fontes\ACBrComum\ACBrUtil.pas(2207) Fatal: F2063 Could not compile used unit 'ACBrConsts.pas'
    Compilation failure
    Erro ao compilar o pacote "ACBr_Comum.dpk".
    Abortando... Ocorreram erros na compilação dos pacotes.
     

    Em anexo imagens com as opções que marco no instalador.

     

     

    Tela_01.jpg

    Tela_02.jpg

    Tela_03.jpg

    Tela_04.jpg

  18. Em 17/07/2018 at 17:06, André Ferreira de Moraes disse:

     

     

    Bom dia, André. Obrigado pela resposta.

    Era isso mesmo, teria que haver uma modificação no componente ACBrNFe, para que não precisássemos fazer POG (Programação Orientada a Gambiarras).

    Ficou Show de Bola.

    Para o SEFAZ-SP em Produção (por enquanto), tenho que deixar a propriedade "ACBrNFe1.Configuracoes.Geral.CamposFatObrigatorios := False", se não da Rejeição: "Falha no Schema XML". ?

    • Curtir 1
  19. Pessoal a questão é que o SCHEMA novo está exigindo valor, não é mais opcional informar ou não informar o "vDesc".

    Se voltar a ser opcional informar a tag "vDesc" terá que ser novamente atualizado o SCHEMA certo?

     

    <xs:element minOccurs="0" name="vDesc" type="TDec_1302">
        <xs:annotation>
            <xs:documentation>Valor do desconto da fatura</xs:documentation>
        </xs:annotation>
    </xs:element>

     

     

  20. Bom dia, Pessoal.

    Vi que foi aberto um tópico sobre esse assunto em ACBrMonitorPLUS, mas foi fechado (905 - Rejeicao: Campos do grupo Fatura nao informados).

    A dúvida  minha é que acho que as tags do Grupo Fatura (nFat, vOrig, vDesc e vLiq), agora são obrigadas a informar mesmo que seja valor "0.00", pois, pelo SCHEMAS/leiauteNFe_v4.00.xsd, foi alterado assim:

    Antes:

    <xs:element minOccurs="0" name="vOrig" type="TDec_1302Opc">
        <xs:annotation>
            <xs:documentation>Valor original da fatura</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element minOccurs="0" name="vDesc" type="TDec_1302Opc">
        <xs:annotation>
            <xs:documentation>Valor do desconto da fatura</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element minOccurs="0" name="vLiq" type="TDec_1302Opc">
        <xs:annotation>
            <xs:documentation>Valor líquido da fatura</xs:documentation>
        </xs:annotation>
    </xs:element>

     

    Agora:
    Esquemas XML NF-e - Pacote de Liberação No. 9 (Novo leiaute da NF-e, NT 2016.002 v.1.60 - b). Publicado em 02/07/2018. ( leiauteNFe_v4.00.xsd está com data 27/06/2018 11:00 )

    <xs:element minOccurs="0" name="vOrig" type="TDec_1302">
        <xs:annotation>
            <xs:documentation>Valor original da fatura</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element minOccurs="0" name="vDesc" type="TDec_1302">
        <xs:annotation>
            <xs:documentation>Valor do desconto da fatura</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element minOccurs="0" name="vLiq" type="TDec_1302">
        <xs:annotation>
            <xs:documentation>Valor líquido da fatura</xs:documentation>
        </xs:annotation>
    </xs:element>

     

    "tiposBasico_v4.00.xsd"

        <xs:simpleType name="TDec_1302">
            <xs:annotation>
                <xs:documentation>Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:whiteSpace value="preserve"/>
                <xs:pattern value="0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?"/>
            </xs:restriction>
        </xs:simpleType>

        <xs:simpleType name="TDec_1302Opc">
            <xs:annotation>
                <xs:documentation>Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais, utilizado em tags opcionais</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:whiteSpace value="preserve"/>
                <xs:pattern value="0\.[0-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?"/>
            </xs:restriction>
        </xs:simpleType>

     

    O meu problema é que estou tentando validar uma NF-e com pagamento 15-Boleto Bancário com Parcelamento...

    Assim não valida, pois falta a tag <vDesc> não foi gerada no XML:

    - <cobr>
    - <fat>
      <nFat>334320</nFat> 
      <vOrig>1452.00</vOrig> 
      <vLiq>1452.00</vLiq> 
      </fat>

     

    Assim valida (só coloquei o desconto para ver se validava):

    - <cobr>
    - <fat>
      <nFat>334319</nFat> 
      <vOrig>1452.00</vOrig> 
      <vDesc>0.01</vDesc> 
      <vLiq>1451.99</vLiq> 
      </fat>

     

×
×
  • 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.