Ideia para fazer cálculo

Enviada por Rogerio Pancini Pereira 
Rogerio Pancini Pereira
Ideia para fazer cálculo
01 de February de 2021 às 09:05PM
Boa tarde pessoal.

Estou há algumas semanas quebrando a cabeça para fazer um cálculo.
O cliente tem uma planilha em Excel e não sei como ele conseguiu fazer aquela referência.

Vou colocar o trecho do código:

$investimento_total = round($_SESSION['venda'], -1);

$sql_custo_instalacao_cs = mysqli_query($config, "SELECT vlr_2 FROM tb_erp_tipo_telhado WHERE id = '$r_sql_orcamento[3]'") or die(mysqli_error($config));
if(@mysqli_num_rows($sql_custo_instalacao_cs) <= 0){
$custo_instalacao_cs = 0;
}else{
while($r_sql_custo_instalacao_cs = mysqli_fetch_array($sql_custo_instalacao_cs)){
$custo_instalacao_cs = $r_sql_custo_instalacao_cs[0];
}
}

$sql_custo_homologacao_cs = mysqli_query($config, "SELECT percentual FROM tb_erp_custo_homologacao WHERE '$investimento_total' BETWEEN vlr_1 AND vlr_2") or die(mysqli_error($config));
if(@mysqli_num_rows($sql_custo_homologacao_cs) <= 0){
$custo_homologacao_cs = 0;
}else{
while($r_sql_custo_homologacao_cs = mysqli_fetch_array($sql_custo_homologacao_cs)){
$custo_homologacao_cs = $investimento_total * $r_sql_custo_homologacao_cs[0] / 100;
}
}

$comissao_venda_s_mo = $_SESSION['venda'] * $r_sql_orcamento[12] / 100;

$custo_kit_liquido = ($r_sql_orcamento[4] * (1 - ($r_sql_campos_orcamento[3] / 100)) * (1 - ($r_sql_campos_orcamento[4] / 100)) * (1 - ($r_sql_campos_orcamento[5] / 100)) * (1 - ($r_sql_campos_orcamento[6] / 100)));

$imposto_de_refaturamento = ($_SESSION['venda'] * $r_sql_campos_orcamento[16] / 100)-($custo_kit_liquido * $r_sql_campos_orcamento[16] / 100);

$custo_total = $custo_kit_liquido + $r_sql_orcamento[5] + $custo_instalacao_cs + ($custo_kit_liquido * 2 / 100) + ($r_sql_orcamento[6] * 6) + $custo_homologacao_cs + $comissao_venda_s_mo + $imposto_de_refaturamento;

$venda = $custo_total / (1 - $r_sql_orcamento[7] / 100);

$_SESSION['venda'] = $venda;

Vejam que a variável $venda é calcula por último, mas alguns cálculos no início do bloco usam ela.
Eu coloquei em uma $_SESSION, que inicia no fim, para que possa ficar disponível no início.

Dá certo, mas eu tenho que apertar o F5 umas cinco vezes para chegar ao resultado correto.

Como eu poderia melhor isso?

Obrigado.
Trambulhao
Re: Ideia para fazer cálculo
09 de February de 2021 às 08:05PM
Na verdade nem entendi muito bem o seu problema mas uma coisa que eu reparei é que na variável $custo_instalacao_cs, dentro do while, não existe soma dos valores vindo do banco de dados e sim uma substituição em cada ciclo.

while(..) {
$custo_instalacao_cs = ...
}

para

while(..) {
$custo_instalacao_cs += ...
}
Rogerio Pancini Pereira
Re: Ideia para fazer cálculo
26 de February de 2021 às 06:50PM
Obrigado pela atenção!

O problema, melhor explicando, seria fazer uma soma simples, imaginando que ele fique na parte inferior do script.

Valor 1 100 +
Valor 2 100 =
Total 200

Nesta situação acima, eu preciso pegar o resultado da soma, na parte debaixo do script, usar na própria soma.

Valor 1 100 +
Percentual do total 200 10% (20) +
Valor 2 100
Total 220

Eu descobri agora que é possível fazer isso no Excel.
Mas no PHP, fica "adaptado do jeito que fiz".
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.