Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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.

Postado

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?

Postado (editado)

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
Postado (editado)

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