<?php
function calculo_negociacao($valor_total, $parcelas, $dt_vencimento, $valor_entrada, $taxa = 0) {
$parcelado = [];
$inicio = 0;
$JUROS = $taxa / 100.00;
if ($valor_entrada > 0) {
$inicio = 1;
$valor_total = $valor_total - $valor_entrada;
}
$valor = $valor_total / ($parcelas - $inicio); // reduzimos 1 parcela se houver entrada ou 0 se nao
$valor = $valor + $valor_total * $JUROS * pow((1 + $JUROS), $parcelas - $inicio);
$parcelado = array_fill($inicio, $parcelas - $inicio, ['valor' => $valor]); // $parcelas - 1 pois será menos 1 com a entrada ou 0 se nao houver
// só depois de calcularmos todos é que podemos adicionar a entrada no inicio
if ($valor_entrada > 0) {
}
$dt_vencimento = explode( '-', $dt_vencimento); $dia = $dt_vencimento[0];
$mes = $dt_vencimento[1];
$ano = $dt_vencimento[2];
for($x = 0; $x < $parcelas; $x++){
$parcelado[$x]['parcela'] = $x + 1;
$parcelado[$x]['dt_vencimento'] = date("Y-m-d",strtotime("+".$x." month",mktime(0, 0, 0, $mes, $dia, $ano))); }
return $parcelado;
}
$valor = 150.00;
$taxa = 1.00;
$valor_entrada= 50.00;
$parcela = 4;
$dt_vencimento = '09-09-2019';
$negociacao = calculo_negociacao($valor, $parcela, $dt_vencimento, $valor_entrada, $taxa);
//var_dump($negociacao);
echo '<pre>';
PD9waHAKCmZ1bmN0aW9uIGNhbGN1bG9fbmVnb2NpYWNhbygkdmFsb3JfdG90YWwsICRwYXJjZWxhcywgJGR0X3ZlbmNpbWVudG8sICR2YWxvcl9lbnRyYWRhLCAkdGF4YSA9IDApIHsgIAogICAgJHBhcmNlbGFkbyA9IFtdOwogICAgJGluaWNpbyA9IDA7CgkJCgkkSlVST1MgPSAkdGF4YSAvIDEwMC4wMDsJCSAKCiAgICBpZiAoJHZhbG9yX2VudHJhZGEgPiAwKSB7CiAgICAgICAgJGluaWNpbyA9IDE7CiAgICAgICAgJHZhbG9yX3RvdGFsID0gJHZhbG9yX3RvdGFsIC0gJHZhbG9yX2VudHJhZGE7CiAgICB9CgogICAgJHZhbG9yID0gJHZhbG9yX3RvdGFsIC8gKCRwYXJjZWxhcyAtICRpbmljaW8pOyAvLyByZWR1emltb3MgMSBwYXJjZWxhIHNlIGhvdXZlciBlbnRyYWRhIG91IDAgc2UgbmFvCgkKCSR2YWxvciA9ICR2YWxvciArICR2YWxvcl90b3RhbCAqICRKVVJPUyAqIHBvdygoMSArICRKVVJPUyksICRwYXJjZWxhcyAtICRpbmljaW8pOwoJCglwcmludF9yKCR2YWxvcik7CgkKICAgICR2YWxvciA9IG51bWJlcl9mb3JtYXQoKGZsb2F0KSR2YWxvciwgMiwgJy4nLCAnJyk7CgogICAgJHBhcmNlbGFkbyA9IGFycmF5X2ZpbGwoJGluaWNpbywgJHBhcmNlbGFzIC0gJGluaWNpbywgWyd2YWxvcicgPT4gJHZhbG9yXSk7IC8vICRwYXJjZWxhcyAtIDEgcG9pcyBzZXLDoSBtZW5vcyAxIGNvbSBhIGVudHJhZGEgb3UgMCBzZSBuYW8gaG91dmVyCgogICAgLy8gc8OzIGRlcG9pcyBkZSBjYWxjdWxhcm1vcyB0b2RvcyDDqSBxdWUgcG9kZW1vcyBhZGljaW9uYXIgYSBlbnRyYWRhIG5vIGluaWNpbwogICAgaWYgKCR2YWxvcl9lbnRyYWRhID4gMCkgewogICAgICAgIGFycmF5X3Vuc2hpZnQoJHBhcmNlbGFkbywgWyd2YWxvcicgPT4gbnVtYmVyX2Zvcm1hdCgoZmxvYXQpJHZhbG9yX2VudHJhZGEsIDIsICcuJywgJycpXSk7CiAgICB9CgogICAgJGR0X3ZlbmNpbWVudG8gPSBleHBsb2RlKCAnLScsICRkdF92ZW5jaW1lbnRvKTsKICAgICRkaWEgPSAkZHRfdmVuY2ltZW50b1swXTsKICAgICRtZXMgPSAkZHRfdmVuY2ltZW50b1sxXTsKICAgICRhbm8gPSAkZHRfdmVuY2ltZW50b1syXTsKCiAgICBmb3IoJHggPSAwOyAkeCA8ICRwYXJjZWxhczsgJHgrKyl7CiAgICAgICAgJHBhcmNlbGFkb1skeF1bJ3BhcmNlbGEnXSA9ICR4ICsgMTsgCiAgICAgICAgJHBhcmNlbGFkb1skeF1bJ2R0X3ZlbmNpbWVudG8nXSA9IGRhdGUoIlktbS1kIixzdHJ0b3RpbWUoIisiLiR4LiIgbW9udGgiLG1rdGltZSgwLCAwLCAwLCAkbWVzLCAkZGlhLCAkYW5vKSkpOwogICAgfQoKICAgIHJldHVybiAkcGFyY2VsYWRvOwp9CgokdmFsb3IgPSAxNTAuMDA7CiR0YXhhICA9IDEuMDA7CiR2YWxvcl9lbnRyYWRhPSA1MC4wMDsKJHBhcmNlbGEgPSA0OwokZHRfdmVuY2ltZW50byA9ICcwOS0wOS0yMDE5JzsKJG5lZ29jaWFjYW8gPSBjYWxjdWxvX25lZ29jaWFjYW8oJHZhbG9yLCAkcGFyY2VsYSwgJGR0X3ZlbmNpbWVudG8sICR2YWxvcl9lbnRyYWRhLCAkdGF4YSk7Ci8vdmFyX2R1bXAoJG5lZ29jaWFjYW8pOwoKZWNobyAnPHByZT4nOwplY2hvIHZhcl9kdW1wKCRuZWdvY2lhY2FvKTs=