[Svn-src-all:1347] [version-2_5-dev 20237] #965 (リファクタリング [管理画面]顧客管理) LC_Page_Admin_Customer_Edit.php の修正

AMUAMU admin @ mail.ec-cube.net
2011年 2月 20日 (日) 06:29:48 JST


Subversion committed to /home/svn/open 20237
http://svn.ec-cube.net/open_trac/changeset/20237
┌────────────────────────────┐
│更新者 :  AMUAMU                                       │
│更新日時:  2011-02-20 06:29:48 +0900 (日, 20  2月 2011)│
└────────────────────────────┘

Log:
--------------------------------------------------------
#965 (リファクタリング [管理画面]顧客管理) LC_Page_Admin_Customer_Edit.php の修正

Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php

変更: branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php	2011-02-19 21:17:54 UTC (rev 20236)
+++ branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php	2011-02-19 21:29:48 UTC (rev 20237)
@@ -91,8 +91,7 @@
         // 不正アクセスチェック 
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
             if (!SC_Helper_Session_Ex::isValidToken()) {
-//                SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR);
-                echo "不正アクセス";
+                SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR);
                 exit;
             }
         }
@@ -106,7 +105,6 @@
 
         // モードによる処理切り替え
         switch ($this->getMode()) {
-        case 'edit':
         case 'edit_search':
             //検索引き継ぎ用パラメーター処理
             $this->lfInitSearchParam($objFormSearchParam);
@@ -119,7 +117,10 @@
             //指定顧客の情報をセット
             $this->arrForm = SC_Helper_Customer::sfGetCustomerData($objFormSearchParam->getValue("edit_customer_id"), true);
             //購入履歴情報の取得
-//            $this->arrPurchaseHistory = $this->lfPurchaseHistory($objFormSearchParam->getValue("edit_customer_id"));
+            list($this->tpl_linemax, $this->arrPurchaseHistory, $this->objNavi) = $this->lfPurchaseHistory($objFormSearchParam->getValue("edit_customer_id"));
+            $this->arrPagenavi = $this->objNavi->arrPagenavi;
+            $this->arrPagenavi['mode'] = 'return';
+            $this->tpl_pageno = '0';
             break;
         case 'confirm':
             //パラメーター処理
@@ -157,7 +158,11 @@
                 return;
             }
             //購入履歴情報の取得
-//            $this->arrPurchaseHistory = $this->lfPurchaseHistory($objFormParam->getValue("customer_id"));
+            list($this->tpl_linemax, $this->arrPurchaseHistory, $this->objNavi) = $this->lfPurchaseHistory($objFormParam->getValue("customer_id"), $objFormParam->getValue("search_pageno"));
+            $this->arrPagenavi = $this->objNavi->arrPagenavi;
+            $this->arrPagenavi['mode'] = 'return';
+            $this->tpl_pageno = $objFormParam->getValue("search_pageno");
+            
             break;
         case 'complete':
             //登録・保存処理
@@ -204,6 +209,8 @@
         SC_Helper_Customer_Ex::sfCustomerEntryParam($objFormParam, true);
         // 検索結果一覧画面への戻り用パラメーター
         $objFormParam->addParam("検索用データ", "search_data", "", "", array(), "", false);
+        // 顧客購入履歴ページング用
+        $objFormParam->addParam("", "search_pageno", INT_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"), "", false);
     }
 
     /**
@@ -294,34 +301,34 @@
         return SC_Helper_Customer_Ex::sfEditCustomerData($arrData, $arrData['customer_id']);
     }
 
-    //購入履歴情報の取得
-    function lfPurchaseHistory($customer_id){
-        $objQuery   =& SC_Query::getSingletonInstance();
-        $this->tpl_pageno = $_POST['search_pageno'];
-        $this->edit_customer_id = $customer_id;
-
-        // ページ送りの処理
+    /**
+     * 購入履歴情報の取得
+     *
+     * @param array $arrParam 検索パラメーター連想配列
+     * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト)
+     */
+    function lfPurchaseHistory($customer_id, $pageno = 0){
+        if(SC_Utils_Ex::isBlank($customer_id)) {
+            return array('0', array(), NULL);
+        }
+        $objQuery =& SC_Query::getSingletonInstance();
         $page_max = SEARCH_PMAX;
+        $table = "dtb_order";
+        $where = "customer_id = ? AND del_flg <> 1";
+        $arrVal = array($customer_id);
         //購入履歴の件数取得
-        $this->tpl_linemax = $objQuery->count("dtb_order","customer_id=? AND del_flg = 0 ", array($customer_id));
-        $linemax = $this->tpl_linemax;
-
+        $linemax = $objQuery->count($table, $where, $arrVal);
         // ページ送りの取得
-        $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchPage2", NAVI_PMAX);
-        $this->arrPagenavi = $objNavi->arrPagenavi;
-        $this->arrPagenavi['mode'] = 'edit';
-        $startno = $objNavi->start_row;
-
+        $objNavi = new SC_PageNavi($pageno, $linemax, $page_max, "fnNaviSearchPage2", NAVI_PMAX);
         // 取得範囲の指定(開始行番号、行数のセット)
-        $this->objQuery->setLimitOffset($page_max, $startno);
+        $objQuery->setLimitOffset($page_max, $objNavi->start_row);
         // 表示順序
         $order = "order_id DESC";
-        $this->objQuery->setOrder($order);
+        $objQuery->setOrder($order);
         //購入履歴情報の取得
-        $arrPurchaseHistory = $this->objQuery->select("*", "dtb_order", "customer_id=? AND del_flg = 0 ", array($customer_id));
+        $arrPurchaseHistory = $objQuery->select("*", $table, $where, $arrVal);
 
-        return $arrPurchaseHistory;
+        return array($linemax, $arrPurchaseHistory, $objNavi);
     }
-
 }
 ?>




Svn-src-all メーリングリストの案内