Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marinho

Cielo calculo de juros

Recommended Posts

Olá galera estou precisando de uma força de vocês.

Preciso calcular juros sobre juros no modulo cielo, percebi que o modulo atual não esta fazendo isso corretamente.

Quero assim fazer assim:

Ex:
Produto = 85.00

1ª parcela 85.00 (a vista)

2ª parcela 85.00 + 3,98% = 88,38 a cada parcela a apartir da segunda aumentar 1.99 de juros (juros sobre juros).


No modulo a função calcular esta assim:

public function parcelar($valorTotal, $taxa, $nParcelas){
$taxa = $taxa/100;
$cadaParcela = ($valorTotal*$taxa)/(1-(1/pow(1+$taxa, $nParcelas)));
return round($cadaParcela, 2);
}


Aqui chama a classe parcelar para fazer os calculos

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');


Nota: Notei que este pow é nativo para se calcular potência (que é multiplicar um número por ele mesmo tantas vezes for o número indicado na potência).
mais quero somar juros sobre juros até 12 parcelas

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que esta formula não esta dando o retorno correto.

 

Esta me retornando assim:

 

1x de R$ 102,05 a vista no mastercard.
2x de R$ 52,55 com juros* no mastercard (R$ R$ 105,10).
3x de R$ 35,38 com juros* no mastercard (R$ R$ 106,14).
4x de R$ 26,79 com juros* no mastercard (R$ R$ 107,16).
5x de R$ 21,64 com juros* no mastercard (R$ R$ 108,20).
6x de R$ 18,21 com juros* no mastercard (R$ R$ 109,26).

 

*com juros de 1.99 ao mês e parcela minima de R$ 15.00

 

A segunda parcela o juros deveria ser de 3,98% a terceira de 3,98%+1,99... assim por diante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O teu cálculo está errado... em juros compostos os mesmos não se somam, eles viram uma potencia, a fórmula é:

M = C(1+j)t

M = montante

C = Capital

j = juros

t = tempo (potência)

 

Então no seu caso (2 meses):

M = 102.05(1+0.019)2

M = 105.96 => 2x de 52.98

 

Basta alterar o "2" ali da potência pelo número de meses e no final dividiro pelo mesmo valor para saber o total de cada parcela.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Terceira parcela é diferente de três parcelas.

 

Exceto quando informado o contrário, o parcelamento em cartão de crédito é sempre um valor fixo em todas as parcelas.

 

Logo, a terceira parcela não vai ser mais cara que a segunda, que não vai ser mais cara que a primeira.

 

Se tem alguma coisa errada aí é o cálculo da taxa de parcelamento. Nunca que 102,05 + 3.98% vai dar 105,10.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto que estou tentando resolver e não acho o problema.

 

Vou postar o código inteiro para ver ser achamos o problema:

 

 

<?php

