Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia,

  Estou tendo um problema em minha aplicação na hora de fazer o cancelamento das NFe's 4.00, o serviço de emissão, consulta, inutilização estão funcionando perfeitamente.
No cancelamento acontece o seguinte, o envio está sendo feito, tanto, que se eu consultar, o sistema me retorna que está cancelada.
No demo está acontecendo a mesma coisa, alguém está passando ou passou por esse problema?

 

Em anexo está a mensagem que o demo está me retornando.

 

Desde já agradeço pela ajuda de todos.

Cancelamento4.00.PNG

  • Moderadores
Postado

Ative a propriedade  ACBrNFe1.Configuracoes.WebServices.Salvar e refaça o cancelamento.

Debug a função procedure TDFeWebService.SalvarResposta;    da unit ACBrDFeWebService.pas para ver onde o arquivo está sendo gerado.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Postado (editado)

No debug, quando é passado o paramentro "FPRetWS := SeparaDados(FPRetornoWS, 'nfeRecepcaoEventoResult')", para a rotina, trecho abaixo, não é encontrado este parâmetro "nfeRecepcaoEventoResult" e nem o "NS2" apresentado na linha PosIni := Pos('NS2:' + UChave, UTexto) , no FPRetornoWS, por isso o result é vazio, embora o retorno seja "Cancelamento da nfe homolagado":

function SeparaDados(const AString: String; const Chave: String;
  const MantemChave: Boolean): String;
....
PosIni := Pos('<' + UChave, UTexto) ;
     if PosIni > 0 then
     begin
       PosIni := PosIni + Pos('>', copy(UTexto, PosIni, length(UTexto))); Aqui a variável UTexto tem o valor "nfeRecepcaoEventoResult" que não é encontrado no retorno da sefaz
       PosFim := Pos('/' + UChave, UTexto);
     end;
     if (PosFim = 0) then
      begin
        PosIni := Pos('NS2:' + UChave, UTexto) , aqui o valor "NS2" também não é encontrado no retorno da sefaz por isso as variavels PosIni e PosFim retornam com o valor 0;
        if PosIni > 0 then
        begin
          PosIni := PosIni + Pos('>', copy(UTexto, PosIni, length(UTexto)));
          PosFim := Pos('/NS2:' + UChave, UTexto);
        end ;
      end;
   end;
Teria que refazer a rotina??compl
Editado por alaran
complemento
  • Este tópico foi criado há 2700 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.

The popup will be closed in 10 segundos...