Ir para conteúdo
  • Cadastre-se

dev botao

Carta De Correção Eletrônica Para O Ct-E


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

Recommended Posts

  • Consultores

Boa noite Rodrigo,

 

Por favor pesquise antes de postar.

 

A sua questão já esta respondida em outros tópicos.

  • Curtir 1
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 semanas depois ...

Italo conforme NT  2013/006 pagina 88

 

5.4 Evento Carta de Correção
Função: evento com objetivo de corrigir as informações do CT-e
O evento será utilizado pelo contribuinte e o alcance das alterações permitidas é definido no art.
58-B do CONVENIO SINIEF 06/89, que transcrevemos a seguir:
“Art. 58-B Fica permitida a utilização de carta de correção, para regularização de erro ocorrido na
emissão de documentos fiscais relativos à prestação de serviço de transporte, desde que o erro não
esteja relacionado com:
I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de
preço, quantidade, valor da prestação;
II - a correção de dados cadastrais que implique mudança do emitente, tomador, remetente ou do
destinatário;
III - a data de emissão ou de saída.”
O registro de uma nova Carta de Correção substitui a Carta de Correção anterior, assim a nova
Carta de Correção deve conter todas as correções a serem consideradas.
Autor do Evento: O autor do evento é o emissor do CT-e. A mensagem XML do evento será
assinada com o certificado digital que tenha o CNPJ base do Emissor do CT-e.
Código do Tipo de Evento: 110110 (Este Evento exige CT-e autorizado)
Leiaute Mensagem do evento Carta de Correção
 
Fiquei com duvida na implementação, pois estou enviando apenas assim:
 
  ACBrCTe.EventoCTe.Evento.Clear;
            ACBrCTe.EventoCTe.idLote := StrToInt(idLote);
            with ACBrCTe.EventoCTe.Evento.Add do
            begin
                infEvento.chCTe := Chave;
                infEvento.CNPJ := CNPJ;
                infEvento.dhEvento := now;
                infEvento.tpEvento := teCCe;
                infEvento.nSeqEvento := StrToInt(nSeqEvento);
                infEvento.detEvento.xJust := Correcao;
            end;
 
            ACBrCTe.EnviarEventoCTe(StrToInt(idLote));
 
 
Porem me da erro dizendo que não foi informado o MODAL..
 
Bom fui olhar a implementação no componente
no procedimento procedure TWebServicesBase.DoCTeEnvEvento da unit WebServices contem o seguinte:
 
 
 teCCe:
          begin
            for j := 0 to TCTeEnvEvento(Self).FEvento.Evento.InfEvento.detEvento.infCorrecao.Count-1 do
             begin
               with EventoCTe.Evento.InfEvento.detEvento.infCorrecao.Add do
                begin
                 grupoAlterado   := TCTeEnvEvento(Self).FEvento.Evento.InfEvento.detEvento.infCorrecao.grupoAlterado;
                 campoAlterado   := TCTeEnvEvento(Self).FEvento.Evento.InfEvento.detEvento.infCorrecao.campoAlterado;
                 valorAlterado   := TCTeEnvEvento(Self).FEvento.Evento.InfEvento.detEvento.infCorrecao.valorAlterado;
                 nroItemAlterado := TCTeEnvEvento(Self).FEvento.Evento.InfEvento.detEvento.infCorrecao.nroItemAlterado;
                 nroItemAlterado := TCTeEnvEvento(Self).FEvento.Evento.InfEvento.detEvento.infCorrecao.nroItemAlterado;
                end;
             end;
          end;
 
Pergunta: como seria a implementação destes grupos e valores do "infCorrecao" ? Desculpe, não entendi muito bem.....
 
 
Att
 
 
Dionatan
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Dionatan,

 

Tente da seguinte forma:

 

with ACBrCTe1.EventoCTe.Evento.Add do

      begin

       infevento.chCTe      := schave;

       infEvento.CNPJ        := sCNPJ;

       infEvento.dhEvento := now;

       infEvento.tpEvento  := teCCe;

 

       with InfEvento.detEvento.infCorrecao.Add do

           begin

                grupoAlterado    := 'grupo';

                campoAlterado   := 'campo';

                valorAlterado      := 'valor';

                nroItemAlterado  := 'item';

           end;

 

    end;

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

 

Boa tarde Dionatan,

 

Tente da seguinte forma:

 

