Skip to content

Instantly share code, notes, and snippets.

@hidayat365
Created October 22, 2012 16:12
Show Gist options
  • Save hidayat365/3932292 to your computer and use it in GitHub Desktop.
Save hidayat365/3932292 to your computer and use it in GitHub Desktop.
Proses FIFO feat. @mizno
<?php
function ProcessFifo($code, $quantity, $data) {
$result = array();
$counter = $quantity;
// proses
foreach ($data as $row) {
if ($counter > 0) {
if ($row['code'] == $code) {
if ($row['stock'] >= $counter) {
$row['stock'] = $counter;
$counter = 0;
} else {
$counter -= $row['stock'];
}
}
$result[] = $row;
}
}
// jika stok kurang
if ($counter > 0) {
$result = 'Stock KURANG!';
}
// return result
return $result;
}
$code = isset($_GET['code']) ? $_GET['code'] : 'a';
$buy = isset($_GET['buy']) ? $_GET['buy'] : 10;
$query = array(
array('id' => 1, 'code' => 'a', 'stock' => 8, 'h' => 100),
array('id' => 2, 'code' => 'a', 'stock' => 4, 'h' => 110),
array('id' => 3, 'code' => 'a', 'stock' => 3, 'h' => 90),
array('id' => 4, 'code' => 'a', 'stock' => 5, 'h' => 105)
);
$result = ProcessFifo($code,$buy,$query);
print '<pre>';
print_r($result);
print '</pre>';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment