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

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