Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membro Pro Verificado
Postado

Alguns clientes passaram a relatar que está saindo no Danfe uma descrição da modalidade do frete errada, ex: '1 - DEST/REM', mesmo o XML sendo da versão 4.00. Identifiquei onde está o problema, mas não estou certo sobre a forma como deve ser corrigido, pois para isso teria que mudar o retorno da função GetVersaoStr.

Vou então relatar o que está ocorrendo:

1) O problema é: A função StrToNumerado quando usada para identificar qual a versão da NFe está retornando como sendo a ve200 e não a ve400, com isso, a função modFreteToDesStr() está usando o conjunto errado para retornar a descrição.

2) Isso está ocorrendo pois a função GetVersaoStr retorna uma string concatenada resultando em  "versao=4.00" e, com isso, a StrToEnumerado não encontra essa string no array para conversão, assumindo assim o primeiro elemento que é ve200

Segue as funções para explicar melhor:

Arquivo PcnConversaoNfe.pas :

function StrToVersaoDF(out ok: Boolean; const s: String): TpcnVersaoDF;
begin
  Result := StrToEnumerado(ok, s, ['2.00', '3.00', '3.10', '4.00'], [ve200, ve300, ve310, ve400]);
end;

Arquivo PcnNFe.pas :

function TinfNFe.GetVersaoStr: String;
begin
  if FVersao <= 0 then
     Result := V2_00
  else
     Result := 'versao="'+FloatToString(FVersao,'.','#0.00')+'"';
end;

Arquivo ACBrNFeDANFeRLRetrato.pas ( idem para o modo paisagem):

procedure TfrlDANFeRLRetrato.DefinirTransporte;
var
  i, j: Integer;
  RLLabel, RLLabelModelo: TRLLabel;
  ok: Boolean;
begin
  with fpNFe.Transp do
  begin
    rllTransModFrete.Caption := modFreteToDesStr(modFrete, StrToVersaoDF(ok, fpNFe.infNFe.VersaoStr));
    with Transporta do
    begin
      rllTransCNPJ.Caption := FormatarCNPJouCPF(CNPJCPF);
      rllTransNome.Caption := XNome;
      rllTransIE.Caption := IE;
      rllTransEndereco.Caption := XEnder;
      rllTransCidade.Caption := XMun;
      rllTransUF.Caption := UF;
    end;
  end;

....

3) Possível solução: Basta alterar a função do arquivo PcnNFe.pas para não concatenar nada na versão da NFe e simplesmente converter para a string, passaria a retornar "4.00", como está sendo testado no StrToEnumerado, ficando assim:

function TinfNFe.GetVersaoStr: String;
begin
  if FVersao <= 0 then
     Result := V2_00
  else
     Result := FloatToString(FVersao,'.','#0.00');
end;

O problema é que não sei se foi proposital essa concatenação e qual o impacto de retirar isso para deixar como coloquei no passo (3)...

  • Moderadores
Postado
2 horas atrás, Luishbr disse:

O problema é que não sei se foi proposital essa concatenação e qual o impacto de retirar isso para deixar como coloquei no passo (3)... 

A propriedade VersaoStr é usada na montagem dos XML então alterar o retorno causaria invalidação dos arquivos.

Enviei correção para o repositório, rev. 16351, favor reverter as suas alterações, atualizar os fontes e testar novamente.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Membro Pro Verificado
Postado
2 horas atrás, BigWings disse:

A propriedade VersaoStr é usada na montagem dos XML então alterar o retorno causaria invalidação dos arquivos.

Enviei correção para o repositório, rev. 16351, favor reverter as suas alterações, atualizar os fontes e testar novamente.

Essa era a minha preocupação mesmo...

Acabei de atualizar os fontes e pelos testes está tudo certo agora.

Muito obrigado pela atenção.

  • Curtir 1
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 2712 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...
The popup will be closed in 10 segundos...