JOGAR QUEBRADOS EM UMA PARCELA

FUTURA 28/01/2010 09:55:57
#333000
pessoal, faço uma venda, divide em 5 parcelas por ex:, como faço pra pegar os quebrados e jogar apenas em uma delas para que as outras fiquem redondas.
ARES 28/01/2010 10:28:07
#333005
Futura bom dia,

Fiz um fundo de caixa ao qual eu utilizei o seguinte processo:


O processo iniciava com a divisão do total pelo número de parcelas

depois subtraia 1 parcela do montante

fazia um código com loop para gerar o valor da divisão x o número de (parcelas -1)

fazia outro código para adicionar esta última parcela que era: (valor total da venda) -(a soma das parcelas -1 * o valor da parcela)

assim você pode escolher se quer a diferença na primeira ou na última.

funcinou perfeitamente.

SINKERTEC 28/01/2010 10:57:09
#333014


Futura

Vc quer algo assim

17 / 5 = 3,4 em 4 parcelas de 3 e a última de 5? pois pegaria os 3 restantes e acrescentaria o 0,4 das 4 primeiras parcelas?
FUTURA 28/01/2010 11:50:14
#333025
sinkertec é isto sim.
LEANDRO 28/01/2010 12:02:09
#333026
Primeiro você tera que saber se seu cliente que esse valor maior, na primeira ou na ultima parcela.

Depois: você tem o valor total como o exemplo do sinkertec, 17.
Depois você ira dividir o valor por 5, 17/5.
arredondando a divisão ira dar 3
depois você ira somar todos os textbox ou seja, = 15
depois faça 17 - 15 que sera = 2 e pegue o seu ultimo(ou primeiro) textbox e some 3(valor do textbox) + 2(valor da diferença entre o total e os textbox)
MARCOSLING 28/01/2010 12:38:39
#333028
Pelo que eu vejo por aí, a diferença é jogada na primeira parcela.

exemplo:

valor: 100,00
parcelas: 3

valor da demais parcelas com o resultado truncado:
valor / quantidade de parcela
100,00 / 3 = 33,33

valor da primeira parcela:
valor - (valor das demais parcelas * (quantidade de parcela - 1))
100,00-(33,33*2)=33,34

outro exemplo:

valor: 105,75
parcelas: 7

valor das demais parcelas: 105,75 / 7 = 15,10
valor da primeira parcela: 105,75-(15,10*6) = 15,15
SINKERTEC 28/01/2010 13:38:07
#333034


Bom ...tenta isso: Exemplo

txtValor = 17
txtParcelas = 5

For X = Text2 To 1 Step -1
txtValParc = Int(Text1 / X)
List1.AddItem txtValParc
Text1 = Text1 - txtValParc
Next X

Ficarão 3 parcelas de 3 e 2 de 4..sem quebrados
SINKERTEC 28/01/2010 13:50:44
#333036

Ou assim

txtValor = 17
txtParcelas = 5

txtValParc = Int(Text1 / Text2)

For X = 1 To Text2 - 1
List1.AddItem txtValParc
Next X

Sobra = Text1 - ((X - 1) * txtValParc)
List1.AddItem Sobra

ficando como exemplifiquei lá emcima
MARCELO.TREZE 28/01/2010 13:59:10
#333038
Eu fiz esta Função e ficou beleza.

Veja bem usando o MOD ficaria fácil mas apenas para valor inteiros ex: 157, mas quando o valor total é fracionado (157,30) ele elimina os centavos, entào fiz um POG que resolveu o problema.

sta função foi desenvolvida para apresentar o resultado em um listbox, mas pode ser alterada, o valor deve ser colocado como moeda, ou seja mesmo que seja um valor inteiro ex(100) deve ser apresentado assim (100,00) como string.

eis a função

Function Parcelas(ValorTotal As String, QuantParcelas As Double, lst As ListBox)
Dim MenorParcela As Double
Dim MaiorParcela As Double
Dim Parte() As String
Dim Resto As Double
Parte = Split(ValorTotal, [Ô],[Ô])
Resto = (CInt(Parte(0)) Mod QuantParcelas)
MenorParcela = (CInt(Parte(0)) - Resto) / QuantParcelas
MaiorParcela = (CInt(Parte(0)) - Resto) / QuantParcelas + Resto + CDbl(Parte(1) / 100)

For f = 1 To QuantParcelas - 1
lst.AddItem Format(f, [Ô]00[Ô]) & [Ô] = [Ô] & Format(MenorParcela, [Ô]currency[Ô])
Next f
lst.AddItem Format(QuantParcelas, [Ô]00[Ô]) & [Ô] = [Ô] & Format(MaiorParcela, [Ô]currency[Ô])
End Function


para usa-la

Private Sub Command1_Click()
Parcelas [Ô]100,00[Ô], 3, List1[txt-color=#007100] [ô]Parcelas (Valor, Quantidade de Parcelas, nome do listbox)[/txt-color]
End Sub



e pronto

FUTURA 28/01/2010 14:33:35
#333043
NA VERDADE EU PEGO UM VALOR TOTAL E APLICO DESCONTO OU ACRéSCIMO ( DEPENDE DO PLANO DE VENDA) AI DIVIDO PELA QTDE DE PARCELAS E JOGO EM UM LISTVIEW COLOCANDO OS VECTOS CONFORME OS INTERVALOS DO PLANO DE VENDA, ATé AQUI TA BLZ, SÓ Q NÃO JOGA OS QUEBRADOS PARA UMA APENAS, VOU TESTAR AS OPÇÕES QUE VCS PASSARAM.
Tópico encerrado , respostas não são mais permitidas