Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Senhores, boa tarde. Gostaria de uma sugestão para resolver um problema.

Quando cancelo uma nfe e envio o e-mail automático, o pdf que e gerado vai com a tarja de NFe CANCELADA.

Mas quando envio um e-mail do pdf do mesmo XML, a tarja de NFe CANCELADA não aparece.

Qual procedimento devo adotar para o componente realizar o mesmo procedimento nos dois casos.

Editado por ALA
Postado

Eu verifico se o  if ( ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.cStat = 101 ) then, mas parece que agora o XML cancelado não muda o status. Existe outra forma de verificar isso ? 

<infProt>

<tpAmb>2</tpAmb>
<verAplic>13_2_88_MQ7</verAplic>
<chNFe>31151002128529000110550010000099711000099710</chNFe>
<dhRecbto>2015-10-27T11:20:02-02:00</dhRecbto>
<nProt>131150050996914</nProt>
<digVal>niCYGtYCh0f+tnmlK845bAFUQcM=</digVal>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>

 

  • Consultores
Postado

Bom dia,

Quando você cancela uma NF-e é preciso que no banco de dados você tenha um campo que indique que a nota de numero 500 esta cancelada, bem como a data/hora e o numero do protocolo de cancelamento.

É desta forma que você sabe se a nota foi cancelada ou não, quando foi e o protocolo de homologação da SEFAZ.

Segundo não se deve alterar o XML da nota, ou seja, remover as informações referente a autorização e colocar no lugar as informações referente ao cancelamento.

Esse procedimento não existe não consta nos manuais e notas técnicas publicadas pelo ENCAT e disponibilizadas no Portal Nacional da NF-e.

O XML da NF-e deve conter apenas os dados da venda, a assinatura digital do emitente e as informações referente a autorização de uso retornada pela SEFAZ-Autorizadora.

Esse XML deve ser armazenado pelo emitente e disponibilizado ao destinatário.

Ocorrendo o cancelamento deve-se disponibilizar ao destinatário o arquivo *-procEventoNFe.xml este arquivo contem a solicitação de cancelamento, a assinatura digital do emitente e as informações referente a homologação do cancelamento retornada pela SEFAZ-Autorizadora.

O emitente também deve armazenar esse arquivo.

Temos então 2 arquivos XML com validade jurídica que o emitente deve armazenar e disponibilizar ao destinatário, são eles:

*-nfe.xml (nota fiscal propriamente dita)

*-procEventoNFe.xml (processamento de Evento de NF-e) que pode ser um cancelamento ou CC-e

Observação: caso exista uma transportadora envolvida no trasporte das mercadorias relacionadas na nota, ela também deverá receber os arquivos mencionados acima.

Para enviar por e-mail os arquivos acima para o destinatário / transportadora utilize os métodos:

EnviarEmail para a nota;

EnviarEmailEventos para os eventos.

  • Curtir 1
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

  • 3 semanas depois ...
Postado

Olá Ítalo, tudo bem ?

Agradeço antecipadamente a ajuda que o amigo puder me dar. Abs.

Mudei a versão do ACBr para o Trunk2 e estou com problemas para cancelar e fazer uma carta de correção em uma NF-e.

O erro retornado é o seguinte:

envEvento_v1.00.xsd#/schema/element[1][@name = 'envEvento']

Undeclared XSD type: '{http://www.portalfiscal.ing.br/nfe}TEnvEvento'

Meu código de carta de correção é o que segue:

procedure TfrmNFE.btcF4Click(Sender: TObject);
var
  Correcao : string;
  vl_caminhonota:string;
  vl_nrcorrecao:integer;
