Jump to content

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

Método de Consulta NFSe validada em São Paulo


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

Recommended Posts

  • Membros Pro

Boa tarde,

Preciso consultar uma nota fiscal de serviço validada na prefeitura de São Paulo e não estou obtendo retorno com o metodo que estou utilizando.

Estou utilizando o metodo acbr.WebServices.ConsultaLoteRps(lote,Protocolo) mas está retornando uma mensagem em branco na minha aplicação.

Preciso recuperar o XML validado do webservices da prefeitura, para armazenar no banco de dados, gerar o pdf e gerar a DANFSe, alguém poderia me ajudar, indicando o método correto a ser utilizado.

Obrigado novamente.

 

@Fábio Eduardo de Souza

 

 

Link to comment
Share on other sites

  • Consultores

Boa tarde Fábio,

Configura o componente para salvar os arquivos Soap ( Configuracoes.WebServices.Salvar := True ), depois realize novos testes a anexe tanto o arquivo de consulta quanto o de retorno, para que possamos analisar.

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Bom dia, Italo

Eu alterei o meu metodo de consulta e estou utilizando o segiunte metodo :

          if ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.Sucesso = 'true' then begin

                  numero_nf      := StrToInt(ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0 ].ChaveNFeRPS.Numero);
                  serie_nf       := ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0 ].ChaveNFeRPS.SerieRPS;
                  protocolo      := ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.Protocolo;
                  cod_verifica   := ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0 ].ChaveNFeRPS.CodigoVerificacao;

                  if (acbr.WebServices.ConsultaNFSeporRps( ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[0].ChaveNFeRPS.NumeroRPS,                                                        ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0 ].ChaveNFeRPS.SerieRPS,                                                         TipoRPSToStr(trRPS))) then begin

                     xml_sefaz   := (acbr.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.XML);

               end;
Esta consulta está retornando informações, mas a principal que eu preciso não esta vindo completa, o xml vem faltando o cabeçalho, desta forma quando vou imprimir ou cancelar a NFSe utilizando o xml para carregar o ACBR , não consigo carregar o componente.

Estou alterando minha aplicação agora para tentar recuperar o XML através do método :

xml_sefaz   := (acbr.NotasFiscais.Items[0].NFSe.XML)

Pois Percebi que após a execução do metodo WebServices.ConsultaNFSeporRps o metodo carregou informações.

O problemas neste processo de validação é que não tenho o certificado digital habilitado para NFse de São PAulo, e meu cliente disponibilizou somente máquina para teste então não consigo debugar a aplicação apenas acompanho através de break points.... 

Em anexo estou colocando os arquivos gerados pela consulta para ver se ajuda.

Obrigado

@Fábio Eduardo de Souza

ps.: pelo que estou percebi tambem a prefeitura de SP não possui ambiente de homologação....

 

104939A-comp-nfse.xml

104939A-comp-nfse-soap.xml

104939A-con-nfse-rps.xml

104939A-con-nfse-rps-soap.xml

104939-env-lot.xml

104939-env-lot-soap.xml

269919063-rec.xml

269919063-rec-soap.xml

Link to comment
Share on other sites

  • Membros Pro

Italo , boa tarde

 

Realmente não consigo recuperar um XML valido, mesmo através do metodo    (acbr.NotasFiscais.Items[0].NFSe.XML)  ele retorna um XML parcial sem o cabeçalho. 

Ai quando tento carregar o ACBR para impressão da nota fiscal nada acontece pois o xml não é reconhecido.

Em anexo estou enviando o XML parcial que estou recuperando.

 

Fábio Eduardo.

xml_parcial.txt

Link to comment
Share on other sites

  • Consultores

Bom dia Fábio,

Para obter o XML exatamente que salvo em disco, tente desta outra forma:

acbr.NotasFiscais.Items[0].XMLNFSe

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Italo, boa tarde

