[15584] | 1 | <?php |
---|
| 2 | /* |
---|
[16582] | 3 | * This file is part of EC-CUBE |
---|
| 4 | * |
---|
[22206] | 5 | * Copyright(c) 2000-2013 LOCKON CO.,LTD. All Rights Reserved. |
---|
[15584] | 6 | * |
---|
| 7 | * http://www.lockon.co.jp/ |
---|
[16582] | 8 | * |
---|
| 9 | * This program is free software; you can redistribute it and/or |
---|
| 10 | * modify it under the terms of the GNU General Public License |
---|
| 11 | * as published by the Free Software Foundation; either version 2 |
---|
| 12 | * of the License, or (at your option) any later version. |
---|
| 13 | * |
---|
| 14 | * This program is distributed in the hope that it will be useful, |
---|
| 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
| 17 | * GNU General Public License for more details. |
---|
| 18 | * |
---|
| 19 | * You should have received a copy of the GNU General Public License |
---|
| 20 | * along with this program; if not, write to the Free Software |
---|
| 21 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
---|
[15584] | 22 | */ |
---|
| 23 | |
---|
| 24 | // {{{ requires |
---|
[20534] | 25 | require_once CLASS_EX_REALDIR . 'page_extends/admin/LC_Page_Admin_Ex.php'; |
---|
[15584] | 26 | |
---|
| 27 | /** |
---|
[17269] | 28 | * 受注管理 のページクラス |
---|
[15584] | 29 | * |
---|
| 30 | * @package Page |
---|
| 31 | * @author LOCKON CO.,LTD. |
---|
| 32 | * @version $Id$ |
---|
| 33 | */ |
---|
[20345] | 34 | class LC_Page_Admin_Order extends LC_Page_Admin_Ex { |
---|
[15584] | 35 | |
---|
| 36 | // }}} |
---|
| 37 | // {{{ functions |
---|
| 38 | |
---|
| 39 | /** |
---|
| 40 | * Page を初期化する. |
---|
| 41 | * |
---|
| 42 | * @return void |
---|
| 43 | */ |
---|
| 44 | function init() { |
---|
| 45 | parent::init(); |
---|
| 46 | $this->tpl_mainpage = 'order/index.tpl'; |
---|
| 47 | $this->tpl_mainno = 'order'; |
---|
| 48 | $this->tpl_subno = 'index'; |
---|
[20128] | 49 | $this->tpl_pager = 'pager.tpl'; |
---|
[20911] | 50 | $this->tpl_maintitle = '受注管理'; |
---|
[15584] | 51 | $this->tpl_subtitle = '受注管理'; |
---|
| 52 | |
---|
| 53 | $masterData = new SC_DB_MasterData_Ex(); |
---|
[21481] | 54 | $this->arrORDERSTATUS = $masterData->getMasterData('mtb_order_status'); |
---|
| 55 | $this->arrORDERSTATUS_COLOR = $masterData->getMasterData('mtb_order_status_color'); |
---|
| 56 | $this->arrSex = $masterData->getMasterData('mtb_sex'); |
---|
| 57 | $this->arrPageMax = $masterData->getMasterData('mtb_page_max'); |
---|
[17269] | 58 | |
---|
[20499] | 59 | $objDate = new SC_Date_Ex(); |
---|
[20133] | 60 | // 登録・更新日検索用 |
---|
| 61 | $objDate->setStartYear(RELEASE_YEAR); |
---|
[20538] | 62 | $objDate->setEndYear(DATE('Y')); |
---|
[20133] | 63 | $this->arrRegistYear = $objDate->getYear(); |
---|
| 64 | // 生年月日検索用 |
---|
| 65 | $objDate->setStartYear(BIRTH_YEAR); |
---|
[20538] | 66 | $objDate->setEndYear(DATE('Y')); |
---|
[20133] | 67 | $this->arrBirthYear = $objDate->getYear(); |
---|
| 68 | // 月日の設定 |
---|
| 69 | $this->arrMonth = $objDate->getMonth(); |
---|
| 70 | $this->arrDay = $objDate->getDay(); |
---|
| 71 | |
---|
| 72 | // 支払い方法の取得 |
---|
[22537] | 73 | $this->arrPayments = SC_Helper_Payment_Ex::getIDValueList(); |
---|
[20133] | 74 | |
---|
[18187] | 75 | $this->httpCacheControl('nocache'); |
---|
[15584] | 76 | } |
---|
| 77 | |
---|
| 78 | /** |
---|
| 79 | * Page のプロセス. |
---|
| 80 | * |
---|
| 81 | * @return void |
---|
| 82 | */ |
---|
| 83 | function process() { |
---|
[19661] | 84 | $this->action(); |
---|
| 85 | $this->sendResponse(); |
---|
| 86 | } |
---|
| 87 | |
---|
| 88 | /** |
---|
| 89 | * Page のアクション. |
---|
| 90 | * |
---|
| 91 | * @return void |
---|
| 92 | */ |
---|
| 93 | function action() { |
---|
[21591] | 94 | |
---|
[20501] | 95 | $objFormParam = new SC_FormParam_Ex(); |
---|
[20133] | 96 | $this->lfInitParam($objFormParam); |
---|
| 97 | $objFormParam->setParam($_POST); |
---|
| 98 | $this->arrHidden = $objFormParam->getSearchArray(); |
---|
| 99 | $this->arrForm = $objFormParam->getFormParamList(); |
---|
[15584] | 100 | |
---|
[22306] | 101 | $objPurchase = new SC_Helper_Purchase_Ex(); |
---|
| 102 | |
---|
[21441] | 103 | switch ($this->getMode()) { |
---|
[21526] | 104 | // 削除 |
---|
| 105 | case 'delete': |
---|
[22306] | 106 | $order_id = $objFormParam->getValue('order_id'); |
---|
| 107 | $objPurchase->cancelOrder($order_id, ORDER_CANCEL, true); |
---|
[21526] | 108 | // 削除後に検索結果を表示するため breakしない |
---|
[15584] | 109 | |
---|
[21526] | 110 | // 検索パラメーター生成後に処理実行するため breakしない |
---|
| 111 | case 'csv': |
---|
| 112 | case 'delete_all': |
---|
[17269] | 113 | |
---|
[21526] | 114 | // 検索パラメーターの生成 |
---|
| 115 | case 'search': |
---|
| 116 | $objFormParam->convParam(); |
---|
| 117 | $objFormParam->trimParam(); |
---|
| 118 | $this->arrErr = $this->lfCheckError($objFormParam); |
---|
| 119 | $arrParam = $objFormParam->getHashArray(); |
---|
[15584] | 120 | |
---|
[21526] | 121 | if (count($this->arrErr) == 0) { |
---|
| 122 | $where = 'del_flg = 0'; |
---|
[21563] | 123 | $arrWhereVal = array(); |
---|
[21526] | 124 | foreach ($arrParam as $key => $val) { |
---|
| 125 | if ($val == '') { |
---|
| 126 | continue; |
---|
| 127 | } |
---|
[21563] | 128 | $this->buildQuery($key, $where, $arrWhereVal, $objFormParam); |
---|
[15584] | 129 | } |
---|
| 130 | |
---|
[21526] | 131 | $order = 'update_date DESC'; |
---|
[15584] | 132 | |
---|
[21526] | 133 | /* ----------------------------------------------- |
---|
| 134 | * 処理を実行 |
---|
| 135 | * ----------------------------------------------- */ |
---|
| 136 | switch ($this->getMode()) { |
---|
| 137 | // CSVを送信する。 |
---|
| 138 | case 'csv': |
---|
[21563] | 139 | $this->doOutputCSV($where, $arrWhereVal, $order); |
---|
[21592] | 140 | |
---|
[21743] | 141 | SC_Response_Ex::actionExit(); |
---|
[21526] | 142 | break; |
---|
[15584] | 143 | |
---|
[21526] | 144 | // 全件削除(ADMIN_MODE) |
---|
| 145 | case 'delete_all': |
---|
[22306] | 146 | $page_max = 0; |
---|
| 147 | $arrResults = $this->findOrders($where, $arrWhereVal, |
---|
| 148 | $page_max, 0, $order); |
---|
| 149 | foreach ($arrResults as $element) { |
---|
| 150 | $objPurchase->cancelOrder($element['order_id'], ORDER_CANCEL, true); |
---|
| 151 | } |
---|
[21526] | 152 | break; |
---|
[15584] | 153 | |
---|
[21526] | 154 | // 検索実行 |
---|
| 155 | default: |
---|
| 156 | // 行数の取得 |
---|
[21563] | 157 | $this->tpl_linemax = $this->getNumberOfLines($where, $arrWhereVal); |
---|
[21526] | 158 | // ページ送りの処理 |
---|
| 159 | $page_max = SC_Utils_Ex::sfGetSearchPageMax($objFormParam->getValue('search_page_max')); |
---|
| 160 | // ページ送りの取得 |
---|
| 161 | $objNavi = new SC_PageNavi_Ex($this->arrHidden['search_pageno'], |
---|
[21527] | 162 | $this->tpl_linemax, $page_max, |
---|
| 163 | 'fnNaviSearchPage', NAVI_PMAX); |
---|
[21526] | 164 | $this->arrPagenavi = $objNavi->arrPagenavi; |
---|
[15584] | 165 | |
---|
[21526] | 166 | // 検索結果の取得 |
---|
[21563] | 167 | $this->arrResults = $this->findOrders($where, $arrWhereVal, |
---|
[21526] | 168 | $page_max, $objNavi->start_row, $order); |
---|
| 169 | break; |
---|
| 170 | } |
---|
[15584] | 171 | } |
---|
[21526] | 172 | break; |
---|
| 173 | default: |
---|
| 174 | break; |
---|
[15584] | 175 | } |
---|
[21743] | 176 | |
---|
[15584] | 177 | } |
---|
| 178 | |
---|
| 179 | /** |
---|
| 180 | * デストラクタ. |
---|
| 181 | * |
---|
| 182 | * @return void |
---|
| 183 | */ |
---|
| 184 | function destroy() { |
---|
| 185 | parent::destroy(); |
---|
| 186 | } |
---|
| 187 | |
---|
[20133] | 188 | /** |
---|
[20970] | 189 | * パラメーター情報の初期化を行う. |
---|
[20133] | 190 | * |
---|
| 191 | * @param SC_FormParam $objFormParam SC_FormParam インスタンス |
---|
| 192 | * @return void |
---|
| 193 | */ |
---|
| 194 | function lfInitParam(&$objFormParam) { |
---|
[21514] | 195 | $objFormParam->addParam('注文番号1', 'search_order_id1', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 196 | $objFormParam->addParam('注文番号2', 'search_order_id2', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 197 | $objFormParam->addParam('対応状況', 'search_order_status', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 198 | $objFormParam->addParam('注文者 お名前', 'search_order_name', STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); |
---|
| 199 | $objFormParam->addParam('注文者 お名前(フリガナ)', 'search_order_kana', STEXT_LEN, 'KVCa', array('KANA_CHECK','MAX_LENGTH_CHECK')); |
---|
| 200 | $objFormParam->addParam('性別', 'search_order_sex', INT_LEN, 'n', array('MAX_LENGTH_CHECK')); |
---|
| 201 | $objFormParam->addParam('年齢1', 'search_age1', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 202 | $objFormParam->addParam('年齢2', 'search_age2', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 203 | $objFormParam->addParam('メールアドレス', 'search_order_email', STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); |
---|
[21481] | 204 | $objFormParam->addParam('TEL', 'search_order_tel', STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); |
---|
[21514] | 205 | $objFormParam->addParam('支払い方法', 'search_payment_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 206 | $objFormParam->addParam('購入金額1', 'search_total1', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 207 | $objFormParam->addParam('購入金額2', 'search_total2', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 208 | $objFormParam->addParam('表示件数', 'search_page_max', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
[17883] | 209 | // 受注日 |
---|
[21514] | 210 | $objFormParam->addParam('開始年', 'search_sorderyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 211 | $objFormParam->addParam('開始月', 'search_sordermonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 212 | $objFormParam->addParam('開始日', 'search_sorderday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 213 | $objFormParam->addParam('終了年', 'search_eorderyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 214 | $objFormParam->addParam('終了月', 'search_eordermonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 215 | $objFormParam->addParam('終了日', 'search_eorderday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
[17883] | 216 | // 更新日 |
---|
[21514] | 217 | $objFormParam->addParam('開始年', 'search_supdateyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 218 | $objFormParam->addParam('開始月', 'search_supdatemonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 219 | $objFormParam->addParam('開始日', 'search_supdateday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 220 | $objFormParam->addParam('終了年', 'search_eupdateyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 221 | $objFormParam->addParam('終了月', 'search_eupdatemonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 222 | $objFormParam->addParam('終了日', 'search_eupdateday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
[17883] | 223 | // 生年月日 |
---|
[21514] | 224 | $objFormParam->addParam('開始年', 'search_sbirthyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 225 | $objFormParam->addParam('開始月', 'search_sbirthmonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 226 | $objFormParam->addParam('開始日', 'search_sbirthday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 227 | $objFormParam->addParam('終了年', 'search_ebirthyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 228 | $objFormParam->addParam('終了月', 'search_ebirthmonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 229 | $objFormParam->addParam('終了日', 'search_ebirthday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 230 | $objFormParam->addParam('購入商品','search_product_name',STEXT_LEN,'KVa',array('MAX_LENGTH_CHECK')); |
---|
| 231 | $objFormParam->addParam('ページ送り番号','search_pageno', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
| 232 | $objFormParam->addParam('受注ID', 'order_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); |
---|
[15584] | 233 | } |
---|
| 234 | |
---|
[20133] | 235 | /** |
---|
| 236 | * 入力内容のチェックを行う. |
---|
| 237 | * |
---|
| 238 | * @param SC_FormParam $objFormParam SC_FormParam インスタンス |
---|
| 239 | * @return void |
---|
| 240 | */ |
---|
| 241 | function lfCheckError(&$objFormParam) { |
---|
[20503] | 242 | $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); |
---|
[20133] | 243 | $objErr->arrErr = $objFormParam->checkError(); |
---|
[15584] | 244 | |
---|
[20133] | 245 | // 相関チェック |
---|
[21514] | 246 | $objErr->doFunc(array('注文番号1', '注文番号2', 'search_order_id1', 'search_order_id2'), array('GREATER_CHECK')); |
---|
| 247 | $objErr->doFunc(array('年齢1', '年齢2', 'search_age1', 'search_age2'), array('GREATER_CHECK')); |
---|
| 248 | $objErr->doFunc(array('購入金額1', '購入金額2', 'search_total1', 'search_total2'), array('GREATER_CHECK')); |
---|
[17883] | 249 | // 受注日 |
---|
[21514] | 250 | $objErr->doFunc(array('開始', 'search_sorderyear', 'search_sordermonth', 'search_sorderday'), array('CHECK_DATE')); |
---|
| 251 | $objErr->doFunc(array('終了', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_DATE')); |
---|
| 252 | $objErr->doFunc(array('開始', '終了', 'search_sorderyear', 'search_sordermonth', 'search_sorderday', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_SET_TERM')); |
---|
[17883] | 253 | // 更新日 |
---|
[21514] | 254 | $objErr->doFunc(array('開始', 'search_supdateyear', 'search_supdatemonth', 'search_supdateday'), array('CHECK_DATE')); |
---|
| 255 | $objErr->doFunc(array('終了', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_DATE')); |
---|
| 256 | $objErr->doFunc(array('開始', '終了', 'search_supdateyear', 'search_supdatemonth', 'search_supdateday', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_SET_TERM')); |
---|
[17883] | 257 | // 生年月日 |
---|
[21514] | 258 | $objErr->doFunc(array('開始', 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday'), array('CHECK_DATE')); |
---|
| 259 | $objErr->doFunc(array('終了', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_DATE')); |
---|
| 260 | $objErr->doFunc(array('開始', '終了', 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_SET_TERM')); |
---|
[15584] | 261 | |
---|
| 262 | return $objErr->arrErr; |
---|
| 263 | } |
---|
| 264 | |
---|
[20133] | 265 | /** |
---|
| 266 | * クエリを構築する. |
---|
| 267 | * |
---|
[20970] | 268 | * 検索条件のキーに応じた WHERE 句と, クエリパラメーターを構築する. |
---|
| 269 | * クエリパラメーターは, SC_FormParam の入力値から取得する. |
---|
[20133] | 270 | * |
---|
| 271 | * 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される. |
---|
| 272 | * |
---|
| 273 | * @param string $key 検索条件のキー |
---|
| 274 | * @param string $where 構築する WHERE 句 |
---|
[20970] | 275 | * @param array $arrValues 構築するクエリパラメーター |
---|
[20133] | 276 | * @param SC_FormParam $objFormParam SC_FormParam インスタンス |
---|
| 277 | * @return void |
---|
| 278 | */ |
---|
| 279 | function buildQuery($key, &$where, &$arrValues, &$objFormParam) { |
---|
[20484] | 280 | $dbFactory = SC_DB_DBFactory_Ex::getInstance(); |
---|
[20133] | 281 | switch ($key) { |
---|
[15584] | 282 | |
---|
[21526] | 283 | case 'search_product_name': |
---|
| 284 | $where .= ' AND EXISTS (SELECT 1 FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_name LIKE ?)'; |
---|
| 285 | $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); |
---|
| 286 | break; |
---|
| 287 | case 'search_order_name': |
---|
| 288 | $where .= ' AND ' . $dbFactory->concatColumn(array('order_name01', 'order_name02')) . ' LIKE ?'; |
---|
[22522] | 289 | $arrValues[] = sprintf('%%%s%%', preg_replace('/[ ]/u', '', $objFormParam->getValue($key))); |
---|
[21526] | 290 | break; |
---|
| 291 | case 'search_order_kana': |
---|
| 292 | $where .= ' AND ' . $dbFactory->concatColumn(array('order_kana01', 'order_kana02')) . ' LIKE ?'; |
---|
[22522] | 293 | $arrValues[] = sprintf('%%%s%%', preg_replace('/[ ]/u', '', $objFormParam->getValue($key))); |
---|
[21526] | 294 | break; |
---|
| 295 | case 'search_order_id1': |
---|
| 296 | $where .= ' AND order_id >= ?'; |
---|
| 297 | $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); |
---|
| 298 | break; |
---|
| 299 | case 'search_order_id2': |
---|
| 300 | $where .= ' AND order_id <= ?'; |
---|
| 301 | $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); |
---|
| 302 | break; |
---|
| 303 | case 'search_order_sex': |
---|
| 304 | $tmp_where = ''; |
---|
| 305 | foreach ($objFormParam->getValue($key) as $element) { |
---|
| 306 | if ($element != '') { |
---|
| 307 | if (SC_Utils_Ex::isBlank($tmp_where)) { |
---|
| 308 | $tmp_where .= ' AND (order_sex = ?'; |
---|
| 309 | } else { |
---|
| 310 | $tmp_where .= ' OR order_sex = ?'; |
---|
| 311 | } |
---|
| 312 | $arrValues[] = $element; |
---|
[20133] | 313 | } |
---|
| 314 | } |
---|
| 315 | |
---|
[21526] | 316 | if (!SC_Utils_Ex::isBlank($tmp_where)) { |
---|
| 317 | $tmp_where .= ')'; |
---|
| 318 | $where .= " $tmp_where "; |
---|
| 319 | } |
---|
| 320 | break; |
---|
| 321 | case 'search_order_tel': |
---|
| 322 | $where .= ' AND (' . $dbFactory->concatColumn(array('order_tel01', 'order_tel02', 'order_tel03')) . ' LIKE ?)'; |
---|
| 323 | $arrValues[] = sprintf('%%%d%%', preg_replace('/[()-]+/','', $objFormParam->getValue($key))); |
---|
| 324 | break; |
---|
| 325 | case 'search_order_email': |
---|
| 326 | $where .= ' AND order_email LIKE ?'; |
---|
| 327 | $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); |
---|
| 328 | break; |
---|
| 329 | case 'search_payment_id': |
---|
| 330 | $tmp_where = ''; |
---|
| 331 | foreach ($objFormParam->getValue($key) as $element) { |
---|
| 332 | if ($element != '') { |
---|
| 333 | if ($tmp_where == '') { |
---|
| 334 | $tmp_where .= ' AND (payment_id = ?'; |
---|
| 335 | } else { |
---|
| 336 | $tmp_where .= ' OR payment_id = ?'; |
---|
| 337 | } |
---|
| 338 | $arrValues[] = $element; |
---|
[20133] | 339 | } |
---|
| 340 | } |
---|
| 341 | |
---|
[21526] | 342 | if (!SC_Utils_Ex::isBlank($tmp_where)) { |
---|
| 343 | $tmp_where .= ')'; |
---|
| 344 | $where .= " $tmp_where "; |
---|
| 345 | } |
---|
| 346 | break; |
---|
| 347 | case 'search_total1': |
---|
| 348 | $where .= ' AND total >= ?'; |
---|
| 349 | $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); |
---|
| 350 | break; |
---|
| 351 | case 'search_total2': |
---|
| 352 | $where .= ' AND total <= ?'; |
---|
| 353 | $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); |
---|
| 354 | break; |
---|
| 355 | case 'search_sorderyear': |
---|
| 356 | $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_sorderyear'), |
---|
| 357 | $objFormParam->getValue('search_sordermonth'), |
---|
| 358 | $objFormParam->getValue('search_sorderday')); |
---|
| 359 | $where.= ' AND create_date >= ?'; |
---|
| 360 | $arrValues[] = $date; |
---|
| 361 | break; |
---|
| 362 | case 'search_eorderyear': |
---|
| 363 | $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_eorderyear'), |
---|
| 364 | $objFormParam->getValue('search_eordermonth'), |
---|
| 365 | $objFormParam->getValue('search_eorderday'), true); |
---|
| 366 | $where.= ' AND create_date <= ?'; |
---|
| 367 | $arrValues[] = $date; |
---|
| 368 | break; |
---|
| 369 | case 'search_supdateyear': |
---|
| 370 | $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_supdateyear'), |
---|
| 371 | $objFormParam->getValue('search_supdatemonth'), |
---|
| 372 | $objFormParam->getValue('search_supdateday')); |
---|
| 373 | $where.= ' AND update_date >= ?'; |
---|
| 374 | $arrValues[] = $date; |
---|
| 375 | break; |
---|
| 376 | case 'search_eupdateyear': |
---|
| 377 | $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_eupdateyear'), |
---|
| 378 | $objFormParam->getValue('search_eupdatemonth'), |
---|
| 379 | $objFormParam->getValue('search_eupdateday'), true); |
---|
| 380 | $where.= ' AND update_date <= ?'; |
---|
| 381 | $arrValues[] = $date; |
---|
| 382 | break; |
---|
| 383 | case 'search_sbirthyear': |
---|
| 384 | $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_sbirthyear'), |
---|
| 385 | $objFormParam->getValue('search_sbirthmonth'), |
---|
| 386 | $objFormParam->getValue('search_sbirthday')); |
---|
| 387 | $where.= ' AND order_birth >= ?'; |
---|
| 388 | $arrValues[] = $date; |
---|
| 389 | break; |
---|
| 390 | case 'search_ebirthyear': |
---|
| 391 | $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_ebirthyear'), |
---|
| 392 | $objFormParam->getValue('search_ebirthmonth'), |
---|
| 393 | $objFormParam->getValue('search_ebirthday'), true); |
---|
| 394 | $where.= ' AND order_birth <= ?'; |
---|
| 395 | $arrValues[] = $date; |
---|
| 396 | break; |
---|
| 397 | case 'search_order_status': |
---|
| 398 | $where.= ' AND status = ?'; |
---|
| 399 | $arrValues[] = $objFormParam->getValue($key); |
---|
| 400 | break; |
---|
| 401 | default: |
---|
| 402 | break; |
---|
[20133] | 403 | } |
---|
| 404 | } |
---|
| 405 | |
---|
| 406 | /** |
---|
| 407 | * 受注を削除する. |
---|
| 408 | * |
---|
| 409 | * @param string $where 削除対象の WHERE 句 |
---|
| 410 | * @param array $arrParam 削除対象の値 |
---|
| 411 | * @return void |
---|
| 412 | */ |
---|
| 413 | function doDelete($where, $arrParam = array()) { |
---|
[20507] | 414 | $objQuery =& SC_Query_Ex::getSingletonInstance(); |
---|
[20906] | 415 | $sqlval['del_flg'] = 1; |
---|
[21185] | 416 | $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; |
---|
[21481] | 417 | $objQuery->update('dtb_order', $sqlval, $where, $arrParam); |
---|
[20133] | 418 | } |
---|
| 419 | |
---|
| 420 | /** |
---|
| 421 | * CSV データを構築して取得する. |
---|
| 422 | * |
---|
| 423 | * 構築に成功した場合は, ファイル名と出力内容を配列で返す. |
---|
| 424 | * 構築に失敗した場合は, false を返す. |
---|
| 425 | * |
---|
| 426 | * @param string $where 検索条件の WHERE 句 |
---|
[20970] | 427 | * @param array $arrVal 検索条件のパラメーター |
---|
[20133] | 428 | * @param string $order 検索結果の並び順 |
---|
[20736] | 429 | * @return void |
---|
[20133] | 430 | */ |
---|
[20736] | 431 | function doOutputCSV($where, $arrVal, $order) { |
---|
[21514] | 432 | if ($where != '') { |
---|
[20736] | 433 | $where = " WHERE $where "; |
---|
[20133] | 434 | } |
---|
| 435 | |
---|
[20736] | 436 | $objCSV = new SC_Helper_CSV_Ex(); |
---|
[21481] | 437 | $objCSV->sfDownloadCsv('3', $where, $arrVal, $order, true); |
---|
[20133] | 438 | } |
---|
| 439 | |
---|
| 440 | /** |
---|
| 441 | * 検索結果の行数を取得する. |
---|
| 442 | * |
---|
| 443 | * @param string $where 検索条件の WHERE 句 |
---|
[20970] | 444 | * @param array $arrValues 検索条件のパラメーター |
---|
[20133] | 445 | * @return integer 検索結果の行数 |
---|
| 446 | */ |
---|
| 447 | function getNumberOfLines($where, $arrValues) { |
---|
[20507] | 448 | $objQuery =& SC_Query_Ex::getSingletonInstance(); |
---|
[20133] | 449 | return $objQuery->count('dtb_order', $where, $arrValues); |
---|
| 450 | } |
---|
| 451 | |
---|
| 452 | /** |
---|
| 453 | * 受注を検索する. |
---|
| 454 | * |
---|
| 455 | * @param string $where 検索条件の WHERE 句 |
---|
[20970] | 456 | * @param array $arrValues 検索条件のパラメーター |
---|
[20133] | 457 | * @param integer $limit 表示件数 |
---|
| 458 | * @param integer $offset 開始件数 |
---|
| 459 | * @param string $order 検索結果の並び順 |
---|
| 460 | * @return array 受注の検索結果 |
---|
| 461 | */ |
---|
| 462 | function findOrders($where, $arrValues, $limit, $offset, $order) { |
---|
[20507] | 463 | $objQuery =& SC_Query_Ex::getSingletonInstance(); |
---|
[22306] | 464 | if ($limit != 0) { |
---|
| 465 | $objQuery->setLimitOffset($limit, $offset); |
---|
| 466 | } |
---|
[20133] | 467 | $objQuery->setOrder($order); |
---|
| 468 | return $objQuery->select('*', 'dtb_order', $where, $arrValues); |
---|
| 469 | } |
---|
[15584] | 470 | } |
---|