[firebase-br] Dúvida
Sandro Souza
escovadordebits em gmail.com
Sex Maio 29 13:56:05 -03 2009
Bom dia/tarde João.
Grande João, que tal usar regra de três para calcular as parcelas
proporcionalmente aos subtotais?
Só esquematizando a fórmula:
Subtotal Geral Subtotal da parcela
-------------- = -------------------
Total Total da parcela
Resolvendo, temos:
Total da parcela = (Subtotal da parcela * Total) / Subtotal Geral
Ou seja:
Subtotal geral = R$ 610,00
Total = R$ 600, 00
Restante = Total = R$ 600, 00
Agora vamos percorrer as parcelas:
CODIGO = 1
Subtotal da parcela = 100
Total da parcela = (Subtotal da parcela * Total) / Subtotal Geral
Total da parcela = (100 * 600) / 610 = 60000 / 610 = 98,360655738 -> *R$
98,36*
Abate do restante: Restante = Restante - R$ 98,36 = R$ 600,00 - R$ 98,36 =
R$ 501,64
Próxima parcela...
CODIGO = 2
Subtotal da parcela = 200
Total da parcela = (Subtotal da parcela * Total) / Subtotal Geral
Total da parcela = (200 * 600) / 610 = 120000 / 610 = 196,721311475 -> R$ *
196,72*
Abate do restante: Restante = Restante - R$ 196,72 = R$ 501,64 - R$ 196,72 =
R$ 304,92
Próxima parcela...
CODIGO = 3
Subtotal da parcela = 310
É a última parcela? Sim, então use o restante: *R$ 304,92*
Caso não fosse a última parcela, efetuariamos o cálculo normalmente:
Total da parcela = (Subtotal da parcela * Total) / Subtotal Geral
Total da parcela = (310 * 600) / 610 = 186000 / 610 = 304,918032787 -> R$
304,92
Como pode haver imprecisões em cada cálculo devido ao tipo de dado (Double,
Currency, etc...) então coloquei essa idéia de haver uma variável
"Restante", que guardaria o valor restante para a última parcela.
Agora você pode conferir os valores:
+--------+---------------------+------------------+
| CODIGO | SubTotal da parcela | Valor da Parcela |
+--------+---------------------+------------------+
| 1 | R$ 100,00 | R$ 98,36 |
| 2 | R$ 200,00 | R$ 196,72 |
| 3 | R$ 310,00 | R$ 304,92 |
+--------+---------------------+------------------+
| | R$ 610,00 | R$ 600,00 |
+--------+---------------------+------------------+
É apenas uma sugestão.
Espero ter ajudado mais que atrapalhado. :D
2009/5/29 joao_jma <joao_jma em itelefonica.com.br>
> Bom dia
>
> Estou com uma dificuldade para criar uma rotina em Delphi que resolva este
> meu problema.
>
> Tenho uma Tabela Chamada ORCAMENTOS:
>
> CODIGO
> FINALIZADO
> SUBTOTAL
> DESCONTO
> VLTOTAL
> DINHEIRO
> CARTAO
> CHEQUE
>
> Eu tenho uma rotina de finalização de Orçamentos, onde se define as formas
> de pagto, ou seja, a pessoa preenche desconto quando existe, e define as
> formas de pagto, exemplo:
>
> CODIGO = 1
> SUBTOTAL = 110,00
> DESCONTO = 10,00
> VLTOTAL = 100,00
> DINHEIRO = 50,00
> CARTAO = 50,00
>
> Existiu a necessidade de se agrupar orçamentos para finalizar, então o
> usuário seleciona qtos orçamentos desejar e é gerado um valor total com a
> soma dos orçamentos. Aí deste valor total o usuário define as formas de
> pagto. Exemplo:
>
> ---------------------------------------
> CODIGO = 1
> SUBTOTAL = 100
> ---------------------------------------
> CODIGO = 2
> SUBTOTAL = 200
> ---------------------------------------
> CODIGO = 3
> SUBTOTAL = 310
> ---------------------------------------
>
> SUBTOTAL = 610
> DESCONTO = 10,00
> TOTAL = 600
> DINHEIRO = 300
> CARTAO = 300
>
> Mas eu não estou conseguindo ou imaginando uma rotina para pegar os 300 em
> dinheiro e dividir entre os 3 orçamentos, depois os 300 em cartão e dividir
> entre os orçamentos, e ainda tem o valor em desconto. Eu posso ir abatendo
> primeiro todo o valor em dinheiro do orçamento 1 depois do 2 ... não preciso
> dividir exatamente igual para os orçamentos.
>
>
> Qualquer ajuda ou idéia agradeço
>
> João Amorim
>
Mais detalhes sobre a lista de discussão lista