Ir para conteúdo
  • Cadastre-se

dev botao

Carta de Correção erro


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

Recommended Posts

  • Moderadores

Veja se e o mesmo caso.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

coloquei essa linha para verificar o caminho do schemas:

ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Clear;
Esta pegando no diretorio da minha aplicação, onde eu atualizei o arquivo. Estranho porque esta atualizado. segue o modo como estou fazendo:
   if not(InputQuery('WebServices Eventos: Carta de Correção', 'Chave da NF-e', Chave)) then

     exit;

  Chave := Trim(OnlyNumber(Chave));

  idLote := '1';

  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Identificador de controle do Lote de envio do Evento', idLote)) then

     exit;

  CNPJ := copy(Chave,7,14);

  if not(InputQuery('WebServices Eventos: Carta de Correção', 'CNPJ ou o CPF do autor do Evento', CNPJ)) then

     exit;

  nSeqEvento := '1';

  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Sequencial do evento para o mesmo tipo de evento', nSeqEvento)) then

     exit;

  Correcao := 'Correção a ser considerada, texto livre. A correção mais recente substitui as anteriores.';

  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Correção a ser considerada', Correcao)) then

     exit;


  FENfCUSTNFe2 := TFENfCUSTNFe2.Create(Self);

  FENfCUSTNFe2.Timer1.Enabled := False;

  FENfCUSTNFe2.ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Clear;

  FENfCUSTNFe2.ACBrNFe1.EnvEvento.EnvEventoNFe.idLote := StrToInt(idLote) ;

  with FENfCUSTNFe2.ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Add do

   begin

     infEvento.chNFe := Chave;

     infEvento.CNPJ   := CNPJ;

     infEvento.dhEvento := now;

     infEvento.tpEvento := teCCe;

     infEvento.nSeqEvento := StrToInt(nSeqEvento);

     infEvento.detEvento.xCorrecao := Correcao;

   end;

  Showmessage(FENfCUSTNFe2.ACBrNFe1.Configuracoes.Geral.PathSchemas);

  FENfCUSTNFe2.ACBrNFe1.EnviarEventoNFe(StrToInt(idLote));


  try

    FCanNFe := TFCanNFe.Create(self);

    FCanNFe.MemoResp.Lines.Text := UTF8Encode(FENfCuSTNFe2.ACBrNFe1.WebServices.EnvEvento.RetWS);

    FCanNFe.memoRespWS.Lines.Text := UTF8Encode(FENfCuSTNFe2.ACBrNFe1.WebServices.EnvEvento.RetornoWS);

    LoadXML(FCanNFe.MemoResp, FCanNFe.WBResposta);

    FCanNFe.ShowModal;

  finally

    FCanNFe.Release;

    FCanNFe := nil;

  end;

  FENfCuSTNFe2.Free;


Estou me baseando no exemplo que tem no ACBr.

Obrigado

Fabiano

Link para o comentário
Compartilhar em outros sites

Segue o tópico a respeito da impressão do cce.

viewtopic.php?f=6&t=6696&p=35913&hilit=layout+cce#p35913

Então, adicionei o arquivo VMXCCePrint.pas ao meu projeto, e coloquei um botão com o código:

CCeImp1 := TCCeImp.Create(nil);

CCeImp1.defineSaida(tps_PDF,'\\Fabiano\Maciel\xml Carta Correção\201209\42120885179687000127550020001117611000001233-ProcEventoNFe.pdf'); // tps_PDF ou tps_Print

CCeImp1.defineLayOut(fp_Portrait); // implementado impressão retrato

CCeImp1.defineXMLNFe('\\Fabiano\Maciel\XML\201208\42120885179687000127550020001111761000001233-nfe.xml'); // XML da NFe corrigida

CCeImp1.defineXMLCCe('\\Fabiano\Maciel\xml Carta Correção\201209\42120885179687000127550020001117611000001233-ProcEventoNFe.xml'); // XML da CCe

CCeImp1.defineSoftHouse('MinhaSoftwareHouse');

try

CCeImp1.Execute;

