source: temp/trunk/html/admin/total/index.php @ 5922

Revision 5922, 23.1 KB checked in by kakinaka, 20 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2/*
3 * Copyright ¢í 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8require_once("./index_sub.php");
9require_once("../batch/daily.php");
10
11require_once("./class/SC_GraphPie.php");
12require_once("./class/SC_GraphLine.php");
13require_once("./class/SC_GraphBar.php");
14
15class LC_Page {
16    var $arrResults;
17    var $keyname;
18    var $tpl_image;
19    var $arrTitle;
20    function LC_Page() {
21        $this->tpl_mainpage = 'total/index.tpl';
22        $this->tpl_subnavi = 'total/subnavi.tpl';
23        $this->tpl_graphsubtitle = 'total/subtitle.tpl';
24        $this->tpl_titleimage = '/img/title/title_sale.jpg';
25        $this->tpl_mainno = 'total';
26        global $arrWDAY;
27        $this->arrWDAY = $arrWDAY;
28        // ¥Ú¡¼¥¸¥¿¥¤¥È¥ë
29        $this->arrTitle[''] = "´ü´ÖÊ̽¸·×";
30        $this->arrTitle['term'] = "´ü´ÖÊ̽¸·×";
31        $this->arrTitle['products'] = "¾¦ÉÊÊ̽¸·×";
32        $this->arrTitle['age'] = "ǯÂåÊ̽¸·×";
33        $this->arrTitle['job'] = "¿¦¶ÈÊ̽¸·×";
34        $this->arrTitle['member'] = "²ñ°÷Ê̽¸·×";
35    }
36}
37
38$objPage = new LC_Page();
39$objView = new SC_AdminView();
40$objSess = new SC_Session();
41// ǧ¾Ú²ÄÈݤÎȽÄê
42sfIsSuccess($objSess);
43
44// ÆþÎÏ´ü´Ö¤ò¥»¥Ã¥·¥ç¥ó¤Ëµ­Ï¿¤¹¤ë
45lfSaveDateSession();
46
47// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
48$objFormParam = new SC_FormParam();
49// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
50lfInitParam();
51$objFormParam->setParam($_POST);
52$objFormParam->setParam($_GET);
53
54// ¸¡º÷¥ï¡¼¥É¤Î°ú¤­·Ñ¤®
55foreach ($_POST as $key => $val) {
56    if (ereg("^search_", $key)) {
57        $objPage->arrHidden[$key] = $val;       
58    }
59}
60
61switch($_POST['mode']) {
62case 'pdf':
63case 'csv':
64case 'search':
65    // ÆþÎÏÃͤÎÊÑ´¹
66    $objFormParam->convParam();
67    $objPage->arrErr = lfCheckError($arrRet);
68    $arrRet = $objFormParam->getHashArray();
69   
70    // ÆþÎÏ¥¨¥é¡¼¤Ê¤·
71    if (count($objPage->arrErr) == 0) {
72        foreach ($arrRet as $key => $val) {
73            if($val == "") {
74                continue;
75            }
76            switch ($key) {
77            case 'search_startyear':
78                $sdate = $_POST['search_startyear'] . "/" . $_POST['search_startmonth'] . "/" . $_POST['search_startday'];
79                break;
80            case 'search_endyear':
81                $edate = $_POST['search_endyear'] . "/" . $_POST['search_endmonth'] . "/" . $_POST['search_endday'];
82                break;
83            case 'search_startyear_m':
84                list($sdate, $edate) = sfTermMonth($_POST['search_startyear_m'], $_POST['search_startmonth_m'], CLOSE_DAY);
85                break;
86            default:
87                break;
88            }
89        }
90
91        if($_POST['type'] != "") {
92            $type = $_POST['type'];
93        }
94               
95        $page = $objFormParam->getValue('page');
96        switch($page) {
97        // ¾¦ÉÊÊ̽¸·×
98        case 'products':
99            if($type == "") {
100                $type = 'all';
101            }
102            $objPage->tpl_page_type = "total/page_products.tpl";
103            // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
104            lfRealTimeDailyTotal($sdate, $edate);
105            // ¸¡º÷·ë²Ì¤Î¼èÆÀ
106            $objPage = lfGetOrderProducts($type, $sdate, $edate, $objPage);
107            break;
108        // ¿¦¶ÈÊ̽¸·×
109        case 'job':
110            if($type == "") {
111                $type = 'all';
112            }
113            $objPage->tpl_page_type = "total/page_job.tpl";
114            // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
115            lfRealTimeDailyTotal($sdate, $edate);
116            // ¸¡º÷·ë²Ì¤Î¼èÆÀ
117            $objPage = lfGetOrderJob($type, $sdate, $edate, $objPage);
118            break;
119        // ²ñ°÷Ê̽¸·×
120        case 'member':
121            if($type == "") {
122                $type = 'all';
123            }
124            $objPage->tpl_page_type = "total/page_member.tpl";
125            // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
126            lfRealTimeDailyTotal($sdate, $edate);
127            // ¸¡º÷·ë²Ì¤Î¼èÆÀ
128            $objPage = lfGetOrderMember($type, $sdate, $edate, $objPage);
129            break;
130        // ǯÂåÊ̽¸·×
131        case 'age':
132            if($type == "") {
133                $type = 'all';
134            }
135            $objPage->tpl_page_type = "total/page_age.tpl";
136            // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
137            lfRealTimeDailyTotal($sdate, $edate);
138            // ¸¡º÷·ë²Ì¤Î¼èÆÀ
139            $objPage = lfGetOrderAge($type, $sdate, $edate, $objPage);
140            break;
141        // ´ü´ÖÊ̽¸·×
142        default:
143            if($type == "") {
144                $type = 'day';
145            }
146            $objPage->tpl_page_type = "total/page_term.tpl";
147            // ̤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
148            lfRealTimeDailyTotal($sdate, $edate);
149            // ¸¡º÷·ë²Ì¤Î¼èÆÀ
150            $objPage = lfGetOrderTerm($type, $sdate, $edate, $objPage);
151           
152            break;
153        }
154
155        if($_POST['mode'] == 'csv') {
156            // CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ
157            list($arrTitleCol, $arrDataCol) = lfGetCSVColum($page, $objPage->keyname);
158            $head = sfGetCSVList($arrTitleCol);
159            $data = lfGetDataColCSV($objPage->arrResults, $arrDataCol);
160            // CSV¤òÁ÷¿®¤¹¤ë¡£
161            sfCSVDownload($head.$data, $page."_".$type);
162            exit;
163        }
164       
165        if($_POST['mode'] == 'pdf') {
166            // CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ
167            list($arrTitleCol, $arrDataCol, $arrColSize, $arrAlign, $title) = lfGetPDFColum($page, $type, $objPage->keyname);
168            $head = sfGetPDFList($arrTitleCol);
169            $data = lfGetDataColPDF($objPage->arrResults, $arrDataCol, 40);
170            // PDF½ÐÎÏÍÑ
171            $graph_name = basename($objPage->tpl_image);
172            lfPDFDownload($graph_name, $head . $data, $arrColSize, $arrAlign, $sdate, $edate, $title);
173            exit;   
174        }   
175    }
176    break;
177default:
178    if(count($_GET) == 0) {
179        /*
180            ¥ê¥¢¥ë¥¿¥¤¥à½¸·×¤ËÀÚ¤êÂØ¤¨ by Nakagawa 2006/08/31
181            // 1¥ö·îʬ¤Î½¸·×
182            lfStartDailyTotal(31,0);
183        */
184    }
185    break;
186}
187
188// ÅÐÏ¿¡¦¹¹¿·Æü¸¡º÷ÍÑ
189$objDate = new SC_Date();
190$objDate->setStartYear(RELEASE_YEAR);
191$objDate->setEndYear(DATE("Y"));
192$objPage->arrYear = $objDate->getYear();
193$objPage->arrMonth = $objDate->getMonth();
194$objPage->arrDay = $objDate->getDay();
195// ÆþÎÏÃͤμèÆÀ
196$objPage->arrForm = $objFormParam->getFormParamList();
197
198$objPage->tpl_subtitle = $objPage->arrTitle[$objFormParam->getValue('page')];
199
200$objView->assignobj($objPage);
201$objView->display(MAIN_FRAME);
202
203//---------------------------------------------------------------------------------------------------------------------------
204/* PDF½ÐÎÏ */
205function lfPDFDownload($image, $table, $arrColSize, $arrAlign, $sdate, $edate, $title) {
206   
207    $objPdf = new SC_Pdf();
208    $objPdf->setTableColor("CCCCCC", "F0F0F0", "D1DEFE");
209           
210    // ÅÚÂæ¤È¤Ê¤ëPDF¥Õ¥¡¥¤¥ë¤Î»ØÄê
211    $objPdf->setTemplate(PDF_DIR . "total.pdf");
212
213    $disp_sdate = sfDispDBDate($sdate, false);
214    $disp_edate = sfDispDBDate($edate, false);
215               
216    $arrText['title_block'] = $title;
217    $arrText['date_block'] = "$disp_sdate-$disp_edate";
218    $arrImage['graph_block'] = GRAPH_DIR . $image;
219   
220    // ʸËö¤Î\n¤òºï½ü¤¹¤ë
221    $table = ereg_replace("\n$", "", $table);
222    $arrRet = split("\n", $table);
223    $page_max = intval((count($arrRet) / 35) + 1);
224   
225    for($page = 1; $page <= $page_max; $page++) {
226        if($page > 1) {
227            // 2¥Ú¡¼¥¸°Ê¹ß
228            $start_no = 35 * ($page - 1) + 1;
229        } else {
230            // ³«»Ï¥Ú¡¼¥¸
231            $start_no = 1;         
232        }
233               
234        $arrText['page_block'] = $page . " / " . $page_max;
235        $objPdf->setTextBlock($arrText);
236        $objPdf->setImageBlock($arrImage);
237        // ¥Ö¥í¥Ã¥¯ÃÍ¤ÎÆþÎÏ
238        $objPdf->writeBlock();
239        // ºÇ½ª¥Ú¡¼¥¸¤Î¤ß¡¢¾¦ÉÊÊ̽¸·×¤Ï¹ç·×¤¬¤Ê¤¤¤Î¤ÇºÇ½ª¹Ô¤Î¿§¤òÊѹ¹¤·¤Ê¤¤¡£
240        if($page == $page_max && $_POST['page'] != 'products') {
241            $last_color_flg = true;
242        } else {
243            $last_color_flg = false;
244        }   
245        $objPdf->writeTableCenter($table, 500, $arrColSize, $arrAlign, 35, $start_no, $last_color_flg);
246        $objPdf->closePage();
247    }
248
249    // PDF¤Î½ÐÎÏ
250    $objPdf->output(); 
251}
252
253/* ¥»¥Ã¥·¥ç¥ó¤ËÆþÎÏ´ü´Ö¤òµ­Ï¿¤¹¤ë */
254function lfSaveDateSession() {
255    if($_POST['form'] == 1) {
256        $_SESSION['total']['startyear_m'] = $_POST['search_startyear_m'];
257        $_SESSION['total']['startmonth_m'] = $_POST['search_startmonth_m'];
258    }
259   
260    if($_POST['form'] == 2) {
261        $_SESSION['total']['startyear'] = $_POST['search_startyear'];
262        $_SESSION['total']['startmonth'] = $_POST['search_startmonth'];
263        $_SESSION['total']['startday'] = $_POST['search_startday'];
264        $_SESSION['total']['endyear'] = $_POST['search_endyear'];
265        $_SESSION['total']['endmonth'] = $_POST['search_endmonth'];
266        $_SESSION['total']['endday'] = $_POST['search_endday'];
267    }
268}
269
270/* ¥Ç¥Õ¥©¥ë¥ÈÃͤμèÆÀ */
271function lfGetDateDefault() {
272    $year = date("Y");
273    $month = date("m");
274    $day = date("d");
275   
276    $list = $_SESSION['total'];
277   
278    // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»Ï·îÅÙ¤¬Êݸ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
279    if($_SESSION['total']['startyear_m'] == "") {
280        $list['startyear_m'] = $year;
281        $list['startmonth_m'] = $month;
282    }
283   
284    // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»ÏÆüÉÕ¡¢½ªÎ»ÆüÉÕ¤¬Êݸ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
285    if($_SESSION['total']['startyear'] == "" && $_SESSION['total']['endyear'] == "") {
286        $list['startyear'] = $year;
287        $list['startmonth'] = $month;
288        $list['startday'] = $day;
289        $list['endyear'] = $year;
290        $list['endmonth'] = $month;
291        $list['endday'] = $day;
292    }
293   
294    return $list;   
295}
296
297/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
298function lfInitParam() {
299    global $objFormParam;
300       
301    // ¥Ç¥Õ¥©¥ë¥ÈÃͤμèÆÀ
302    $arrList = lfGetDateDefault();
303   
304    // ·îÅÙ½¸·×
305    $objFormParam->addParam("·îÅÙ", "search_startyear_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear_m']);
306    $objFormParam->addParam("·îÅÙ", "search_startmonth_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth_m']);
307    // ´ü´Ö½¸·×
308    $objFormParam->addParam("³«»ÏÆü", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear']);
309    $objFormParam->addParam("³«»ÏÆü", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth']);
310    $objFormParam->addParam("³«»ÏÆü", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startday']);
311    $objFormParam->addParam("½ªÎ»Æü", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endyear']);
312    $objFormParam->addParam("½ªÎ»Æü", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endmonth']);
313    $objFormParam->addParam("½ªÎ»Æü", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endday']);
314   
315    // hidden¥Ç¡¼¥¿¤Î¼èÆÀÍÑ
316    $objFormParam->addParam("", "page");
317    $objFormParam->addParam("", "type");
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    if($_POST['form'] == 1) {
330        $objErr->doFunc(array("·îÅÙ", "search_startyear_m"), array("ONE_EXIST_CHECK"));
331    }
332   
333    if($_POST['form'] == 2) {
334        $objErr->doFunc(array("´ü´Ö", "search_startyear", "search_endyear"), array("ONE_EXIST_CHECK"));
335    }
336           
337    $objErr->doFunc(array("·îÅÙ", "search_startyear_m", "search_startmonth_m"), array("ALL_EXIST_CHECK"));
338    $objErr->doFunc(array("³«»ÏÆü", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
339    $objErr->doFunc(array("½ªÎ»Æü", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));
340    $objErr->doFunc(array("³«»ÏÆü", "½ªÎ»Æü", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));
341    return $objErr->arrErr;
342}
343
344/* ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎºîÀ® */
345function lfGetGraphLine($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) {
346   
347    $ret_path = "";
348   
349    // ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
350    if(count($arrResults) > 0) {
351       
352        // ¥°¥é¥Õ¤ÎÀ¸À®
353        $arrList = sfArrKeyValue($arrResults, $keyname, "total");
354
355        // °ì»þ¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ
356        $pngname = lfGetGraphPng($type);
357       
358        $path = GRAPH_DIR . $pngname;
359       
360        // ¥é¥Ù¥ëɽ¼¨¥¤¥ó¥¿¡¼¥Ð¥ë¤òµá¤á¤ë
361        $interval = intval(count($arrList) / 20);
362        if($interval < 1) {
363            $interval = 1;
364        }
365        $objGraphPie = new SC_GraphPie();
366        $objGraphLine = new SC_GraphLine();
367       
368        // ÃͤΥ»¥Ã¥È
369        $objGraphLine->setData($arrList);
370        $objGraphLine->setXLabel(array_keys($arrList));
371       
372        // ¥é¥Ù¥ë²óž(ÆüËܸìÉÔ²Ä)
373        if($keyname == "key_day"){
374            $objGraphLine->setXLabelAngle(45);
375        }
376
377        // ¥¿¥¤¥È¥ë¥»¥Ã¥È
378        $objGraphLine->setXTitle($xtitle);
379        $objGraphLine->setYTitle($ytitle);
380       
381        // ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
382        list($sy, $sm, $sd) = split("[/ ]" , $sdate);
383        list($ey, $em, $ed) = split("[/ ]" , $edate);
384        $start_date = $sy . "ǯ" . $sm . "·î" . $sd . "Æü";
385        $end_date = $ey . "ǯ" . $em . "·î" . $ed . "Æü";
386        $objGraphLine->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
387       
388        // ¥°¥é¥ÕÉÁ²è
389        $objGraphLine->drawGraph();
390        $objGraphLine->outputGraph(false, $path);
391
392        // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
393        $ret_path = GRAPH_URL . $pngname;
394    }
395    return $ret_path;
396}
397
398// ±ß¥°¥é¥Õ¤ÎºîÀ®
399function lfGetGraphPie($arrResults, $keyname, $type, $title = "", $sdate = "", $edate = "") {
400   
401    $ret_path = "";
402   
403    // ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
404    if(count($arrResults) > 0) {
405        // ¥°¥é¥Õ¤ÎÀ¸À®
406        $arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
407       
408        // °ì»þ¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ
409        $pngname = lfGetGraphPng($type);
410        $path = GRAPH_DIR . $pngname;
411       
412            $objGraphPie = new SC_GraphPie();
413           
414            /* ¥Ç¥Ð¥Ã¥°É½¼¨ÍÑ by naka
415            foreach($arrList as $key => $val) {
416                $objGraphPie->debugPrint("key:$key val:$val");
417            }
418            */
419           
420            // ¥Ç¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë
421            $objGraphPie->setData($arrList);
422            // ËÞÎã¤ò¥»¥Ã¥È¤¹¤ë
423            $objGraphPie->setLegend(array_keys($arrList));
424                                   
425            // ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
426            list($sy, $sm, $sd) = split("[/ ]" , $sdate);
427            list($ey, $em, $ed) = split("[/ ]" , $edate);
428            $start_date = $sy . "ǯ" . $sm . "·î" . $sd . "Æü";
429            $end_date = $ey . "ǯ" . $em . "·î" . $ed . "Æü";
430            $objGraphPie->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
431                   
432            // ±ß¥°¥é¥ÕÉÁ²è
433            $objGraphPie->drawGraph();
434           
435            // ¥°¥é¥Õ¤Î½ÐÎÏ
436            $objGraphPie->outputGraph(false, $path);           
437
438        // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
439        $ret_path = GRAPH_URL . $pngname;
440    }
441    return $ret_path;
442}
443
444// ËÀ¥°¥é¥Õ¤ÎºîÀ®
445function lfGetGraphBar($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) {
446    $ret_path = "";
447   
448    // ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
449    if(count($arrResults) > 0) {
450        // ¥°¥é¥Õ¤ÎÀ¸À®
451        $arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
452       
453        // °ì»þ¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ
454        $pngname = lfGetGraphPng($type);
455        $path = GRAPH_DIR . $pngname;
456       
457            $objGraphBar = new SC_GraphBar();
458           
459            foreach(array_keys($arrList) as $val) {
460                $arrKey[] = ereg_replace("¡Á", "-", $val);
461            }
462           
463            // ¥°¥é¥ÕÉÁ²è
464            $objGraphBar->setXLabel($arrKey);
465            $objGraphBar->setXTitle($xtitle);
466            $objGraphBar->setYTitle($ytitle);
467            $objGraphBar->setData($arrList);
468           
469            // ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
470            $arrKey = array_keys($arrList);
471            list($sy, $sm, $sd) = split("[/ ]" , $sdate);
472            list($ey, $em, $ed) = split("[/ ]" , $edate);
473            $start_date = $sy . "ǯ" . $sm . "·î" . $sd . "Æü";
474            $end_date = $ey . "ǯ" . $em . "·î" . $ed . "Æü";
475            $objGraphBar->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
476           
477            $objGraphBar->drawGraph();
478            $objGraphBar->outputGraph(false,$path);
479
480        // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
481        $ret_path = GRAPH_URL . $pngname;
482    }
483    return $ret_path;
484}
485
486// ¥°¥é¥ÕÍѤÎPNG¥Õ¥¡¥¤¥ë̾
487function lfGetGraphPng($keyname) {
488    if($_POST['search_startyear_m'] != "") {
489        $pngname = sprintf("%s_%02d%02d.png", $keyname, substr($_POST['search_startyear_m'],2), $_POST['search_startmonth_m']);
490    } else {
491        $pngname = sprintf("%s_%02d%02d%02d_%02d%02d%02d.png", $keyname, substr($_POST['search_startyear'], 2), $_POST['search_startmonth'], $_POST['search_startday'], substr($_POST['search_endyear'],2), $_POST['search_endmonth'], $_POST['search_endday']);
492    }
493    return $pngname;
494}
495
496// ²ñ°÷¡¢Èó²ñ°÷½¸·×¤ÎWHEREʬ¤ÎºîÀ®
497function lfGetWhereMember($col_date, $sdate, $edate, $type, $col_member = "customer_id") {
498    // ¼èÆÀÆüÉդλØÄê
499    if($sdate != "") {
500        if ($where != "") {
501            $where.= " AND ";
502        }           
503        $where.= " $col_date >= '". $sdate ."'";
504    }
505       
506    if($edate != "") {
507        if ($where != "") {
508            $where.= " AND ";
509        }
510        $edate = date("Y/m/d",strtotime("1 day" ,strtotime($edate)));   
511        $where.= " $col_date < date('" . $edate ."')";
512    }
513   
514    // ²ñ°÷¡¢Èó²ñ°÷¤ÎȽÄê
515    switch($type) {
516    // Á´ÂÎ
517    case 'all':
518        break;
519    case 'member':
520        if ($where != "") {
521            $where.= " AND ";
522        }
523        $where.= " $col_member <> 0";
524        break;
525    case 'nonmember':
526        if ($where != "") {
527            $where.= " AND ";
528        }
529        $where.= " $col_member = 0";
530        break;
531    default:
532        break;
533    }
534   
535    return array($where, $arrval);
536}
537
538/** ²ñ°÷Ê̽¸·× **/
539function lfGetOrderMember($type, $sdate, $edate, $objPage, $graph = true) {
540    global $arrSex;
541       
542    list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type);
543   
544    // ²ñ°÷½¸·×¤Î¼èÆÀ
545    $col = "COUNT(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average, order_sex";
546    $from = "dtb_order";
547    $objQuery = new SC_Query();
548    $objQuery->setGroupBy("order_sex");
549   
550    $tmp_where = $where . " AND customer_id <> 0 AND del_flg = 0 ";
551    $arrRet = $objQuery->select($col, $from, $tmp_where, $arrval);
552   
553    // ²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£
554    $max = count($arrRet);
555    for($i = 0; $i < $max; $i++) {
556        $arrRet[$i]['member_name'] = '²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']];
557    }
558    $objPage->arrResults = $arrRet;
559   
560    // Èó²ñ°÷½¸·×¤Î¼èÆÀ
561    $tmp_where = $where . " AND customer_id = 0 AND del_flg = 0 ";
562    $arrRet = $objQuery->select($col, $from, $tmp_where, $arrval);
563    // Èó²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£
564    $max = count($arrRet);
565    for($i = 0; $i < $max; $i++) {
566        $arrRet[$i]['member_name'] = 'Èó²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']];
567    }
568   
569    $objPage->arrResults = array_merge($objPage->arrResults, $arrRet);
570   
571    // ±ß¥°¥é¥Õ¤ÎÀ¸À®
572    if($graph) {   
573        $image_key = "member";
574        $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "member_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
575    }
576   
577    return $objPage;
578}
579
580/** ¾¦ÉÊÊ̽¸·× **/
581function lfGetOrderProducts($type, $sdate, $edate, $objPage, $graph = true) {
582    list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type);
583   
584    $sql = "SELECT T1.product_id, T1.product_code, T2.name, T1.products_count, T1.order_count, T1.price, T1.total ";
585    $sql.= "FROM ( ";
586    $sql.= "SELECT product_id, product_code, price, ";
587    $sql.= "COUNT(*) AS order_count, ";
588    $sql.= "SUM(quantity) AS products_count, ";
589    $sql.= "(price * sum(quantity)) AS total ";
590    $sql.= "FROM dtb_order_detail WHERE order_id IN (SELECT order_id FROM dtb_order WHERE $where ) ";
591    $sql.= "GROUP BY product_id, product_code, price ";
592    $sql.= ") ";
593    $sql.= "AS T1 LEFT JOIN dtb_products AS T2 USING (product_id) WHERE T2.name IS NOT NULL AND status = 1 ORDER BY T1.total DESC ";
594   
595    if($_POST['mode'] != "csv") {
596        $sql.= "LIMIT " . PRODUCTS_TOTAL_MAX;
597    }
598   
599    $objQuery = new SC_Query();
600    $objPage->arrResults = $objQuery->getall($sql, $arrval);
601   
602    // ±ß¥°¥é¥Õ¤ÎÀ¸À®
603    if($graph) {
604        $image_key = "products_" . $type;
605        $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
606    }
607   
608    return $objPage;
609}
610
611/** ¿¦¶ÈÊ̽¸·× **/
612function lfGetOrderJob($type, $sdate, $edate, $objPage, $graph = true) {
613    global $arrJob;
614       
615    list($where, $arrval) = lfGetWhereMember('T2.create_date', $sdate, $edate, $type);
616   
617    $sql = "SELECT job, count(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average ";
618    $sql.= "FROM dtb_customer AS T1 LEFT JOIN dtb_order AS T2 USING ( customer_id ) WHERE $where AND T2.del_flg = 0 ";
619    $sql.= "GROUP BY job ORDER BY total DESC";
620   
621    $objQuery = new SC_Query();
622    $objPage->arrResults = $objQuery->getall($sql, $arrval);
623           
624    $max = count($objPage->arrResults);
625    for($i = 0; $i < $max; $i++) {
626        $job_key = $objPage->arrResults[$i]['job'];
627        if($job_key != "") {
628            $objPage->arrResults[$i]['job_name'] = $arrJob[$job_key];
629        } else {
630            $objPage->arrResults[$i]['job_name'] = "̤²óÅú";
631        }
632    }
633   
634    // ±ß¥°¥é¥Õ¤ÎÀ¸À®   
635    if($graph) {
636        $image_key = "job_" . $type;
637        $objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "job_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
638    }
639   
640    return $objPage;
641}
642
643/** ǯÂåÊ̽¸·× **/
644function lfGetOrderAge($type, $sdate, $edate, $objPage, $graph = true) {
645
646    list($where, $arrval) = lfGetWhereMember('order_date', $sdate, $edate, $type, "member");
647   
648    $sql = "SELECT SUM(order_count) AS order_count, SUM(total) AS total, start_age, end_age ";
649    $sql.= "FROM dtb_bat_order_daily_age WHERE $where ";
650    $sql.= "GROUP BY start_age, end_age ORDER BY start_age, end_age";
651
652    $objQuery = new SC_Query();
653    $objPage->arrResults = $objQuery->getall($sql, $arrval);
654   
655    $max = count($objPage->arrResults);
656    for($i = 0; $i < $max; $i++) {
657        if($objPage->arrResults[$i]['order_count'] > 0) {
658            $objPage->arrResults[$i]['total_average'] = intval($objPage->arrResults[$i]['total'] / $objPage->arrResults[$i]['order_count']);
659        }   
660        $start_age = $objPage->arrResults[$i]['start_age'];
661        $end_age = $objPage->arrResults[$i]['end_age'];
662        if($start_age != "" || $end_age != "") {
663            if($end_age != 999) {
664                $objPage->arrResults[$i]['age_name'] = $start_age . "¡Á" . $end_age . "ºÐ";
665            } else {
666                $objPage->arrResults[$i]['age_name'] = $start_age . "ºÐ¡Á";
667            }
668        } else {
669            $objPage->arrResults[$i]['age_name'] = "̤²óÅú";
670        }
671    }
672   
673    // ËÀ¥°¥é¥Õ¤ÎÀ¸À®
674    if($graph) {
675        $image_key = "age_" . $type;
676        $xtitle = "(ǯÎð)";
677        $ytitle = "(Çä¾å¹ç·×)";
678        $objPage->tpl_image = lfGetGraphBar($objPage->arrResults, "age_name", $image_key, $xtitle, $ytitle, $sdate, $edate);
679    }
680   
681    return $objPage;
682}
683
684/** ´ü´ÖÊ̽¸·× **/
685function lfGetOrderTerm($type, $sdate, $edate, $objPage, $graph = true) {
686       
687        $tmp_col = "sum(total_order) as total_order, sum(men) as men, sum(women) as women,";
688        $tmp_col.= "sum(men_member) as men_member, sum(men_nonmember) as men_nonmember,";
689        $tmp_col.= "sum(women_member) as women_member, sum(women_nonmember) as women_nonmember,";
690        $tmp_col.= "sum(total) as total, (avg(total_average)) as total_average";
691        $objQuery = new SC_Query();
692       
693        switch($type) {
694        // ·îÊÌ
695        case 'month':
696            $col = $tmp_col . ",key_month";
697            $objQuery->setgroupby("key_month");
698            $objQuery->setOrder("key_month");
699            $objPage->keyname = "key_month";
700            $objPage->tpl_tail = "·î";
701            $from = "dtb_bat_order_daily";
702            $xtitle = "(·îÊÌ)";
703            $ytitle = "(Çä¾å¹ç·×)";
704            break;
705        // ǯÊÌ
706        case 'year':
707            $col = $tmp_col . ",key_year";
708            $objQuery->setgroupby("key_year");
709            $objQuery->setOrder("key_year");
710            $objPage->keyname = "key_year";
711            $objPage->tpl_tail = "ǯ";
712            $from = "dtb_bat_order_daily";
713            $xtitle = "(ǯÊÌ)";
714            $ytitle = "(Çä¾å¹ç·×)";
715            break;
716        // ÍËÆüÊÌ
717        case 'wday':
718            $col = $tmp_col . ",key_wday, wday";
719            $objQuery->setgroupby("key_wday, wday");
720            $objQuery->setOrder("wday");
721            $objPage->keyname = "key_wday";
722            $objPage->tpl_tail = "ÍËÆü";
723            $from = "dtb_bat_order_daily";
724            $xtitle = "(ÍËÆüÊÌ)";
725            $ytitle = "(Çä¾å¹ç·×)";
726            break;
727        // »þ´ÖÊÌ
728        case 'hour':
729            $col = $tmp_col . ",hour";
730            $objQuery->setgroupby("hour");
731            $objQuery->setOrder("hour");
732            $objPage->keyname = "hour";
733            $objPage->tpl_tail = "»þ";
734            $from = "dtb_bat_order_daily_hour";
735            $xtitle = "(»þ´ÖÊÌ)";
736            $ytitle = "(Çä¾å¹ç·×)";
737            break;
738        default:
739            $col = "*";
740            $objQuery->setOrder("key_day");
741            $objPage->keyname = "key_day";
742            $from = "dtb_bat_order_daily";
743            $xtitle = "(ÆüÊÌ)";
744            $ytitle = "(Çä¾å¹ç·×)";
745            break;
746        }
747       
748
749    // ¼èÆÀÆüÉդλØÄê
750        if($sdate != "") {
751            if ($where != "") {
752                $where.= " AND ";
753            }           
754            $where.= " order_date >= '". $sdate ."'";
755        }
756       
757        if($edate != "") {
758            if ($where != "") {
759                $where.= " AND ";
760            }
761            $edate = date("Y/m/d",strtotime("1 day" ,strtotime($edate)));
762            $where.= " order_date < date('" . $edate ."')";
763        }
764       
765        // ¸¡º÷·ë²Ì¤Î¼èÆÀ
766        $objPage->arrResults = $objQuery->select($col, $from, $where, $arrval);
767       
768        // ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎÀ¸À®   
769        if($graph) {
770            $image_key = "term_" . $type;
771            $objPage->tpl_image = lfGetGraphLine($objPage->arrResults, $objPage->keyname, $image_key, $xtitle, $ytitle, $sdate, $edate);
772        }
773       
774        // ¸¡º÷·ë²Ì¤¬0¤Ç¤Ê¤¤¾ì¹ç
775        if(count($objPage->arrResults) > 0) {
776            // ºÇ½ª½¸·×¹Ô¼èÆÀ¤¹¤ë
777            $col = $tmp_col;
778            $objQuery = new SC_Query();
779            $arrRet = $objQuery->select($col, $from, $where, $arrval);
780            $arrRet[0][$objPage->keyname] = "¹ç·×";
781            $objPage->arrResults[] = $arrRet[0];
782        }
783
784        // Ê¿¶ÑÃͤη׻»
785        $max = count($objPage->arrResults);
786        for($i = 0; $i < $max; $i++) {
787            if($objPage->arrResults[$i]['total_order'] > 0) {
788                $objPage->arrResults[$i]['total_average'] = intval($objPage->arrResults[$i]['total'] / $objPage->arrResults[$i]['total_order']);
789            }
790        }
791       
792        return $objPage;
793}
794
795?>
Note: See TracBrowser for help on using the repository browser.