Ir para conteúdo
  • Cadastre-se

dev botao

Erro no envento de CCE


Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 931 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Administradores

Bom dia.

Por favor transcreva o erro, na imagem fica muito ruim de ler...

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Juliana o Erro ta claro na Imagem acima nao cosigo gerar o evento agora estou debugando ficou uma duvida pq ao limpar o evento como segue abaixo :

  dmVendas.ACBrNFe.EventoNFe.Evento.Clear;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.chNFe := dmVendas.fdqCartaCorNFeCCE_ID_NFE.AsString;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.CNPJ   := dmPrincipal.fdqEmpresaEMP_CNPJ.AsString;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.dhEvento := now;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.tpEvento := teCCe;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.nSeqEvento := Lote;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.detEvento.xCorrecao := Trim(dmVendas.fdqCartaCorNFeCCE_TEXTO.AsWideString);
  dmVendas.ACBrNFe.EnviarEvento(Lote);


apos o clear se fizer um dmVendas.ACBrNFe.EventoNFe.Evento.Count ele sempre retorna 6 sendo que nao tem evento nenhum adicionado ?

 

Link para o comentário
Compartilhar em outros sites

descobri o problema. estou passando essa linha de codigo antes de enviar o lote.

dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.tpEvento := teCCe;

Porem ao debugar o metodo :

function TEventoNFe.GerarXML: Boolean;

nesta linha

for i := 0 to Evento.Count - 1 do
  begin
    sModelo := Copy(OnlyNumber(Evento.Items[i].InfEvento.chNFe), 21, 2);

    Evento.Items[i].InfEvento.id := 'ID' +
                                       Evento.Items[i].InfEvento.TipoEvento +
                                      OnlyNumber(Evento.Items[i].InfEvento.chNFe) +
                                      Format('%.2d', [Evento.Items[i].InfEvento.nSeqEvento]);

 

'Evento.Items[i].InfEvento.TipoEvento' este retorna  (teNaoMapeado) ao Inves de (teCCe),

Encontrei o problema mas nao sei como corrigir sendo que o codigo que seta esta propriedade esta correto

 

Link para o comentário
Compartilhar em outros sites

Oq acontece e o seguinte eu passo o evento como teCCe nesta linha, porem o componente nao recebe esse valor ao debugar o fonte do componente vejo que ele sempre trata este valor com teNaoMapeado retornado o valor -99999 e isso faz com que o evente nao seja enviado

 

Link para o comentário
Compartilhar em outros sites

esse e o codigo :

Lote := dmPrincipal.GetNextCode('LOTE_CCE');
  Caption := 'Gerando CCe...';
  if dmVendas.fdqCartaCorNFeCCE_TIPO_NFE.AsString = 'NFS' then
    dmPrincipal.LoadConfigNFe(dmVendas.fdqNotasFiscaisSaidaEMP_CODIGO.AsInteger)
  else
    dmPrincipal.LoadConfigNFe(dmVendas.fdqNotasFiscaisEMP_CODIGO.AsInteger);
  dmVendas.ACBrNFe.EventoNFe.Evento.Clear;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.chNFe := dmVendas.fdqCartaCorNFeCCE_ID_NFE.AsString;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.CNPJ   := dmPrincipal.fdqEmpresaEMP_CNPJ.AsString;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.dhEvento := now;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.tpEvento := teCCe;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.nSeqEvento := Lote;
  dmVendas.ACBrNFe.EventoNFe.Evento.New.infEvento.detEvento.xCorrecao := Trim(dmVendas.fdqCartaCorNFeCCE_TEXTO.AsWideString);
  dmVendas.ACBrNFe.EnviarEvento(Lote);

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution

Então esse trecho

40 minutos atrás, kelsongyn disse:

dmVendas.ACBrNFe.EventoNFe.Evento.New

só deve ser chamado uma vez. tu tem ali 6 eventos cada vez que chama o New é um novo. erro de códificação.

sugestão crie uma variavel local com o tipo do que vem no New e faça

LEvento := dmVendas.ACBrNFe.EventoNFe.Evento.New;

e dai use ele pra baixo

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Juliomar Ob pela dica mudei o codigo e ficou assim

with dmVendas.ACBrNFe.EventoNFe.Evento.New do
  begin
    infEvento.chNFe := dmVendas.fdqCartaCorNFeCCE_ID_NFE.AsString;
    infEvento.CNPJ   := dmPrincipal.fdqEmpresaEMP_CNPJ.AsString;
    infEvento.dhEvento := now;
    infEvento.tpEvento := teCCe;
    infEvento.nSeqEvento := Lote;
    infEvento.detEvento.xCorrecao := Trim(dmVendas.fdqCartaCorNFeCCE_TEXTO.AsWideString);
  end;
  dmVendas.ACBrNFe.EnviarEvento(Lote);

 

acontece exatemente oq vc disse ele passoa so um evento coloca o codigo certo mas ao enviar o xml ou validar nao sei esta retornado o seguinte erro :

 

Falha na validação da Mensagem do Evento: 'ID11011052210941069244000108550010000001791297886984117' viola a restrição pattern de ''ID[0-9]{52}'.'Falha da análise do atributo ''Id'' com valor 'ID11011052210941069244000108550010000001791297886984117'.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Pega o exemplo do svn e tente com ele.

se o erro ocorrer avise pois está estranho

eu tenho quase que certeza que é o nSeqEvento que é um numero incremental e só pode até 20 eventos sendo que o último é o cancelamento

exemplo se fizer duas cartas de correção e dai cancelar o ultimo será 3

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

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