Ir para conteúdo
  • Cadastre-se

dev botao

CT-e Anulação


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

Recommended Posts

Leia estes links, para base de conhecimento.

https://blog.signainfo.com.br/detalhes/quando-posso-emitir-o-cte-de-anulacao-e-o-cte-de-substituicao

https://www.ophos.com.br/ct-e-de-anulacao-e-substituicao/

https://blog.oobj.com.br/prestacao-de-servico-em-desacordo/

Segue código que tenho no meu sistema

        // verifica se o CTE é de Anulação
        if copy(dm1.Nota.FieldByName('NFEANULA').AsString,1,1)<>'' then // cte tem nota de anulação
        begin
          // TpcteTipoCTe = (tcNormal, tcComplemento, tcAnulacao, tcSubstituto);
          Ide.tpCTe := tcSubstituto;


          infCTeNorm.infCteSub.chCte:=dm1.Nota.FieldByName('CTEORIG').AsString;    // cte a ser subsituido
          infCTeNorm.infCteSub.tomaICMS.refNFe:=dm1.Nota.FieldByName('NFEANULA').AsString; // chave da nfe de anulaçao emitida pelo tomador

          // todo colocar rotina para mudança no frete
          if dm1.Nota.FieldByName('ALT_TOMA').AsString='S' then
            infCTeNorm.infCteSub.indAlteraToma:=tiSim
          else
            infCTeNorm.infCteSub.indAlteraToma:=tiNao;

        end;
 

Importante observar que além do tomador do serviço que consta no CTE ter que emitir uma NFE de anulação de valores referenciando o CTE a ser anulado, também terá que emitir obrigatoriamente um evento em desacordo referenciando o mesmo CTE.

Infelizmente a burocracia nesta situação é enorme, e na maioria das as vezes o próprio contribuinte que foi "mencionado erroneamente" no CTE, não tem sistema ou pessoal qualificado ou mesmo condições de emitir este evento ou NFE. O que muita das vezes, a anulação não é feita, e o transportador emissor do CTE emitido de forma errada acaba tendo que "arcar" com os custos de impostos. Ficou muito ruim estas exigências do SEFAZ.

Espero que estes links possam ajudar em alguma coisa ou mesmo dar uma luz.

Creio que é isso, caso eu estiver errado os amigos me perdoem e me corrijam por favor.

Abraços

 

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

Percebam no código fonte que postei acima faço um CTE de Substituição ao invés de fazer um CTE de Anulação, necessário em casos que o CTE foi emitido com "Tomador Errado  - Inversão de Frete".

Nesta situação o CTE substituto tem que ser preenchido com os mesmos valores do CTE a ser substituído mas desta vez com o tomador correto.

Percebam que junto ao evento acima a opção a tag  "infCteNorm.infCteSub.indAlteraToma" é modificada para SIM, e não precisa "CTE de Anulação" basta "CTE de Substituição" mas a NFE de Anulação e o evento de desacordo ainda serão obrigatórios.

Esta situação torna-se  necessária, quando o CTE errado já está contido dentro de um MDFe e este já consultado por alguma barreira policial ou Radar automático (Existem radares que pela placa, consultam o MDFe do Veículo automaticamente).

Se não for o caso, a melhor opção mesmo, sempre vai ser "Cancelar o CTE" e fazer outro.

Editado por Leandro Miler Santana
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia a todos,

Um CT-e de Anulação tem vida curta, ou seja, após a sua emissão devemos emitir o CT-e de Substituição.

Outra coisa importante, o CT-e de Anulação só é emitido quando o tomador não for contribuinte ou tenha enviado o Evento de Prestação de Serviço em Desacordo.

Se o tomador do serviço é contribuinte e tenha emitido uma NF-e de Anulação de Valores, a transportadora emite somente o CT-e de Substituição.

É preciso ler muito sobre esse assunto para poder implementar corretamente o CT-e de Anulação e de Substituição e orientar muito bem o usuário do sistema para que ele não faça kaka.

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

18 horas atrás, Leandro Miler Santana disse:

Percebam no código fonte que postei acima faço um CTE de Substituição ao invés de fazer um CTE de Anulação, necessário em casos que o CTE foi emitido com "Tomador Errado  - Inversão de Frete".

Nesta situação o CTE substituto tem que ser preenchido com os mesmos valores do CTE a ser substituído mas desta vez com o tomador correto.

Percebam que junto ao evento acima a opção a tag  "infCteNorm.infCteSub.indAlteraToma" é modificada para SIM, e não precisa "CTE de Anulação" basta "CTE de Substituição" mas a NFE de Anulação e o evento de desacordo ainda serão obrigatórios.

Esta situação torna-se  necessária, quando o CTE errado já está contido dentro de um MDFe e este já consultado por alguma barreira policial ou Radar automático (Existem radares que pela placa, consultam o MDFe do Veículo automaticamente).

Se não for o caso, a melhor opção mesmo, sempre vai ser "Cancelar o CTE" e fazer outro.

Leandro! Obrigado pelas dicas!

1 hora atrás, Italo Giurizzato Junior disse:

Bom dia a todos,

Um CT-e de Anulação tem vida curta, ou seja, após a sua emissão devemos emitir o CT-e de Substituição.

Outra coisa importante, o CT-e de Anulação só é emitido quando o tomador não for contribuinte ou tenha enviado o Evento de Prestação de Serviço em Desacordo.

Se o tomador do serviço é contribuinte e tenha emitido uma NF-e de Anulação de Valores, a transportadora emite somente o CT-e de Substituição.

É preciso ler muito sobre esse assunto para poder implementar corretamente o CT-e de Anulação e de Substituição e orientar muito bem o usuário do sistema para que ele não faça kaka.

Italo, estou assistindo sua palestra no youtube. Valeu!

Link para o comentário
Compartilhar em outros sites

Pessoal,

Ainda não consegui fazer o CT-e de anulação.

Estou tendo erros:

TAG:<dest> ID:#179/CNPJ(CNPJ) - Conteúdo inválido.
TAG:<infCteAnu> ID:#413/chCte(Chave do CTe) - Conteúdo inválido.
TAG:<infCteAnu> ID:#413/chCte(Chave do CTe) - Nenhum valor informado.
TAG:<infCteAnu> ID:#414/dEmi(Data de emissão) - Nenhum valor informado.

'' violates pattern constraint of '[0-9]{44}'.
The element '{http://www.portalfiscal.inf.br/cte}chCte' with value '' failed to parse.

 

No meu Código estou passando assim:

 

tpCTe := 2 // anulação

infCteAnu.chCTe := ReadString('infCTeAnu','chave','');    // Chave do Ct-e que vai anular
infCteAnu.dEmi   := ReadDate('infCTeAnu','dEmi',FailDate); // data  do Ct-e que vai anular

 

Todos os outros campos estou passando exatamente como o CTe Normal, inclusive o DESTINATARIO que é Exterior e o CNPJ estou passado tudo zerado 

 

 

Link para o comentário
Compartilhar em outros sites

Consegui Leandro! Valeu! No final das contas ficou aquele código mesmo.

44 minutos atrás, Leandro Miler Santana disse:

Conseguiu emitir Calmeida79 ?

 

tpCTe := 2 // anulação

infCteAnu.chCTe := ReadString('infCTeAnu','chave','');    // Chave do Ct-e que vai anular
infCteAnu.dEmi   := ReadDate('infCTeAnu','dEmi',FailDate); // data  do Ct-e que vai anular

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1092 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.