Ir para conteúdo
  • Cadastre-se

dev botao

Possível Erro Na Função: Gerardigito Do Pcnauxiliar


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

Recommended Posts

  • Membros Pro

Pessoal, hoje detectei um erro que pode ser que esteja acontecendo com mais pessoas.

 

No momento que vou gerar o XML da NFe, o sistema me resulta um erro de conversão de

string em inteiro relacionado a CHAVE da NFe.

 

Detectei o problema na função abaixo do arquivo pcnAuxiliar. Debugando eu notei

que o sistema estava vindo com uma chave menor que 43 caracteres quando se

chama a função ValidarChave...no campo CHAVE, estava vindo apenas 3211,

aí eu coloquei:

  if length(chave)<43 then
     begin
       result:=false;
       exit;
     end;
A função corrigida ficou:
 


function GerarDigito(var Digito: integer; chave: string): boolean;
var
  i, j: integer;
const
  PESO = '4329876543298765432987654329876543298765432';
begin
  // Manual Integracao Contribuinte v2.02a - Página: 70 //
  chave := somenteNumeros(chave);
  j := 0;
  Digito := 0;
  result := True;

  //trecho adicionado por mim
  if length(chave)<43 then
     begin
       result:=false;
       exit;
     end;
  
  try
    for i := 1 to 43 do
      j := j + StrToInt(copy(chave, i, 1)) * StrToInt(copy(PESO, i, 1));
    Digito := 11 - (j mod 11);
    if (j mod 11) < 2 then
      Digito := 0;
  except
    result := False;
  end;
  if length(chave) <> 43 then
    result := False;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Farnetani,

 

Esse só ocorre quando alimentamos a propriedade ID.

 

Deixe essa propriedade sempre com o valor vazio, ou melhor, uma string vazia.

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

  • 4 semanas depois ...
  • Membros Pro

Italo, não entendi.

 

Como é que eu poderei deixar a propriedade ID em branco, ela não corresponde com o numero da NFe? Eu sou obrigado

a informá-la certo???

          DM.ACBrNFe1.NotasFiscais.Clear;

          with DM.ACBrNFe1.NotasFiscais.Add.NFe do
          begin
            infNFe.ID := Tabelaide_notafiscal.asstring;
                  //natureza operação
            if Tabelaide_indpag.Value = '0' then
              ide.indPag := ipVista;
            if Tabelaide_indpag.Value = '1' then
              ide.indPag := ipPrazo;
            if Tabelaide_indpag.Value = '2' then
              ide.indPag := ipOutras;
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Farnetani,

 

A propriedade ID recebe automaticamente a chave que é gerada pelo componente, é essa propriedade que vai fornecer o conteudo para o atributo Id ao gerar o XML.

 

Favor abrir com o Internet Explorer o XML de uma NF-e, note que o atributo Id contem a chave, veja este exemplo:

 

   <infNFe versao="2.00" Id="NFe13140104326492000160550020000000031713576652">

 

A chave que esta em negrito e em vermelho é gerado automaticamente pelo componente e é armazenado na propriedade ID o componente por sua vez, ao gerar o XML acrescenta o texto: NF-e como prefixo da chave e o resultado é o conteudo do atributo Id que esta em negrito.

 

Se ao alimentar o componente, você atribuir qualquer coisa a propriedade ID, vai fazer com que o componente não gere a chave, em alguns casos provocando erro.

  • Curtir 2
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

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