//dados inseridos no formulario
$Lan_grupo=$_POST['Lan_grupo'];
$Lan_data=$_POST['Lan_data'];
$Lan_saldo_final= //$_POST['Lan_saldo_final'];
// busca dados do grupo para calculo dos novos valores
$sql = "SELECT * FROM tb_grupo WHERE Gr_id = '$Lan_grupo'";
$executa = mysqli_query($conn, $sql);
$cotacao=$executa->fetch_array();
// pega saldo do grupo para ser o saldo inicial da operacao
$Lan_saldo_inicial=$cotacao[2];
$Lan_cotas_atuais_grupo=$cotacao[3]; // Total de cotas no inicio do lancamento
$Lan_valor_cota_inicial=$cotacao[4]; // valor da cota no inicio do lancamento
// lucro total em dolares (saldo final - saldo_inicial)
$Lucro = $Lan_saldo_final-$Lan_saldo_inicial;
// valor atualizado por cota (divide saldo_final pelo numero de cotas totais no grupo)
$Valor_cotas = $Lan_saldo_final/$Lan_cotas_atuais_grupo;
// valor do lucro por cota // divide lucro pelo numero de cotas totais no grupo
$lucro_por_cotas = $Lucro/$Lan_cotas_atuais_grupo; // valor da cota individual
// valor da cota inicial
$Cota_inicio=$Lan_saldo_inicial/$Lan_cotas_atuais_grupo;
//===========================================================================================================================
// inclui a operacao em lancamento usando os dados digitados e dados vindos de tb_grupo
//===========================================================================================================================
// Inclui o lancamento no TB_lancamento
$result_usuario = "INSERT INTO tb_lancamento
(Lan_id, Lan_grupo, Lan_data, Lan_saldo_inicial, Lan_saldo_final, Lan_cotas_grupo, Lan_valor_cota_inicial )
VALUES ('NULL', '$Lan_grupo', '$Lan_data', '$Lan_saldo_inicial', '$Lan_saldo_final', '$Lan_cotas_atuais_grupo' , ' $Lan_valor_cota_inicial')";
$resultado_usuario = mysqli_query($conn, $result_usuario);
// atualizacao dos valores em tb_grupo
$grupo = "UPDATE tb_grupo SET
Gr_saldo='$Lan_saldo_final',
Gr_valor_cotas='$Valor_cotas',
Gr_dt_ultimo='$Lan_data'
WHERE Gr_id = '$Lan_grupo'";
mysqli_query($conn, $grupo); // executa a query lista
//===========================================================================================================================
// lanca resultado e comissoes nos participantes //
//===========================================================================================================================
// seleciona o participante para buscar dados
$participante = "SELECT * FROM tb_participante where Par_grupo=$Lan_grupo";
$participa = $conn->query($participante);
while($participa10 = $participa->fetch_row() )
{
$Usuario_id=$participa10[0]; // id do usuario atual
$Usuario=$participa10[1]; // nome do participante
$Usuario_cotas=$participa10[7]; // numero de cotas atuais do participante
$Captador=$participa10[9]; // Id do captador
$cap_comissao=$participa10[10]; // % da comissao a pagar ao captador
$Trader=$participa10[11]; // id do trader
$Trader_comissao=$participa10[12]; // // % da comissao a pagar ao trader
$Comissao_em_valor_captador=0; // zera comissao do captador em USD
$Comissao_em_cotas_captador = 0; //zera valor em cotas pagas ao captador
$Comissao_em_valor_trader=0; // comissao do captador em USD
$Comissao_em_cotas_trader = 0; // valor em cotas pagas ao trader
$Comissoes_pagas_em_cotas=0; // total a debitar nas cotas do investidor
$Usuario_nova_cota= 0; // cotas do investidor
$Lucro_usuario_valor =0; // lucro do participante em valor
$Lucro_usuario_cotas =0; // lucro participante em cotas
Echo "<h3>".$Usuario."----Valor inicial : ".$Lan_saldo_inicial.
" ---- Valor final da operação : ".$Lan_saldo_final.
"---Cotas atuais : ".$Usuario_cotas."<br>";
if( $Usuario_cotas>0)
{
$Lucro_usuario_valor = $lucro_por_cotas*$Usuario_cotas; // lucro do investidor em valor
$Lucro_usuario_cotas = $Lucro_usuario_valor/$Usuario_cotas; // lucro investidor em cotas
//===============================================================================================
if($cap_comissao >0){
$Comissao_em_valor_captador=(($Lucro_usuario_valor*$cap_comissao)/100); // comissao do captador em USD
$Comissao_em_cotas_captador = ($Comissao_em_valor_captador/$Valor_cotas); // valor em cotas pagas ao captador
}else{
$Comissao_em_valor_captador=0; // comissao do captador em USD
$Comissao_em_cotas_captador = 0; // valor em cotas pagas ao captador
Echo "<h1>Calculo da Comissao do Captador na operaçao = ".$Comissao_em_cotas_captador."</h1><hr>";
}
//=================================================================================================
if($Trader_comissao >0 ){
$Comissao_em_valor_trader=(($Lucro_usuario_valor*$Trader_comissao)/100); // comissao em USD
$Comissao_em_cotas_trader = ($Comissao_em_valor_trader/$Valor_cotas); // valor em cotas pagar ao trader
}else{
$Comissao_em_valor_trader=0; // comissao do captador em USD
$Comissao_em_cotas_trader = 0; // valor em cotas pagas ao trader
Echo "<h1>Calculo da Comissao do trader na operação = ".$Comissao_em_cotas_trader."</h1><hr>";
}
//==================================================================================================
if($Lucro <= 0){
$Usuario_nova_cota=$Usuario_cotas;
} else {
$Comissoes_pagas_em_cotas=($Comissao_em_cotas_captador+$Comissao_em_cotas_trader); // total a debitar nas cotas do investidor
$Usuario_nova_cota=($Usuario_cotas-$Comissoes_pagas_em_cotas); // saldo em cotas do investidor
}
Echo "<h1>Investidor Cotas atuais = ".$Usuario_cotas." --- Nova cota = ".$Usuario_nova_cota."</h1><hr>";
//==================================================================================================
// Update no Investidor (AQUI ESTA DANDO CERTO)
$lanca = "UPDATE tb_participante SET
Par_cotas = $Usuario_nova_cota
WHERE Par_id = $Usuario_id";
mysqli_query($conn, $lanca); // executa a query lista
$investidor = "SELECT * FROM tb_participante WHERE Par_id = $Usuario_id";
$investe = $conn->query($investidor);
$investido=$investe->fetch_array();
echo "<h1>Nova cota do investidor gravada ".$investido[7]."</h1><br>";
// (NESTE LANCAMENTO OS VALORES são GRAVADOS, POREM COM VALORES ERRADOS A PARTIR DO SEGUNDO REGISTRO)
// Update no Captador
if($cap_comissao > 0)
{
if($Captador!=$Usuario_id){
$lanca7 = "UPDATE tb_participante SET
Par_cotas = (Par_cotas+$Comissao_em_cotas_captador)
WHERE Par_id = $Captador";
mysqli_query($conn, $lanca7); // executa a query lista
$captador = "SELECT * FROM tb_participante WHERE Par_id = $Captador";
$captado = $conn->query($captador);
$captado1 =$captado->fetch_array();
echo "<h1>Nova cota do captador gravada --- ".$captado1[7]."</h1><br>";
}else{ echo "<h1>Não tem captador</h1><br>";}
}
//===================================================================================================
// Update no Trader
// (AQUI TAMBEM...NESTE LANCAMENTO OS VALORES são GRAVADOS, POREM COM VALORES ERRADOS A PARTIR DO SEGUNDO REGISTRO)
if($Trader_comissao > 0)
{
if($Captador!=$Usuario_id){
$lanca3 = "UPDATE tb_participante SET
Par_cotas = Par_cotas+$Comissao_em_cotas_trader
WHERE Par_grupo=$Lan_grupo && Par_id = $Trader";
mysqli_query($conn, $lanca3); // executa a query lista
$operador = "SELECT * FROM tb_participante WHERE Par_id = $Trader";
$operado = $conn->query($operador);
$operador1 =$operado->fetch_array();
echo "<h1>Nova cota do trader gravada ".$operador1[7]."</h1><br>";
}else{ echo "<h1>Não tem Trader</h1><br>";}
}
//===================================================================================================
// fim da comissao
} // fim do if lucro >0
//===================================================================================================
} // fim do if cotas>0
echo "================================================================================<br> ";
} // fim do while
?>
Pergunta
Sorrentino
Oi Pessoal... Estou tendo dificuldade em fazer funcionar um calculo em PHP. A rotina que fiz (abaixo ), tem a seguinte função....
1) Por um FORM envio a data e valor final....
2) quando envio o form ele busca o valor inicial em uma tabela chamada tb_grupo
3) Usa os dados enviados pelo form e dados da tabela para fazer calculos
4) faz a inclusao dos dados em uma tabela chamada Tb_lancamento.
5) Atualiza a tabela Tb_grupo
6 )entra em um while de uma tabela chamada tb_participantes...
7) Na primeira passada do while os lancamentos ficam corretos.... porem na segunda em diante ele le, mas os valores atualizados ficam errados...
Detalhe.... fiz o teste colocando echo "...." no lugar de gravar e o valor vem correto...
alguém pode me dar uma dica onde estou errando?
o ARQUIVO ESTA TODO COMENTADO
Grato
<?php
session_start();
$_SESSION["sessiontime"] = time() + 2400;
include_once("conexao.php");
//dados inseridos no formulario
$Lan_grupo=$_POST['Lan_grupo'];
$Lan_data=$_POST['Lan_data'];
$Lan_saldo_final= //$_POST['Lan_saldo_final'];
// busca dados do grupo para calculo dos novos valores
$sql = "SELECT * FROM tb_grupo WHERE Gr_id = '$Lan_grupo'";
$executa = mysqli_query($conn, $sql);
$cotacao=$executa->fetch_array();
// pega saldo do grupo para ser o saldo inicial da operacao
$Lan_saldo_inicial=$cotacao[2];
$Lan_cotas_atuais_grupo=$cotacao[3]; // Total de cotas no inicio do lancamento
$Lan_valor_cota_inicial=$cotacao[4]; // valor da cota no inicio do lancamento
// lucro total em dolares (saldo final - saldo_inicial)
$Lucro = $Lan_saldo_final-$Lan_saldo_inicial;
// valor atualizado por cota (divide saldo_final pelo numero de cotas totais no grupo)
$Valor_cotas = $Lan_saldo_final/$Lan_cotas_atuais_grupo;
// valor do lucro por cota // divide lucro pelo numero de cotas totais no grupo
$lucro_por_cotas = $Lucro/$Lan_cotas_atuais_grupo; // valor da cota individual
// valor da cota inicial
$Cota_inicio=$Lan_saldo_inicial/$Lan_cotas_atuais_grupo;
//===========================================================================================================================
// inclui a operacao em lancamento usando os dados digitados e dados vindos de tb_grupo
//===========================================================================================================================
// Inclui o lancamento no TB_lancamento
$result_usuario = "INSERT INTO tb_lancamento
(Lan_id, Lan_grupo, Lan_data, Lan_saldo_inicial, Lan_saldo_final, Lan_cotas_grupo, Lan_valor_cota_inicial )
VALUES ('NULL', '$Lan_grupo', '$Lan_data', '$Lan_saldo_inicial', '$Lan_saldo_final', '$Lan_cotas_atuais_grupo' , ' $Lan_valor_cota_inicial')";
$resultado_usuario = mysqli_query($conn, $result_usuario);
// atualizacao dos valores em tb_grupo
$grupo = "UPDATE tb_grupo SET
Gr_saldo='$Lan_saldo_final',
Gr_valor_cotas='$Valor_cotas',
Gr_dt_ultimo='$Lan_data'
WHERE Gr_id = '$Lan_grupo'";
mysqli_query($conn, $grupo); // executa a query lista
//===========================================================================================================================
// lanca resultado e comissoes nos participantes //
//===========================================================================================================================
// seleciona o participante para buscar dados
$participante = "SELECT * FROM tb_participante where Par_grupo=$Lan_grupo";
$participa = $conn->query($participante);
while($participa10 = $participa->fetch_row() )
{
$Usuario_id=$participa10[0]; // id do usuario atual
$Usuario=$participa10[1]; // nome do participante
$Usuario_cotas=$participa10[7]; // numero de cotas atuais do participante
$Captador=$participa10[9]; // Id do captador
$cap_comissao=$participa10[10]; // % da comissao a pagar ao captador
$Trader=$participa10[11]; // id do trader
$Trader_comissao=$participa10[12]; // // % da comissao a pagar ao trader
$Comissao_em_valor_captador=0; // zera comissao do captador em USD
$Comissao_em_cotas_captador = 0; //zera valor em cotas pagas ao captador
$Comissao_em_valor_trader=0; // comissao do captador em USD
$Comissao_em_cotas_trader = 0; // valor em cotas pagas ao trader
$Comissoes_pagas_em_cotas=0; // total a debitar nas cotas do investidor
$Usuario_nova_cota= 0; // cotas do investidor
$Lucro_usuario_valor =0; // lucro do participante em valor
$Lucro_usuario_cotas =0; // lucro participante em cotas
Echo "<h3>".$Usuario."----Valor inicial : ".$Lan_saldo_inicial.
" ---- Valor final da operação : ".$Lan_saldo_final.
"---Cotas atuais : ".$Usuario_cotas."<br>";
if( $Usuario_cotas>0)
{
$Lucro_usuario_valor = $lucro_por_cotas*$Usuario_cotas; // lucro do investidor em valor
$Lucro_usuario_cotas = $Lucro_usuario_valor/$Usuario_cotas; // lucro investidor em cotas
//===============================================================================================
if($cap_comissao >0){
$Comissao_em_valor_captador=(($Lucro_usuario_valor*$cap_comissao)/100); // comissao do captador em USD
$Comissao_em_cotas_captador = ($Comissao_em_valor_captador/$Valor_cotas); // valor em cotas pagas ao captador
}else{
$Comissao_em_valor_captador=0; // comissao do captador em USD
$Comissao_em_cotas_captador = 0; // valor em cotas pagas ao captador
Echo "<h1>Calculo da Comissao do Captador na operaçao = ".$Comissao_em_cotas_captador."</h1><hr>";
}
//=================================================================================================
if($Trader_comissao >0 ){
$Comissao_em_valor_trader=(($Lucro_usuario_valor*$Trader_comissao)/100); // comissao em USD
$Comissao_em_cotas_trader = ($Comissao_em_valor_trader/$Valor_cotas); // valor em cotas pagar ao trader
}else{
$Comissao_em_valor_trader=0; // comissao do captador em USD
$Comissao_em_cotas_trader = 0; // valor em cotas pagas ao trader
Echo "<h1>Calculo da Comissao do trader na operação = ".$Comissao_em_cotas_trader."</h1><hr>";
}
//==================================================================================================
if($Lucro <= 0){
$Usuario_nova_cota=$Usuario_cotas;
} else {
$Comissoes_pagas_em_cotas=($Comissao_em_cotas_captador+$Comissao_em_cotas_trader); // total a debitar nas cotas do investidor
$Usuario_nova_cota=($Usuario_cotas-$Comissoes_pagas_em_cotas); // saldo em cotas do investidor
}
Echo "<h1>Investidor Cotas atuais = ".$Usuario_cotas." --- Nova cota = ".$Usuario_nova_cota."</h1><hr>";
//==================================================================================================
// Update no Investidor (AQUI ESTA DANDO CERTO)
$lanca = "UPDATE tb_participante SET
Par_cotas = $Usuario_nova_cota
WHERE Par_id = $Usuario_id";
mysqli_query($conn, $lanca); // executa a query lista
$investidor = "SELECT * FROM tb_participante WHERE Par_id = $Usuario_id";
$investe = $conn->query($investidor);
$investido=$investe->fetch_array();
echo "<h1>Nova cota do investidor gravada ".$investido[7]."</h1><br>";
//==================================================================================================
if($Lucro> 0.00)
{
//==================================================================================================
// (NESTE LANCAMENTO OS VALORES são GRAVADOS, POREM COM VALORES ERRADOS A PARTIR DO SEGUNDO REGISTRO)
// Update no Captador
if($cap_comissao > 0)
{
if($Captador!=$Usuario_id){
$lanca7 = "UPDATE tb_participante SET
Par_cotas = (Par_cotas+$Comissao_em_cotas_captador)
WHERE Par_id = $Captador";
mysqli_query($conn, $lanca7); // executa a query lista
$captador = "SELECT * FROM tb_participante WHERE Par_id = $Captador";
$captado = $conn->query($captador);
$captado1 =$captado->fetch_array();
echo "<h1>Nova cota do captador gravada --- ".$captado1[7]."</h1><br>";
}else{ echo "<h1>Não tem captador</h1><br>";}
}
//===================================================================================================
// Update no Trader
// (AQUI TAMBEM...NESTE LANCAMENTO OS VALORES são GRAVADOS, POREM COM VALORES ERRADOS A PARTIR DO SEGUNDO REGISTRO)
if($Trader_comissao > 0)
{
if($Captador!=$Usuario_id){
$lanca3 = "UPDATE tb_participante SET
Par_cotas = Par_cotas+$Comissao_em_cotas_trader
WHERE Par_grupo=$Lan_grupo && Par_id = $Trader";
mysqli_query($conn, $lanca3); // executa a query lista
$operador = "SELECT * FROM tb_participante WHERE Par_id = $Trader";
$operado = $conn->query($operador);
$operador1 =$operado->fetch_array();
echo "<h1>Nova cota do trader gravada ".$operador1[7]."</h1><br>";
}else{ echo "<h1>Não tem Trader</h1><br>";}
}
//===================================================================================================
// fim da comissao
} // fim do if lucro >0
//===================================================================================================
} // fim do if cotas>0
echo "================================================================================<br> ";
} // fim do while
?>
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.