public function deleteOrder()
 {
     $po = new CartModel();
     $po_id = isset($_GET['po']) ? addslashes($_GET['po']) : die('no id');
     $po->getByID($po_id);
     if ($po->userid != Account::getMyID()) {
         die('Hacking Attempt');
     }
     $po->payment_status = 4;
     $po->load = 1;
     $po->save();
     CartWeb::kurangiStok($po_id, 0, 0);
     header("Location:" . _SPPATH . "myorder");
     exit;
 }
 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 setStatus()
 {
     $payment_status = isset($_GET['ps']) ? addslashes($_GET['ps']) : die('no ps');
     $po_id = isset($_GET['po']) ? addslashes($_GET['po']) : die('no po');
     $po = new CartModel();
     $po->getByID($po_id);
     $payment_status_lama = $po->payment_status;
     if ($payment_status_lama == '3') {
         //canceled ke gak canceled
         // kurangi stok
         CartWeb::kurangiStok($po_id, 1, 0);
     }
     if ($payment_status == '3') {
         //gak canceled ke canceled
         // release stok //tambah stok
         CartWeb::kurangiStok($po_id, 0, 0);
     }
     if ($payment_status == '1') {
         //leap mail
         $lm = new Leapmail();
         $lm->senderMail = "*****@*****.**";
         $isi .= "Terima Kasih Anda Telah Melakukan Pembayaran \n\n";
         $isi .= "";
         $isi .= "Detail Pesanan : " . _BPATH . "CartOrder/details?po={$po_id} \n";
         $isi .= "Order History : " . _BPATH . "myorder \n\n";
         $isi .= "\n\n Pengiriman akan kami jalankan secepatnya.";
         $isi .= "\n\n Lama delivery sesuai JNE delivery sekitar 3-4 hari untuk paket REGULAR dan 1 hari untuk paket Yakin Esok Sampai.";
         $isi .= "\n\n Untuk Informasi lebih lanjut bisa melakukan email ke info@b3l1.com";
         $lm->sendEmail($po->user_email, "Konfirmasi Pemrosesan Pemesanan Produk B3l1.COM", $isi);
     }
     if ($payment_status == '2') {
         //leap mail
         $lm = new Leapmail();
         $lm->senderMail = "*****@*****.**";
         $isi .= "Pengiriman Produk Pesanan Anda Sudah Dilakukan \n\n";
         $isi .= "";
         $isi .= "Detail Pesanan : " . _BPATH . "CartOrder/details?po={$po_id} \n";
         $isi .= "Order History : " . _BPATH . "myorder \n\n";
         $isi .= "\n\n Lama delivery sesuai JNE delivery sekitar 3-4 hari untuk paket REGULAR dan 1 hari untuk paket Yakin Esok Sampai.";
         $isi .= "\n\n Untuk Informasi lebih lanjut bisa melakukan email ke info@b3l1.com";
         $lm->sendEmail($po->user_email, "Pengiriman Produk B3l1.COM", $isi);
     }
     $po->payment_status = $payment_status;
     $po->load = 1;
     $po->save();
 }