source: branches/comu/html/admin/home.php @ 11729

Revision 11729, 5.6 KB checked in by nanasess, 19 years ago (diff)

UTF-8 へ変換

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("./require.php");
8
9class LC_Page {
10    var $arrSession;
11    function LC_Page() {
12        $this->tpl_mainpage = 'home.tpl';
13    }
14}
15
16$conn = new SC_DBConn();
17$objPage = new LC_Page();
18$objView = new SC_AdminView();
19$objSess = new SC_Session();
20
21// 認証可否の判定
22sfIsSuccess($objSess);
23
24// DBバージョンの取得
25$objPage->db_version = sfGetDBVersion();
26
27// PHPバージョンの取得
28$objPage->php_version = "PHP " . phpversion();
29
30// 現在の会員数
31$objPage->customer_cnt = lfGetCustomerCnt($conn);
32
33// 昨日の売上高
34$objPage->order_yesterday_amount = lfGetOrderYesterday($conn, "SUM");
35
36// 昨日の売上件数
37$objPage->order_yesterday_cnt = lfGetOrderYesterday($conn, "COUNT");
38
39// 今月の売上高
40$objPage->order_month_amount = lfGetOrderMonth($conn, "SUM");
41
42// 今月の売上件数
43$objPage->order_month_cnt = lfGetOrderMonth($conn, "COUNT");
44
45// 顧客の累計ポイント
46$objPage->customer_point = lfGetTotalCustomerPoint();
47
48//昨日のレビュー書き込み数
49$objPage->review_yesterday_cnt = lfGetReviewYesterday($conn);
50
51//レビュー書き込み非表示数
52$objPage->review_nondisp_cnt = lfGetReviewNonDisp($conn);
53
54// 品切れ商品
55$objPage->arrSoldout = lfGetSoldOut();
56
57// 新規受付一覧
58$arrNewOrder = lfGetNewOrder();
59
60foreach ($arrNewOrder as $key => $val){
61    $arrNewOrder[$key]['create_date'] = str_replace("-", "/", substr($val['create_date'], 0,19));
62   
63}
64$objPage->arrNewOrder = $arrNewOrder;
65
66// お知らせ一覧の取得
67$objPage->arrInfo = lfGetInfo();
68
69$objView->assignobj($objPage);
70$objView->display(MAIN_FRAME);
71//---------------------------------------------------------
72
73// 会員数
74function lfGetCustomerCnt($conn){
75   
76    $sql = "SELECT COUNT(customer_id) FROM dtb_customer WHERE del_flg = 0 AND status = 2";
77    $return = $conn->getOne($sql);
78    return $return;
79}
80
81// 昨日の売上高・売上件数
82function lfGetOrderYesterday($conn, $method){
83    if ( $method == 'SUM' or $method == 'COUNT'){
84        // postgresql と mysql とでSQLをわける
85        if (DB_TYPE == "pgsql") {
86            $sql = "SELECT ".$method."(total) FROM dtb_order
87                     WHERE del_flg = 0 AND to_char(create_date,'YYYY/MM/DD') = to_char(now() - interval '1 days','YYYY/MM/DD')";
88        }else if (DB_TYPE == "mysql") {
89            $sql = "SELECT ".$method."(total) FROM dtb_order
90                     WHERE del_flg = 0 AND cast(substring(create_date,1, 10) as date) = DATE_ADD(current_date, interval -1 day)";
91        }
92        $return = $conn->getOne($sql);
93    }
94    return $return;
95}
96
97function lfGetOrderMonth($conn, $method){
98
99    $month = date("Y/m", mktime());
100   
101    if ( $method == 'SUM' or $method == 'COUNT'){
102    // postgresql と mysql とでSQLをわける
103    if (DB_TYPE == "pgsql") {
104        $sql = "SELECT ".$method."(total) FROM dtb_order
105                 WHERE del_flg = 0 AND to_char(create_date,'YYYY/MM') = ?
106                 AND to_char(create_date,'YYYY/MM/DD') <> to_char(now(),'YYYY/MM/DD')";
107    }else if (DB_TYPE == "mysql") {
108        $sql = "SELECT ".$method."(total) FROM dtb_order
109                 WHERE del_flg = 0 AND cast(substring(create_date,1,7) as date) = ?
110                 AND cast(substring(create_date,1, 10) as date) <> cast(substring(now(),1, 10) as date)";
111    }
112        $return = $conn->getOne($sql, array($month));
113    }
114    return $return;
115}
116
117function lfGetTotalCustomerPoint() {
118    $objQuery = new SC_Query();
119    $col = "SUM(point)";
120    $where = "del_flg = 0";
121    $from = "dtb_customer";
122    $ret = $objQuery->get($from, $col, $where);
123    return $ret;   
124}
125
126function lfGetReviewYesterday($conn){
127    // postgresql と mysql とでSQLをわける
128    if (DB_TYPE == "pgsql") {
129        $sql = "SELECT COUNT(*) FROM dtb_review
130                 WHERE del_flg=0 AND to_char(create_date, 'YYYY/MM/DD') = to_char(now() - interval '1 days','YYYY/MM/DD')
131                 AND to_char(create_date,'YYYY/MM/DD') != to_char(now(),'YYYY/MM/DD')";
132    }else if (DB_TYPE == "mysql") {
133        $sql = "SELECT COUNT(*) FROM dtb_review
134                 WHERE del_flg = 0 AND cast(substring(create_date,1, 10) as date) = DATE_ADD(current_date, interval -1 day)
135                 AND cast(substring(create_date,1, 10) as date) != cast(substring(now(),1, 10) as date)";
136    }
137    $return = $conn->getOne($sql);
138    return $return;
139}
140
141function lfGetReviewNonDisp($conn){
142    $sql = "SELECT COUNT(*) FROM dtb_review WHERE del_flg=0 AND status=2";
143    $return = $conn->getOne($sql);
144    return $return;
145}
146
147// 品切れ商品番号の取得
148function lfGetSoldOut() {
149    $objQuery = new SC_Query();
150    $where = "product_id IN (SELECT product_id FROM dtb_products_class WHERE stock_unlimited IS NULL AND stock <= 0)";
151    $arrRet = $objQuery->select("product_id, name", "dtb_products", $where);
152    return $arrRet;
153}
154
155// 新規受付一覧
156function lfGetNewOrder() {
157    $objQuery = new SC_Query();
158    $col = "ord.order_id, customer_id, ord.order_name01 AS name01, ord.order_name02 AS name02, ord.total, ";
159    $col.= "(SELECT det.product_name FROM dtb_order_detail AS det WHERE ord.order_id = det.order_id LIMIT 1) AS product_name, ";
160    $col.= "(SELECT pay.payment_method FROM dtb_payment AS pay WHERE ord.payment_id = pay.payment_id) AS payment_method, ";
161    $col.= "create_date AS create_date";
162    $from = "dtb_order AS ord";
163    $where = "del_flg = 0";
164    $objQuery->setoption("ORDER BY create_date DESC LIMIT 10 OFFSET 0");
165    $arrRet = $objQuery->select($col, $from, $where);
166    return $arrRet;
167}
168
169// お知らせ取得
170function lfGetInfo() {
171    // 更新情報を最新にする
172    $objQuery = new SC_Query();
173    $path = UPDATE_HTTP . "info.txt";
174    $fp = @fopen($path, "rb");
175   
176    $arrRet = array();
177    if(!$fp) {
178        sfErrorHeader(">> " . $path . "の取得に失敗しました。");
179    } else {
180        while (!feof($fp)) {
181            $arrRet[] = $arrCSV = fgetcsv($fp, UPDATE_CSV_LINE_MAX);
182        }
183        fclose($fp);
184    }
185   
186    return $arrRet;
187}
188
189
190
191?>
Note: See TracBrowser for help on using the repository browser.