Changeset 17269


Ignore:
Timestamp:
2008/04/18 09:50:45 (12 years ago)
Author:
miningbrownie
Message:

受注管理で購入商品からの検索機能を追加

MySQL5.0.45で動作確認済み

Location:
branches/comu-ver2/data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/Smarty/templates/default/admin/order/index.tpl

    r17182 r17269  
    203203                                </td> 
    204204                            </tr> 
     205                            <tr class="fs12n"> 
     206                                <td bgcolor="#f2f1ec" width="110">購入商品</td> 
     207                                <td bgcolor="#ffffff" width="499" colspan="3"> 
     208                                    <!--{assign var=key value="search_product_name"}--> 
     209                                    <span class="red12"><!--{$arrErr[$key1]}--></span> 
     210                                    <span class="red12"><!--{$arrErr[$key2]}--></span> 
     211                                    <input type="text" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|escape}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->"  size="6" class="box30" /> 
     212                                </td> 
     213                            </tr> 
    205214                        </table> 
    206215                        <table width="678" border="0" cellspacing="0" cellpadding="0" summary=" "> 
  • branches/comu-ver2/data/class/pages/admin/order/LC_Page_Admin_Order.php

    r16987 r17269  
    2727/* ペイジェント決済モジュール連携用 */ 
    2828if (file_exists(MODULE_PATH . 'mdl_paygent/include.php') === TRUE) { 
    29     require_once(MODULE_PATH . 'mdl_paygent/include.php'); 
     29    require_once(MODULE_PATH . 'mdl_paygent/include.php'); 
    3030} 
    3131 
    3232/** 
    33  * 受注管理 のページクラス. 
     33 * 受注管理 のページクラス 
    3434 * 
    3535 * @package Page 
     
    6161        $this->arrSex = $masterData->getMasterData("mtb_sex"); 
    6262        $this->arrPageMax = $masterData->getMasterData("mtb_page_max"); 
    63          
     63 
    6464        /* ペイジェント決済モジュール連携用 */ 
    6565        if(function_exists("sfPaygentOrderPage")) { 
     
    9191            if (ereg("^search_", $key)) { 
    9292                switch($key) { 
    93                 case 'search_order_sex': 
    94                 case 'search_payment_id': 
    95                     $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val); 
    96                     break; 
    97                 default: 
    98                     $this->arrHidden[$key] = $val; 
    99                     break; 
     93                    case 'search_order_sex': 
     94                    case 'search_payment_id': 
     95                        $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val); 
     96                        break; 
     97                    default: 
     98                        $this->arrHidden[$key] = $val; 
     99                        break; 
    100100                } 
    101101            } 
     
    104104        // ページ送り用 
    105105        $this->arrHidden['search_pageno'] = 
    106             isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; 
     106        isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; 
    107107 
    108108        // 認証可否の判定 
     
    122122 
    123123        switch($_POST['mode']) { 
    124         case 'delete': 
    125         case 'csv': 
    126         case 'delete_all': 
    127         case 'search': 
    128             // 入力値の変換 
    129             $this->objFormParam->convParam(); 
    130             $this->arrErr = $this->lfCheckError($arrRet); 
    131             $arrRet = $this->objFormParam->getHashArray(); 
    132             // 入力なし 
    133             if (count($this->arrErr) == 0) { 
    134                 $where = "del_flg = 0"; 
    135                 foreach ($arrRet as $key => $val) { 
    136                     if($val == "") { 
    137                         continue; 
     124            case 'delete': 
     125            case 'csv': 
     126            case 'delete_all': 
     127            case 'search': 
     128                // 入力値の変換 
     129                $this->objFormParam->convParam(); 
     130                $this->arrErr = $this->lfCheckError($arrRet); 
     131                $arrRet = $this->objFormParam->getHashArray(); 
     132                // 入力なし 
     133                if (count($this->arrErr) == 0) { 
     134                    $where = "del_flg = 0"; 
     135                    foreach ($arrRet as $key => $val) { 
     136                        if($val == "") { 
     137                            continue; 
     138                        } 
     139                        $val = SC_Utils_Ex::sfManualEscape($val); 
     140 
     141                        switch ($key) { 
     142 
     143                            case 'search_product_name': 
     144                                if(DB_TYPE == "pgsql"){ 
     145//                                    $val = mb_convert_encoding($val,"UTF-8",mb_detect_encoding($val)); 
     146                                    $where .= " AND (SELECT COUNT(*) FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_name ILIKE ?) > 0"; 
     147                                    $nonsp_val = ereg_replace("[  ]+","",$val); 
     148                                    $arrval[] = "%$nonsp_val%"; 
     149                                }elseif(DB_TYPE == "mysql"){ 
     150                                    $where .= " AND (SELECT COUNT(*) FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_name LIKE ?) > 0"; 
     151                                    $nonsp_val = ereg_replace("[  ]+","",$val); 
     152                                    $arrval[] = "%$nonsp_val%"; 
     153                                } 
     154                                break; 
     155                            case 'search_order_name': 
     156                                if(DB_TYPE == "pgsql"){ 
     157                                    $where .= " AND order_name01||order_name02 ILIKE ?"; 
     158                                }elseif(DB_TYPE == "mysql"){ 
     159                                    $where .= " AND concat(order_name01,order_name02) ILIKE ?"; 
     160                                } 
     161                                $nonsp_val = ereg_replace("[  ]+","",$val); 
     162                                $arrval[] = "%$nonsp_val%"; 
     163                                break; 
     164                            case 'search_order_kana': 
     165                                if(DB_TYPE == "pgsql"){ 
     166                                    $where .= " AND order_kana01||order_kana02 ILIKE ?"; 
     167                                }elseif(DB_TYPE == "mysql"){ 
     168                                    $where .= " AND concat(order_kana01,order_kana02) ILIKE ?"; 
     169                                } 
     170                                $nonsp_val = ereg_replace("[  ]+","",$val); 
     171                                $arrval[] = "%$nonsp_val%"; 
     172                                break; 
     173                            case 'search_order_id1': 
     174                                $where .= " AND order_id >= ?"; 
     175                                $arrval[] = $val; 
     176                                break; 
     177                            case 'search_order_id2': 
     178                                $where .= " AND order_id <= ?"; 
     179                                $arrval[] = $val; 
     180                                break; 
     181                            case 'search_order_sex': 
     182                                $tmp_where = ""; 
     183                                foreach($val as $element) { 
     184                                    if($element != "") { 
     185                                        if($tmp_where == "") { 
     186                                            $tmp_where .= " AND (order_sex = ?"; 
     187                                        } else { 
     188                                            $tmp_where .= " OR order_sex = ?"; 
     189                                        } 
     190                                        $arrval[] = $element; 
     191                                    } 
     192                                } 
     193 
     194                                if($tmp_where != "") { 
     195                                    $tmp_where .= ")"; 
     196                                    $where .= " $tmp_where "; 
     197                                } 
     198                                break; 
     199                            case 'search_order_tel': 
     200                                if(DB_TYPE == "pgsql"){ 
     201                                    $where .= " AND (order_tel01||order_tel02||order_tel03) ILIKE ?"; 
     202                                }elseif(DB_TYPE == "mysql"){ 
     203                                    $where .= " AND concat(order_tel01,order_tel02,order_tel03) ILIKE ?"; 
     204                                } 
     205                                $nonmark_val = ereg_replace("[()-]+","",$val); 
     206                                $arrval[] = "$nonmark_val%"; 
     207                                break; 
     208                            case 'search_order_email': 
     209                                $where .= " AND order_email ILIKE ?"; 
     210                                $arrval[] = "%$val%"; 
     211                                break; 
     212                            case 'search_payment_id': 
     213                                $tmp_where = ""; 
     214                                foreach($val as $element) { 
     215                                    if($element != "") { 
     216                                        if($tmp_where == "") { 
     217                                            $tmp_where .= " AND (payment_id = ?"; 
     218                                        } else { 
     219                                            $tmp_where .= " OR payment_id = ?"; 
     220                                        } 
     221                                        $arrval[] = $element; 
     222                                    } 
     223                                } 
     224 
     225                                if($tmp_where != "") { 
     226                                    $tmp_where .= ")"; 
     227                                    $where .= " $tmp_where "; 
     228                                } 
     229                                break; 
     230                            case 'search_total1': 
     231                                $where .= " AND total >= ?"; 
     232                                $arrval[] = $val; 
     233                                break; 
     234                            case 'search_total2': 
     235                                $where .= " AND total <= ?"; 
     236                                $arrval[] = $val; 
     237                                break; 
     238                            case 'search_startyear': 
     239                                $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); 
     240                                $where.= " AND update_date >= ?"; 
     241                                $arrval[] = $date; 
     242                                break; 
     243                            case 'search_endyear': 
     244                                $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday'], true); 
     245                                $where.= " AND update_date <= ?"; 
     246                                $arrval[] = $date; 
     247                                break; 
     248                            case 'search_sbirthyear': 
     249                                $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sbirthyear'], $_POST['search_sbirthmonth'], $_POST['search_sbirthday']); 
     250                                $where.= " AND order_birth >= ?"; 
     251                                $arrval[] = $date; 
     252                                break; 
     253                            case 'search_ebirthyear': 
     254                                $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_ebirthyear'], $_POST['search_ebirthmonth'], $_POST['search_ebirthday'], true); 
     255                                $where.= " AND order_birth <= ?"; 
     256                                $arrval[] = $date; 
     257                                break; 
     258                            case 'search_order_status': 
     259                                $where.= " AND status = ?"; 
     260                                $arrval[] = $val; 
     261                                break; 
     262                            default: 
     263                                if (!isset($arrval)) $arrval = array(); 
     264                                break; 
     265                        } 
    138266                    } 
    139                     $val = SC_Utils_Ex::sfManualEscape($val); 
    140  
    141                     switch ($key) { 
    142                     case 'search_order_name': 
    143                         if(DB_TYPE == "pgsql"){ 
    144                             $where .= " AND order_name01||order_name02 ILIKE ?"; 
    145                         }elseif(DB_TYPE == "mysql"){ 
    146                             $where .= " AND concat(order_name01,order_name02) ILIKE ?"; 
    147                         } 
    148                         $nonsp_val = ereg_replace("[  ]+","",$val); 
    149                         $arrval[] = "%$nonsp_val%"; 
    150                         break; 
    151                     case 'search_order_kana': 
    152                         if(DB_TYPE == "pgsql"){ 
    153                             $where .= " AND order_kana01||order_kana02 ILIKE ?"; 
    154                         }elseif(DB_TYPE == "mysql"){ 
    155                             $where .= " AND concat(order_kana01,order_kana02) ILIKE ?"; 
    156                         } 
    157                         $nonsp_val = ereg_replace("[  ]+","",$val); 
    158                         $arrval[] = "%$nonsp_val%"; 
    159                         break; 
    160                     case 'search_order_id1': 
    161                         $where .= " AND order_id >= ?"; 
    162                         $arrval[] = $val; 
    163                         break; 
    164                     case 'search_order_id2': 
    165                         $where .= " AND order_id <= ?"; 
    166                         $arrval[] = $val; 
    167                         break; 
    168                     case 'search_order_sex': 
    169                         $tmp_where = ""; 
    170                         foreach($val as $element) { 
    171                             if($element != "") { 
    172                                 if($tmp_where == "") { 
    173                                     $tmp_where .= " AND (order_sex = ?"; 
    174                                 } else { 
    175                                     $tmp_where .= " OR order_sex = ?"; 
    176                                 } 
    177                                 $arrval[] = $element; 
     267 
     268                    $order = "update_date DESC"; 
     269 
     270                    switch($_POST['mode']) { 
     271                        case 'csv': 
     272 
     273                            require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php"); 
     274                            $objCSV = new SC_Helper_CSV_Ex(); 
     275                            // オプションの指定 
     276                            $option = "ORDER BY $order"; 
     277 
     278                            // CSV出力タイトル行の作成 
     279                            $arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(3, " WHERE csv_id = 3 AND status = 1")); 
     280 
     281                            if (count($arrCsvOutput) <= 0) break; 
     282 
     283                            $arrCsvOutputCols = $arrCsvOutput['col']; 
     284                            $arrCsvOutputTitle = $arrCsvOutput['disp_name']; 
     285                            $head = SC_Utils_Ex::sfGetCSVList($arrCsvOutputTitle); 
     286                            $data = $objCSV->lfGetCSV("dtb_order", $where, $option, $arrval, $arrCsvOutputCols); 
     287 
     288                            // CSVを送信する。 
     289                            SC_Utils_Ex::sfCSVDownload($head.$data); 
     290                            exit; 
     291                            break; 
     292                        case 'delete_all': 
     293                            // 検索結果をすべて削除 
     294                            $sqlval['del_flg'] = 1; 
     295                            $objQuery = new SC_Query(); 
     296                            $objQuery->update("dtb_order", $sqlval, $where, $arrval); 
     297                            break; 
     298                        default: 
     299                            // 読み込む列とテーブルの指定 
     300                            $col = "*"; 
     301                            $from = "dtb_order"; 
     302 
     303                            $objQuery = new SC_Query(); 
     304                            // 行数の取得 
     305                            $linemax = $objQuery->count($from, $where, $arrval); 
     306                            $this->tpl_linemax = $linemax;               // 何件が該当しました。表示用 
     307                            // ページ送りの処理 
     308                            if(is_numeric($_POST['search_page_max'])) { 
     309                                $page_max = $_POST['search_page_max']; 
     310                            } else { 
     311                                $page_max = SEARCH_PMAX; 
    178312                            } 
    179                         } 
    180  
    181                         if($tmp_where != "") { 
    182                             $tmp_where .= ")"; 
    183                             $where .= " $tmp_where "; 
    184                         } 
    185                         break; 
    186                     case 'search_order_tel': 
    187                         if(DB_TYPE == "pgsql"){ 
    188                             $where .= " AND (order_tel01||order_tel02||order_tel03) ILIKE ?"; 
    189                         }elseif(DB_TYPE == "mysql"){ 
    190                             $where .= " AND concat(order_tel01,order_tel02,order_tel03) ILIKE ?"; 
    191                         } 
    192                         $nonmark_val = ereg_replace("[()-]+","",$val); 
    193                         $arrval[] = "$nonmark_val%"; 
    194                         break; 
    195                     case 'search_order_email': 
    196                         $where .= " AND order_email ILIKE ?"; 
    197                         $arrval[] = "%$val%"; 
    198                         break; 
    199                     case 'search_payment_id': 
    200                         $tmp_where = ""; 
    201                         foreach($val as $element) { 
    202                             if($element != "") { 
    203                                 if($tmp_where == "") { 
    204                                     $tmp_where .= " AND (payment_id = ?"; 
    205                                 } else { 
    206                                     $tmp_where .= " OR payment_id = ?"; 
    207                                 } 
    208                                 $arrval[] = $element; 
    209                             } 
    210                         } 
    211  
    212                         if($tmp_where != "") { 
    213                             $tmp_where .= ")"; 
    214                             $where .= " $tmp_where "; 
    215                         } 
    216                         break; 
    217                     case 'search_total1': 
    218                         $where .= " AND total >= ?"; 
    219                         $arrval[] = $val; 
    220                         break; 
    221                     case 'search_total2': 
    222                         $where .= " AND total <= ?"; 
    223                         $arrval[] = $val; 
    224                         break; 
    225                     case 'search_startyear': 
    226                         $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); 
    227                         $where.= " AND update_date >= ?"; 
    228                         $arrval[] = $date; 
    229                         break; 
    230                     case 'search_endyear': 
    231                         $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday'], true); 
    232                         $where.= " AND update_date <= ?"; 
    233                         $arrval[] = $date; 
    234                         break; 
    235                     case 'search_sbirthyear': 
    236                         $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sbirthyear'], $_POST['search_sbirthmonth'], $_POST['search_sbirthday']); 
    237                         $where.= " AND order_birth >= ?"; 
    238                         $arrval[] = $date; 
    239                         break; 
    240                     case 'search_ebirthyear': 
    241                         $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_ebirthyear'], $_POST['search_ebirthmonth'], $_POST['search_ebirthday'], true); 
    242                         $where.= " AND order_birth <= ?"; 
    243                         $arrval[] = $date; 
    244                         break; 
    245                     case 'search_order_status': 
    246                         $where.= " AND status = ?"; 
    247                         $arrval[] = $val; 
    248                         break; 
    249                     default: 
    250                         if (!isset($arrval)) $arrval = array(); 
    251                         break; 
     313 
     314                            // ページ送りの取得 
     315                            $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'], 
     316                            $linemax, $page_max, 
     317                                               "fnNaviSearchPage", NAVI_PMAX); 
     318                            $startno = $objNavi->start_row; 
     319                            $this->arrPagenavi = $objNavi->arrPagenavi; 
     320 
     321                            // 取得範囲の指定(開始行番号、行数のセット) 
     322                            $objQuery->setlimitoffset($page_max, $startno); 
     323                            // 表示順序 
     324                            $objQuery->setorder($order); 
     325                            // 検索結果の取得 
     326                            $this->arrResults = $objQuery->select($col, $from, $where, $arrval); 
    252327                    } 
    253328                } 
    254  
    255                 $order = "update_date DESC"; 
    256  
    257                 switch($_POST['mode']) { 
    258                 case 'csv': 
    259  
    260                     require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php"); 
    261                     $objCSV = new SC_Helper_CSV_Ex(); 
    262                     // オプションの指定 
    263                     $option = "ORDER BY $order"; 
    264  
    265                     // CSV出力タイトル行の作成 
    266                     $arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput(3, " WHERE csv_id = 3 AND status = 1")); 
    267  
    268                     if (count($arrCsvOutput) <= 0) break; 
    269  
    270                     $arrCsvOutputCols = $arrCsvOutput['col']; 
    271                     $arrCsvOutputTitle = $arrCsvOutput['disp_name']; 
    272                     $head = SC_Utils_Ex::sfGetCSVList($arrCsvOutputTitle); 
    273                     $data = $objCSV->lfGetCSV("dtb_order", $where, $option, $arrval, $arrCsvOutputCols); 
    274  
    275                     // CSVを送信する。 
    276                     SC_Utils_Ex::sfCSVDownload($head.$data); 
    277                     exit; 
    278                     break; 
    279                 case 'delete_all': 
    280                     // 検索結果をすべて削除 
    281                     $sqlval['del_flg'] = 1; 
    282                     $objQuery = new SC_Query(); 
    283                     $objQuery->update("dtb_order", $sqlval, $where, $arrval); 
    284                     break; 
    285                 default: 
    286                     // 読み込む列とテーブルの指定 
    287                     $col = "*"; 
    288                     $from = "dtb_order"; 
    289  
    290                     $objQuery = new SC_Query(); 
    291                     // 行数の取得 
    292                     $linemax = $objQuery->count($from, $where, $arrval); 
    293                     $this->tpl_linemax = $linemax;               // 何件が該当しました。表示用 
    294  
    295                     // ページ送りの処理 
    296                     if(is_numeric($_POST['search_page_max'])) { 
    297                         $page_max = $_POST['search_page_max']; 
    298                     } else { 
    299                         $page_max = SEARCH_PMAX; 
    300                     } 
    301  
    302                     // ページ送りの取得 
    303                     $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'], 
    304                                                $linemax, $page_max, 
    305                                                "fnNaviSearchPage", NAVI_PMAX); 
    306                     $startno = $objNavi->start_row; 
    307                     $this->arrPagenavi = $objNavi->arrPagenavi; 
    308  
    309                     // 取得範囲の指定(開始行番号、行数のセット) 
    310                     $objQuery->setlimitoffset($page_max, $startno); 
    311                     // 表示順序 
    312                     $objQuery->setorder($order); 
    313                     // 検索結果の取得 
    314                     $this->arrResults = $objQuery->select($col, $from, $where, $arrval); 
    315                 } 
    316             } 
    317             break; 
    318  
    319         default: 
    320             break; 
     329                break; 
     330 
     331                        default: 
     332                            break; 
    321333        } 
    322334 
     
    341353 
    342354        $objView->assignobj($this); 
    343         $objView->display(MAIN_FRAME); 
     355                $objView->display(MAIN_FRAME); 
    344356    } 
    345357 
     
    381393        $this->objFormParam->addParam("終了日", "search_ebirthmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    382394        $this->objFormParam->addParam("終了日", "search_ebirthday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     395        $this->objFormParam->addParam("購入商品","search_product_name",STEXT_LEN,"KVa",array("MAX_LENGTH_CHECK")); 
     396 
    383397    } 
    384398 
     
    397411        $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE")); 
    398412        $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM")); 
    399  
    400413        $objErr->doFunc(array("開始日", "search_sbirthyear", "search_sbirthmonth", "search_sbirthday"), array("CHECK_DATE")); 
    401414        $objErr->doFunc(array("終了日", "search_ebirthyear", "search_ebirthmonth", "search_ebirthday"), array("CHECK_DATE")); 
Note: See TracChangeset for help on using the changeset viewer.