Caros Colegas !
Muitissimo Obrigada pela colaboração !
Com a ajuda de todos e + fuçando na internet eu consegui reproduzir as
fórmulas VP, VF e PGTO do excel.
Encontrei uma planilha que explica a função PGTO, bem fácil, em anexo
Em anexo o gxl de uma wp de teste ( RP, regras de parcelas ), eu coloquei
comentários para explicar a funcionalidade, porém se alguém não entender é
so me chamar que eu ajudo.
E como disse o Paulo, agora JÁ temos uma solução GENEXUS para esse tipo de
calculo.
Nos vemos na segunda !
Bom fim de semana !
Abraços
Tatiana Golin
-------------------------------------------
Segue o evento:
// VALOR MONTANTE = valor do pedido
// DIAS PADRAO = nro de dias padrão de pagamento, usado para calculo do
valor presente = valor a vista
// JUROS DIA = % de juros ao dia, dividido por 100
// VLR BOLETO = valor do boleto bancário se houver
// CONDIÇÃO DE PAGAMENTO = nro de dias das parcelas, ex: 30 / 60 / 90
Event Enter
// valor presente
&VP = &Montante / ( ( 1 + &JurosDia / 100 ) ^ &Padrao )
// valor futuro
&VF = &Montante * ( ( 1 + &JurosDia / 100 ) ^ &Padrao )
// calcula a taxa de juros e vencimento para cada condição de pagamento
até 10 parcelas
for &i=1 to 10 step 1
if &Periodo(&i) > 0
&Taxa(&i) = &Periodo(&i) * &JurosDia /
100
&Vencimento(&i) = today() + &Periodo(&i)
else
&Taxa(&i) = nullvalue(&Taxa(&i))
&Vencimento(&i) = nullvalue(&Vencimento(&i))
endif
endfor
// obtem o número total de parcelas e a maxima taxa de juros aplicada
para calculo do PGTO
for &i=1 to 10 step 1
if &Periodo(&i) > 0
&Periodos = &i
&TaxaCalculo = &Taxa(&i)
endif
endfor
// função PGTO do excel
&PGTO = ( &VP*((1+&TaxaCalculo)^&Periodos) ) /
((1+&TaxaCalculo*1)*((1+&TaxaCalculo)^&Periodos-1)/&TaxaCalculo)
for &i=1 to 10 step 1
if &Periodo(&i) > 0
if &Periodos = 1
and &Periodo(1) = &Padrao
&Parcela(&i)= &Montante
&Boleto(&i) = &Montante + &VlrBoleto
else
// = função PGTO já vista acima
&Parcela(&i) = ( &VP*((1+&TaxaCalculo)^&Periodos) )
/ ((1+&TaxaCalculo*1)*((1+&TaxaCalculo)^&Periodos-1)/&TaxaCalculo)
&Boleto(&i) = &Parcela(&i) + &VlrBoleto
endif
else
&Parcela(&i) = 0
&Boleto(&i) = 0
endif
endfor
// soma todas as parcelas
&Total = 0
for &i=1 to 10 step 1
&Total += &Parcela(&i)
endfor
EndEvent // Enter
--------------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG -
www.avg.com
Version: 8.5.374 / Virus Database: 270.12.80/2187 - Release Date: 06/19/09
06:53:00