Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Atualizou os schemas?

Atualizei usando o SVN Update, depois copiei o arquivo envCCe_v1.00.xsd da pasta \Exemplos\ACBrNFe2\Delphi\Schemas para a pasta raiz da minha aplicação.

Mais continua dando o erro? sera que tenho que mudar esse arquivo um algum outro lugar?

  • Moderadores
Postado

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

 

 

 

 

Postado

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

Postado

consegui fazer, funcionou!!!

Agora uma duvida, gerou 3 arquivos xml:

1-eve.xml / 1-ped-evento.xml / 42120885179687000127550020001117611000001233-ProcEventoNFe.xml

como que faço agora para imprimir a carta de correção? ou enviar a carta para o cliente?

Postado

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

Postado

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 ?

  • Consultores
Postado

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

Postado

Aproveitando o assunto, alguém sabe o motivo da mensagem abaixo ao tentar enviar uma carta de correção?

Falha na validação dos dados do envio do evento

Falha de validação: documento não contém exatamente um nó de raiz.

obrigado

  • 3 meses depois ...
Postado

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