Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Boa Tarde,

Gostaria de saber se existe alguma propriedade para pegar o código de retorno do webservice após enviar uma NFS-e.

Exemplo: (Código Erro : E10)

Após enviar uma NFS-e:


Código Erro : E10
Mensagem... : RPS ja informado.
Correção... : Para essa Inscricao Municipal/CNPJ ja existe um RPS informado com o mesmo numero, serie e tipo.
Provedor... : Fiorilli
Código Erro :
Mensagem... :
Correção... :
Provedor... : Fiorilli

Esse exemplo eu sei tratar no meu sistema(duplicidade), mas existe uma tabela da ABRASF com vários erro e alertas e com base nesses erros e alertas eu trataria no meu sistema de acordo com cada código de retorno.

Obrigado!

 

  • Consultores
Postado

Bom dia Luciano,

No caso da NFS-e, depende de qual método de envio esta sendo utilizado.

No caso do Enviar seria:

 vAux := ACBrNFSe1.WebServices.Enviar.NFSeRetorno.InfRec.MsgRetorno.Items[x].Codigo;

Gerar:

 vAux := ACBrNFSe1.WebServices.GerarNfse.NFSeRetorno.ListaNfse.MsgRetorno.Items[x].Codigo;

EnviarSincrono:

 vAux := ACBrNFSe1.WebServices.EnviarSincrono.NFSeRetorno.ListaNfse.MsgRetorno.Items[x].Codigo;

Agora se estiver consultando um lote enviado seria:

 vAux := ACBrNFSe1.WebServices.ConsLote.NFSeRetorno.ListaNfse.MsgRetorno.Items[x].Codigo;

Desculpe pela demora e espero ter ajudado.

 

 

 

  • 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

  • 10 meses depois ...
Postado (editado)

Bom dia

Italo, estou utilizando o método EnviarSincrono e o retorno indicado no post é  ACBrNFSe1.WebServices.EnviarSincrono.NFSeRetorno.ListaNfse.MsgRetorno.Items[x].Codigo

porém a propriedade mudou para ACBrNFSe1.WebServices.EnviarSincrono.RetornoNFSe.ListaNfse.MsgRetorno.Items[x].Codigo

A questão é que o propriedade não está sendo alimentada no retorno do EnviarSincrono. Analisando o fonte a propriedade ACBrNFSe1.WebServices.EnviarSincrono.aMsg e também no arquivo XXXX-lista-nfse-soap.xml consta o conteúdo do retorno do webservice.

Valor da propriedade aMsg:

Citar

Erro ao enviar a NFS-e :
Método: Enviar Lote - Síncrono
Código Erro : E233
Mensagem: Lote ja processado
Correção : Atribua um novo numero ao lote de RPS, caso os RPS nele contidos ainda nao tenham sidos processados
Provedor Fiorilli

Em anexo o arquivo de retorno e tbm o Fiorilli.ini.

Existe alguma propriedade do Fiorilli.ini que precisa ser alterada?

12000-lista-nfse-soap.xml

Fiorilli.INI

Editado por arce
Postado

Italo, na unit ACBrNFSeWebServices na classe EnviarSincrono o método FinalizarServico destrói o retorno após o envio.

procedure TNFSeEnviarLoteRPS.FinalizarServico;
begin
  inherited FinalizarServico;

  if Assigned(FRetornoNFSe) then
    FreeAndNil(FRetornoNFSe);
end;

Ao comentar o "if", consigo ler as tags de retorno...

ACBrNFSe1.WebServices.EnviarSincrono.RetornoNFSe.ListaNFSe.MsgRetorno.Items[i].Codigo

Com certeza este código existe por causa de outros provedores, adicionei uma condição para caso seja Fiorilli não destruir o retorno. Está correto este procedimento?

OBS: Utilizo a opção ConsultarLoteAposEnvio = false

Postado
Em 16/06/2016 at 10:48, Italo Jurisato Junior disse:

Boa dia Arce,

Em uma postagem você se refere ao envio síncrono, mas o fragmento de código que você postou não se refere ao envio síncrono e sim ao envio assíncrono.

bom dia

Peço desculpas, mas adicionei o código errado =/

Unit-> ACBrNFSeWebServices. O correto é:

procedure TNFSeEnviarSincrono.FinalizarServico;
begin
  inherited FinalizarServico;

  if(FProvedor <> proFiorilli)then
    if Assigned(FRetornoNFSe) then
      FreeAndNil(FRetornoNFSe);
end;

Add a condição para o provedor fiorilli. Está correta esta minha solução? Uma vez que não consigo obter o retorno através do código que citei no post anterior.

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