with ACBrCTe1.EventoCTe.Evento.Add do

      begin

       infevento.chCTe      := schave;

       infEvento.CNPJ        := sCNPJ;

       infEvento.dhEvento := now;

       infEvento.tpEvento  := teCCe;

 

       with InfEvento.detEvento.infCorrecao.Add do

           begin

                grupoAlterado    := 'grupo';

                campoAlterado   := 'campo';

                valorAlterado      := 'valor';

                nroItemAlterado  := 'item';

           end;

 

    end;

 

 

 

Italo mesmo assim deu erro:

 

Veriiquei que na unit ACBRCTEUtil na função:

 

function ValidaModalMSXML(XML: AnsiString; out Msg: AnsiString;

 const APathSchemas: string = ''): Boolean;
 
Tem o seguinte comando: XML := SeparaDados( XML, 'infModal' );
 
 
So que na variável xml não possuo realmente:
 
 if pos( '<rodo>', XML) <> 0
   then begin
    Tipo := 5;
    XML := SeparaDados( XML, 'rodo' );
    XML := '<rodo xmlns="http://www.portalfiscal.inf.br/cte">' +
            XML +
           '</rodo>';
   end;
 
Resultando no erro:
 
if Tipo = 0 then
    raise Exception.Create('Modal não encontrado no XML.');
 
 
Como eu poderia resolver esse problema:
 
em anexo o conteúdo da variável XML
 
 
 
 

arquivo.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Dionatan

 

A unit ACBrCTeUtil esta atualizada?

 

Pois a minha checa primeiro a existencia dos modais, caso não encontre nenhum checa a presença dos eventos.

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

  • Consultores

Bom dia a todos,

 

Favor atualizar os fontes, pois detectei um erro na montagem do XML da CC-e do CT-e.

 

A TAG xCondUso estava sendo incluida na posição errada.

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

Bom dia a todos,

 

Favor atualizar os fontes, pois detectei um erro na montagem do XML da CC-e do CT-e.

 

A TAG xCondUso estava sendo incluida na posição errada.

 

 

Realmente estava desatualizado... Porém agora esta dando erro em outra linha:

 

Unit: ACBRCteUTIL.pas na mesma função 

 

function ValidaModalMSXML(XML: AnsiString; out Msg: AnsiString;
 const APathSchemas: string = ''): Boolean;
 
 
onde ele testa:
 
 
case Tipo of
   1: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'cteModalAereo_v' + CTeModalAereo + '.xsd');
      end;
   2: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'cteModalAquaviario_v' + CTeModalAqua + '.xsd');
      end;
   3: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'cteModalDutoviario_v' + CTeModalDuto + '.xsd');
      end;
   4: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'cteModalFerroviario_v' + CTeModalFerro + '.xsd');
      end;
   5: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'cteModalRodoviario_v' + CTeModalRodo + '.xsd');
      end;
   6: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'cteMultiModal_v' + CTeMultiModal + '.xsd');
      end;
   7: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'evEPECCTe_v' + CTeEventoCTe + '.xsd');
      end;
   8: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'evCancCTe_v' + CTeEventoCTe + '.xsd');
      end;
   9: begin
       Schema.add('http://www.portalfiscal.inf.br/cte'
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'evMultimodal_v' + CTeEventoCTe + '.xsd');
      end;
  10: begin
          DFeUtil.SeSenao(DFeUtil.EstaVazio(APathSchemas),
          PathWithDelim(ExtractFileDir(application.ExeName))+'Schemas\',
          PathWithDelim(APathSchemas))+'evCCeCTe_v' + CTeEventoCTe + '.xsd');
      end;
  end;
 
 
Nesse caso o tipo foi 10, mas quando ele da o add esta dando o erro:
"The system cannot locate the object specified"
 
 
 
Link para o comentário
Compartilhar em outros sites

  • Consultores

Dionatan,

 

Verifique se você com todos os schemas atualizados.

 

Outra coisa, enviei agora pouco para SVN uma correção na montagem do XML da CC-e.

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

  • Consultores

Dionatan,

 

Você não vai conseguir nunca enviar a CC-e.

 

Pela simples razão de que você não alterou o ACBr.ini para a versão 2.00 do CT-e.

 

Ele esta gerando o XML da CC-e e colocando a versão 1.04, só que nesta versão não existe a CC-e.

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

Dionatan,

 

Você não vai conseguir nunca enviar a CC-e.

 

