Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3398 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Como eu posso testar se o XML é de uma NFe ou CTe?

Eu carrego o XML recebido no email para o ACBRBFe dentro de um Try e trato o CTe no Exception, conforme exemplo abaixo. É esta a maneira correta? DEvo usar o método Valida?

try

ACBrNFe.NotasFiscais.Clear;

ACBrNFe.NotasFiscais.LoadFromStream(xStream);

if ACBrNFe.NotasFiscais.Items[0].Alertas = '' then begin

//este if e necessario pq se não for uma nfe gera o exception ao usar a propriedade do objeto

end;

  • 3 anos depois...
  • Membros Pro
Postado

Olá pessoal bom dia!

Utilizando a dica do @Italo Jurisato Junior estou tendo o seguinte problema:

Quando um CTe tem uma NFe relacionada, a tag '<infNFe' também existe no CTe, fazendo com que o código utilizado no EmissorDFe identifique o XML do CTe como NFe.

Existe alguma outra solução segura para garantir que esta identificação ocorra sem problemas?

Obrigado pela atenção de todos.

Gilson do Carmo
WindSoft Sistemas

  • Consultores
Postado

Boa tarde Gilson,

Veja a sequencia:

ArquivoXML := TStringList.Create;
 ArquivoXML.LoadFromFile(edtArquivo.Text);

 TipoDFE := 0;
 if pos('<infNFe', ArquivoXML.Text) > 0
  then TipoDFE := 1;
 if pos('<infCte', ArquivoXML.Text) > 0
  then TipoDFE := 2;
 if pos('InfNfse', ArquivoXML.Text) > 0
  then TipoDFE := 3;
 if pos('infMDFe', ArquivoXML.Text) > 0
  then TipoDFE := 4;
 if pos('procEventoNFe', ArquivoXML.Text) > 0
  then TipoDFE := 5;
 if pos('procEventoCTe', ArquivoXML.Text) > 0
  then TipoDFE := 6;
 if pos('procEventoMDFe', ArquivoXML.Text) > 0
  then TipoDFE := 7;

 ArquivoXML.Free;

Note que primeiro checo se é uma NF-e e depois checo se é um CT-e.

Como você disse um CT-e possui a TAG infNFe mas uma NF-e não possui a TAG infCte.

  • Curtir 2
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

  • Este tópico foi criado há 3398 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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