Ir para conteúdo
  • Cadastre-se

dev botao

Implemetação de desacordo de CTE


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

Recommended Posts

Bom dia.

Estou implementando o desacordo da CTE porem estou tendo dificuldades para encontrar materiais de apoio tal como exemplos, documentação ou algo assim.  Depois de muito buscar aqui no fórum encontrei uma implementação que poderia fazer sentido para o evento de desacordo.

Segue o exemplo:

   ACBrCTe.EventoCTe.Evento.Clear;
    ACBrCTe.EventoCTe.Evento.Add;

    ACBrCTe.EventoCTe.Evento[0].infevento.chCTe := ChaveCTe;
    ACBrCTe.EventoCTe.Evento[0].infevento.CNPJ := emitente.cnpj_cpf;
    ACBrCTe.EventoCTe.Evento[0].infevento.dhEvento := now;
    ACBrCTe.EventoCTe.Evento[0].infevento.nSeqEvento := NumeroEvento;
    ACBrCTe.EventoCTe.Evento[0].infevento.tpEvento := tePrestDesacordo;

    ACBrCTe.EventoCTe.Evento.Items[0].infevento.detEvento.infCorrecao.Add;
    ACBrCTe.EventoCTe.Evento.Items[0].infevento.DescricaoTipoEvento(tePrestDesacordo);
    ACBrCTe.EventoCTe.Evento.Items[0].infevento.detEvento.descEvento := ACBrCTe.EventoCTe.Evento.Items[0].infevento.DescricaoTipoEvento(tePrestDesacordo);
    ACBrCTe.EventoCTe.Evento.Items[0].infevento.detEvento.xOBS := ObsDesacordo;

    ACBrCTe.EnviarEvento(NumeroEvento);
    ACBrCTe.EventoCTe.GerarXML;

Seria algo mais ou menos  assim. Alguém consegue confirmar se isso irá funcionar? Alguém tem alguma dica que poderia me ajudar nessa implementação. 

Grato desde já!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
28 minutos atrás, Gustavo.martins disse:

Bom dia.

Estou implementando o desacordo da CTE porem estou tendo dificuldades para encontrar materiais de apoio tal como exemplos, documentação ou algo assim.  Depois de muito buscar aqui no fórum encontrei uma implementação que poderia fazer sentido para o evento de desacordo.

Segue o exemplo:

   ACBrCTe.EventoCTe.Evento.Clear;
    ACBrCTe.EventoCTe.Evento.Add;

    ACBrCTe.EventoCTe.Evento[0].infevento.chCTe := ChaveCTe;
    ACBrCTe.EventoCTe.Evento[0].infevento.CNPJ := emitente.cnpj_cpf;
    ACBrCTe.EventoCTe.Evento[0].infevento.dhEvento := now;
    ACBrCTe.EventoCTe.Evento[0].infevento.nSeqEvento := NumeroEvento;
    ACBrCTe.EventoCTe.Evento[0].infevento.tpEvento := tePrestDesacordo;

    ACBrCTe.EventoCTe.Evento.Items[0].infevento.detEvento.infCorrecao.Add;
    ACBrCTe.EventoCTe.Evento.Items[0].infevento.DescricaoTipoEvento(tePrestDesacordo);
    ACBrCTe.EventoCTe.Evento.Items[0].infevento.detEvento.descEvento := ACBrCTe.EventoCTe.Evento.Items[0].infevento.DescricaoTipoEvento(tePrestDesacordo);
    ACBrCTe.EventoCTe.Evento.Items[0].infevento.detEvento.xOBS := ObsDesacordo;

    ACBrCTe.EnviarEvento(NumeroEvento);
    ACBrCTe.EventoCTe.GerarXML;

Seria algo mais ou menos  assim. Alguém consegue confirmar se isso irá funcionar? Alguém tem alguma dica que poderia me ajudar nessa implementação. 

Grato desde já!

Boa tarde.

Posso estar enganado, mas ao meu entendimento quem da o desacordo no CT-e é o emissor da NF-e,  não o emissor do próprio CT-e.

Então provavelmente estará nas units relacionadas ao ACBRNF-e, se você for uma transportadora, quem tem que dar esse desacordo é o emissor da nota.

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, luisclaudio_jr disse:

Boa tarde.

Posso estar enganado, mas ao meu entendimento quem da o desacordo no CT-e é o emissor da NF-e,  não o emissor do próprio CT-e.

Então provavelmente estará nas units relacionadas ao ACBRNF-e, se você for uma transportadora, quem tem que dar esse desacordo é o emissor da nota.

 

Boa tarde.

Mas no caso quem desacordar a nota não é exatamente a empresa contra quem a nota é emitida? No caso a empresa entendendo que aquele serviço não foi prestado para ela teria que desacordar tal nota na Sefaz?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde a todos,

Primeiramente, o evento de Prestação de Serviço em Desacordo se refere ao CT-e e não a NF-e.

