Changeset 20133 for branches/version-2_5-dev/data/class
- Timestamp:
- 2011/02/10 22:19:59 (15 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20132
- bzr:committer:
- Kentaro Ohkouchi <[email protected]>
- bzr:file-ids:
data/Smarty/templates/admin/order/index.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Forder%2Findex.tpl
data/class/SC_FormParam.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_FormParam.php
data/class/pages/admin/order/LC_Page_Admin_Order.php 15584@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Forder%2FLC_Page_Admin_Order.php
data/class/util/SC_Utils.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Futil%2FSC_Utils.php- bzr:mapping-version:
- v4
- bzr:merge:
[email protected]- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- [email protected]
- bzr:revno:
- 2861
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:text-revisions:
data/Smarty/templates/admin/order/index.tpl [email protected]
data/class/SC_FormParam.php [email protected]
data/class/pages/admin/order/LC_Page_Admin_Order.php [email protected]- bzr:timestamp:
- 2011-02-10 22:19:56.332000017 +0900
- bzr:user-agent:
- bzr2.2.1+bzr-svn1.0.4
- svn:original-date:
- 2011-02-10T13:19:56.332000Z
- Location:
- branches/version-2_5-dev/data/class
- Files:
-
- 3 edited
-
SC_FormParam.php (modified) (4 diffs)
-
pages/admin/order/LC_Page_Admin_Order.php (modified) (5 diffs)
-
util/SC_Utils.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/SC_FormParam.php
r20127 r20133 26 26 * 27 27 * :XXX: addParam と setParam で言う「パラメータ」が用語として競合しているように感じる。(2009/10/17 Seasoft 塚田) 28 * TODO 配列の再帰処理29 28 * 30 29 * @package SC … … 202 201 case 'FILE_NAME_CHECK': 203 202 case 'MOBILE_EMAIL_CHECK': 204 $this->recursionCheck($this->disp_name[$cnt], $func,205 $this->param[$cnt], $objErr->arrErr,206 $val, $this->length[$cnt]);207 break;208 203 case 'MAX_LENGTH_CHECK': 209 204 case 'MIN_LENGTH_CHECK': … … 398 393 } 399 394 400 function splitCheckBoxes($keyname) { 401 $cnt = 0; 402 foreach($this->keyname as $val) { 403 if($val == $keyname) { 404 $this->param[$cnt] = sfSplitCheckBoxes($this->param[$cnt]); 405 } 406 $cnt++; 407 } 408 } 409 395 /** 396 * @deprecated 397 */ 410 398 function splitParamCheckBoxes($keyname) { 411 399 $cnt = 0; … … 450 438 } 451 439 } 440 441 /** 442 * 検索結果引き継ぎ用の連想配列を取得する. 443 * 444 * 引数で指定した文字列で始まるパラメータ名の入力値を連想配列で取得する. 445 * 446 * @param string $prefix パラメータ名の接頭辞 447 * @return array 検索結果引き継ぎ用の連想配列. 448 */ 449 function getSearchArray($prefix = 'search_') { 450 $cnt = 0; 451 $arrResults = array(); 452 foreach ($this->keyname as $key) { 453 if (preg_match('/^' . $prefix . '/', $key)) { 454 $arrResults[$key] = isset($this->param[$cnt]) 455 ? $this->param[$cnt] : ""; 456 } 457 $cnt++; 458 } 459 return $arrResults; 460 } 452 461 } 453 462 ?> -
branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order.php
r20128 r20133 24 24 // {{{ requires 25 25 require_once(CLASS_REALDIR . "pages/admin/LC_Page_Admin.php"); 26 27 /* ペイジェント決済モジュール連携用 */28 if (file_exists(MODULE_REALDIR . 'mdl_paygent/include.php') === TRUE) {29 require_once(MODULE_REALDIR . 'mdl_paygent/include.php');30 }31 26 32 27 /** … … 61 56 $this->arrSex = $masterData->getMasterData("mtb_sex"); 62 57 $this->arrPageMax = $masterData->getMasterData("mtb_page_max"); 63 64 /* ペイジェント決済モジュール連携用 */65 if(function_exists("sfPaygentOrderPage")) {66 $this->arrDispKind = sfPaygentOrderPage();67 }68 $this->httpCacheControl('nocache');69 }70 71 /**72 * Page のプロセス.73 *74 * @return void75 */76 function process() {77 $this->action();78 $this->sendResponse();79 }80 81 /**82 * Page のアクション.83 *84 * @return void85 */86 function action() {87 $objDb = new SC_Helper_DB_Ex();88 $objSess = new SC_Session();89 // パラメータ管理クラス90 $this->objFormParam = new SC_FormParam();91 // パラメータ情報の初期化92 $this->lfInitParam();93 $this->objFormParam->setParam($_POST);94 95 $this->objFormParam->splitParamCheckBoxes('search_order_sex');96 $this->objFormParam->splitParamCheckBoxes('search_payment_id');97 98 // 検索ワードの引き継ぎ99 foreach ($_POST as $key => $val) {100 if (ereg("^search_", $key)) {101 switch($key) {102 case 'search_order_sex':103 case 'search_payment_id':104 $this->arrHidden[$key] = SC_Utils_Ex::sfMergeParamCheckBoxes($val);105 break;106 default:107 $this->arrHidden[$key] = $val;108 break;109 }110 }111 }112 113 // ページ送り用114 $this->arrHidden['search_pageno'] =115 isset($_POST['search_pageno']) ? $_POST['search_pageno'] : "";116 117 // 認証可否の判定118 SC_Utils_Ex::sfIsSuccess($objSess);119 120 if (!isset($arrRet)) $arrRet = array();121 122 switch($this->getMode()) {123 case 'delete':124 if(SC_Utils_Ex::sfIsInt($_POST['order_id'])) {125 $objQuery = new SC_Query();126 $where = "order_id = ?";127 $sqlval['del_flg'] = '1';128 $objQuery->update("dtb_order", $sqlval, $where, array($_POST['order_id']));129 }130 case 'csv':131 case 'delete_all':132 case 'search':133 // 入力値の変換134 $this->objFormParam->convParam();135 $this->arrErr = $this->lfCheckError($arrRet);136 $arrRet = $this->objFormParam->getHashArray();137 // 入力なし138 if (count($this->arrErr) == 0) {139 $where = "del_flg = 0";140 foreach ($arrRet as $key => $val) {141 if($val == "") {142 continue;143 }144 145 $dbFactory = SC_DB_DBFactory::getInstance();146 switch ($key) {147 148 case 'search_product_name':149 $where .= " AND (SELECT COUNT(*) FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_name ILIKE ?) > 0";150 $nonsp_val = mb_ereg_replace("[ ]+","",$val);151 $arrval[] = "%$nonsp_val%";152 break;153 case 'search_order_name':154 $where .= " AND " . $dbFactory->concatColumn(array("order_name01", "order_name02")) . " ILIKE ?";155 $nonsp_val = mb_ereg_replace("[ ]+","",$val);156 $arrval[] = "%$nonsp_val%";157 break;158 case 'search_order_kana':159 $where .= " AND " . $dbFactory->concatColumn(array("order_kana01", "order_kana02")) . " ILIKE ?";160 $nonsp_val = mb_ereg_replace("[ ]+","",$val);161 $arrval[] = "%$nonsp_val%";162 break;163 case 'search_order_id1':164 $where .= " AND order_id >= ?";165 $arrval[] = $val;166 break;167 case 'search_order_id2':168 $where .= " AND order_id <= ?";169 $arrval[] = $val;170 break;171 case 'search_order_sex':172 $tmp_where = "";173 foreach($val as $element) {174 if($element != "") {175 if($tmp_where == "") {176 $tmp_where .= " AND (order_sex = ?";177 } else {178 $tmp_where .= " OR order_sex = ?";179 }180 $arrval[] = $element;181 }182 }183 184 if($tmp_where != "") {185 $tmp_where .= ")";186 $where .= " $tmp_where ";187 }188 break;189 case 'search_order_tel':190 $where .= " AND (" . $dbFactory->concatColumn(array("order_tel01", "order_tel02", "order_tel03")) . " ILIKE ?)";191 $nonmark_val = ereg_replace("[()-]+","",$val);192 $arrval[] = "%$nonmark_val%";193 break;194 case 'search_order_email':195 $where .= " AND order_email ILIKE ?";196 $arrval[] = "%$val%";197 break;198 case 'search_payment_id':199 $tmp_where = "";200 foreach($val as $element) {201 if($element != "") {202 if($tmp_where == "") {203 $tmp_where .= " AND (payment_id = ?";204 } else {205 $tmp_where .= " OR payment_id = ?";206 }207 $arrval[] = $element;208 }209 }210 211 if($tmp_where != "") {212 $tmp_where .= ")";213 $where .= " $tmp_where ";214 }215 break;216 case 'search_total1':217 $where .= " AND total >= ?";218 $arrval[] = $val;219 break;220 case 'search_total2':221 $where .= " AND total <= ?";222 $arrval[] = $val;223 break;224 case 'search_sorderyear':225 $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sorderyear'], $_POST['search_sordermonth'], $_POST['search_sorderday']);226 $where.= " AND create_date >= ?";227 $arrval[] = $date;228 break;229 case 'search_eorderyear':230 $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_eorderyear'], $_POST['search_eordermonth'], $_POST['search_eorderday'], true);231 $where.= " AND create_date <= ?";232 $arrval[] = $date;233 break;234 case 'search_supdateyear':235 $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_supdateyear'], $_POST['search_supdatemonth'], $_POST['search_supdateday']);236 $where.= " AND update_date >= ?";237 $arrval[] = $date;238 break;239 case 'search_eupdateyear':240 $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_eupdateyear'], $_POST['search_eupdatemonth'], $_POST['search_eupdateday'], true);241 $where.= " AND update_date <= ?";242 $arrval[] = $date;243 break;244 case 'search_sbirthyear':245 $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_sbirthyear'], $_POST['search_sbirthmonth'], $_POST['search_sbirthday']);246 $where.= " AND order_birth >= ?";247 $arrval[] = $date;248 break;249 case 'search_ebirthyear':250 $date = SC_Utils_Ex::sfGetTimestamp($_POST['search_ebirthyear'], $_POST['search_ebirthmonth'], $_POST['search_ebirthday'], true);251 $where.= " AND order_birth <= ?";252 $arrval[] = $date;253 break;254 case 'search_order_status':255 $where.= " AND status = ?";256 $arrval[] = $val;257 break;258 default:259 if (!isset($arrval)) $arrval = array();260 break;261 }262 }263 264 $order = "update_date DESC";265 //TODO 要リファクタリング(MODE 入れ子switch)266 switch($this->getMode()) {267 case 'csv':268 269 require_once(CLASS_EX_REALDIR . "helper_extends/SC_Helper_CSV_Ex.php");270 $objCSV = new SC_Helper_CSV_Ex();271 // オプションの指定272 $option = "ORDER BY $order";273 274 // CSV出力タイトル行の作成275 $arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfGetCsvOutput(3, 'status = 1'));276 277 if (count($arrCsvOutput) <= 0) break;278 279 $arrCsvOutputCols = $arrCsvOutput['col'];280 $arrCsvOutputConvs = $arrCsvOutput['conv'];281 $arrCsvOutputTitle = $arrCsvOutput['disp_name'];282 $head = SC_Utils_Ex::sfGetCSVList($arrCsvOutputTitle);283 $data = $objCSV->lfGetCSV("dtb_order", $where, $option, $arrval, $arrCsvOutputCols, $arrCsvOutputConvs);284 285 // CSVを送信する。286 list($fime_name, $data) = SC_Utils_Ex::sfGetCSVData($head.$data);287 $this->sendResponseCSV($fime_name, $data);288 exit;289 break;290 case 'delete_all':291 // 検索結果をすべて削除292 $sqlval['del_flg'] = 1;293 $objQuery = new SC_Query();294 $objQuery->update("dtb_order", $sqlval, $where, $arrval);295 break;296 default:297 // 読み込む列とテーブルの指定298 $col = "*";299 $from = "dtb_order";300 301 $objQuery = new SC_Query();302 // 行数の取得303 $linemax = $objQuery->count($from, $where, $arrval);304 $this->tpl_linemax = $linemax; // 何件が該当しました。表示用305 // ページ送りの処理306 if(is_numeric($_POST['search_page_max'])) {307 $page_max = $_POST['search_page_max'];308 } else {309 $page_max = SEARCH_PMAX;310 }311 312 // ページ送りの取得313 $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'],314 $linemax, $page_max,315 "fnNaviSearchPage", NAVI_PMAX);316 $startno = $objNavi->start_row;317 $this->arrPagenavi = $objNavi->arrPagenavi;318 319 // 取得範囲の指定(開始行番号、行数のセット)320 $objQuery->setLimitOffset($page_max, $startno);321 // 表示順序322 $objQuery->setOrder($order);323 // 検索結果の取得324 $this->arrResults = $objQuery->select($col, $from, $where, $arrval);325 }326 }327 break;328 329 default:330 break;331 }332 58 333 59 $objDate = new SC_Date(); … … 344 70 $this->arrDay = $objDate->getDay(); 345 71 346 // 入力値の取得347 $this->arrForm = $this->objFormParam->getFormParamList();348 72 // 支払い方法の取得 349 $arrRet = $objDb->sfGetPayment(); 350 $this->arrPayment = SC_Utils_Ex::sfArrKeyValue($arrRet, 'payment_id', 'payment_method'); 73 $this->arrPayments = SC_Helper_DB_Ex::sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); 74 75 $this->httpCacheControl('nocache'); 76 } 77 78 /** 79 * Page のプロセス. 80 * 81 * @return void 82 */ 83 function process() { 84 $this->action(); 85 $this->sendResponse(); 86 } 87 88 /** 89 * Page のアクション. 90 * 91 * @return void 92 */ 93 function action() { 94 // 認証可否の判定 95 SC_Utils_Ex::sfIsSuccess(new SC_Session()); 96 97 $objFormParam = new SC_FormParam(); 98 $this->lfInitParam($objFormParam); 99 $objFormParam->setParam($_POST); 100 $this->arrHidden = $objFormParam->getSearchArray(); 101 $this->arrForm = $objFormParam->getFormParamList(); 102 103 switch($this->getMode()) { 104 // 削除 105 case 'delete': 106 $this->doDelete('order_id = ?', 107 array($objFormParam->getValue('order_id'))); 108 // 削除後に検索結果を表示するため breakしない 109 110 // 検索パラメータ生成後に処理実行するため breakしない 111 case 'csv': 112 case 'delete_all': 113 114 // 検索パラメータの生成 115 case 'search': 116 $objFormParam->convParam(); 117 $objFormParam->trimParam(); 118 $this->arrErr = $this->lfCheckError($objFormParam); 119 $arrParam = $objFormParam->getHashArray(); 120 121 if (count($this->arrErr) == 0) { 122 $where = "del_flg = 0"; 123 foreach ($arrParam as $key => $val) { 124 if($val == "") { 125 continue; 126 } 127 $this->buildQuery($key, $where, $arrval, $objFormParam); 128 } 129 130 $order = "update_date DESC"; 131 132 /* ----------------------------------------------- 133 * 処理を実行 134 * ----------------------------------------------- */ 135 switch($this->getMode()) { 136 // CSVを送信する。 137 case 'csv': 138 list($file_name, $data) = $this->getCSV($where, $arrval, 139 $order); 140 $this->sendResponseCSV($file_name, $data); 141 exit; 142 break; 143 144 // 全件削除(ADMIN_MODE) 145 case 'delete_all': 146 $this->doDelete($where, $arrval); 147 break; 148 149 // 検索実行 150 default: 151 // 行数の取得 152 $this->tpl_linemax = $this->getNumberOfLines($where, $arrval); 153 // ページ送りの処理 154 $page_max = $this->getPageMax($objFormParam); 155 // ページ送りの取得 156 $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'], 157 $this->tpl_linemax, $page_max, 158 "fnNaviSearchPage", NAVI_PMAX); 159 $this->arrPagenavi = $objNavi->arrPagenavi; 160 161 // 検索結果の取得 162 $this->arrResults = $this->findOrders($where, $arrval, 163 $page_max, $objNavi->start_row, $order); 164 } 165 } 166 break; 167 default: 168 } 351 169 } 352 170 … … 360 178 } 361 179 362 /* パラメータ情報の初期化 */ 363 function lfInitParam() { 364 $this->objFormParam->addParam("注文番号1", "search_order_id1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 365 $this->objFormParam->addParam("注文番号2", "search_order_id2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 366 $this->objFormParam->addParam("対応状況", "search_order_status", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 367 $this->objFormParam->addParam("顧客名", "search_order_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 368 $this->objFormParam->addParam("顧客名(カナ)", "search_order_kana", STEXT_LEN, "KVCa", array("KANA_CHECK","MAX_LENGTH_CHECK")); 369 $this->objFormParam->addParam("性別", "search_order_sex", INT_LEN, "n", array("MAX_LENGTH_CHECK")); 370 $this->objFormParam->addParam("年齢1", "search_age1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 371 $this->objFormParam->addParam("年齢2", "search_age2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 372 $this->objFormParam->addParam("メールアドレス", "search_order_email", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 373 $this->objFormParam->addParam("TEL", "search_order_tel", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 374 $this->objFormParam->addParam("支払い方法", "search_payment_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 375 $this->objFormParam->addParam("購入金額1", "search_total1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 376 $this->objFormParam->addParam("購入金額2", "search_total2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 377 $this->objFormParam->addParam("表示件数", "search_page_max", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 180 /** 181 * パラメータ情報の初期化を行う. 182 * 183 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 184 * @return void 185 */ 186 function lfInitParam(&$objFormParam) { 187 $objFormParam->addParam("注文番号1", "search_order_id1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 188 $objFormParam->addParam("注文番号2", "search_order_id2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 189 $objFormParam->addParam("対応状況", "search_order_status", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 190 $objFormParam->addParam("顧客名", "search_order_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 191 $objFormParam->addParam("顧客名(カナ)", "search_order_kana", STEXT_LEN, "KVCa", array("KANA_CHECK","MAX_LENGTH_CHECK")); 192 $objFormParam->addParam("性別", "search_order_sex", INT_LEN, "n", array("MAX_LENGTH_CHECK")); 193 $objFormParam->addParam("年齢1", "search_age1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 194 $objFormParam->addParam("年齢2", "search_age2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 195 $objFormParam->addParam("メールアドレス", "search_order_email", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 196 $objFormParam->addParam("TEL", "search_order_tel", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 197 $objFormParam->addParam("支払い方法", "search_payment_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 198 $objFormParam->addParam("購入金額1", "search_total1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 199 $objFormParam->addParam("購入金額2", "search_total2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 200 $objFormParam->addParam("表示件数", "search_page_max", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 378 201 // 受注日 379 $ this->objFormParam->addParam("開始年", "search_sorderyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));380 $ this->objFormParam->addParam("開始月", "search_sordermonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));381 $ this->objFormParam->addParam("開始日", "search_sorderday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));382 $ this->objFormParam->addParam("終了年", "search_eorderyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));383 $ this->objFormParam->addParam("終了月", "search_eordermonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));384 $ this->objFormParam->addParam("終了日", "search_eorderday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));202 $objFormParam->addParam("開始年", "search_sorderyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 203 $objFormParam->addParam("開始月", "search_sordermonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 204 $objFormParam->addParam("開始日", "search_sorderday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 205 $objFormParam->addParam("終了年", "search_eorderyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 206 $objFormParam->addParam("終了月", "search_eordermonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 207 $objFormParam->addParam("終了日", "search_eorderday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 385 208 // 更新日 386 $ this->objFormParam->addParam("開始年", "search_supdateyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));387 $ this->objFormParam->addParam("開始月", "search_supdatemonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));388 $ this->objFormParam->addParam("開始日", "search_supdateday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));389 $ this->objFormParam->addParam("終了年", "search_eupdateyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));390 $ this->objFormParam->addParam("終了月", "search_eupdatemonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));391 $ this->objFormParam->addParam("終了日", "search_eupdateday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));209 $objFormParam->addParam("開始年", "search_supdateyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 210 $objFormParam->addParam("開始月", "search_supdatemonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 211 $objFormParam->addParam("開始日", "search_supdateday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 212 $objFormParam->addParam("終了年", "search_eupdateyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 213 $objFormParam->addParam("終了月", "search_eupdatemonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 214 $objFormParam->addParam("終了日", "search_eupdateday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 392 215 // 生年月日 393 $this->objFormParam->addParam("開始年", "search_sbirthyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 394 $this->objFormParam->addParam("開始月", "search_sbirthmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 395 $this->objFormParam->addParam("開始日", "search_sbirthday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 396 $this->objFormParam->addParam("終了年", "search_ebirthyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 397 $this->objFormParam->addParam("終了月", "search_ebirthmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 398 $this->objFormParam->addParam("終了日", "search_ebirthday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 399 $this->objFormParam->addParam("購入商品","search_product_name",STEXT_LEN,"KVa",array("MAX_LENGTH_CHECK")); 400 401 } 402 403 /* 入力内容のチェック */ 404 function lfCheckError() { 405 // 入力データを渡す。 406 $arrRet = $this->objFormParam->getHashArray(); 407 $objErr = new SC_CheckError($arrRet); 408 $objErr->arrErr = $this->objFormParam->checkError(); 409 410 // 特殊項目チェック 216 $objFormParam->addParam("開始年", "search_sbirthyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 217 $objFormParam->addParam("開始月", "search_sbirthmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 218 $objFormParam->addParam("開始日", "search_sbirthday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 219 $objFormParam->addParam("終了年", "search_ebirthyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 220 $objFormParam->addParam("終了月", "search_ebirthmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 221 $objFormParam->addParam("終了日", "search_ebirthday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 222 $objFormParam->addParam("購入商品","search_product_name",STEXT_LEN,"KVa",array("MAX_LENGTH_CHECK")); 223 $objFormParam->addParam("ページ送り番号","search_pageno", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 224 $objFormParam->addParam("受注ID", "order_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 225 } 226 227 /** 228 * 入力内容のチェックを行う. 229 * 230 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 231 * @return void 232 */ 233 function lfCheckError(&$objFormParam) { 234 $objErr = new SC_CheckError($objFormParam->getHashArray()); 235 $objErr->arrErr = $objFormParam->checkError(); 236 237 // 相関チェック 411 238 $objErr->doFunc(array("注文番号1", "注文番号2", "search_order_id1", "search_order_id2"), array("GREATER_CHECK")); 412 239 $objErr->doFunc(array("年齢1", "年齢2", "search_age1", "search_age2"), array("GREATER_CHECK")); … … 428 255 } 429 256 430 257 /** 258 * クエリを構築する. 259 * 260 * 検索条件のキーに応じた WHERE 句と, クエリパラメータを構築する. 261 * クエリパラメータは, SC_FormParam の入力値から取得する. 262 * 263 * 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される. 264 * 265 * @param string $key 検索条件のキー 266 * @param string $where 構築する WHERE 句 267 * @param array $arrValues 構築するクエリパラメータ 268 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 269 * @return void 270 */ 271 function buildQuery($key, &$where, &$arrValues, &$objFormParam) { 272 $dbFactory = SC_DB_DBFactory::getInstance(); 273 switch ($key) { 274 275 case 'search_product_name': 276 $where .= " AND (SELECT COUNT(*) FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_name LIKE ?) > 0"; 277 $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); 278 break; 279 case 'search_order_name': 280 $where .= " AND " . $dbFactory->concatColumn(array("order_name01", "order_name02")) . " LIKE ?"; 281 $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); 282 break; 283 case 'search_order_kana': 284 $where .= " AND " . $dbFactory->concatColumn(array("order_kana01", "order_kana02")) . " LIKE ?"; 285 $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); 286 break; 287 case 'search_order_id1': 288 $where .= " AND order_id >= ?"; 289 $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); 290 break; 291 case 'search_order_id2': 292 $where .= " AND order_id <= ?"; 293 $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); 294 break; 295 case 'search_order_sex': 296 $tmp_where = ""; 297 foreach($objFormParam->getValue($key) as $element) { 298 if($element != "") { 299 if(SC_Utils_Ex::isBlank($tmp_where)) { 300 $tmp_where .= " AND (order_sex = ?"; 301 } else { 302 $tmp_where .= " OR order_sex = ?"; 303 } 304 $arrValues[] = $element; 305 } 306 } 307 308 if(!SC_Utils_Ex::isBlank($tmp_where)) { 309 $tmp_where .= ")"; 310 $where .= " $tmp_where "; 311 } 312 break; 313 case 'search_order_tel': 314 $where .= " AND (" . $dbFactory->concatColumn(array("order_tel01", "order_tel02", "order_tel03")) . " LIKE ?)"; 315 $arrValues[] = sprintf('%%%d%%', preg_replace('/[()-]+/','', $objFormParam->getValue($key))); 316 break; 317 case 'search_order_email': 318 $where .= " AND order_email LIKE ?"; 319 $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); 320 break; 321 case 'search_payment_id': 322 $tmp_where = ""; 323 foreach($objFormParam->getValue($key) as $element) { 324 if($element != "") { 325 if($tmp_where == "") { 326 $tmp_where .= " AND (payment_id = ?"; 327 } else { 328 $tmp_where .= " OR payment_id = ?"; 329 } 330 $arrValues[] = $element; 331 } 332 } 333 334 if(!SC_Utils_Ex::isBlank($tmp_where)) { 335 $tmp_where .= ")"; 336 $where .= " $tmp_where "; 337 } 338 break; 339 case 'search_total1': 340 $where .= " AND total >= ?"; 341 $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); 342 break; 343 case 'search_total2': 344 $where .= " AND total <= ?"; 345 $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); 346 break; 347 case 'search_sorderyear': 348 $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_sorderyear'), 349 $objFormParam->getValue('search_sordermonth'), 350 $objFormParam->getValue('search_sorderday')); 351 $where.= " AND create_date >= ?"; 352 $arrValues[] = $date; 353 break; 354 case 'search_eorderyear': 355 $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_eorderyear'), 356 $objFormParam->getValue('search_eordermonth'), 357 $objFormParam->getValue('search_eorderday'), true); 358 $where.= " AND create_date <= ?"; 359 $arrValues[] = $date; 360 break; 361 case 'search_supdateyear': 362 $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_supdateyear'), 363 $objFormParam->getValue('search_supdatemonth'), 364 $objFormParam->getValue('search_supdateday')); 365 $where.= " AND update_date >= ?"; 366 $arrValues[] = $date; 367 break; 368 case 'search_eupdateyear': 369 $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_eupdateyear'), 370 $objFormParam->getValue('search_eupdatemonth'), 371 $objFormParam->getValue('search_eupdateday'), true); 372 $where.= " AND update_date <= ?"; 373 $arrValues[] = $date; 374 break; 375 case 'search_sbirthyear': 376 $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_sbirthyear'), 377 $objFormParam->getValue('search_sbirthmonth'), 378 $objFormParam->getValue('search_sbirthday')); 379 $where.= " AND order_birth >= ?"; 380 $arrValues[] = $date; 381 break; 382 case 'search_ebirthyear': 383 $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_ebirthyear'), 384 $objFormParam->getValue('search_ebirthmonth'), 385 $objFormParam->getValue('search_ebirthday'), true); 386 $where.= " AND order_birth <= ?"; 387 $arrValues[] = $date; 388 break; 389 case 'search_order_status': 390 $where.= " AND status = ?"; 391 $arrValues[] = $objFormParam->getValue($key); 392 break; 393 default: 394 } 395 } 396 397 /** 398 * 受注を削除する. 399 * 400 * @param string $where 削除対象の WHERE 句 401 * @param array $arrParam 削除対象の値 402 * @return void 403 */ 404 function doDelete($where, $arrParam = array()) { 405 $objQuery =& SC_Query::getSingletonInstance(); 406 $objQuery->update("dtb_order", array('del_flg' => 1), $where, 407 $arrParam); 408 } 409 410 /** 411 * CSV データを構築して取得する. 412 * 413 * 構築に成功した場合は, ファイル名と出力内容を配列で返す. 414 * 構築に失敗した場合は, false を返す. 415 * 416 * @param string $where 検索条件の WHERE 句 417 * @param array $arrValues 検索条件のパラメータ 418 * @param string $order 検索結果の並び順 419 * @return array|boolean 構築に成功した場合, ファイルと出力内容の配列; 420 * 失敗した場合 false 421 */ 422 function getCSV($where, $arrValues, $order) { 423 require_once(CLASS_EX_REALDIR . "helper_extends/SC_Helper_CSV_Ex.php"); 424 $objCSV = new SC_Helper_CSV_Ex(); 425 426 $option = "ORDER BY $order"; 427 428 // CSV出力タイトル行の作成 429 $arrCsvOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfGetCsvOutput(3, 'status = 1')); 430 431 if (count($arrCsvOutput) <= 0) { 432 return false; 433 } 434 435 $arrCsvOutputCols = $arrCsvOutput['col']; 436 $arrCsvOutputConvs = $arrCsvOutput['conv']; 437 $arrCsvOutputTitle = $arrCsvOutput['disp_name']; 438 $head = SC_Utils_Ex::sfGetCSVList($arrCsvOutputTitle); 439 $data = $objCSV->lfGetCSV("dtb_order", $where, $option, $arrValues, 440 $arrCsvOutputCols, $arrCsvOutputConvs); 441 return SC_Utils_Ex::sfGetCSVData($head . $data); 442 } 443 444 /** 445 * 検索結果の行数を取得する. 446 * 447 * @param string $where 検索条件の WHERE 句 448 * @param array $arrValues 検索条件のパラメータ 449 * @return integer 検索結果の行数 450 */ 451 function getNumberOfLines($where, $arrValues) { 452 $objQuery =& SC_Query::getSingletonInstance(); 453 return $objQuery->count('dtb_order', $where, $arrValues); 454 } 455 456 /** 457 * 最大表示件数を取得する. 458 * 459 * フォームの入力値から最大表示件数を取得する. 460 * 取得できなかった場合は, 定数 SEARCH_PMAX の値を返す. 461 * 462 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 463 * @return integer 最大表示件数 464 */ 465 function getPageMax(&$objFormParam) { 466 $page_max = $objFormParam->getValue('search_page_max'); 467 if(is_numeric($page_max)) { 468 return $page_max; 469 } else { 470 return SEARCH_PMAX; 471 } 472 } 473 474 /** 475 * 受注を検索する. 476 * 477 * @param string $where 検索条件の WHERE 句 478 * @param array $arrValues 検索条件のパラメータ 479 * @param integer $limit 表示件数 480 * @param integer $offset 開始件数 481 * @param string $order 検索結果の並び順 482 * @return array 受注の検索結果 483 */ 484 function findOrders($where, $arrValues, $limit, $offset, $order) { 485 $objQuery =& SC_Query::getSingletonInstance(); 486 $objQuery->setLimitOffset($limit, $offset); 487 $objQuery->setOrder($order); 488 return $objQuery->select('*', 'dtb_order', $where, $arrValues); 489 } 431 490 } 432 491 ?> -
branches/version-2_5-dev/data/class/util/SC_Utils.php
r20129 r20133 417 417 418 418 // チェックボックスの値をマージ 419 /** 420 * @deprecated 421 */ 419 422 function sfMergeCBValue($keyname, $max) { 420 423 $conv = ""; … … 431 434 432 435 // html_checkboxesの値をマージして2進数形式に変更する。 436 /** 437 * @deprecated 438 */ 433 439 function sfMergeCheckBoxes($array, $max) { 434 440 $ret = ""; … … 450 456 451 457 // html_checkboxesの値をマージして「-」でつなげる。 458 /** 459 * @deprecated 460 */ 452 461 function sfMergeParamCheckBoxes($array) { 453 462 $ret = ''; … … 467 476 468 477 // html_checkboxesの値をマージしてSQL検索用に変更する。 478 /** 479 * @deprecated 480 */ 469 481 function sfSearchCheckBoxes($array) { 470 482 $max = max($array); … … 480 492 481 493 // 2進数形式の値をhtml_checkboxes対応の値に切り替える 494 /** 495 * @deprecated 496 */ 482 497 function sfSplitCheckBoxes($val) { 483 498 $arrRet = array(); … … 492 507 493 508 // チェックボックスの値をマージ 509 /** 510 * @deprecated 511 */ 494 512 function sfMergeCBSearchValue($keyname, $max) { 495 513 $conv = ""; … … 506 524 507 525 // チェックボックスの値を分解 526 /** 527 * @deprecated 528 */ 508 529 function sfSplitCBValue($val, $keyname = "") { 509 530 $arr = array();
Note: See TracChangeset
for help on using the changeset viewer.
