Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

Implemetação de desacordo de CTE


Gustavo.martins
  • Este tópico foi criado há 1084 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 to comment
Share on other sites

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 to comment
Share on other 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 to comment
Share on other 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.

  • Like 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

Link to comment
Share on other 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!!!

  • Like 2
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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?

  • Like 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

Link to comment
Share on other 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.

  • Like 2
Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.