begin
   if length(trim(frmMenu.f_limpacampo(ed_nrcorrecao.Text,10))) = 0 then
   begin
      Showmessage('Preencha o Número sequencial da carta de correção NFe');
      abort;
   end;
   vl_nrcorrecao:=strtoint(frmMenu.f_limpacampo(ed_nrcorrecao.Text,10));
   if vl_nrcorrecao = 0 then
   begin
      Showmessage('Preencha o Número sequencial da carta de correção NFe diferente de 0');
      abort;
   end;
   //
   if MessageBox(0,'Confirma Carta de correçao da NFE ?','ATENÇÃO',
      mb_IconQuestion+mb_YesNo+MB_DEFBUTTON2+MB_SYSTEMMODAL) = IdNo then // Não
      abort;
   ACBRNFE1.Configuracoes.WebServices.Ambiente := taproducao;
   ACBRNFE1.Configuracoes.Certificados.NumeroSerie := '1234FCA8AE2AE123';
   ACBRNFE1.Configuracoes.Certificados.Senha       := 'x1x2x3x4';
   ACBRNFE1.Configuracoes.WebServices.UF           := 'SP';

   ACBRNFE1.Configuracoes.arquivos.PathSalvar := 'd:\nfe';
   ACBRNFE1.Configuracoes.Geral.Salvar := True;
   ACBRNFE1.Configuracoes.arquivos.PathSchemas := 'd:\nfe\Schemas';

   ACBRNFE1.Configuracoes.Arquivos.separarpormes := true;
   ACBRNFE1.Configuracoes.Arquivos.PathNFe := 'd:\nfe\xml';

   ACBRNFEDANFEQR1.NumCopias := 1;

   ACBRNFEDANFEQR1.Email := trim(tbClientes.fieldbyname('emailnfecli1').AsString);

   ACBRNFEDANFEQR1.PathPDF := 'd:\nfe\pdf';
   If FileExists('d:\nfe\logo.bmp') then
   begin
      ACBRNFEDANFEQR1.ExpandirLogoMarca := true;
      ACBRNFEDANFEQR1.Logo := ('d:\nfe\logo.bmp');
   end
   Else
   Begin
      ACBRNFEDANFEQR1.ExpandirLogoMarca := false;
      ACBRNFEDANFEQR1.Logo := '';
   End;

   ACBRNFEDANFEQR1.ExibirResumoCanhoto :=true;

   //===========================================

   // CARTA DE CORREÇÃO DE NFe

   vl_caminhonota:='D:\NFE\XML\'+formatdatetime('yyyymm',tbNFE.fieldbyname('dataemissao').asdatetime);
   vl_caminhonota:=vl_caminhonota+'\'+trim(tbNFE.fieldbyname('chavenfe').asstring)+'-nfe.xml';
   if Fileexists(vl_caminhonota) then
   begin
      Try
         acbRNFE1.NotasFiscais.Clear;
         acbRNFE1.NotasFiscais.LoadFromFile(vl_caminhonota);
      Finally
      End;

      Correcao := 'Correção a ser considerada, texto livre. A correção mais recente substitui as anteriores.';
      if not(InputQuery('WebServices Carta de Correção', 'Correção a ser considerada', Correcao)) then
         exit;

      acbRNFE1.CartaCorrecao.CCe.Evento.Clear;
      acbRNFE1.CartaCorrecao.CCe.idLote := 1 ;

      with acbRNFE1.CartaCorrecao.CCe.Evento.Add do
      begin
         infEvento.chNFe := tbNFE.fieldbyname('chavenfe').asstring;
         infEvento.cOrgao := 35;
         infEvento.CNPJ   := '12345678000101';
         infEvento.dhEvento := now;
         infEvento.tpEvento := 110110;

         infEvento.nSeqEvento := Random(9);
         infEvento.versaoEvento := '1.00';
         infEvento.detEvento.descEvento := 'Carta de Correção';
         infEvento.detEvento.xCorrecao := Correcao;
         infevento.nSeqEvento := vl_nrcorrecao;
         infEvento.detEvento.xCondUso := '';
       end;

       acbRNFE1.EnviarCartaCorrecao(1);

       MemoNFE.Clear;
       MemoNFE.Lines.Add('');
       MemoNFE.Lines.Add('*******CARTA DE CORREÇÃO*******');
       MemoNFE.Lines.Add('Número da correção: '+trim(ed_nrcorrecao.Text));
       MemoNFE.Lines.Add('');
       MemoNFE.Lines.Add('*******************************');

       if tbnfe.State in [dsinsert, dsedit] then else tbnfe.Edit;
       tbNFE.FieldByName('memonfe').asstring:=dbmemo5.Text+memonfe.Text;
       tbNFE.Post;
       //
       Showmessage('Carta de correção efetuada');
   end;