Funcionou meu amigo..... consegui finalizar o processo de validação da nota fiscal , com o caminho que vc me passou consegui recuperar o XML e gravar no banco de dados. Carreguei o componente e consegui fazer a impressão da DANFSe....sem problemas.

Depois, fiz o cancelamento da nota fiscal , utilizei o mesmo método para salvar o xml e funcionou belezinha.

A unica coisa que não funcionou muito bem foi a impressão da DANFSe da nota cancelada, foram impressas as informações corretamente, só não foi impressa a tarja ou informação de cancelamento. Mas isso eu consigo debugar, mesmo sem o certificado. Vou recuperar o backup do cliente e fazer os testes. 

Obrigado mais uma vez pela ajuda , Italo, conseguimos deixar mais um cliente feliz....rsrsrsrsrsrsr.

@Fábio Eduardo de Souza

 

Link to comment
Share on other sites

  • Consultores

Boa tarde Fábio,

Maravilha, eu que lhe agradeço pelos testes e paciência.

Esse seu cliente é da cidade de São Paulo, correto?

Se sim, só me de um retorno informando quais os métodos testados e se estão funcionando 100%, para que eu possa incluir na minha lista os provedores que estão funcionando.

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Italo , 

Sim, meu cliente é do município de São Paulo.

Estou finalizando os testes na parte de cancelamento e impressão da danfe cancelada, finalizando eu anexo os trechos com os metodos onde recupero as informações do provedor.

Mais uma vez agradeço a ajuda.

@Fábio Eduardo de Souza

 

 

Link to comment
Share on other sites

  • Membros Pro

Bom dia Italo,

Abaixo esta o trecho de codigo onde recupero as informações de numero_nf, serie_nf,protocolo,cod_verificação,xml_sefaz,Situação(cstat) e respostas para atualizar a minha aplicação , isso tudo quando estou enviando a nota fiscal para a prefeitura de SP, o cancelamento é outro processo.:

if ACBr.Configuracoes.Geral.Provedor = proSP then begin

    if ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.Sucesso = 'true' then begin
       numero_nf      := StrToInt(ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[0].ChaveNFeRPS.Numero);
       serie_nf       := ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0 ].ChaveNFeRPS.SerieRPS;
       protocolo      := ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.Protocolo;
       cod_verifica   := ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0 ].ChaveNFeRPS.CodigoVerificacao;

       if (acbr.WebServices.ConsultaNFSeporRps(ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0].chaveNFeRPS.NumeroRPS,
                                                      ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.ListaChaveNFeRPS.Items[ 0 ].ChaveNFeRPS.SerieRPS,
                                                         TipoRPSToStr(trRPS))) then begin

                     xml_sefaz   := (acbr.NotasFiscais.Items[0].XMLNFSe);

                     if ((acbr.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Situacao  <> '')) then begin
                        cStat    := StrToInt(acbr.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Situacao);
                     end;
                  end;
               end;
               if (ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.MsgRetorno.Count > 0) then begin
                  if resposta = '' then begin
                     resposta    := ACBr.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.MsgRetorno.Items[ 0 ].Mensagem;
                  end
                  else begin
                     resposta    := resposta + #13#10;
                     resposta    := resposta + acbr.WebServices.ConsLote.RetornoNFSe.ListaNfse.MsgRetorno.Items[0].Mensagem;
                  end;
               end;
 

Fica tudo desconfigurado mas se jogar para um editor fica certinho.

 

Abraço.

@Fabio Eduardo de Souza

 

Edited by Fábio Eduardo de Souza
Link to comment
Share on other sites

  • Consultores

Bom dia Fábio,

Por favor, quando for postar fragmentos de código, procure coloca-lo em um arquivo TXT e anexa-lo.

Use essa dica tanto para postar fragmentos para que possamos analisar, ou compartilhar com os demais usuários.

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Consultores

Boa tarde Fábio,

Só para constar, se trata de uma dica para os demais colegas que por ventura venham necessitar, correto?

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.