[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