Jump to content

Assista tectoy.png

Trunk2 não imprimi tarja "NFS-e CANCELADA" - Impressão Fortes


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

Recommended Posts

Pessoal boa tarde

No trunk2, a impressão da NFS-e CANCELADA, com o componente FORTES, não imprime a tarja de aviso  "NFS-e CANCELADA". Provedor GINFES

Aparemente o erro esta aonde faz a leitura do campo DataHora do cancelamento. Eu editei a unit ACBrNFSeDANFSeRLRetrato.pas, procedure  TfrlDANFSeRLRetrato.rlbTomadorBeforePrint(Sender: TObject; var PrintIt: Boolean); e vi que o propriedade DataHora esta chegando = 0 (zero) na linha 574 da unit.

if NfseCancelamento.DataHora<>0 then // aqui, mesmo o XML carregado sendo um XML Cancelado o valor de DataHora é 0
   begin
    rllMsgTeste.Caption := 'NFS-e CANCELADA';
    rllMsgTeste.Visible := True;
    rllMsgTeste.Enabled := True;
   end;

   
Faz pouco tempo que faço uso da ACBR, mas estou interpretando os códigos pra tentar colaborar em algo no desenvolvimento, porém até o momento não cheguei a solução.

Anexo está o XML cancelado de teste. Também testei com o exemplo disponibilidade no trunk2 e a mesma "falha" ocorre.

Desde já obrigado.

136-nfse.xml

Link to comment
Share on other sites

Para que o danfe da nfs-e saia com a tarja de cancelamento, você deve alterar a propriedade do componente danfe:

ACBrNFSe1.NotasFiscais.Clear;
ACBrNFSe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);
if ACBrNFSe1.NotasFiscais.Items[0].NFSe.NfseCancelamento.DataHora <> 0 then
  ACBrNFSe1.DANFSE.NFSeCancelada := True;
ACBrNFSe1.NotasFiscais.Imprimir;

Contudo, a propriedade DataHora está vindo zerada após o carregamento do xml.

Link to comment
Share on other sites

  • Membros Pro

Estou com o mesmo problema para o Provedor BETHA. Após a leitura da NFSe que está cancelada a propriedade “NFSeCancelada” está como “True” somente o campo NfseCancelamento.DataHora que está zero. E não imprimi a mensagem de “NFS-e CANCELADA

Link to comment
Share on other sites

Resolvi assim, alterando em \fontes\ACBrDFe\ACBrNFSe\ACBrNFSeNotasFiscais.pas

function TNotasFiscais.LoadFromString(AXMLString: String;
  AGerarNFSe: Boolean = True): Boolean;
var
  VersaoNFSe: TVersaoNFSe;
  Ok: Boolean;
  AXML: AnsiString;
  N: integer;
  vTipo: Integer;

  function PosNfseCancelamento: Integer;
  begin
    Result := Pos('</NfseCancelamento>', AXMLString);
  end;

  function PosNFSe: Integer;
  begin
    Result := Pos('</Nfse>', AXMLString);
  end;

  function PosRPS: Integer;
  begin
    if VersaoNFSe < ve200 then
      Result := Pos('</Rps>', AXMLString)
    else
    begin
      // Se a versão do XML do RPS for 2.00 ou posterior existem 2 TAGs <Rps>,
      // neste caso devemos buscar a posição da segunda.
      Result := Pos('</Rps>', AXMLString);
      Result := PosEx('</Rps>', AXMLString, Result + 1);
    end;
  end;

begin
  VersaoNFSe := StrToVersaoNFSe(Ok, TACBrNFSe(FACBrNFSe).Configuracoes.Geral.ConfigXML.VersaoXML);

  AXMLString := StringReplace(StringReplace( AXMLString, '&lt;', '<', [rfReplaceAll]), '&gt;', '>', [rfReplaceAll]);
  AXMLString := RetirarPrefixos(AXMLString);
(*
  // Converte de UTF8 para a String nativa da IDE //
  AXMLString := RetirarPrefixos(DecodeToString(AXMLString, True));
*)
  Result := False;
  
  N := PosNfseCancelamento;
  if N > 0 then
    vtipo := 0;

  if N = 0 then
  begin

    N := PosNFSe;
    if N > 0 then
      vTipo := 1;
  end;

  if N > 0 then
  begin
    // Ler os XMLs das NFS-e
    while N > 0 do
    begin
      if vTipo = 0 then
      begin
        AXML := copy(AXMLString, 1, N + 18);
        AXMLString := Trim(copy(AXMLString, N + 19, length(AXMLString)));
      end;

      if vTipo = 1 then
      begin

        AXML := copy(AXMLString, 1, N + 6);
        AXMLString := Trim(copy(AXMLString, N + 7, length(AXMLString)));
      end;

      with Self.Add do
      begin
        LerXML(AXML);

        if AGerarNFSe then // Recalcula o XML
          GerarXML;
      end;

      if vTipo = 0 then
        N := PosNfseCancelamento;

      if vTipo = 1 then
        N := PosNFSe;
    end;
  end
  else begin
    N := PosRPS;
    // Ler os XMLs dos RPS
    while N > 0 do
    begin
      AXML := copy(AXMLString, 1, N + 5);
      AXMLString := Trim(copy(AXMLString, N + 6, length(AXMLString)));
      with Self.Add do
      begin
        LerXML(AXML);

        if AGerarNFSe then // Recalcula o XML
          GerarXML;
      end;

      N := PosRPS;
    end;
  end;
