Changeset 20286


Ignore:
Timestamp:
2011/02/21 07:07:46 (13 years ago)
Author:
AMUAMU
Message:

#965 (リファクタリング [管理画面]顧客管理)に関する修正 LC_Page_Admin_Customer_SearchCustomer.php

Location:
branches/version-2_5-dev/data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/Smarty/templates/admin/customer/search_customer.tpl

    r20116 r20286  
    4343<input name="search_pageno" type="hidden" value=""> 
    4444<input name="customer_id" type="hidden" value=""> 
     45<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 
     46 
    4547<table class="form"> 
    4648    <colgroup width="20%"> 
     
    4951        <th class="colmun">顧客ID</th> 
    5052        <td width="287" colspan="2"> 
    51             <!--{if $arrErr.search_customer_id}--><span class="red12"><!--{$arrErr.search_customer_id}--></span><!--{/if}--> 
    52             <input type="text" name="search_customer_id" value="<!--{$arrForm.search_customer_id|h}-->" size="40" class="box40" style="<!--{$arrErr.search_customer_id|sfGetErrorColor}-->"/> 
     53          <!--{assign var=key value="search_customer_id"}--> 
     54          <!--{if $arrErr[$key]}--><span class="attention"><!--{$arrErr[$key]}--></span><br /><!--{/if}--> 
     55          <input type="text" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" value="<!--{$arrForm[$key].value|h}-->" size="30" class="box30" <!--{if $arrErr[$key]}--><!--{sfSetErrorStyle}--><!--{/if}--> /> 
    5356        </td> 
    5457    </tr> 
     
    5659        <th class="colmun">顧客名</th> 
    5760        <td> 
    58             <!--{if $arrErr.search_name01}--><span class="red12"><!--{$arrErr.search_name01}--></span><!--{/if}--> 
    59             <!--{if $arrErr.search_name02}--><span class="red12"><!--{$arrErr.search_name02}--></span><!--{/if}--> 
    60             姓&nbsp;&nbsp;<input type="text" name="search_name01" value="<!--{$arrForm.search_name01|h}-->" size="15" class="box15" style="<!--{$arrErr.search_name01|sfGetErrorColor}-->"/> 
    61             &nbsp;名&nbsp;&nbsp;<input type="text" name="search_name02" value="<!--{$arrForm.search_name02|h}-->" size="15" class="box15" style="<!--{$arrErr.search_name02|sfGetErrorColor}-->"/> 
     61          <!--{assign var=key value="search_name"}--> 
     62          <!--{if $arrErr[$key]}--><span class="attention"><!--{$arrErr[$key]}--></span><br /><!--{/if}--> 
     63          <input type="text" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" value="<!--{$arrForm[$key].value|h}-->" size="30" class="box30" <!--{if $arrErr[$key]}--><!--{sfSetErrorStyle}--><!--{/if}--> /> 
    6264        </td> 
    6365    </tr> 
     
    6567        <th class="colmun">顧客名(カナ)</th> 
    6668        <td> 
    67             <!--{if $arrErr.search_kana01}--><span class="red12"><!--{$arrErr.search_kana01}--></span><!--{/if}--> 
    68             <!--{if $arrErr.search_kana02}--><span class="red12"><!--{$arrErr.search_kana02}--></span><!--{/if}--> 
    69             セイ<input type="text" name="search_kana01" value="<!--{$arrForm.search_kana01|h}-->" size="15" class="box15" style="<!--{$arrErr.search_kana01|sfGetErrorColor}-->"/> 
    70                                                 メイ&nbsp;<input type="text" name="search_kana02" value="<!--{$arrForm.search_kana02|h}-->" size="15" class="box15" style="<!--{$arrErr.search_kana02|sfGetErrorColor}-->"/> 
     69        <!--{assign var=key value="search_kana"}--> 
     70        <!--{if $arrErr[$key]}--><span class="attention"><!--{$arrErr[$key]}--></span><br /><!--{/if}--> 
     71        <input type="text" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" value="<!--{$arrForm[$key].value|h}-->" size="30" class="box30" <!--{if $arrErr[$key]}--><!--{sfSetErrorStyle}--><!--{/if}--> /> 
    7172        </td> 
    7273    </tr> 
  • branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php

    r20116 r20286  
    6666    function action() { 
    6767        // 認証可否の判定 
    68         $objSess = new SC_Session(); 
    69         SC_Utils_Ex::sfIsSuccess($objSess); 
     68        SC_Utils_Ex::sfIsSuccess(new SC_Session()); 
     69 
     70        // 不正アクセスチェック  
     71        if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     72            if (!SC_Helper_Session_Ex::isValidToken()) { 
     73                SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR); 
     74            } 
     75        } 
     76        // トランザクションID 
     77        $this->transactionid = SC_Helper_Session_Ex::getToken(); 
     78 
     79        // パラメータ管理クラス 
     80        $objFormParam = new SC_FormParam(); 
     81        // パラメータ設定 
     82        $this->lfInitParam($objFormParam); 
     83        $objFormParam->setParam($_POST); 
     84        $objFormParam->convParam(); 
     85        // パラメーター読み込み 
     86        $this->arrForm = $objFormParam->getFormParamList(); 
     87        // 入力パラメーターチェック 
     88        $this->arrErr = $this->lfCheckError($objFormParam); 
     89        if(!SC_Utils_Ex::isBlank($this->arrErr)) { 
     90            return; 
     91        } 
    7092 
    7193        // POSTのモードがsearchなら顧客検索開始 
    7294        switch ($this->getMode()) { 
    7395        case 'search': 
    74             $this->objFormParam = new SC_FormParam(); 
    75             // 値の初期化 
    76             $this->lfInitParam(); 
    77             // POST値の取得 
    78             $this->objFormParam->setParam($_POST); 
    79             // 入力値の変換 
    80             $this->objFormParam->convParam(); 
    81  
    82             // 入力された値を取得する 
    83             $arrForm = $this->objFormParam->getHashArray(); 
    84  
    85             // エラーチェック 
    86             $this->arrErr = $this->lfCheckError(); 
    87             $is_select = empty($this->arrErr); 
    88  
    89             $sqlval = array(); 
    90             $where = ""; 
    91  
    92             if ($is_select) { 
    93                 $where = "del_flg = 0"; 
    94  
    95                 // 検索 
    96                 foreach($arrForm as $tmp_key => $val){ 
    97                     if( is_array($val) === false && 0 < strlen($val)){ 
    98                         $key = strtr($tmp_key , array('search_' => '')); 
    99                         switch($key){ 
    100                             case 'customer_id': 
    101                                 $where .= " AND customer_id = ? "; 
    102                                 $sqlval[] = $val; 
    103                                 break; 
    104                             case 'name01': 
    105                                     $where .= " AND name01 ILIKE ? "; 
    106                                     $sqlval[] = '%'.$val.'%'; 
    107                                 break; 
    108                             case 'name02': 
    109                                     $where .= " AND name02 ILIKE ? "; 
    110                                     $sqlval[] = '%'.$val.'%'; 
    111                                 break; 
    112                             case 'kana01': 
    113                                     $where .= " AND kana01 ILIKE ? "; 
    114                                     $sqlval[] = '%'.$val.'%'; 
    115                                 break; 
    116                             case 'kana02': 
    117                                     $where .= " AND kana02 ILIKE ? "; 
    118                                     $sqlval[] = '%'.$val.'%'; 
    119                                 break; 
    120                             default : 
    121                                 break; 
    122                         } 
    123                     } 
    124                 } 
    125             } 
    126  
    127  
    128             if( $is_select === true ){ 
    129                 $objQuery = new SC_Query(); 
    130  
    131                 // 既に購入した事がある顧客を取得 
    132                 $col = '*'; 
    133                 $from = 'dtb_customer'; 
    134                 $order = 'customer_id'; 
    135                 $arrCustomer = $objQuery->select($col, $from, $where, $sqlval); 
    136  
    137                 // 顧客情報を取得できたら、テンプレートに 
    138                 if( is_array($arrCustomer) === true && count($arrCustomer) > 0){ 
    139                     $customer_count = count($arrCustomer); 
    140                     if( $customer_count != 0 ){ 
    141                         $this->tpl_linemax = $customer_count; 
    142                     } 
    143                 } else { 
    144                     $this->tpl_linemax = null; 
    145                 } 
    146  
    147                 // ページ送りの処理 
    148                 if(isset($_POST['search_page_max']) 
    149                    && is_numeric($_POST['search_page_max'])) { 
    150                     $page_max = $_POST['search_page_max']; 
    151                 } else { 
    152                     $page_max = SEARCH_PMAX; 
    153                 } 
    154  
    155                 // ページ送りの取得 
    156                 $objNavi = new SC_PageNavi($_POST['search_pageno'], $customer_count, $page_max, "fnNaviSearchOnlyPage", NAVI_PMAX); 
    157                 $this->tpl_strnavi = $objNavi->strnavi;      // 表示文字列 
    158                 $startno = $objNavi->start_row; 
    159  
    160                 // 取得範囲の指定(開始行番号、行数のセット) 
    161                 $objQuery->setLimitOffset($page_max, $startno); 
    162                 // 表示順序 
    163                 $objQuery->setOrder($order); 
    164                 // 検索結果の取得 
    165                 $this->arrCustomer = $objQuery->select($col, $from, $where, $sqlval); 
    166             } 
     96            list($this->tpl_linemax, $this->arrCustomer, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray()); 
     97            $this->arrPagenavi = $this->objNavi->arrPagenavi; 
    16798            break; 
    16899        default: 
    169100            break; 
    170101        } 
    171         $this->arrForm = $arrForm; 
    172102        $this->setTemplate($this->tpl_mainpage); 
    173103    } 
     
    183113    } 
    184114 
    185     /* パラメータ情報の初期化 */ 
    186     function lfInitParam() { 
    187         $this->objFormParam->addParam("顧客ID", "search_customer_id", INT_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
    188         $this->objFormParam->addParam("顧客名(姓)", "search_name01", STEXT_LEN, "aKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    189         $this->objFormParam->addParam("顧客名(名)", "search_name02", STEXT_LEN, "aKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    190         $this->objFormParam->addParam("顧客名(カナ)", 'search_kana01', STEXT_LEN, "CKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    191         $this->objFormParam->addParam("顧客名(カナ/名)", 'search_kana02', STEXT_LEN, "CKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     115    /** 
     116     * パラメーター情報の初期化 
     117     * 
     118     * @param array $objFormParam フォームパラメータークラス 
     119     * @return void 
     120     */ 
     121    function lfInitParam(&$objFormParam) { 
     122        SC_Helper_Customer_Ex::sfSetSearchParam($objFormParam); 
    192123    } 
    193124 
    194     /* 入力内容のチェック */ 
    195     function lfCheckError() { 
    196         // 入力データを渡す。 
    197         $arrRet =  $this->objFormParam->getHashArray(); 
    198         $objErr = new SC_CheckError($arrRet); 
    199         $objErr->arrErr = $this->objFormParam->checkError(); 
     125    /** 
     126     * エラーチェック 
     127     * 
     128     * @param array $objFormParam フォームパラメータークラス 
     129     * @return array エラー配列 
     130     */ 
     131    function lfCheckError(&$objFormParam) { 
     132        return SC_Helper_Customer_Ex::sfCheckErrorSearchParam($objFormParam); 
     133    } 
    200134 
    201         return $objErr->arrErr; 
     135    /** 
     136     * 顧客一覧を検索する処理 
     137     * 
     138     * @param array $arrParam 検索パラメーター連想配列 
     139     * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト) 
     140     */ 
     141    function lfDoSearch($arrParam) { 
     142        return SC_Helper_Customer_Ex::sfGetSearchData($arrParam); 
    202143    } 
    203144} 
Note: See TracChangeset for help on using the changeset viewer.