source: branches/feature-module-update/html/admin/order/index.php @ 15079

Revision 15079, 12.5 KB checked in by nanasess, 17 years ago (diff)

svn:mime-type application/x-httpd-php; charset=UTF-8 設定

  • Property svn:mime-type set to application/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8require_once("./index_csv.php");
9
10class LC_Page {
11    function LC_Page() {
12        $this->tpl_mainpage = 'order/index.tpl';
13        $this->tpl_subnavi = 'order/subnavi.tpl';
14        $this->tpl_mainno = 'order';       
15        $this->tpl_subno = 'index';
16        $this->tpl_pager = DATA_PATH . 'Smarty/templates/admin/pager.tpl';
17        $this->tpl_subtitle = '受注管理';
18        global $arrORDERSTATUS;
19        $this->arrORDERSTATUS = $arrORDERSTATUS;
20        global $arrORDERSTATUS_COLOR;
21        $this->arrORDERSTATUS_COLOR = $arrORDERSTATUS_COLOR;
22        global $arrSex;
23        $this->arrSex = $arrSex;
24        global $arrPageMax;
25        $this->arrPageMax = $arrPageMax;
26    }
27}
28
29$conn = new SC_DBConn();
30$objPage = new LC_Page();
31$objView = new SC_AdminView();
32$objSess = new SC_Session();
33// パラメータ管理クラス
34$objFormParam = new SC_FormParam();
35// パラメータ情報の初期化
36lfInitParam();
37$objFormParam->setParam($_POST);
38
39$objFormParam->splitParamCheckBoxes('search_order_sex');
40$objFormParam->splitParamCheckBoxes('search_payment_id');
41
42// 検索ワードの引き継ぎ
43foreach ($_POST as $key => $val) {
44    if (ereg("^search_", $key)) {
45        switch($key) {
46            case 'search_order_sex':
47            case 'search_payment_id':
48                $objPage->arrHidden[$key] = sfMergeParamCheckBoxes($val);
49                break;
50            default:
51                $objPage->arrHidden[$key] = $val;
52                break;
53        }       
54    }
55}
56
57// ページ送り用
58$objPage->arrHidden['search_pageno'] = $_POST['search_pageno'];
59
60// 認証可否の判定
61sfIsSuccess($objSess);
62
63if($_POST['mode'] == 'delete') {
64    if(sfIsInt($_POST['order_id'])) {
65        $objQuery = new SC_Query();
66        $where = "order_id = ?";
67        $sqlval['del_flg'] = '1';
68        $objQuery->update("dtb_order", $sqlval, $where, array($_POST['order_id']));
69    }   
70}
71
72switch($_POST['mode']) {
73case 'delete':
74case 'csv':
75case 'delete_all':
76case 'search':
77    // 入力値の変換
78    $objFormParam->convParam();
79    $objPage->arrErr = lfCheckError($arrRet);
80    $arrRet = $objFormParam->getHashArray();
81    // 入力なし
82    if (count($objPage->arrErr) == 0) {
83        $where = "del_flg = 0";
84        foreach ($arrRet as $key => $val) {
85            if($val == "") {
86                continue;
87            }
88            $val = sfManualEscape($val);
89           
90            switch ($key) {
91                case 'search_order_name':
92                    if(DB_TYPE == "pgsql"){
93                        $where .= " AND order_name01||order_name02 ILIKE ?";
94                    }elseif(DB_TYPE == "mysql"){
95                        $where .= " AND concat(order_name01,order_name02) ILIKE ?";
96                    }
97                    $nonsp_val = ereg_replace("[  ]+","",$val);
98                    $arrval[] = "%$nonsp_val%";
99                    break;
100                case 'search_order_kana':
101                    if(DB_TYPE == "pgsql"){
102                        $where .= " AND order_kana01||order_kana02 ILIKE ?";
103                    }elseif(DB_TYPE == "mysql"){
104                        $where .= " AND concat(order_kana01,order_kana02) ILIKE ?";
105                    }
106                    $nonsp_val = ereg_replace("[  ]+","",$val);
107                    $arrval[] = "%$nonsp_val%";
108                    break;
109                case 'search_order_id1':
110                    $where .= " AND order_id >= ?";
111                    $arrval[] = $val;
112                    break;
113                case 'search_order_id2':
114                    $where .= " AND order_id <= ?";
115                    $arrval[] = $val;
116                    break;
117                case 'search_order_sex':
118                    $tmp_where = "";
119                    foreach($val as $element) {
120                        if($element != "") {
121                            if($tmp_where == "") {
122                                $tmp_where .= " AND (order_sex = ?";
123                            } else {
124                                $tmp_where .= " OR order_sex = ?";
125                            }
126                            $arrval[] = $element;
127                        }
128                    }
129                   
130                    if($tmp_where != "") {
131                        $tmp_where .= ")";
132                        $where .= " $tmp_where ";
133                    }                   
134                    break;
135                case 'search_order_tel':
136                    if(DB_TYPE == "pgsql"){
137                        $where .= " AND (order_tel01||order_tel02||order_tel03) ILIKE ?";
138                    }elseif(DB_TYPE == "mysql"){
139                        $where .= " AND concat(order_tel01,order_tel02,order_tel03) ILIKE ?";
140                    }
141                    $nonmark_val = ereg_replace("[()-]+","",$val);
142                    $arrval[] = "$nonmark_val%";
143                    break;
144                case 'search_order_email':
145                    $where .= " AND order_email ILIKE ?";
146                    $arrval[] = "%$val%";
147                    break;
148                case 'search_payment_id':
149                    $tmp_where = "";
150                    foreach($val as $element) {
151                        if($element != "") {
152                            if($tmp_where == "") {
153                                $tmp_where .= " AND (payment_id = ?";
154                            } else {
155                                $tmp_where .= " OR payment_id = ?";
156                            }
157                            $arrval[] = $element;
158                        }
159                    }
160                   
161                    if($tmp_where != "") {
162                        $tmp_where .= ")";
163                        $where .= " $tmp_where ";
164                    }
165                    break;
166                case 'search_total1':
167                    $where .= " AND total >= ?";
168                    $arrval[] = $val;
169                    break;
170                case 'search_total2':
171                    $where .= " AND total <= ?";
172                    $arrval[] = $val;
173                    break;
174                case 'search_startyear':
175                    $date = sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']);
176                    $where.= " AND update_date >= ?";
177                    $arrval[] = $date;
178                    break;
179                case 'search_endyear':
180                    $date = sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday'], true);
181                    $where.= " AND update_date <= ?";
182                    $arrval[] = $date;
183                    break;
184                case 'search_sbirthyear':
185                    $date = sfGetTimestamp($_POST['search_sbirthyear'], $_POST['search_sbirthmonth'], $_POST['search_sbirthday']);
186                    $where.= " AND order_birth >= ?";
187                    $arrval[] = $date;
188                    break;
189                case 'search_ebirthyear':
190                    $date = sfGetTimestamp($_POST['search_ebirthyear'], $_POST['search_ebirthmonth'], $_POST['search_ebirthday'], true);
191                    $where.= " AND order_birth <= ?";
192                    $arrval[] = $date;
193                    break;
194                case 'search_order_status':
195                    $where.= " AND status = ?";
196                    $arrval[] = $val;
197                    break;
198                default:
199                    break;
200            }
201        }
202       
203        $order = "update_date DESC";
204       
205        switch($_POST['mode']) {
206        case 'csv':
207            // オプションの指定
208            $option = "ORDER BY $order";
209           
210            // CSV出力タイトル行の作成
211            $arrCsvOutput = sfSwapArray(sfgetCsvOutput(3, " WHERE csv_id = 3 AND status = 1"));
212           
213            if (count($arrCsvOutput) <= 0) break;
214           
215            $arrCsvOutputCols = $arrCsvOutput['col'];
216            $arrCsvOutputTitle = $arrCsvOutput['disp_name'];
217            $head = sfGetCSVList($arrCsvOutputTitle);
218            $data = lfGetCSV("dtb_order", $where, $option, $arrval, $arrCsvOutputCols);
219           
220            // CSVを送信する。
221            sfCSVDownload($head.$data);
222            exit;
223            break;
224        case 'delete_all':
225            // 検索結果をすべて削除
226            $sqlval['del_flg'] = 1;
227            $objQuery = new SC_Query();
228            $objQuery->update("dtb_order", $sqlval, $where, $arrval);
229            break;
230        default:
231            // 読み込む列とテーブルの指定
232            $col = "*";
233            $from = "dtb_order";
234           
235            $objQuery = new SC_Query();
236            // 行数の取得
237            $linemax = $objQuery->count($from, $where, $arrval);
238            $objPage->tpl_linemax = $linemax;               // 何件が該当しました。表示用
239           
240            // ページ送りの処理
241            if(is_numeric($_POST['search_page_max'])) {
242                $page_max = $_POST['search_page_max'];
243            } else {
244                $page_max = SEARCH_PMAX;
245            }
246           
247            // ページ送りの取得
248            $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX);
249            $startno = $objNavi->start_row;
250            $objPage->arrPagenavi = $objNavi->arrPagenavi;     
251           
252            // 取得範囲の指定(開始行番号、行数のセット)
253            $objQuery->setlimitoffset($page_max, $startno);
254            // 表示順序
255            $objQuery->setorder($order);
256            // 検索結果の取得
257            $objPage->arrResults = $objQuery->select($col, $from, $where, $arrval);
258        }
259    }
260    break;
261   
262default:
263    break;
264}
265
266$objDate = new SC_Date();
267// 登録・更新日検索用
268$objDate->setStartYear(RELEASE_YEAR);
269$objDate->setEndYear(DATE("Y"));
270$objPage->arrRegistYear = $objDate->getYear();
271// 生年月日検索用
272$objDate->setStartYear(BIRTH_YEAR);
273$objDate->setEndYear(DATE("Y"));
274$objPage->arrBirthYear = $objDate->getYear();
275// 月日の設定
276$objPage->arrMonth = $objDate->getMonth();
277$objPage->arrDay = $objDate->getDay();
278
279// 入力値の取得
280$objPage->arrForm = $objFormParam->getFormParamList();
281// 支払い方法の取得
282$arrRet = sfGetPayment();
283$objPage->arrPayment = sfArrKeyValue($arrRet, 'payment_id', 'payment_method');
284
285$objView->assignobj($objPage);
286$objView->display(MAIN_FRAME);
287
288//-----------------------------------------------------------------------------------------------------------------------------------
289/* パラメータ情報の初期化 */
290function lfInitParam() {
291    global $objFormParam;
292    $objFormParam->addParam("受注番号1", "search_order_id1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
293    $objFormParam->addParam("受注番号2", "search_order_id2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
294    $objFormParam->addParam("対応状況", "search_order_status", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
295    $objFormParam->addParam("顧客名", "search_order_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"));
296    $objFormParam->addParam("顧客名(カナ)", "search_order_kana", STEXT_LEN, "KVCa", array("KANA_CHECK","MAX_LENGTH_CHECK"));
297    $objFormParam->addParam("性別", "search_order_sex", INT_LEN, "n", array("MAX_LENGTH_CHECK"));
298    $objFormParam->addParam("年齢1", "search_age1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
299    $objFormParam->addParam("年齢2", "search_age2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
300    $objFormParam->addParam("メールアドレス", "search_order_email", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"));
301    $objFormParam->addParam("TEL", "search_order_tel", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"));
302    $objFormParam->addParam("支払い方法", "search_payment_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
303    $objFormParam->addParam("購入金額1", "search_total1", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
304    $objFormParam->addParam("購入金額2", "search_total2", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
305    $objFormParam->addParam("表示件数", "search_page_max", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
306    $objFormParam->addParam("開始日", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
307    $objFormParam->addParam("開始日", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
308    $objFormParam->addParam("開始日", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
309    $objFormParam->addParam("終了日", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
310    $objFormParam->addParam("終了日", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
311    $objFormParam->addParam("終了日", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
312    $objFormParam->addParam("開始日", "search_sbirthyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
313    $objFormParam->addParam("開始日", "search_sbirthmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
314    $objFormParam->addParam("開始日", "search_sbirthday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
315    $objFormParam->addParam("終了日", "search_ebirthyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
316    $objFormParam->addParam("終了日", "search_ebirthmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
317    $objFormParam->addParam("終了日", "search_ebirthday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
318}
319
320/* 入力内容のチェック */
321function lfCheckError() {
322    global $objFormParam;
323    // 入力データを渡す。
324    $arrRet =  $objFormParam->getHashArray();
325    $objErr = new SC_CheckError($arrRet);
326    $objErr->arrErr = $objFormParam->checkError();
327   
328    // 特殊項目チェック
329    $objErr->doFunc(array("受注番号1", "受注番号2", "search_order_id1", "search_order_id2"), array("GREATER_CHECK"));
330    $objErr->doFunc(array("年齢1", "年齢2", "search_age1", "search_age2"), array("GREATER_CHECK"));
331    $objErr->doFunc(array("購入金額1", "購入金額2", "search_total1", "search_total2"), array("GREATER_CHECK"));
332    $objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
333    $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));
334    $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));
335   
336    $objErr->doFunc(array("開始日", "search_sbirthyear", "search_sbirthmonth", "search_sbirthday"), array("CHECK_DATE"));
337    $objErr->doFunc(array("終了日", "search_ebirthyear", "search_ebirthmonth", "search_ebirthday"), array("CHECK_DATE"));
338    $objErr->doFunc(array("開始日", "終了日", "search_sbirthyear", "search_sbirthmonth", "search_sbirthday", "search_ebirthyear", "search_ebirthmonth", "search_ebirthday"), array("CHECK_SET_TERM"));
339
340    return $objErr->arrErr;
341}
342
343
344?>
Note: See TracBrowser for help on using the repository browser.