-
Conteúdo Similar
-
Por maruanbredoff
Bom dia pessoal. Estou com um problema no meu sistema.
Eu tenho o seguinte Codigo para fazer o calculo das parcelas. Funciona perfeitamente mas tem algumas situações que não resolve como é o caso do mes de fevereiro que tem 28 dias e nos meses que não tem 31 dias. Alguem pode me ajudar seguindo o padrao deste codigo como faria para contornar essa situação?
<?php while($qtdparcelas >0) { // realiza a gravação no banco de dados $data = $ano.'/'.$mes.'/'.$dia;// iguala a data a data da venda //$sqlinsert ="INSERT INTO contas_receber (idparcelas, parcela, idcliente, idmovimento, vencimento, valor, idsituacao) VALUES (null, '$parcela', '$idcliente', '$idmovimentoprox', '$data', '$valor_parcela','1')"; //mysqli_query($con,$sqlinsert) or die(mysqli_error($con)); $parcela++; if ($mes<12){ $mes++; }// adiciona +1 a variavel mes else{ $mes = 1; $ano++;} echo $data; ?><br> <?php } Tentei fazer desta forma aqui mas não funcionou $qtdparcelas=$qtdparcelas-1;// subtrai 1 a variavel parcela if(($dia=31) && ($mes=4) && ($mes=6) && ($mes=9) && ($mes=11)){ $mes++; $dia=30; } elseif($mes=2 and $dia >28){ $dia=28; }
-
Por Daniel Cruz
Bom dia, Gostaria de saber como faço para inserir o resultado das parcelas no banco de dados..
Segue o codigo..
<?php
// DATA PARA A PRIMEIRA PARCELA A PAGAR
/////////// ANO, MÊS, DIA
$val = "R$ 180,00";
$DP = Array(2018, 05, 31);
// QUANTIDADE DE PARCELAS
$parcelas = 12;
// ARRAY PARA AS DATAS
$data_array = Array($DP[0], $DP[1], $DP[2]);
$data_array2 = Array($DP[0], $DP[1], $DP[2]);
// ARMAZENANDO MÊS DA DATA MENOS 1
$n = $data_array[1]-1;
$v_i = $n;
// FOR PRINCIPAL
for($i = 0; $i < $parcelas; $i++) {
$v_i++;
// BASE PARA SOMAR OS MESES
$v = strtotime ( '+'.$i.' month' , strtotime(implode("-", $data_array))) ;
$v2 = strtotime ( '+'.$i.' month' , strtotime(implode("-", $data_array2))) ;
$nd = date ( 'Y-m-d' , $v );
$nd2 = date ( 'Y-m-d' , $v2 );
// PEDAÇOS DA DATA DO LAÇO
$p = explode("-", $nd);
// ATÉ 12 MÊSES
if($v_i <= 12) {
// BASE DO MÊS ATUAL
$base_mes = date("Y-m-t", strtotime($nd));
// PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO
$forma_data = $p[0].'-'.$v_i.'-01';
$ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data));
$b1 = explode("-", $base_mes); // EXPLODE DO BASE MES
$b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS
if($b1[2]!=$b2[2]) {
echo "$val || {$b2[0]}-{$b2[1]}-{$b2[2]}<br>";
} else {
echo "$val || {$b1[0]}-{$b1[1]}-{$data_array[2]}<br>";
}
}
// ATÉ 12 MÊSES
// DE 12 À 24 MESES
elseif($v_i > 12 && $v_i <= 24) {
// BASE DO MÊS ATUAL
$base_mes = date("Y-m-t", strtotime($nd));
// PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO
$forma_data = $p[0].'-'.($v_i-12).'-01';
$ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data));
$b1 = explode("-", $base_mes); // EXPLODE DO BASE MES
$b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS
if($b1[2]!=$b2[2]) {
echo "$val || {$b2[0]}-{$b2[1]}-{$b2[2]}<br>";
} else {
echo "$val || {$b1[0]}-{$b1[1]}-{$data_array[2]}<br>";
}
}
// DE 12 À 24 MESES
// DE 24 À 36 MESES
elseif($v_i > 24 && $v_i <= 36){
// BASE DO MÊS ATUAL
$base_mes = date("Y-m-t", strtotime($nd));
// PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO
$forma_data = $p[0].'-'.($v_i-24).'-01';
$ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data));
$b1 = explode("-", $base_mes); // EXPLODE DO BASE MES
$b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS
if($b1[2]!=$b2[2]) {
echo "$val || {$b2[0]}-{$b2[1]}-{$b2[2]}<br>";
} else {
echo "$val || {$b1[0]}-{$b1[1]}-{$data_array[2]}<br>";
}
}
// DE 24 À 36 MESES
// DE 36 À 48 MESES
elseif($v_i > 36 && $v_i <= 48){
// BASE DO MÊS ATUAL
$base_mes = date("Y-m-t", strtotime($nd));
// PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO
$forma_data = $p[0].'-'.($v_i-36).'-01';
$ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data));
$b1 = explode("-", $base_mes); // EXPLODE DO BASE MES
$b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS
if($b1[2]!=$b2[2]) {
echo "$val || {$b2[0]}-{$b2[1]}-{$b2[2]}<br>";
} else {
echo "$val || {$b1[0]}-{$b1[1]}-{$data_array[2]}<br>";
}
}
// DE 36 À 48 MESES
// DE 48 À 60 MESES
elseif($v_i > 48 && $v_i <= 60){
// BASE DO MÊS ATUAL
$base_mes = date("Y-m-t", strtotime($nd));
// PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO
$forma_data = $p[0].'-'.($v_i-48).'-01';
$ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data));
$b1 = explode("-", $base_mes); // EXPLODE DO BASE MES
$b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS
if($b1[2]!=$b2[2]) {
echo "$val || {$b2[0]}-{$b2[1]}-{$b2[2]}<br>";
} else {
echo "$val || {$b1[0]}-{$b1[1]}-{$data_array[2]}<br>";
}
}
// DE 48 À 60 MESES
else {
} // FIM DO ELSEIF
} // FIM DO FOR PRINCIPAL
?>
-
Por tony_lu
Ola pessoal, estou integrando o checkout transparente do Pagseguro e me surgiu uma duvida, quero colocar um campo onde o usuario pode colocar o numero de parcelas, mas precisa aparecer os valores, e como vou saber o valor exato das parcelas que tiver juros?!
Vi em algumas lojas virtuais que existe essa opção de aparecer as parcelas com os valores, alguem pode me ajudar?
-
Por dev_aprendiz
Boa tarde, pessoal! Não sou muito de pedir ajuda em fórum, procuro sempre resolver meus pepinos que aparecem durante o desenvolvimento. Mas, nesse caso em específico, já tentei de tudo e não consegui solução. Estou desenvolvendo um sistema web em PHP e consegui salvar parcelas no banco de dados MySQL. O problema só está sendo porque independente da data do serviço que eu escolha ou digite no campo de data do formulário, o dia salvo no banco de dados fica 2017-09-19. Ou seja, já tentei salvar a data 2017-08-18, que é hoje, já tentei outras datas para frente e para trás e sempre vai para o banco de dados a mesma coisa 2017-09-19, 2017-10-19, 2017-11-19, etc. Os meses e ano está correto, inclusive quando divido em 6 parcelas ele muda o ano certinho e tudo, o problema está sendo só o dia. Sempre 19. Segue o código que estou usando para gerar as parcelas:
$serviceID = mysqli_insert_id($conn);
$sql1 = "SELECT id_servico, data_servico,valor_procedimento,qtd_parcelas FROM servico WHERE id_servico = '$serviceID'";
$query1 = mysqli_query($conn,$sql1);
while($row = mysqli_fetch_assoc($query1)){
$servicoID = $row['id_servico'];
$dataS = $row['data_servico'];
$valorP = $row['valor_procedimento'];
$qtdP = $row['qtd_parcelas'];
//separando a data do serviço por partes
date_default_timezone_set('America/Recife');
$partes = explode("-",$dataS);
$dia = $partes[0];
$mes = $partes[1];
$ano = $partes[2];
//dividindo o valor total do servico pelo número de parcelas
$valor_parcela = $valorP/$qtdP;
for($i = 1;$i <= $qtdP;$i++){
//incrementando o mês em 1 para a primeira parcela entrar no
//mês posterior
//$data_vencimento = $dia.'-'.($mes+1).'-'.$ano;
$data_vencimento = date('Y-m-d',strtotime("+".$i." month",mktime($mes,$dia,$ano)));
$sql2 = "INSERT INTO parcelamento(id_servico,valor_parcela,parcela,data_vencimento) VALUES('$servicoID','$valor_parcela','$i','$data_vencimento')";
$insert2 = mysqli_query($conn,$sql2);
}
}
Tentei enviar em anexo imagem do retorno do BD, mas não está aceitando o arquivo. Só consegui enviar copiando e colando aqui.
'357', '77', '2', '2017-10-19', '108.33', '0', '0'
'358', '77', '3', '2017-11-19', '108.33', '0', '0'
'359', '77', '4', '2017-12-19', '108.33', '0', '0'
'360', '77', '5', '2018-01-19', '108.33', '0', '0'
'361', '77', '6', '2018-02-19', '108.33', '0', '0'
'362', '89', '1', '2017-09-19', '183.33', '0', '0'
'363', '89', '2', '2017-10-19', '183.33', '0', '0'
'364', '89', '3', '2017-11-19', '183.33', '0', '0'
'365', '89', '4', '2017-12-19', '183.33', '0', '0'
'366', '89', '5', '2018-01-19', '183.33', '0', '0'
'367', '89', '6', '2018-02-19', '183.33', '0', '0'
Ah, só explicando que no código acima o parâmetro de hora do mktime (0,0,0) não coloquei pois estava salvando no BD assim, com o ano 2024 e as datas nada a ver com o que passei no formulário:
'344', '75', '1', '2024-04-08', '133.33', '0', '0'
'345', '75', '2', '2024-05-08', '133.33', '0', '0'
'346', '75', '3', '2024-06-08', '133.33', '0', '0'
'347', '75', '4', '2024-07-08', '133.33', '0', '0'
'348', '75', '5', '2024-08-08', '133.33', '0', '0'
'349', '75', '6', '2024-09-08', '133.33', '0', '0'
Me perdoem qualquer falha, pois é a primeira vez que peço ajuda em fórum. Fico grata a quem puder me auxiliar.
-
Por Mactoscohen
Ola Galera...
não sei como fazer um plano de amortizações por favor preciso da vossa ajuda
exemplo:
N*P v. Capital Cap. Divida v. P/Mes
01 80.000 100.000 20.000
02 80.000 80.000 20.000
03 80.000 60.000 20.000
04 80.000 40.000 20.000
05 80.000 20.000 20.000
06 80.000 00.000 00.000
<?php include_once ("segura.php"); protPagina (); $user_logado = $_SESSION['userID']; ?> <div id="corpo_relatorio"> <table > <tr> <td colspan="8" align="center" bgcolor="#CCCCCC" ><h1>Plano Financeiro</h1></td> </tr> <tr> <td width="226" height="22" align="center" bgcolor="#CCCCCC"><strong>Valor Capitral</strong></td> <td width="327" align="center" bgcolor="#CCCCCC"><strong>Capi. Dívida</strong></td> <td width="105" colspan="2" align="center" bgcolor="#CCCCCC"><strong>V. P/Mes</strong></td> </tr> <?php $sql = mysql_query("SELECT * FROM tb_recibos" ) or die(mysql_error()); $i = 0; while($resultado = mysql_fetch_array($sql)){ $valor_capital =$resultado['valor_capital']; $cap_divida =$resultado['cap_divida']; $valor_mes =$resultado['valor_mes']; ?> <tr class="<?php echo ($i % 2) == 1 ? 'linha_a' : 'linha_b'?>"> <td align="right" ><?php echo number_format($valor_capital,2,",","."); ?></td> <td align="right" ><?php echo number_format($cap_divida,2,",","."); ?></td> <td colspan="2" ><?php echo number_format($valor_mes,2,",","."); ?></td> <?php $i++; } ?> </tr> </table> </div>
-