end;

Link to comment
Share on other sites

  • 3 weeks later...
  • Consultores

Boa tarde Wilson,

Em vez de postar um fragmento longo de código, porque não posta como anexo a unit que você alterou?

Desta forma possamos avaliar e caso esteja tudo correto enviar para o repositório assim todos vão ter o componente atualizado e funcionando 100%.

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

Link to comment
Share on other sites

  • 2 weeks later...
  • Consultores

Bom dia Wilson,

Faça uma cópia da sua implementação e atualize os fontes fiz uma alteração agora pouco visando resolver esse problema.

Caso detecte mais algum problema favor altera-la com base no que foi enviado agora para o repositório.

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

Link to comment
Share on other sites

  • 1 year later...
  • 8 months later...
Em 04/02/2016 at 10:20, Italo Jurisato Junior disse:

Bom dia Wilson,

Faça uma cópia da sua implementação e atualize os fontes fiz uma alteração agora pouco visando resolver esse problema.

Caso detecte mais algum problema favor altera-la com base no que foi enviado agora para o repositório.

Boa tarde,

A impressão não está saindo a tarja de cancelada, estou utilizando provedor de SP http://www.prefeitura.sp.gov.br/nfe, os meus fontes  estão atualizados, em anexo segue o xml.

Por favor, alguém poderia me ajudar?

Grato.

3517100549784500015856000000000000016-nfse.xml

Link to comment
Share on other sites

  • Membros Pro
21 minutos atrás, Fernando Cano Vanessa Cano disse:

Boa tarde,

A impressão não está saindo a tarja de cancelada, estou utilizando provedor de SP http://www.prefeitura.sp.gov.br/nfe, os meus fontes  estão atualizados, em anexo segue o xml.

Por favor, alguém poderia me ajudar?

Grato.

3517100549784500015856000000000000016-nfse.xml

Creio que você deva "dizer" ao componente DANFSe que a nota é uma nota cancelada.
Exemplo:
 

ACBrNFSeDANFSeRL1.NFSeCancelada := True;
ACBrNFSe1.NotasFiscais.Imprimir;

 

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link to comment
Share on other sites

17 minutos atrás, Sérgio Assunção disse:

Creio que você deva "dizer" ao componente DANFSe que a nota é uma nota cancelada.
Exemplo:
 

ACBrNFSeDANFSeRL1.NFSeCancelada := True;
ACBrNFSe1.NotasFiscais.Imprimir;

 

 

    ACBrNFSe1.NotasFiscais.Clear;
    ACBrNFSe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName, False);
    ACBrNFSeDANFSeRL1.NFSeCancelada := True;
    ACBrNFSe1.DANFSE.NFSeCancelada := True;
    ACBrNFSe1.NotasFiscais.Imprimir;
 

Sérgio,

Isso mesmo,  componente DANFSe, já havia feito os procedimentos acima e mesmo assim nada... Usando o debug, o LoadFromFile testa a tag <StatusNFe> e atribui:   

    NFSe.Status    := srCancelado;
     NFSe.Cancelada := snSim;

mas não está testando a tag <DataCancelamento>, será que pode ser isso?!

Link to comment
Share on other sites

  • 6 months later...

Boa tarde, estou informando estes 3 código para fazer sair a descrição de cancelada:

Provedor : BHISS

ACBrNFSe1.NotasFiscais.Clear;

ACBrNFSe1.NotasFiscais.LoadFromFile(caminhoXML);

ACBrNFSe1.NotasFiscais[0].NFSe.Cancelada := snSim;
ACBrNFSe1.DANFSE.NFSeCancelada := true;
ACBrNFSeDANFSeRL1.NFSeCancelada := true;

ACBrNFSe1.NotasFiscais.Imprimir;

Mesmo assim ainda não aparece a tarja de descrição de cancelada a NFSe, antes funcionada. Atualizei o ACBR hoje, está compilando normalmente, porem a tarja não aparece ainda. Teria outra forma?

 

At,

Douglas Colombo

Edited by Douglas Colombo 09
Link to comment
Share on other sites

5 horas atrás, Douglas Colombo 09 disse:

Boa tarde, estou informando estes 3 código para fazer sair a descrição de cancelada:

Provedor : BHISS

ACBrNFSe1.NotasFiscais.Clear;

ACBrNFSe1.NotasFiscais.LoadFromFile(caminhoXML);

ACBrNFSe1.NotasFiscais[0].NFSe.Cancelada := snSim;
ACBrNFSe1.DANFSE.NFSeCancelada := true;
ACBrNFSeDANFSeRL1.NFSeCancelada := true;

ACBrNFSe1.NotasFiscais.Imprimir;

Mesmo assim ainda não aparece a tarja de descrição de cancelada a NFSe, antes funcionada. Atualizei o ACBR hoje, está compilando normalmente, porem a tarja não aparece ainda. Teria outra forma?

 

At,

Douglas Colombo

@Italo Jurisato Junior sabe me dizer qual comando utilizar?

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.