Ir para conteúdo
  • Cadastre-se

dev botao

Danfe Com Fone 0800


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

Recommended Posts

Postado (editado)

Ítalo, obrigado pelo retorno mas continua o mesmo problema.

 

no XML:

<fone>08007794450</fone>

Editado por Ideal Brasil
  • Consultores
Postado

No XML o numero é sem formatação.

 

No DANFE que podemos formatar o numero.

 

Você compilou a sua aplicação com a opção Build que esta no menu Project?

 

Se sim, isso significa que o DANFE que você esta utilizando não utiliza a function FormatarFone que esta dentro da Unit ACBrDFeUtil.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

Postado

Ítalo, tem coisa "Estranha" ai. Olha só:

Trecho da função DFeUtil.FormatarFone(AValue: String):

class function DFeUtil.FormatarFone(AValue: String): String;
var
  lTemp: string;
begin
  // Proposta de Italo
  AValue := IntToStr(StrToInt64Def(LimpaNumero(AValue), 0));
  Result := AValue;
 

Quando entra na função LimpaNumero(), AValue está "08007794450" porem, quando sai, o valor é modificado para "8007794450" assim, o trecho de código abaixo não é executado:

// Incluido por Italo em 15/01/2014
if copy(AValue, 1, 4) = '0800' then
  Result := copy(AValue, 1, 4) + '-' + copy(AValue, 5, 3) + '-' + copy(AValue, 8, 4)

consegue desvendar?

Postado

Ítalo, achei o problema.

 

StrToInt64Def() remove zero a esquerda!!!

if copy(AValue, 1, 4) = '800' then
  Result := copy(AValue, 1, 4) + '-' + copy(AValue, 5, 3) + '-' + copy(AValue, 8, 4)

Seria gambiarra?

Postado

Ítalo, sugestão:

//AValue := IntToStr(StrToInt64Def(LimpaNumero(AValue), 0));

lTemp:= LimpaNumero(AValue);
AValue:= ifthen(lTemp = EmptyStr, '0', AValue);

No meu teste funcionou.

  • Curtir 1
  • 4 meses depois ...
  • Este tópico foi criado há 3825 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.