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.