Ir para conteúdo
  • Cadastre-se

dev botao

Mensagem de retorno do status 539 (duplicidade)


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

Recommended Posts

Quando tento enviar uma numeração de conhecimento, que por ventura, já foi processada, recebo a seguinte mensagem:

Project cte.exe raised exception class EACBrDFeException with message 'Conhecimento(s) não confirmados:
7000->Rejeição: Duplicidade de CT-e  [nRec:423000006816472]

Até ai tudo certo, afinal ocorreu a exceção como esperado. Porém o número de recibo do lote (nRec) que vem junto da imagem não me serve muito, já que a consulta de CTe é feita pela chave. Então procurei pelo local aonde da o raise na exceção e encontrei na unit ACBrCTeWebServices, localizada na rotina TCTeRetRecepcao.TratarRespostaFinal:

  //Montando a mensagem de retorno para os Conhecimentos nao confirmados
  for I :=  to FConhecimentos.Count - 1 do
  begin
    if not FConhecimentos.Items[I].Confirmado then
      FPMsg := FPMsg + IntToStr(FConhecimentos.Items[I].CTe.Ide.nCT) +
        '->' + FConhecimentos.Items[I].Msg + LineBreak;
  end;

Procurei o local aonde é montade o FConhecimentos.Items.Msg mas não encontrei, então para mostrar a chave fiz o seguinte:

  //Montando a mensagem de retorno para os Conhecimentos nao confirmados
  for I :=  to FConhecimentos.Count - 1 do
  begin
    if not FConhecimentos.Items[I].Confirmado then
      FPMsg := FPMsg + IntToStr(FConhecimentos.Items[I].CTe.Ide.nCT) +
        '->' + FConhecimentos.Items[I].Msg +' [Chave: '+ FConhecimentos.Items[I].NumID +']'+ LineBreak;
  end;

Apesar de ainda achar que o certo seria arrumar a propriedade .Msg essa solução já me serve. 

Creio que trazer a chave é melhor do que não traze-la, já que com ela consigo consulta-la na fazenda sem precisar de debug ou códigos adicionais afins.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Geovane,

A propriedade Msg contem exclusivamente o conteúdo da TAG xMotivo que contem no XML de retorno.

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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo,

após dar uma pesquisada, vi que cometi um erro. A mensagem do status 539 está vindo do jeito como eu havia descrito acima:

Rejeicao: Duplicidade de CT-e, com diferença na Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999][nRec:999999999999999] 

E a mensagem da qual eu estava falando, era na verdade a 204:

Rejeição: Duplicidade de CT-e [nRec:999999999999999] 

E quanto ao xMotivo não trazer a chave na mensagem 204, sendo que vem do XML de retorno, o único jeito seria falar com a fazenda?

Link para o comentário
Compartilhar em outros sites

basta ler as mensagens que se compreende a diferença.

msg 539 reporta o envio pra a sefaz de uma cte já processada, contudo a chave indicada difere da chave da base de dados do sefaz. para resolver a situação basta alterar a chave pela indicada na mensagem e consultar a cte para atualizar a situacao.

msg 204 é o caso tipico de reenviar os dados de uma nota já processada, para resolver a situação basta consultar a cte para atualizar a sua situação

Editado por 3Soft Sistemas
Link para o comentário
Compartilhar em outros sites

3Soft,

entendi a diferença entre elas, porém no segundo caso, 204, a mensagem não traz a chave, apena o número de recibo do lote, ao qual propus a alteração para fazer trazer, mas ja que a mensagem vem do XML, o único jeito seria fazer um condição só pra ela (o que não é legal):

for I := 0 to FConhecimentos.Count - 1 do
begin
  if not FConhecimentos.Items[I].Confirmado then
  begin
    FPMsg := FPMsg + IntToStr(FConhecimentos.Items[I].CTe.Ide.nCT) +'->'+ FConhecimentos.Items[I].Msg;

    if (FcStat = 204) then
      FPMsg := FPMsg +' [chCTE: '+ FConhecimentos.Items[I].NumID +']';

    FPMsg := FPMsg + LineBreak;
  end;
end;

 

Editado por geovanesilveira
Link para o comentário
Compartilhar em outros sites

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