2012年10月2日カテゴリー:未分類

EC-CUBE2.12:受注一覧画面でステータスを変更する

(1)■data/class/pages/admin/order/LC_Page_Admin_Order.php

「▼受注一覧画面でステータスを変更する」の箇所を修正・追加します。

[php]
require_once CLASS_EX_REALDIR . ‘page_extends/admin/LC_Page_Admin_Ex.php’;

/**
* 受注管理 のページクラス
*
* @package Page
* @author LOCKON CO.,LTD.
* @version $Id: LC_Page_Admin_Order.php 21867 2012-05-30 07:37:01Z nakanishi $
*/
class LC_Page_Admin_Order extends LC_Page_Admin_Ex {

// }}}
// {{{ functions

/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
$this->tpl_mainpage = ‘order/index.tpl’;
$this->tpl_mainno = ‘order’;
$this->tpl_subno = ‘index’;
$this->tpl_pager = ‘pager.tpl’;
$this->tpl_maintitle = ‘受注管理’;
$this->tpl_subtitle = ‘受注管理’;

$masterData = new SC_DB_MasterData_Ex();
$this->arrORDERSTATUS = $masterData->getMasterData(‘mtb_order_status’);
$this->arrORDERSTATUS_COLOR = $masterData->getMasterData(‘mtb_order_status_color’);
$this->arrSex = $masterData->getMasterData(‘mtb_sex’);
$this->arrPageMax = $masterData->getMasterData(‘mtb_page_max’);

$objDate = new SC_Date_Ex();
// 登録・更新日検索用
$objDate->setStartYear(RELEASE_YEAR);
$objDate->setEndYear(DATE(‘Y’));
$this->arrRegistYear = $objDate->getYear();
// 生年月日検索用
$objDate->setStartYear(BIRTH_YEAR);
$objDate->setEndYear(DATE(‘Y’));
$this->arrBirthYear = $objDate->getYear();
// 月日の設定
$this->arrMonth = $objDate->getMonth();
$this->arrDay = $objDate->getDay();

// 支払い方法の取得
$this->arrPayments = SC_Helper_DB_Ex::sfGetIDValueList(‘dtb_payment’, ‘payment_id’, ‘payment_method’);
// ▼受注一覧画面でステータスを変更する
$this->arrORDERSTATUS = $masterData->getMasterData(“mtb_order_status”);
// ▲受注一覧画面でステータスを変更する
$this->httpCacheControl(‘nocache’);
}

/**
* Page のプロセス.
*
* @return void
*/
function process() {
$this->action();
$this->sendResponse();
}

/**
* Page のアクション.
*
* @return void
*/
function action() {

$objFormParam = new SC_FormParam_Ex();
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$this->arrHidden = $objFormParam->getSearchArray();
$this->arrForm = $objFormParam->getFormParamList();

switch ($this->getMode()) {
// 削除
case ‘delete’:
$this->doDelete(‘order_id = ?’,
array($objFormParam->getValue(‘order_id’)));
// 削除後に検索結果を表示するため 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)
case ‘delete_all’:
$this->doDelete($where, $arrWhereVal);
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,
‘fnNaviSearchPage’, NAVI_PMAX);
$this->arrPagenavi = $objNavi->arrPagenavi;

// 検索結果の取得
$this->arrResults = $this->findOrders($where, $arrWhereVal,
$page_max, $objNavi->start_row, $order);
break;
}
}
break;

// ▼受注一覧画面でステータスを変更する
case ‘status’;
if($_POST[‘change_status’]!=” || $_POST[‘change_status’] != NULL){
//変更するスタータスが選択されている
if(isset($_POST[‘status_order_id’])){
//変更する受注チェックボックスが選択されている
$this->lfStatusMove($_POST[‘change_status’],$_POST[‘status_order_id’]);
}else{
//変更する受注チェックボックスが選択されていない
$this->change_status_err = “ステータスを変更する受注を選択してください。”;
}
}else{
//変更するスタータスが選択されていない
$this->change_status_err = “変更するステータスを選択してください。”;
}
//検索条件キーワードの変換
$objFormParam->convParam();
//パラメータの空白文字の削除
$objFormParam->trimParam();
//検索キーワードのエラーチェック
$this->arrErr = $this->lfCheckError($objFormParam);
//パラメータの取得
$arrParam = $objFormParam->getHashArray();

//エラーがないならば
if (count($this->arrErr) == 0) {
$where = “del_flg = 0”;
foreach ($arrParam as $key => $val) {
if($val == “”) {
continue;
}
//検索条件が設定されていれば検索対象にするwhere文を作成する
$this->buildQuery($key, $where, $arrval, $objFormParam);
}

$order = “update_date DESC”;

/* ———————————————–
* 処理を実行
* ———————————————– */
// 行数の取得
$this->tpl_linemax = $this->getNumberOfLines($where, $arrval);
// ページ送りの処理
$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,’fnNaviSearchPage’, NAVI_PMAX);
$this->arrPagenavi = $objNavi->arrPagenavi;

// 検索結果の取得
$this->arrResults = $this->findOrders($where, $arrval,$page_max, $objNavi->start_row, $order);
}
break;
// ▲受注一覧画面でステータスを変更する

default:
break;
}

}

// ▼受注一覧画面でステータスを変更する
function lfStatusMove($statusId, $arrOrderId) {
$objPurchase = new SC_Helper_Purchase_Ex();
$objQuery = new SC_Query_Ex();

if (!isset($arrOrderId) || !is_array($arrOrderId)) {
return false;
}
$masterData = new SC_DB_MasterData_Ex();
$arrORDERSTATUS = $masterData->getMasterData(“mtb_order_status”);

$objQuery->begin();

foreach ($arrOrderId as $orderId) {
$objPurchase->sfUpdateOrderStatus($orderId, $statusId);
}

$objQuery->commit();

$this->tpl_onload = “window.alert(‘選択項目を” . $arrORDERSTATUS[$statusId] . “へ移動しました。’);”;
return true;
}
// ▲受注一覧画面でステータスを変更する

/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}





[/php]

(2)■data/Smarty/templates/admin/order/index.tpl

「▼受注一覧画面でステータスを変更する」の箇所を修正・追加します。

[php]



検索結果表示件数







件 が該当しました。

検索結果をすべて削除

CSV ダウンロード
CSV 出力項目設定
PDF一括出力
メール一括通知

ステータスの変更  ①該当ボックスをチェック  ②


  ③変更する







ステータス変更

受注日 注文番号 お名前 支払方法 購入金額(円) 全商品発送日 対応状況 編集 メール 削除


“>一括出力
個別出力 編集
“>一括通知
個別通知
削除



[/php]