Ir para conteúdo
  • Cadastre-se

dev botao

NFSeX Problema na emissão


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 948 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia!

Estou com um problema com o ACBrNFSeX, com as últimas mudanças, estou com efeito colateral que não sei se é algo que preciso fazer ou algum ajuste necessário no componente.

Ao enviar uma nfse (Bauru-SP, SilTecnologia, v2.03), a NFS-e está sendo gerada e validada pelo servidor.
No componente, a propriedade ACBrNFSeX1.NotasFiscais[0].Confirmada está True, mas os dados não são carregados para as propriedades, ex: ACBrNFSeX1.NotasFiscais[0].NFSe.Numero e ACBrNFSeX1.NotasFiscais[0].NFSe.CodigoVerificacao estão vazios.
 

 

img_002.png

img_001.png

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia, 

Na unit ACBrNFSeXProviderABRASFv2 - procedure: TratarRetornoEmitir, coloque um ponto de parada na linha 466:

          ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps);

Preciso saber se o Assigned(ANota) que esta no IF é verdadeiro ou false.

          ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps);   // Colocar ponto de parada nesta linha

          if Assigned(ANota) then             // é verdadeiro ou false ?
            ANota.XmlNfse := ANode.OuterXml
          else
          begin
            TACBrNFSeX(FAOwner).NotasFiscais.LoadFromString(ANode.OuterXml, False);
            ANota := TACBrNFSeX(FAOwner).NotasFiscais.Items[TACBrNFSeX(FAOwner).NotasFiscais.Count-1];
          end;

 

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Favor realizar um novo teste com a unit em anexo.

ACBrNFSeXProviderABRASFv2.pas

Veja se agora as propriedades vão estar preenchidas.

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde,

Acredito que ele deve estar gerando mais um item na lista NotasFiscais, como você esta lendo as propriedades de índice "0" esta pegando os dados do Rps, se pegar do índice "1" vai pegar da NFS-e.

Por favor verifique se realmente é isso que esta ocorrendo.

 

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
5 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde,

Acredito que ele deve estar gerando mais um item na lista NotasFiscais, como você esta lendo as propriedades de índice "0" esta pegando os dados do Rps, se pegar do índice "1" vai pegar da NFS-e.

Por favor verifique se realmente é isso que esta ocorrendo.

 

Exatamente isso.

Não sei o porque, mas está ficando com duas nfse no componente.

Vou ver se acho o motivo.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

O problema é o LoadFromString que sempre cria um novo item na lista.

function TNotasFiscais.LoadFromString(AXMLString: String;
  AGerarNFSe: Boolean = True): Boolean;
begin
  with Self.New do    // <= cria um novo item na lista de NotasFiscais
  begin
    LerXML(AXMLString);

    if AGerarNFSe then
      GerarXML;
  end;

  Result := Self.Count > 0;
end;

Faça mais um teste com as Units em anexo.

ACBrNFSeXNotasFiscais.pas

ACBrNFSeXProviderABRASFv2.pas

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
7 minutos atrás, Italo Giurizzato Junior disse:

O problema é o LoadFromString que sempre cria um novo item na lista.

function TNotasFiscais.LoadFromString(AXMLString: String;
  AGerarNFSe: Boolean = True): Boolean;
begin
  with Self.New do    // <= cria um novo item na lista de NotasFiscais
  begin
    LerXML(AXMLString);

    if AGerarNFSe then
      GerarXML;
  end;

  Result := Self.Count > 0;
end;

Faça mais um teste com as Units em anexo.

ACBrNFSeXNotasFiscais.pas 35 kB · 0 downloads

ACBrNFSeXProviderABRASFv2.pas 78 kB · 0 downloads

Ficou certinho agora.

Está transmitindo e retornando corretamente.
Não gerou um novo index de Notafiscal.

 

Muito obrigado pela atenção.
 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 948 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...