Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

 

Pessoal  na unit ACBrNFSeNotasFiscais que faz a leitura do XML da nfse não está lendo a tag de cancelamento 

no caso a função TNotasFiscais.LoadFromString

O que acontece é que ai não funciona a impressão da tarja de aviso nota cancelada na unit ACBrNFSeDANFSeRLRetrato;

   if NfseCancelamento.DataHora<>0 then
   begin
    rllMsgTeste.Caption := 'NFS-e CANCELADA';
    rllMsgTeste.Visible := True;
    rllMsgTeste.Enabled := True;
   end;

 

Para um paleativo fiz isso no sistema:

   IF qaux.fieldbyname('status').AsString = 'C' then
     ACBrNFSe1.NotasFiscais.Items[0].NFSe.NfseCancelamento.DataHora := 1;


 

  • Membros Pro
Postado (editado)

Italo, resolvido! porém parece que está abrindo 2 vezes o preview do impresso ao chamar a função ACBrNFSe1.NotasFiscais.Imprimir;

Estou utilizando o componente ACBrNFSeDANFSeRL1 para impressão. 

Será uma configuração minha ? 

em tempo: só está ocorrendo nas notas canceladas, acho que a correção afetou algo.

Editado por Joel
  • Membros Pro
Postado

na unit ACBrNFSeWebServices

provedor de maringá PR ISSe

Não sei se é configuração, mas nesta funçao DefinirDadosMsg

Mesmo setando fixo no componente true não entra neste if, e por fim não assinando o xml no envio do cancelamento e dando o erro: The documento has no document element

if (FPConfiguracoesNFSe.Geral.ConfigAssinar.Cancelar) and (FPDadosMsg <> '') then

Por enquanto retirei esta validação  para que os clientes possam cancelar.  

 

 if (FPDadosMsg <> '') then

 

Postado

Boa tarde Italo. Atualizei os fontes (especificamente o ACBrNFSeNotasFiscais.pas) e, de fato, conforme nosso colega Joel relatou, está abrindo duas vezes o previe; a primeira corretamente e a segunda vazia (somente o layout do danfe com os campos todos vazios).

Estive olhando o fonte e constatei que ao ser chamada a function PosNFSe (dentro da function LoadFromString) para achar a posição da tag </CompNfse>, numa nota cancelada (padrão GINFES), a function vai retornar valores duas vezes, uma vez que a variável AXMLString contém duas tags </CompNfse>, conforme fragmento final do conteúdo da variável AXMLString:

        </NfseCancelamento>

    </CompNfse>

</CompNfse>

Da segunda vez que a function PosNFSe é chamada, ela retorna N = 1.

A solução que fiz aqui foi mudar o if N > 0 para if N > 1 após a chamada da function PosNFSe.

  N := PosNFSe;
  if N > 1 then // <----AQUI
  begin
    // Ler os XMLs das NFS-e
    while N > 1 do //<---AQUI
    begin

 

ACBrNFSeNotasFiscais.pas

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