Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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á!

  • Membros Pro
Postado
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.

 

Postado
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?

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado
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
Postado

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?

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

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

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