[firebase-br] Calculo de imposto com firebird, qual a metodolgia mais indicada ?
Vinicius Barreira
vinibarr em gmail.com
Seg Ago 11 16:30:45 -03 2008
Ficou quase perfeito, o unico problema é que nesse caso aqui valor de 65
reais sem centavos, dá exatos 3,25 e não precisaria subir para 3,26.
SELECT CAST(3.250+0.005 AS NUMERIC(15,2)) AS X FROM RDB$DATABASE
Esse exemplo acima retorna 3,26 infelizmente.
Posso fazer uma stored procedure como se fosse uma função, convertendo o
valor para varchar e analisando a terceira casa decimal, e sendo
diferente de zero eu aplico o numero mágico !
Obrigado Eduardo, Daniel e Magno !
Eduardo Bahiense wrote:
> Olá Vinícius
>
> Use o número mágico 0.005
>
> SELECT CAST(3.271+0.005 AS NUMERIC(15,2)) AS X FROM RDB$DATABASE
> SELECT CAST(3.279+0.005 AS NUMERIC(15,2)) AS X FROM RDB$DATABASE
>
> O fundamento é simples, a coisa não é tão mágica assim, o importante é
> que funciona.
>
> Abraço
>
> Eduardo
>
> Vinicius Barreira escreveu:
>
>> Pessoal, tenho a seguinte situação abaixo, onde eu calculo o ISS via
>> trigger:
>>
>> Valor do serviço: R$ 65,50 - Percentual de ISS: 5% - Valor do ISS: R$ 3,275
>>
>> Eu preciso converter paras 3,28, mesmo que seja por exemplo 3,272; no
>> caso do imposto, não vale a regra matemática onde se na terceira casa
>> decimal for abaixo de 5 eu coloco 3,27 e se for acima, 3,28. No caso de
>> imposto, se tiver qualquer coisa maior que zero na terceira casa tem
>> sempre que jogar pra cima.
>>
>> Na base de dados, o campo referente ao ISS está com quatro casas. Não
>> deixei com duas justamente porque o arredondamento da terceira casa
>> segue regras matematicas e não regras fiscais.
>>
>> Preciso fazer isso via trigger ou stored procedure; tenho dificuldade em
>> usar UDF pelo fato de trabalhar com distribuição em larga escala e UDF
>> é mais um recurso pra ser "instalado" em clientes, onde a grande maioria
>> tem windows mas alguns tem linux.
>>
>> Agradeço dicas e sugestões.
>>
>> Vinicius Barreira
>> Check-In Informática
>> Software Para Hotéis / Pousadas / Moteis
>> São Bernardo do Campo - SP
>> http://www.check-in.com.br
>> Fone (11) 4330-3148
>> msn / e-mail: vinicius em check-in.com.br
>> skype: vinibarr
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
Mais detalhes sobre a lista de discussão lista