/** * 受注テーブルの論理削除 */ public function lfDelete($arrOrderId) { $objQuery =& SC_Query_Ex::getSingletonInstance(); if (!isset($arrOrderId) || !is_array($arrOrderId)) { return false; } $objPurchase = new SC_Helper_Purchase_Ex(); foreach ($arrOrderId as $orderId) { $objPurchase->cancelOrder($orderId, ORDER_CANCEL, true); } $this->tpl_onload = "window.alert('選択項目を削除しました。');"; return true; }
public function checkSessionPendingOrder() { if (!SC_Utils_Ex::isBlank($_SESSION['order_id'])) { $order_id = $_SESSION['order_id']; unset($_SESSION['order_id']); $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); $arrOrder = SC_Helper_Purchase_Ex::getOrder($order_id); if ($arrOrder['status'] == ORDER_PENDING) { $objCartSess = new SC_CartSession_Ex(); $cartKeys = $objCartSess->getKeys(); if (SC_Utils_Ex::isBlank($cartKeys)) { SC_Helper_Purchase_Ex::rollbackOrder($order_id, ORDER_CANCEL, true); GC_Utils_Ex::gfPrintLog('order rollback.(session pending) order_id=' . $order_id); } else { SC_Helper_Purchase_Ex::cancelOrder($order_id, ORDER_CANCEL, true); GC_Utils_Ex::gfPrintLog('order rollback.(session pending and set card) order_id=' . $order_id); } } $objQuery->commit(); } }
/** * Page のアクション. * * @return void */ public function action() { $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $this->arrHidden = $objFormParam->getSearchArray(); $this->arrForm = $objFormParam->getFormParamList(); $objPurchase = new SC_Helper_Purchase_Ex(); switch ($this->getMode()) { // 削除 case 'delete': $order_id = $objFormParam->getValue('order_id'); $objPurchase->cancelOrder($order_id, ORDER_CANCEL, true); // 削除後に検索結果を表示するため breakしない // 検索パラメーター生成後に処理実行するため breakしない // 削除後に検索結果を表示するため breakしない // 検索パラメーター生成後に処理実行するため breakしない case 'csv': case 'delete_all': // 検索パラメーターの生成 // 検索パラメーターの生成 case 'search': $objFormParam->convParam(); $objFormParam->trimParam(); $this->arrErr = $this->lfCheckError($objFormParam); $arrParam = $objFormParam->getHashArray(); if (count($this->arrErr) == 0) { $where = 'del_flg = 0'; $arrWhereVal = array(); foreach ($arrParam as $key => $val) { if ($val == '') { continue; } $this->buildQuery($key, $where, $arrWhereVal, $objFormParam); } $order = 'update_date DESC'; /* ----------------------------------------------- * 処理を実行 * ----------------------------------------------- */ switch ($this->getMode()) { // CSVを送信する。 case 'csv': $this->doOutputCSV($where, $arrWhereVal, $order); SC_Response_Ex::actionExit(); break; // 全件削除(ADMIN_MODE) // 全件削除(ADMIN_MODE) case 'delete_all': $page_max = 0; $arrResults = $this->findOrders($where, $arrWhereVal, $page_max, 0, $order); foreach ($arrResults as $element) { $objPurchase->cancelOrder($element['order_id'], ORDER_CANCEL, true); } break; // 検索実行 // 検索実行 default: // 行数の取得 $this->tpl_linemax = $this->getNumberOfLines($where, $arrWhereVal); // ページ送りの処理 $page_max = SC_Utils_Ex::sfGetSearchPageMax($objFormParam->getValue('search_page_max')); // ページ送りの取得 $objNavi = new SC_PageNavi_Ex($this->arrHidden['search_pageno'], $this->tpl_linemax, $page_max, 'eccube.moveNaviPage', NAVI_PMAX); $this->arrPagenavi = $objNavi->arrPagenavi; // 検索結果の取得 $this->arrResults = $this->findOrders($where, $arrWhereVal, $page_max, $objNavi->start_row, $order); break; } } break; default: break; } }