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

Revision 2799, 22.3 KB checked in by kakinaka, 20 years ago (diff)

blank

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