Ir para conteúdo
  • Cadastre-se

dev botao

Componente Acrescenta 0.001 Ao Valor Do Serviço E Aliquota


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

Recommended Posts

Postado

Boa tarde, andei procurando um tópico sobre o assunto. Se tiver algo semelhante postarei no assunto específico.

 

Estou usando o componente para gerar Nota de Serviço para BH.
Na linha que atribuo o ValorServiços do componente faco da seguinte forma

 

Servico.Valores.ValorServicos := cdsAux.FieldByName('VLRSERV').AsFloat +
                                                    cdsAux.FieldByName('VLRRETPIS').AsFloat +
                                                    cdsAux.FieldByName('VLRRETCOFINS').AsFloat +
                                                    cdsAux.FieldByName('VLRRETIR').AsFloat +
                                                    cdsAux.FieldByName('VLRRETCSLL').AsFloat +
                                                    cdsAux.FieldByName('VLRRETISS').AsFloat;

 

O valor da soma é R$477,97 (Testei inclusive atribuindo a uma variável e checkei o valor).  Quando realizo a rotina de criação do RPS a primeira vez ele atribui o valor certo. Porém da segunda vez em diante o valor sempre vem como 477,9701. O mesmo acontece com a alíquota. Ela é de 5% (atribuo como 0.05) e depois de atribuir no componente está ficando com valor 0.0501.

Preciso verificar pois essa modificação está dando erro no cálculo do ISS e gerando problemas.
 

 

Postado

Cara eu tive e ainda tenho esse mesmo problema, fiz uma gambiarra na hora de preencher:

 

* converto pra string a alíquota e verico se existe algum valor maior que zero na ultima posição, se tiver mudo para zero, só assim resolveu.

Thiago Balbino

Analista de Sistemas Programador

email: [email protected]

Muriaé - MG

 

  • Consultores
Postado

Boa tarde a todos,

 

Acredito que o problema esta no tipo da variável.

 

Identifiquem quais são as propriedades que apresentam esses problemas.

 

Outra coisa tentem isso:

 

ValorTotal := cdsAux.FieldByName('VLRSERV').AsFloat + cdsAux.FieldByName('VLRRETPIS').AsFloat +
                     cdsAux.FieldByName('VLRRETCOFINS').AsFloat + cdsAux.FieldByName('VLRRETIR').AsFloat +
                     cdsAux.FieldByName('VLRRETCSLL').AsFloat + cdsAux.FieldByName('VLRRETISS').AsFloat;

 

Servico.Valores.ValorServicos := RoundTo(ValorTotal, -2); // Arredonda para 2 casas decimais

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

  • Solution
Postado

Consegui resolver. Usei os campos como AsCurrency. O Componente usa todos os atributos da classe Valores como Currency. Acho que na hora de converter o Float pra Currency dava algum pau.

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