Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membros Pro
Postado

Boa tarde. Tenho o seguinte problema na NFSe de Lajeado - RS provedor Thema. 

Quando passo a alíquota de ISS para o ACBrNFSe eu pego a alíquota e divido por 100. Ex.: 3,33 / 100 = 0,0333.
Passando esse valor 0,0333 na primeira nota valida corretamente. A partir da segunda nota o ACBr monta o xml com a alíquota de 0.0334 e passa a não validar a NFSe.
Reiniciando o sistema e passando novamente a mesma aliquota a NFSe é validada com 0.0333. Na nota seguinte o erro retorna pois o ACBrNFSe novamente passa a alíquota como 0.0334.

Alguém tem uma ideia do que possa ser isso?

 

Idez

  • Consultores
Postado

Boa tarde idez,

Pode ser o tipo de variável que você esta utilizando para esse campo na sua aplicação, ou o tipo do campo alíquota definido no componente.

No componente o campo Alíquota é definido segundo o tipo Currency.

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

  • Membros Pro
Postado

Boa tarde Italo.

A alíquota no meu banco de dados está como Double Precision.
Se eu passar 0.0333 fixo aí sempre funciona. Acredito que possa ser mesmo isso que você falou.

Você recomenda utilizar Numeric no banco de dados? Ou qual seria a sua sugestão?

 

Idez

  • Consultores
Postado

idez,

Acredito que depende da informação que estamos armazenando, se precisamos de um numero real com mais de 4 casas decimais eu sugiro o Double Precision, mas no caso da alíquota que no máximo vai ter 2 ou 4 casas podemos usar um outro tipo.

 

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

  • 1 ano depois...
Postado

Eu tive esse mesmo problema, após muito estudo e testes, verifiquei que na segunda vez que entrava na rotina, o RoundMode estava marcado para 2(rmUP), e com isso bagunçava meu arrendondamento. Para resolver, usei SetRoundMode(rmnearest) (Delphi 7).

Não sei se isso acontece com em outras versões do Delphi, mas no Delphi 7 acontece isso. Sei que esta release não é mais suportada, mas fica a dica para quem ainda usa.

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