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

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