CCeImp1.defineSaida(tps_preview,'\\Fabiano\Maciel\xml Carta Correção\201209\42120885179687000127550020001117611000001233-ProcEventoNFe.pdf');

except

// Tratamento

end;

CCeImp1.Free;

executo mais não acontece nada, o que estou fazendo de errado?

Obrigado

Fabiano

Link para o comentário
Compartilhar em outros sites

Boa tarde pessoal! Uma dúvida:

Existem duas formas de se enviar a carta de correção pelo ACBRNFe: através da propriedade CardaDeCorrecao, que instancia uma classe TCCeNFe, e através do EnvEventos, que utiliza o registro de eventos da NF-e.

Pelo que eu vi, internamente, apesar de serem duas classes distintas, ambas enviam a CC-e através do sistema de eventos. Como eu fiz todo o modelo de carta de correção utilizando a classe da propriedade CartaDeCorrecao, minha dúvida é: devo trocar o modelo que estou usando para a propriedade EnvEventos ? A CartaDeCorrecao é legada e pode ser removida no futuro ?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Rodrigo,

Aconselho você migrar sim, para o EnvEventos, uma vez que este permite enviar para SEFAZ varios outros tipos de eventos e não somente a Carta de Correção.

Quanto a remoção deixo para os Mantenedores do componente responder.

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Warlen,

O que você esta utilizando para enviar a carta de correção.

A rotina velha ou a nova que foi implementada para antender a carta de correção e demais eventos?

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

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

coloquei essa linha para verificar o caminho do schemas:

 

ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Clear;

Esta pegando no diretorio da minha aplicação, onde eu atualizei o arquivo. Estranho porque esta atualizado.

segue o modo como estou fazendo:

if not(InputQuery('WebServices Eventos: Carta de Correção', 'Chave da NF-e', Chave)) then
     exit;
  Chave := Trim(OnlyNumber(Chave));
  idLote := '1';
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Identificador de controle do Lote de envio do Evento', idLote)) then
     exit;
  CNPJ := copy(Chave,7,14);
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'CNPJ ou o CPF do autor do Evento', CNPJ)) then
     exit;
  nSeqEvento := '1';
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Sequencial do evento para o mesmo tipo de evento', nSeqEvento)) then
     exit;
  Correcao := 'Correção a ser considerada, texto livre. A correção mais recente substitui as anteriores.';
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Correção a ser considerada', Correcao)) then
     exit;

  FENfCUSTNFe2 := TFENfCUSTNFe2.Create(Self);
  FENfCUSTNFe2.Timer1.Enabled := False;
  FENfCUSTNFe2.ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Clear;
  FENfCUSTNFe2.ACBrNFe1.EnvEvento.EnvEventoNFe.idLote := StrToInt(idLote) ;
  with FENfCUSTNFe2.ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Add do
   begin
     infEvento.chNFe := Chave;
     infEvento.CNPJ   := CNPJ;
     infEvento.dhEvento := now;
     infEvento.tpEvento := teCCe;
     infEvento.nSeqEvento := StrToInt(nSeqEvento);
     infEvento.detEvento.xCorrecao := Correcao;
   end;
  Showmessage(FENfCUSTNFe2.ACBrNFe1.Configuracoes.Geral.PathSchemas);
  FENfCUSTNFe2.ACBrNFe1.EnviarEventoNFe(StrToInt(idLote));

  try
    FCanNFe := TFCanNFe.Create(self);
    FCanNFe.MemoResp.Lines.Text := UTF8Encode(FENfCuSTNFe2.ACBrNFe1.WebServices.EnvEvento.RetWS);
    FCanNFe.memoRespWS.Lines.Text := UTF8Encode(FENfCuSTNFe2.ACBrNFe1.WebServices.EnvEvento.RetornoWS);
    LoadXML(FCanNFe.MemoResp, FCanNFe.WBResposta);
    FCanNFe.ShowModal;
  finally
    FCanNFe.Release;
    FCanNFe := nil;
  end;
  FENfCuSTNFe2.Free;

Estou me baseando no exemplo que tem no ACBr.

Obrigado

Fabiano

 

como declarar o

FENfCUSTNFe2 
Link para o comentário
Compartilhar em outros sites

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