ITOBEN STYLE > EC-CUBE2.12:受注一覧画面でステータスを変更する 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一括出力 メール一括通知 ステータスの変更 ①該当ボックスをチェック ② 選択してください削除 ③変更する ステータス変更 受注日 注文番号 お名前 支払方法 購入金額(円) 全商品発送日 対応状況 帳票 編集 メール 削除 “>一括出力 個別出力 編集 “>一括通知 個別通知 削除
(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]
・
・
・
・
検索結果表示件数