0
I’m calculating the average cost of a product using php. I can calculate the average cost smoothly, the error occurs when I try to reverse the calculation.
My code returns this:
Novo cuto médio é: 36,56
O custo médio antigo é: 38,35
When that would be right:
Novo cuto médio é: 36,56
O custo médio antigo é: 35,24
Can anyone help me locate the problem? Follow my code:
$custo_antigo = 35.24;
$estoque_antigo = 100;
$custo_compra = 36.23;
$estoque_compra = 133;
$encargos_compra = 1.33;
// Calcula custo médio do produto
$total_em_estoque = $estoque_antigo * $custo_antigo;
$total_do_estoque = $estoque_antigo;
$total_em_compra = $estoque_compra * ($custo_compra + $encargos_compra);
$calculo_valor = $total_em_estoque + $total_em_compra;
$calculo_estoque = $estoque_compra + $total_do_estoque;
$custo_medio_final = $calculo_valor / $calculo_estoque;
// Formata numero
$custo_formatado = number_format($custo_medio_final, 2, ',', '.');
echo "Novo cuto médio é: $custo_formatado <br><br>";
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$custo_antigo = 35.81;
$estoque_antigo = 233;
$custo_compra = 36.23;
$estoque_compra = 133;
$encargos_compra = 1.33;
// 1º Pega valor do estoque antigo
$qtd_antiga = $estoque_antigo - $estoque_compra;
// 2º Total atual
$total_geral = (($custo_antigo + $encargos_compra) * $estoque_antigo);
// 3º total da compra
$total_compra = ($estoque_compra * $custo_compra);
// 4º pega custo antigo
$custo_antigo = ($total_geral - $total_compra) / $qtd_antiga;
// Formata numero
$custo_formatado = number_format($custo_antigo, 2, ',', '.');
echo "O custo médio antigo é: $custo_formatado";
I don’t understand why revert if you already have the original up there.
– Daniel Omine
this is an example, in real situation I do not have the original, which is lost according to the stock entries.
– Hugo Borges