$ total_purchase_cost Не обновляя внутри петли PHP Foreach в CodeIgniter, даже с жестким дополнениемPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 $ total_purchase_cost Не обновляя внутри петли PHP Foreach в CodeIgniter, даже с жестким дополнением

Сообщение Anonymous »

Я работаю над проектом Codeigniter 3, где я рассчитываю прибыль на основе FIFO в акционерной системе. Вот структура моей функции: < /p>
public function canculate_fifo_profit ($ commodity_id, $ warehouse_id, $ sale_quantity, $ sale_price) {
$ ci = & get_instance (); < /p>
$CI->db->select('*');
$CI->db->from(db_prefix() . 'goods_transaction_detail');
$CI->db->where('commodity_id', $commodity_id);
$CI->db->where('warehouse_id', $warehouse_id);
$CI->db->where('status', 1); // Only goods receipt
$CI->db->where('quantity >', 0);
$CI->db->order_by('date_add', 'ASC');
$batches = $CI->db->get()->result();

$remaining_qty = $sale_quantity;
$total_purchase_cost = 0;

foreach ($batches as $batch) {
if ($remaining_qty quantity, $remaining_qty);
$cost = $consume_qty * floatval($batch->purchase_price);

// This line doesn't seem to work
$total_purchase_cost += $cost;

// Even this line doesn't work:
// $total_purchase_cost += 10;

// This line works perfectly
$CI->db->set('quantity', 'quantity - ' . $consume_qty, false);
$CI->db->where('id', $batch->id);
$CI->db->update(db_prefix() . 'goods_transaction_detail');

$remaining_qty -= $consume_qty;
}
}

$total_sales_value = $sale_quantity * $sale_price;
$profit = $total_sales_value - $total_purchase_cost;

return [
'cost' => $total_purchase_cost,
'revenue' => $total_sales_value,
'profit' => $profit
];
< /code>
} < /p>
✅ Проблема:
Цикл выполняется правильно, потому что запрос на обновление работает и уменьшает количество, как и ожидалось. Измените значение переменной. < /p>
Вне цикла, оно всегда возвращает 0. < /p>
Проверенный результат запроса CodeIgniter - $ партии содержит допустимые данные.
подтверждено, что это не является проблемой Scoping - Variable объявлено вне и модифицирована внутри. Но это остается 0.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ter-even-w
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»