end;

Postado

   Boa tarde a todos. Estou com uma dúvida em Impressão da NFe cancelada e gostaria da ajuda de vocês, achei melhor não abrir um novo tópico já que esse daqui está tratando do tema.

   Sempre usei o acbr com o DANFE em Rave, ao atualizar para a versão Trunk2, notei que não tinha mais o DANFE para Rave e preferi adotar a versão Fortes Report, quando uma nota era cancelada no Rave, se eu reimprimisse aparecia a tarja NFe cancelada no meio do Danfe.

   Agora com o Fortes Report está aparecendo no código de barras do protocolo, a pergunta é : Eu consigo mudar a posição dessa tarja? Se sim alguém poderia me dar uma dica ou  exemplo de como fazê-lo?

  Grato.

Postado

  Ola Juliomar,obrigado pela resposta. 

  Não domino muito bem essa parte de alterar um componente, eu teria que alterar a classe ACBrNFeDANFeRLClass.pas?

  Se sim, em qual linha eu altero a posição dele?

  Obrigado.

Postado

Boa tarde. Eu consegui encontrar o arquivo, pelo menos acho que é esse mesmo. 

Abri o arquivo ACBrNFeDANFeRLRetrato.pas que está no caminho ...\Fontes\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes

Encontrei o componente responsável por mostrar a mensagem de NF-e Cancelada, o componente é o rllXmotivo, eu o coloquei mais centralizado na página, salvei. Logo após mandei reinstalar o acbr novamente pelo ACBrInstall_Trunk2.exe, parece que não fez efeito, pois a mensagem de NF-e Cancelada continua aparecendo junto com o codigo de barras do protocolo.

   Alguem poderia me dar uma dica me orientando o que eu posso estar fazendo de errado?

  Grato.

  • 2 semanas depois ...
Postado (editado)
Em 18/11/2015 15:42:38, castrocac disse:

Boa tarde. Eu consegui encontrar o arquivo, pelo menos acho que é esse mesmo. 

Abri o arquivo ACBrNFeDANFeRLRetrato.pas que está no caminho ...\Fontes\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes

Encontrei o componente responsável por mostrar a mensagem de NF-e Cancelada, o componente é o rllXmotivo, eu o coloquei mais centralizado na página, salvei. Logo após mandei reinstalar o acbr novamente pelo ACBrInstall_Trunk2.exe, parece que não fez efeito, pois a mensagem de NF-e Cancelada continua aparecendo junto com o codigo de barras do protocolo.

   Alguem poderia me dar uma dica me orientando o que eu posso estar fazendo de errado?

  Grato.

Bom dia.

Não sei se vc está com o "problema" ainda, mas creio que vc não precisa mais alterar no componente pois hoje mesmo imprimi uma NF-e Cancela utilizando o Fortes e a mensagem de "NF-e Cancelada" está saindo tanto em cima do código de barras quanto centralizado no meio da DANFE tbm, ou seja, está aparecendo duas vezes a mensagem, creio que assim ficou bacana.

Tente atualizar os seus fontes e imprimir novamente.

Obs: Não é indicado vc fazer alterações no componente pois toda vez que vc precisar atualizar ou reinstalar o ACBR você irá perder a sua modificação. Foi oque aconteceu quando vc reinstalou.

Att, Alex.

Editado por Alex Pereira
  • Este tópico foi criado há 3274 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.