class CHECKOUT_CIELO extends ISC_CHECKOUT_PROVIDER
{

var $_requiresSSL = false;
public function __construct()
{
parent::__construct();
$this->_name = "Cielo 3.5";
$this->_image = "cielo.gif";
$this->_description = "Modulo Cielo 3.5 - Visa - Electron - Mastercard - Elo - Diners - Discover - Amex.";
$this->_help = "Modulo Pagamento Cielo 3.5 - Visa - Electron - Mastercard - Elo - Diners - Discover. <a href='Criar Lojas Virtuais' target='_blank'>www.midivision.com.br</a>.";
$this->_enabled = $this->CheckEnabled();
$this->_height = 0;
$this->_paymenttype = PAYMENT_PROVIDER_OFFLINE;
@$GLOBALS['ISC_CLASS_DB']->Query("CREATE TABLE IF NOT EXISTS `cielo` (
`id` int(11) NOT NULL auto_increment,
`pedido` int(11) NOT NULL,
`valor` int(20) NOT NULL,
`tid` varchar(30) NOT NULL,
`auth` varchar(20) NOT NULL,
`data` varchar(20) NOT NULL,
`cc` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;");
}

public function SetCustomVars()

{
$this->_variables['serial'] = array("name" => 'Serial do Modulo',
"type" => "textbox",
"help" => 'Chave de Registro do Modulo',
"default" => "ILIMITADO",
"required" => true
);

$this->_variables['displayname'] = array("name" => "Nome do Modulo",
"type" => "textbox",
"help" => 'Nome do Modulo',
"default" => "Modulo Cielo 3.5 - Visa - Electron - Mastercard - Elo - Diners - Discover",
"required" => true
);

$this->_variables['availablecountries'] = array("name" => "Paises",
"type" => "dropdown",
"help" => GetLang('PagContinente'),
"default" => "all",
"required" => true,
"options" => GetCountryListAsNameValuePairs(),
"multiselect" => true
);

$this->_variables['modo'] = array("name" => "Modo",
"type" => "dropdown",
"help" => 'Selecione o Modo do Operacao e veja nos itens abaixo os helps.',
"default" => 'T',
"options" => array("TESTE"=>"T","PRODUCAO"=>"P"),
"required" => true,
"multiselect" => false
);

$this->_variables['afiliacao'] = array("name" => 'Afiliacao Cielo',
"type" => "textbox",
"help" => 'Ponha sua Afiliacao Cielo se for teste use 1001734898',
"default" => "",
"required" => true
);

$this->_variables['chave'] = array("name" => 'Chave Cielo',
"type" => "textbox",
"help" => 'Chave da afiliacao junto a Cielo se for teste use e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832.',
"default" => "",
"required" => true
);

$this->_variables['loja'] = array("name" => 'Nome da Loja',
"type" => "textbox",
"help" => 'Nome da sua loja a ser mostrado.',
"default" => "",
"required" => true
);

$this->_variables['meios'] = array("name" => "Bandeiras Aceitas",
"type" => "dropdown",
"help" => 'Selecione os meios que ira aceitar na loja.',
"default" => '',
"options" => array("VISA"=>"V","MASTER"=>"M","VISA ELECTRON"=>"E","ELO"=>"EL","DINERS"=>"DIN","DISCOVER"=>"DIS","AMEX"=>"AM"),
"required" => true,
"multiselect" => true
);

$this->_variables['parcelamin'] = array("name" => 'Parcela Minima',
"type" => "textbox",
"help" => 'Ponha o Valor Minimo de Uma Parcela No Parcelamento de Pedidos',
"default" => "15.00",
"required" => true
);

$this->_variables['juros'] = array("name" => 'Juros Credito',
"type" => "textbox",
"help" => 'Se parcelar sem juros, especificar a taxa de juros.',
"default" => "1.99",
"required" => true
);

$this->_variables['desconto'] = array("name" => 'Desconto Debito',
"type" => "textbox",
"help" => 'Desconto em % para pagamento por debito.',
"default" => "0.00",
"required" => true
);

$this->_variables['div'] = array("name" => "Dividir em ate:",
"type" => "dropdown",
"help" => 'Sera cobrado juros a partir da parcela.',
"default" => '12',
"options" => array("1x"=>"1","2x"=>"2","3x"=>"3","4x"=>"4","5x"=>"5","6x"=>"6","7x"=>"7","8x"=>"8","9x"=>"9","10x"=>"10","11x"=>"11","12x"=>"12"),
"required" => true
);


$this->_variables['jurosde'] = array("name" => "Sem Juros ate:",
"type" => "dropdown",
"help" => 'Sera cobrado juros a partir da parcela.',
"default" => '1',
"options" => array("Nenhuma"=>"99","1x"=>"1","2x"=>"2","3x"=>"3","4x"=>"4","5x"=>"5","6x"=>"6","7x"=>"7","8x"=>"8","9x"=>"9","10x"=>"10","11x"=>"11","12x"=>"12"),
"required" => true
);



$this->_variables['tipojuros'] = array("name" => "Tipo Parcelamento",
"type" => "dropdown",
"help" => '',
"default" => '2',
"options" => array("Parcelado Loja"=>"2","Parcelado Operadora"=>"3"),
"required" => true
);




}
public function parcelar($valorTotal, $taxa, $nParcelas){
$taxa = $taxa/100;
$cadaParcela = ($valorTotal*$taxa)/(1-(1/pow(1+$taxa, $nParcelas)));
return round($cadaParcela, 2);
}

public function getofflinepaymentmessage(){

$order = LoadPendingOrderByToken($_COOKIE['SHOP_ORDER_TOKEN']);
//exite;
if(isset($_COOKIE['SHOP_ORDER_TOKEN'])){

//variaveis
$meios = $this->GetValue("meios");
$minima = $this->GetValue("parcelamin");
$dividirem = $this->GetValue("div");
$semjuros = $this->GetValue("jurosde");
$valor = $order['ordtotalamount'];
$pedido = $order['orderid'];
$juros = $this->GetValue("juros");
$desconto = $this->GetValue("desconto");

$tipojuros = $this->GetValue("tipojuros");

if($valor>$minima) {
$splitss = (int) ($valor/$minima);
if($splitss<=$dividirem){
$div = $splitss;
}else{
$div = $dividirem;
}
}else{
$div = 1;
}

$help = "<script type='text/javascript'>
function getCheckedValue(radioObj) {
var objRadio = document.getElementsByName(radioObj).length;
for(i=0; i < objRadio; i++ ) {
if (document.getElementsByName(radioObj).checked) {
return document.getElementsByName(radioObj).value;
}
}
}
function credito() {
document.getElementById('credito').style.display = '';
document.getElementById('debito').style.display = 'none';
document.getElementById('master').style.display = 'none';
document.getElementById('elo').style.display = 'none';
document.getElementById('din').style.display = 'none';
document.getElementById('dis').style.display = 'none';
document.getElementById('ame').style.display = 'none';
return true;
}
function debito() {
document.getElementById('credito').style.display = 'none';
document.getElementById('debito').style.display = '';
document.getElementById('master').style.display = 'none';
document.getElementById('elo').style.display = 'none';
document.getElementById('din').style.display = 'none';
document.getElementById('dis').style.display = 'none';
document.getElementById('ame').style.display = 'none';
return true;
}
function master() {
document.getElementById('credito').style.display = 'none';
document.getElementById('debito').style.display = 'none';
document.getElementById('master').style.display = '';
document.getElementById('elo').style.display = 'none';
document.getElementById('din').style.display = 'none';
document.getElementById('dis').style.display = 'none';
document.getElementById('ame').style.display = 'none';
return true;
}
function elo() {
document.getElementById('credito').style.display = 'none';
document.getElementById('debito').style.display = 'none';
document.getElementById('master').style.display = 'none';
document.getElementById('elo').style.display = '';
document.getElementById('din').style.display = 'none';
document.getElementById('dis').style.display = 'none';
document.getElementById('ame').style.display = 'none';
return true;
}
function din() {
document.getElementById('credito').style.display = 'none';
document.getElementById('debito').style.display = 'none';
document.getElementById('master').style.display = 'none';
document.getElementById('elo').style.display = 'none';
document.getElementById('din').style.display = '';
document.getElementById('dis').style.display = 'none';
document.getElementById('ame').style.display = 'none';
return true;
}
function dis() {
document.getElementById('credito').style.display = 'none';
document.getElementById('debito').style.display = 'none';
document.getElementById('master').style.display = 'none';
document.getElementById('elo').style.display = 'none';
document.getElementById('din').style.display = 'none';
document.getElementById('dis').style.display = '';
document.getElementById('ame').style.display = 'none';
return true;
}

function ame() {
document.getElementById('credito').style.display = 'none';
document.getElementById('debito').style.display = 'none';
document.getElementById('master').style.display = 'none';
document.getElementById('elo').style.display = 'none';
document.getElementById('din').style.display = 'none';
document.getElementById('dis').style.display = 'nome';
document.getElementById('ame').style.display = '';
return true;
}

var retorno;
var valor;
var mpg_popup;
window.name='retorno';
function fabrewin(valor)
{
mpg_popup = window.open('".$GLOBALS['ShopPath']."/modules/checkout/cielo/pagar.php?token='+valor,'mpg_popup','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,screenX=0,screenY=0,left=150,top=150,width=968,height=660');
return true;
}

function pegavalor() {
var valor = getCheckedValue('forma');
if(valor) {
fabrewin(valor);
return true;
}else{
alert('".GetLang('SelecioneCielo')."');
}
}

</script>";

$help .= "   <h3>".GetLang('SelCC')."</h3><br>";

if(is_array($meios)){

if(in_array('V', $meios)){
$help .= "<a onclick=\"javascript:credito();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/credito.gif'></a>";
}

if(in_array('E', $meios)){
$help .= "<a onclick=\"javascript:debito();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/debito.gif'></a>";
}

if(in_array('M', $meios)){
$help .= "<a onclick=\"javascript:master();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/master.gif'></a>";
}

if(in_array('EL', $meios)){
$help .= "<a onclick=\"javascript:elo();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/elo.gif'></a>";
}

if(in_array('DIN', $meios)){
$help .= "<a onclick=\"javascript:din();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/dinners.gif'></a>";
}

if(in_array('DIS', $meios)){
$help .= "<a onclick=\"javascript:dis();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/discover.gif'></a>";
}
if(in_array('AM', $meios)){
$help .= "<a onclick=\"javascript:ame();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/amex.gif'></a>";
}

//inicio do visa
$par1 = "visa#".$pedido."#1#1#".md5($valor);
$help .= "<div id='credito' style='display:none;'>
<br>   <h3>".GetLang('VisaCielo')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParVisa1xCielo'),CurrencyConvertFormatPrice($valor,1,0))."

<br>";

for($j=2; $j<=$div;$j++) {

if($semjuros>=$j) {

$parcelas = $valor/$j;
$parcelas = number_format($parcelas, 2, '.', '');

$sem = "visa#".$pedido."#2#".$j."#".md5($valor);
$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($sem)."'>

".sprintf(GetLang('ParVisaSemCielo'),$j,CurrencyConvertFormatPrice($parcelas,1,0))."

<br>
";

}else{

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');

$com = "visa#".$pedido."#".$tipojuros."#".$j."#".md5($valor);
$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($com)."'>

".sprintf(GetLang('ParVisaComCielo'),$j,CurrencyConvertFormatPrice($parcelas,1,0),CurrencyConvertFormatPrice($parcelas*$j,1,0))."

<br>

";
}

}

$help .= "
<br>
<a onclick=\"javascript:pegavalor();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/pagar.gif'>
</a>
</div>";
//fim do visa



//inicio do debito
$par1 = "electron#".$pedido."#A#1#".md5($valor);

if($desconto>0){

$desc = ($valor/100)*$desconto;

$desconto = number_format($desconto, 0, '.', '')."%";
$help .= "<div id='debito' style='display:none;'>
<br>   <h3>".GetLang('EleCielo')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParEleCieloDesc'),CurrencyConvertFormatPrice($valor-$desc,1,0),$desconto)."

<br>";
}else{
$help .= "<div id='debito' style='display:none;'>
<br>   <h3>".GetLang('EleCielo')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParEleCielo'),CurrencyConvertFormatPrice($valor,1,0))."

<br>";
}

$help .= "
<br>
<a onclick=\"javascript:pegavalor();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/pagar.gif'>
</a>
</div>";
//fim do debito



//inicio do master
$par1 = "mastercard#".$pedido."#1#1#".md5($valor);
$help .= "<div id='master' style='display:none;'>
<br>   <h3>".GetLang('MasterCielo')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParMaster1xCielo'),CurrencyConvertFormatPrice($valor,1,0))."

<br>";

for($j=2; $j<=$div;$j++) {


if($semjuros>=$j) {

$parcelas = $valor/$j;
$parcelas = number_format($parcelas, 2, '.', '');

$sem = "mastercard#".$pedido."#2#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($sem)."'>

".sprintf(GetLang('ParMasterSemCielo'),$j,CurrencyConvertFormatPrice($parcelas,1,0))."

<br>
";

}else{

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');

$com = "mastercard#".$pedido."#".$tipojuros."#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($com)."'>

".sprintf(GetLang('ParMasterComCielo'),$j,CurrencyConvertFormatPrice($parcelas,1,0),CurrencyConvertFormatPrice($parcelas*$j,1,0))."

<br>
";
}

}

$help .= "
<br>
<a onclick=\"javascript:pegavalor();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/pagar.gif'>
</a>
</div>";
//fim do mastercard


//inicio do elo
$par1 = "elo#".$pedido."#1#1#".md5($valor);
$help .= "<div id='elo' style='display:none;'>
<br>   <h3>".GetLang('Elo')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParElo1x'),CurrencyConvertFormatPrice($valor,1,0))."

<br>";

for($j=2; $j<=$div;$j++) {


if($semjuros>=$j) {

$parcelas = $valor/$j;
$parcelas = number_format($parcelas, 2, '.', '');

$sem = "elo#".$pedido."#2#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($sem)."'>

".sprintf(GetLang('ParEloSem'),$j,CurrencyConvertFormatPrice($parcelas,1,0))."

<br>
";

}else{

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');

$com = "elo#".$pedido."#".$tipojuros."#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($com)."'>

".sprintf(GetLang('ParEloCom'),$j,CurrencyConvertFormatPrice($parcelas,1,0),CurrencyConvertFormatPrice($parcelas*$j,1,0))."

<br>
";
}

}

$help .= "
<br>
<a onclick=\"javascript:pegavalor();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/pagar.gif'>
</a>
</div>";
//fim do elo


//inicio do diners
$par1 = "diners#".$pedido."#1#1#".md5($valor);
$help .= "<div id='din' style='display:none;'>
<br>   <h3>".GetLang('Din')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParDin1x'),CurrencyConvertFormatPrice($valor,1,0))."

<br>";

for($j=2; $j<=$div;$j++) {


if($semjuros>=$j) {

$parcelas = $valor/$j;
$parcelas = number_format($parcelas, 2, '.', '');

$sem = "diners#".$pedido."#2#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($sem)."'>

".sprintf(GetLang('ParDinSem'),$j,CurrencyConvertFormatPrice($parcelas,1,0))."

<br>
";

}else{

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');

$com = "diners#".$pedido."#".$tipojuros."#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($com)."'>

".sprintf(GetLang('ParDinCom'),$j,CurrencyConvertFormatPrice($parcelas,1,0),CurrencyConvertFormatPrice($parcelas*$j,1,0))."

<br>
";
}

}

$help .= "
<br>
<a onclick=\"javascript:pegavalor();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/pagar.gif'>
</a>
</div>";
//fim do diners


//inicio do discover
$par1 = "discover#".$pedido."#1#1#".md5($valor);
$help .= "<div id='dis' style='display:none;'>
<br>   <h3>".GetLang('Dis')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParDis1x'),CurrencyConvertFormatPrice($valor,1,0))."

<br>";

for($j=2; $j<=$div;$j++) {


if($semjuros>=$j) {

$parcelas = $valor/$j;
$parcelas = number_format($parcelas, 2, '.', '');

$sem = "discover#".$pedido."#2#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($sem)."'>

".sprintf(GetLang('ParDisSem'),$j,CurrencyConvertFormatPrice($parcelas,1,0))."

<br>
";

}else{

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');

$com = "discover#".$pedido."#".$tipojuros."#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($com)."'>

".sprintf(GetLang('ParDisCom'),$j,CurrencyConvertFormatPrice($parcelas,1,0),CurrencyConvertFormatPrice($parcelas*$j,1,0))."

<br>
";
}

}

$help .= "
<br>
<a onclick=\"javascript:pegavalor();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/pagar.gif'>
</a>
</div>";
//fim do discover



//começo amex


$par1 = "amex#".$pedido."#1#1#".md5($valor);
$help .= "<div id='ame' style='display:none;'>
<br>   <h3>".GetLang('Amex')."</h3>
  <input type='radio' id='forma' name='forma' value='".base64_encode($par1)."'>

".sprintf(GetLang('ParAmex1x'),CurrencyConvertFormatPrice($valor,1,0))."

<br>";

for($j=2; $j<=$div;$j++) {


if($semjuros>=$j) {

$parcelas = $valor/$j;
$parcelas = number_format($parcelas, 2, '.', '');

$sem = "amex#".$pedido."#2#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($sem)."'>


".sprintf(GetLang('ParAmexSemCielo'),$j,CurrencyConvertFormatPrice($parcelas,1,0))."
<br>
";

}else{

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');

$com = "amex#".$pedido."#".$tipojuros."#".$j."#".md5($valor);

$help .= "  <input type='radio' id='forma' name='forma' value='".base64_encode($com)."'>


".sprintf(GetLang('ParAmexComCielo'),$j,CurrencyConvertFormatPrice($parcelas,1,0),CurrencyConvertFormatPrice($parcelas*$j,1,0))."
<br>
";
}

}

$help .= "
<br>
<a onclick=\"javascript:pegavalor();\" style=\"cursor:pointer\"><img src='".$GLOBALS['ShopPath']."/modules/checkout/cielo/images/pagar.gif'>
</a>
</div>";


//fim amex
if($juros>0){
$jurosmsg= sprintf(GetLang('Juros'),$juros);
}else{
$jurosmsg= "";
}


//mostra as formas de pagamento e a frase de valor minimo
return $help."<br>".$jurosmsg."".sprintf(GetLang('MinCielo'),$minima);

}else{

return "<br>Nenhum meio de pagamento ativo para este modulo!";

}

}else{

return "";

}

}//fim da funcao

//fim da classe
}
?>

Valeu!



ESerra;

 

Este de onde você tirou este valor "0.019" ? Ele vai variar de parcela em parcela ou será fixo independente da parcela?

 

M = 102.05(1+0.019)2

M = 105.96 => 2x de 52.98

 

A taxa de 1.99% virou 0.019?

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Errei, na realidade o correto seria 0.0199

 

Você pega a taxa e divide por 100

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este abaixo esta correto?

 

$ValorTotal = 85.00;

 

$taxa = 199 // (juros)

 

$nParcelas = 6;

 

public function parcelar($valorTotal, $taxa, $nParcelas){
$taxa = $taxa/100;
$cadaParcela = ($valorTotal*$taxa)/(1-(1/pow(1+$taxa, $nParcelas)));
return round($cadaParcela, 2);
}

 

$parcelas = $this->parcelar($valor, $juros, $j);
$parcelas = number_format($parcelas, 2, '.', '');

 

Saída:

 

1x de R$ 102,05 a vista no mastercard.
2x de R$ 52,55 com juros* no mastercard (R$ R$ 105,10).
3x de R$ 35,38 com juros* no mastercard (R$ R$ 106,14).
4x de R$ 26,79 com juros* no mastercard (R$ R$ 107,16).
5x de R$ 21,64 com juros* no mastercard (R$ R$ 108,20).
6x de R$ 18,21 com juros* no mastercard (R$ R$ 109,26).

 

Meu cliente esta alegando que a 10ª parcela deve ser R$ 102,05 + 19,90% que o valor final será: R$ 122,35

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai nós temos duas questões:

1 - O que é certo.

2 - O que o burro do seu cliente quer.

 

Cabe a você explicar para ele que juros compostos não são do jeito que ele pensa ou simplesmente implementar essa somatória dele e boa, só que isso não vai fechar com a própria operadora do cartão e se ele for cobrar os juros do cliente na fatura irão vir valores diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai nós temos duas questões:

1 - O que é certo.

2 - O que o burro do seu cliente quer.

 

Cabe a você explicar para ele que juros compostos não são do jeito que ele pensa ou simplesmente implementar essa somatória dele e boa, só que isso não vai fechar com a própria operadora do cartão e se ele for cobrar os juros do cliente na fatura irão vir valores diferentes.

 

Ótimo... ta aí uma explicação válida. :joia:

 

+ 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.