[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