[firebase-br] Calculo de imposto com firebird, qual a metodolgia mais indicada ?

Vinicius Barreira vinibarr em gmail.com
Seg Ago 11 17:33:05 -03 2008


Sensacional !!!!!!

Felipe Aron wrote:
> Ei amigo use 0.004 ao invés de 0.005
>
> Explicação:
> Casa decimal precisa = 3.250 ( Terminado em zero ) +  0.004 = 3.254 e
> arredondando dá 3.25 exato.
> Agora se a terceira casa for de 1 à 9 somado mais 0.004 sempre irá
> arredondar pra cima, no caso:
>
> 3.251 + 0.004 = 3.255 que arredenda para 3.26
> 3.259 + 0.004 = 3.263 que arredenda para 3.26
>
> Sacou ?? :)
>
>
> 2008/8/11 Vinicius Barreira <vinibarr em gmail.com>
>
>   
>> 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
>>>
>>>
>>>       
>> ______________________________________________
>> 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