/**
  * 受注テーブルの論理削除
  */
 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;
     }
 }