Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

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

Postado

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.

  • Membros Pro
Postado

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

Postado

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;

  • 3 semanas depois ...
  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • 2 semanas depois ...
  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • 1 ano depois...
Postado (editado)

Eu troquei a linha 

if TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor = proSimplISS then

pela linha 

if TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor in ([proSimplISS,proBetha]) then

nesta mesma função e resolveu

Editado por eliandro.may
  • 8 meses depois ...
Postado
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

Postado
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]

Postado
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?!

  • 6 meses depois ...
Postado (editado)

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

Editado por Douglas Colombo 09
Postado
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?

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

The popup will be closed in 10 segundos...