Ir para conteúdo
  • Cadastre-se

dev botao

Importar Txt Nfe - Pcnlayouttxt


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

Recommended Posts

Olá amigos,

 

estou fazendo uma rotina de gerar o TXT da NFe utilizando o ACBr.

 

Posteriomente vou utilizar o ACBr para importar este mesmo txt gerado.

 

Ao fazer a importação do TXT não estava carregando os dados da nota. Ao fazer um Debug observei que na unit PCNLayoutTXT.PAS,

 

na linha 272 estava :

LoadLayout('<B01>     A|versao|^id^');

Tive que fazer a alteração para

LoadLayout('<B01>     A|3.10|^id^');

Tirei como base as instruções referentes as versões anteriores, linha 73 e 64:

LoadLayout('<B01>     A|1.10|^id^');

LoadLayout('<B01>     A|2.00|^id^'); //ok

Com estas alterações passou a funcionar.

 

Observando que na importação do txt a rotina verifica isto ai.

 

PCNNFERTXT.PAS linha 127:

const
  VERSOES_VALIDAS_LAYOUT_TXT = '|1.10|2.00|3.10|';

versao := copy(FconteudoArquivo[1], 3, 4);
if pos('|' + Versao + '|', VERSOES_VALIDAS_LAYOUT_TXT) = 0 then 
  exit;

é possível atualizar esta alteração no repositório uma vez que a unit faz parte do projeto PCN ? 

Editado por joseadolfojr
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá essa alteração já foi proposta por um colega chamado Gabriel, na pesquisa vc deve encontrar o tópico dele, de qualquer maneira não me recordo se os moderadores/administradores deram um feedback se essa alteração seria incorporada ao svn, o jeito é aguardar um deles nos avisar se vai ou nõa incorporar no svn.

 

Abraço

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Essa alteração quebra a leitura do arquivo TXT, que depende dessa linha para identificar a versão do arquivo importado.

 

Para resolver, sugiro alterar em pcnNFeRTXT.pas:

 

Remover este bloco (essa parte depende do versao¨ que estava no pcnLayoutTXT):

  if ID = 'A' then
  begin
     NFe.infNFe.Versao := LerCampo(tcDe2, 'versao');
  end;

E colocar essas linhas para ler a versão (as duas últimas. As duas primeiras são só pra localizar no código):

  // Ler chave da NFe
  NFe.infNFe.ID := copy(FconteudoArquivo[1], 8, maxInt);
  //Preenche número da versão
  NFe.infNFe.Versao := StrToFloat(StringReplace('0' + versao, '.', DecimalSeparator, [])); 
Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...
  • Moderadores

Esta alteração vale também para o trunck2

Que alteração?

se leu com calma informei que o trunk está congelado, então não tem nada de novo nele e nem será feito!

migre trunk2

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

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