public static function moveStock($prod_id, $jumlah, $minus = 1, $note = "", $po_id = 0) { $prod = new ProdModel(); $prod->getByID($prod_id); //isi log $ps = new ProdStok(); $ps->stok_date = leap_mysqldate(); $ps->stok_prev = $prod->prod_stock; $ps->stok_po_id = $po_id; $ps->stok_prod_id = $prod->prod_id; $ps->stok_userid = Account::getMyID(); if ($minus) { //kurangi stok $prod->prod_stock -= $jumlah; } else { //kurangi stok $prod->prod_stock += $jumlah; } $prod->load = 1; $prod->save(); if (Role::hasRole('admin')) { $ps->stock_admin = 1; } $ps->stock_note = $note; $ps->stok_actual = $prod->prod_stock; if ($ps->stok_prev > $ps->stok_actual) { $ps->stok_debit_credit = 1; } else { $ps->stok_debit_credit = 0; } return $ps->save(); }
public static function kurangiStok($po_id, $minus = 1, $session = 1) { if ($session) { $arrObjBulk = isset($_SESSION['cartqty_bulk']) ? $_SESSION['cartqty_bulk'] : array(); $arrObjRetail = isset($_SESSION['cartqty']) ? $_SESSION['cartqty'] : array(); } else { $cm = new CartModel(); $cm->getByID($po_id); $arrObjBulk = json_decode($cm->po_pesanan_bulk); $arrObjRetail = json_decode($cm->po_pesanan_retail); } $out_of_stock_ID = array(); //kebutuhan $kebutuhan = array(); //get all product $arrProd = array(); //bulk foreach ($arrObjBulk as $numb => $objb) { if ($session) { $pid = $objb['id']; $qty = $objb['qty']; } else { $pid = $objb->id; $qty = $objb->qty; } if ($pid == "" || $pid < 1) { continue; } $exp = explode(",", $pid); foreach ($exp as $numc => $obj_real) { $p = new ProdModel(); $p->getByID($obj_real); $arrProd[$obj_real] = $p; //cek apakah outof stok $kebutuhan[$obj_real]++; } foreach ($kebutuhan as $obj_real => $jumlah) { $kebutuhan[$obj_real] = $jumlah * $qty; } } //satuan foreach ($arrObjRetail as $num => $obj) { if ($session) { $pid = $obj['id']; $qty = $obj['qty']; } else { $pid = $obj->id; $qty = $obj->qty; } if ($pid == "" || $pid < 1) { continue; } $p = new ProdModel(); $p->getByID($pid); $arrProd[$pid] = $p; $kebutuhan[$pid] += $qty; } //pr($kebutuhan); foreach ($kebutuhan as $pid => $jumlah) { $prod = $arrProd[$pid]; //kalau session ga bisa out of stock if ($prod->prod_stock < $jumlah && $session) { continue; } //isi log $ps = new ProdStok(); $ps->stok_date = leap_mysqldate(); $ps->stok_prev = $prod->prod_stock; $ps->stok_po_id = $po_id; $ps->stok_prod_id = $prod->prod_id; $ps->stok_userid = Account::getMyID(); if ($minus) { //kurangi stok $prod->prod_stock -= $jumlah; } else { $prod->prod_stock += $jumlah; } $prod->load = 1; $prod->save(); $ps->stock_note = "Pemesanan Customer"; if (!$session) { $ps->stock_admin = 1; $ps->stock_note = "Admin Update {$minus}"; } $ps->stok_actual = $prod->prod_stock; if ($ps->stok_prev > $ps->stok_actual) { $ps->stok_debit_credit = 1; } else { $ps->stok_debit_credit = 0; } $ps->save(); } }
public function updateStok() { $note = isset($_POST['note']) ? addslashes($_POST['note']) : die('no note'); $nr = isset($_POST['nr']) ? addslashes($_POST['nr']) : die('no nr'); $pid = isset($_GET['pid']) ? addslashes($_GET['pid']) : die('no pid'); $json['bool'] = ProdStok::moveStock($pid, $nr, 0, $note); echo json_encode($json); }