Segundo, no CT-e temos o Remetente e o Destinatário da Carga a principio um desses dois é o tomador do serviço.

Conforme consta no Manual do CT-e versão 3.00 página 30, o respectivo evento deve ser enviado pelo Tomador.

Portanto quem vai enviar o evento de Prestação de Serviço em Desacordo é o Tomador que pode ser o Remetente ou o Destinatário da Carga.

Gustavo, acho que a sua rotina pode ser simplificada.

    ACBrCTe.EventoCTe.Evento.Clear;
    ACBrCTe.EventoCTe.Evento.Add;

    ACBrCTe.EventoCTe.Evento[0].infevento.chCTe := ChaveCTe;
    ACBrCTe.EventoCTe.Evento[0].infevento.CNPJ := emitente.cnpj_cpf;
    ACBrCTe.EventoCTe.Evento[0].infevento.dhEvento := now;
    ACBrCTe.EventoCTe.Evento[0].infevento.nSeqEvento := NumeroEvento;
    ACBrCTe.EventoCTe.Evento[0].infevento.tpEvento := tePrestDesacordo;

    ACBrCTe.EventoCTe.Evento[0].infevento.detEvento.xOBS := ObsDesacordo;

    ACBrCTe.EnviarEvento(NumeroEvento);
    ACBrCTe.EventoCTe.GerarXML;

Agora é só testar.

  • Curtir 2
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

15 minutos atrás, Italo Jurisato Junior disse:

Boa tarde a todos,

Primeiramente, o evento de Prestação de Serviço em Desacordo se refere ao CT-e e não a NF-e.

Segundo, no CT-e temos o Remetente e o Destinatário da Carga a principio um desses dois é o tomador do serviço.

Conforme consta no Manual do CT-e versão 3.00 página 30, o respectivo evento deve ser enviado pelo Tomador.

Portanto quem vai enviar o evento de Prestação de Serviço em Desacordo é o Tomador que pode ser o Remetente ou o Destinatário da Carga.

Gustavo, acho que a sua rotina pode ser simplificada.

    ACBrCTe.EventoCTe.Evento.Clear;
    ACBrCTe.EventoCTe.Evento.Add;

    ACBrCTe.EventoCTe.Evento[0].infevento.chCTe := ChaveCTe;
    ACBrCTe.EventoCTe.Evento[0].infevento.CNPJ := emitente.cnpj_cpf;
    ACBrCTe.EventoCTe.Evento[0].infevento.dhEvento := now;
    ACBrCTe.EventoCTe.Evento[0].infevento.nSeqEvento := NumeroEvento;
    ACBrCTe.EventoCTe.Evento[0].infevento.tpEvento := tePrestDesacordo;

    ACBrCTe.EventoCTe.Evento[0].infevento.detEvento.xOBS := ObsDesacordo;

    ACBrCTe.EnviarEvento(NumeroEvento);
    ACBrCTe.EventoCTe.GerarXML;

Agora é só testar.

Obrigado pela resposta Ítalo. Vou testar essa solução aqui no código. Valeu!!!

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Boa tarde pessoal.

Comecei a implementação do desacordo da CTe porem estava olhando a classe ACBRCTe e percebi que para usar o método de enviar evento que estou usando seria necessário ter um Conhecimento preenchido. Como funciona isso? Basta colocar a chave da cte na propriedade ChaveCte do Conhecimento?

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Gustavo.martins disse:

Boa tarde pessoal.

Comecei a implementação do desacordo da CTe porem estava olhando a classe ACBRCTe e percebi que para usar o método de enviar evento que estou usando seria necessário ter um Conhecimento preenchido. Como funciona isso? Basta colocar a chave da cte na propriedade ChaveCte do Conhecimento?

Usei a função loadFromFile para carregar os dados da CTe que estou tentando desacordar. Mas quando estou debugando a função testa se o tpEvento é  tpCancelamento e como estou passando tePrestDesacordo não esta passando no teste e não consigo executar p desacordo. (Usando a função EnviarEvento)

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Gustavo,

O método EnviarEvento não requer que você tenha carregado previamente o XML do CT-e.

Trata-se de apenas uma alternativa para obter alguns dados, como chave, CNPJ e numero do Protocolo.

Em qual unit ao debugar não passa pelo teste no que você se refere ao tpEvento?

  • Curtir 2
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

2 horas atrás, Italo Jurisato Junior disse:

Bom dia Gustavo,

O método EnviarEvento não requer que você tenha carregado previamente o XML do CT-e.

Trata-se de apenas uma alternativa para obter alguns dados, como chave, CNPJ e numero do Protocolo.

Em qual unit ao debugar não passa pelo teste no que você se refere ao tpEvento?

Bom dia Ítalo.

Realmente não existe a necessidade de ter um Conhecimento para conseguir usar a função. Foi um erro de interpretação meu. Consegui utilizar a função, estou apenas realizando alguns ajustes no código para que não ocorram rejeições na Sefaz. Obrigado pela ajuda.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

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