Ir para conteúdo
  • Cadastre-se

dev botao

NFSe CNPJ Prestador


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

Recommended Posts

Postado

Boa tarde a todos!

Estou com uma situação aqui usando NFS-e, na leitura do arquivo XML com LoadFromFile ou na impressão da NFS-e por exemplo, dependendo da prefeitura consigo retornar a TAG CNPJ Prestador e em outras não. Alguém já passou por essa experiencia que pudesse compartilhar? 

Nesse arquivo XML em anexo, usando o exemplo a seguir, não consegui visualizar o CNPJ embora internamente no arquivo ele esteja presente.

procedure TfrmDemo_ACBrNFSe.Button1Click(Sender: TObject);
var
  j, i: integer;
  S: string;
begin
  OpenDialog1.Title := 'Selecione a NFSe';
  OpenDialog1.DefaultExt := '*.xml';
  OpenDialog1.Filter := 'Arquivos NFSe (*.xml)|*.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
  OpenDialog1.InitialDir := ACBrNFSe1.Configuracoes.Arquivos.PathSalvar;

  if OpenDialog1.Execute then
  begin
    ACBrNFSe1.NotasFiscais.Clear;
    ACBrNFSe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName, False);

    Memo1.Clear;
    Memo1.Lines.Add('########## RPS -> IDENTIFICACAO ##########');
    Memo1.Lines.Add('RPS...........: ' + ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero);
    Memo1.Lines.Add('RPS SERIE.....: ' + ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie);
    Memo1.Lines.Add('RPS TIPO......: ' + TipoRPSToStr(ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Tipo));

    Memo1.Lines.Add('');
    Memo1.Lines.Add('########## PRESTADOR SERVICO - IDENTIFICACAO PRESTADOR ########## ');
    Memo1.Lines.Add('CNPJ.................: ' + ACBrNFSe1.NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj);
    Memo1.Lines.Add('INSC MUNICIPAL.......: ' + ACBrNFSe1.NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal);

    Memo1.Lines.Add('');
    Memo1.Lines.Add('########## PRESTADOR ########## ');
    Memo1.Lines.Add('CNPJ.................: ' + ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.Cnpj);
    Memo1.Lines.Add('INSC MUNICIPAL.......: ' + ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.InscricaoMunicipal);
  end;
end;

 

Já em outros arquivos de outras prefeituras, consigo visualizar esta informação sem maiores problemas.

Grato antecipadamente pela ajuda.

 

Márcio M. Camilo

GYNIM2088908_NFSE70.xml

Postado
41 minutos atrás, Italo Jurisato Junior disse:

Boa tarde Márcio,

Esse XML não é o XML da NFS-e e sim o de retorno que contem o XML da NFS-e.

O componente é para extrair e salvar separadamente o XML propriamente dito da NFS-e dentro da pasta Notas.

Italo grato pelo retorno. A ideia seria (como não há um WebService como NF-e | CT-e) para retorno desses arquivos, quando o prestador de serviços enviasse o arquivo XML da NFS-e ao seu Tomador, a aplicação realizasse a leitura desse arquivo, extraindo as informações para gravar numa tabela por exemplo. O interessante é que em outros arquivos XML da NFS-e adquiridos dessa mesma forma (Prefeitura de Aparecida de Goiânia por exemplo), através desse mesmo processo, consigo essa informação normalmente. Por isso surgiu essa minha dúvida. 

Nesse caso, não será possível extrair determinadas informações pelo componente ACBrNFSe de alguns arquivos XML? 

Em anexo um outro arquivo XML que deu certo.

APG14207893_NFSeNotaFiscaldeServiçosEletrônica_000280.xml

Postado
44 minutos atrás, mmcamilo disse:

Nesse caso, não será possível extrair determinadas informações pelo componente ACBrNFSe de alguns arquivos XML?

Sim, é totalmente possível, o que você vai precisar é fazer leitura de tags diferentes, o que pode dar um pouco de trabalho, mas a resposta, confirme frisou o Italo, contém o xml da NFS-e, não sendo portanto o xml da NFS-e. Veja as informações na imagem anexa.

nfse.png

_____________

Prates, Agnaldo

Postado
9 minutos atrás, Agnaldo Prates disse:

Sim, é totalmente possível, o que você vai precisar é fazer leitura de tags diferentes, o que pode dar um pouco de trabalho, mas a resposta, confirme frisou o Italo, contém o xml da NFS-e, não sendo portanto o xml da NFS-e. Veja as informações na imagem anexa.

nfse.png

Agnaldo, grato pelo retorno, então, realmente esse questão eu havia entendido, o que está me deixando com dúvida é a questão de o mesmo código com LoadFromFile ler a TAG de um e não ler de outro.

O jeito então será fazer outra forma de leitura do arquivo XML sem ser pelo componente.

Mais uma vez, obrigado pela colaboração.

Márcio M. Camilo

  • Consultores
  • Solution
Postado

Boa tarde Camilo,

O componente consegue ler sem nenhum problemas XMLs de NFS-e tanto na versão 1 quanto na versão 2 do layout da ABRASF.

O problema é que você esta tentando ler um XML de retorno do método Gerar.

O outro que você anexou também não é um XML e sim de retorno de uma consulta.

Veja as TAGs principais:

Do primeiro: 

<GerarNfseResposta xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
  <ListaNfse>
(...)

Do segundo:

<ConsultarNfseRpsResposta xmlns="http://www.issnetonline.com.br/webserviceabrasf/vsd/servico_consultar_nfse_rps_resposta.xsd" xmlns:ts="http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_simples.xsd" xmlns:tc="http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_complexos.xsd">
  <CompNfse>
(...)

Um XML de uma NFS-e tem o seguinte layout:

<CompNfse xmlns="http://www.abrasf.org.br/nfse.xsd">
   (...)
</CompNfse>

Onde (...) contem os dados da NFS-e. a tag principal <CompNfse> significa composição da NFS-e.

Como você esta informando o XML de retorno o componente pode esta se perdendo ao tentar ler os dados, mas se você informar o XML correto da NFS-e as chances de ocorrer a leitura corretamente são muitas.

 

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

  • Este tópico foi criado há 2574 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.