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

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