Pela simples razão de que você não alterou o ACBr.ini para a versão 2.00 do CT-e.

 

Ele esta gerando o XML da CC-e e colocando a versão 1.04, só que nesta versão não existe a CC-e.

 

 

Certo... Alterando o ACBR.inc

 

// Definições para o compomente ACBrCTe
// Define o Pacote de Liberação / Descomente o pacote a ser utilizado 
// Atenção: descomente apenas uma das definições
//------------------------------------------------------------------------------
//{$DEFINE PL_103}
//{$DEFINE PL_104}
{$DEFINE PL_200}
 
vai dar muitos erros com a geração do cte?
 
Pois como esta agora comentado a 1.04 esta dando erro por exemplo em:
 
with Rem.InfNFe.Add do
                    begin
                        chave := RxMemoryData1ChaveNfe.AsString;
                        PIN := RxMemoryData1PinSUFRAMA.AsString;
                    end;
Link para o comentário
Compartilhar em outros sites

 

Certo... Alterando o ACBR.inc

 

// Definições para o compomente ACBrCTe
// Define o Pacote de Liberação / Descomente o pacote a ser utilizado 
// Atenção: descomente apenas uma das definições
//------------------------------------------------------------------------------
//{$DEFINE PL_103}
//{$DEFINE PL_104}
{$DEFINE PL_200}
 
vai dar muitos erros com a geração do cte?
 
Pois como esta agora comentado a 1.04 esta dando erro por exemplo em:
 
with Rem.InfNFe.Add do
                    begin
                        chave := RxMemoryData1ChaveNfe.AsString;
                        PIN := RxMemoryData1PinSUFRAMA.AsString;
                    end;

 

 

 

Estou fazendo assim:

 

{$IFDEF PL_200}
                    with infCTeNorm.infDoc.infNF.Add do
                    begin
 
 
 
 
                    end;
{$ELSE}
                    with Rem.InfNF.Add do
                    begin
 
                        chave := RxMemoryData1ChaveNfe.AsString;
                        PIN := RxMemoryData1PinSUFRAMA.AsString;
 
                    end;
{$ENDIF}
 
 
Porem nao sei como referenciar as NFE NA 2.0... Tentei colocar a Chave e Pin mas nao deu certo...
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores

Bom dia Ricardo,

 

Dentro da pasta ...\Exemplos\ACBrCTe temos varios arquivos TXT, no AlimentarComponente.txt você vai encontrar a solução.

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

  • Membros Pro

Já é possível fazer a CCeCte com ACBrNFeMonitor.exe ? (Procurei no fórum não achei um tópico que tratasse disto exatamente, se tiver algum me indique por gentileza).

Se for possível fazer a CCeCte, teria algum exemplo para passar?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Já é possível fazer a CCeCte com ACBrNFeMonitor.exe ? (Procurei no fórum não achei um tópico que tratasse disto exatamente, se tiver algum me indique por gentileza).

Se for possível fazer a CCeCte, teria algum exemplo para passar?

Favor leia as

poste em um único lugar e aguarde até ser respondido

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

  • 8 meses depois ...
  • Consultores

Bom dia Marcelo,

 

Lembre-se que a CC-e, o Cancelamento são eventos, e se utilizam na mesma rotina de envio e de retorno.

 

Portanto se você sabe pegar o Status e salvar o XML do Cancelamento por evento do CT-e no banco de dados, basta fazer a mesma coisa com a CC-e.

 

Pegar o Status:

 

 sStat      := IntToStr(ACBrCTe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat);
 
Pegar o XML:
 
 sXML      := ACBrCTe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
 
Verifique se isso resolve.
 
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

  • Membros Pro

Boa tarde,

 

estou iniciando a implementação da CCe, eu utilizo a versão compilada AcbrNFeMonitor2 0.8.3.1.

 

Gostaria de saber qual é o comando o AcbrNFeMonitor2 lê para envio da CCe.

 

Alguém poderia me enviar o layout do arquivo de texto que o AcbrNFeMonitor2  lê.

 

 

Desde já, agradeço.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

boa tarde

possui em tres locais no arquivo de help que vai junto com o instalador, no pdf que também acompanha

e aqui no meu blog mostro as diferenças

http://juliomarmarchetti.blogspot.com.br/2014/05/ct-e-200-campos-para-criar-usando.html

 

onde no caso é um evento então está ali!

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á 3579 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.