Пример #1
0
 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();
 }
Пример #2
0
 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();
     }
 }
Пример #3
0
 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);
 }