define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
require_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/admin/erp_ebay_statistic.php');
$smarty->assign('lang', $_LANG);
/* act操作项的初始化 */
if (empty($_REQUEST['act']))
{
$_REQUEST['act'] = 'view';
}
else
{
$_REQUEST['act'] = trim($_REQUEST['act']);
}
if ($_REQUEST['act'] == 'view')
{
admin_priv('order_stats'); //检查权限
$is_multi = empty($_POST['is_multi']) ? false : true;
/* 时间参数 */
if (isset($_POST['start_date']) && !empty($_POST['end_date']))
{
$start_date = local_strtotime($_POST['start_date']);
$end_date = local_strtotime($_POST['end_date']);
}
else
{
$today = local_strtotime(local_date('Y-m-d'));
$start_date = $today - 86400 * 14;
$end_date = $today;
}
$start_date_arr = array();
$end_date_arr = array();
if(!empty($_POST['year_month']))
{
$tmp = $_POST['year_month'];
for ($i = 0; $i
{
if (!empty($tmp[$i]))
{
$tmp_time = local_strtotime($tmp[$i] . '-1');
//echo $tmp_time;
$start_date_arr[] = $tmp_time;
$end_date_arr[] = local_strtotime($tmp[$i] . '-' . date('t', $tmp_time));
//echo local_strtotime($tmp[$i] . '-' . date('t', $tmp_time));
}
}
}
else
{
$tmp_time = local_strtotime(local_date('Y-m-d'));
$start_date_arr[] = local_strtotime(local_date('Y-m') . '-1');
$end_date_arr[] = local_strtotime(local_date('Y-m') . '-31');;
}
/* ------------------------------------- */
/* -- 综合订单量
/* ------------------------------------- */
$max = 0;
if(!$is_multi)
{
$general_xml = "";
$sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date' AND created_time
" GROUP BY sn";
$res = $db->query($sql);
$key = 0;
while ($val = $db->fetchRow($res))
{
$val['order_date'] = gmdate('m-d',$val['created_time'] + $timezone * 3600 + 86400);
$general_xml .= "";
if ($val['order_count'] > $max)
{
$max = $val['order_count'];
}
$key++;
}
$general_xml .= '';
$general_xml = sprintf($general_xml, $max);
}
else
{
$general_xml = "";
foreach($start_date_arr AS $k => $val)
{
$seriesName = local_date('Y-m', $start_date_arr[$k]);
$general_xml .= "";
$sql = "SELECT FLOOR((created_time - $start_date_arr[$k]) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date_arr[$k]' AND created_time
" GROUP BY sn";
$res = $db->query($sql);
$lastDay = 0;
while ($val = $db->fetchRow($res))
{
$day = gmdate('d', $val['created_time'] + $timezone * 3600);
if ($lastDay == 0)
{
$time_span = (($day-1) - $lastDay);
$lastDay++;
for (; $lastDay
{
$general_xml .= "";
}
}
$general_xml .= "";
$lastDay = $day;
}
$general_xml .= "";
}
$general_xml .= "";
for ($i = 1; $i
{
$general_xml .= "";
}
$general_xml .= "";
$general_xml .= "";
echo $general_xml;
}
/* ------------------------------------- */
/* -- 销售额
/* ------------------------------------- */
$max = 0;
if(!$is_multi)
{
$amount_xml = "";
$sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, SUM(subtotal) AS order_amount".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date' AND created_time
" GROUP BY sn";
$res = $db->query($sql);
$key = 0;
while ($val = $db->fetchRow($res))
{
$val['order_date'] = gmdate('m-d',$val['created_time'] + $timezone * 3600 + 86400);
$amount_xml .= "";
if ($val['order_amount'] > $max)
{
$max = $val['order_amount'];
}
$key++;
}
$amount_xml .= '';
$amount_xml = sprintf($amount_xml, $max);
}
else
{
$amount_xml = "";
foreach($start_date_arr AS $k => $val)
{
$seriesName = local_date('Y-m', $start_date_arr[$k]);
$amount_xml .= "";
$sql = "SELECT FLOOR((created_time - $start_date_arr[$k]) / (24 * 3600)) AS sn, created_time, SUM(subtotal) AS order_amount".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date_arr[$k]' AND created_time
" GROUP BY sn";
$res = $db->query($sql);
$lastDay = 0;
while ($val = $db->fetchRow($res))
{
$day = gmdate('d',$val['created_time'] + $timezone * 3600);
if ($lastDay == 0)
{
$time_span = (($day-1) - $lastDay);
$lastDay++;
for (; $lastDay
{
$amount_xml .= "";
}
}
$amount_xml .= "";
$lastDay = $day;
}
$amount_xml .= "";
}
$amount_xml .= "";
for ($i = 1;$i
{
$amount_xml .= "";
}
$amount_xml .= "";
$amount_xml .= "";
}
/* ------------------------------------- */
/* -- 状态
/* ------------------------------------- */
$status_xml = '';
if(!$is_multi)
{
$status_xml .= "";
$sql = "SELECT COUNT(*) AS order_count, ebay_status FROM " . $ecs->table('erp_ebay_order') .
" WHERE created_time >= '$start_date' AND created_time
" GROUP BY ebay_status ORDER BY order_count DESC LIMIT 20";
$res = $db->query($sql);
$key = 0;
while ($val = $db->fetchRow($res))
{
$ebay_status = empty($val['ebay_status']) ? 'no data' : $val['ebay_status'];
$status_xml .= "";
$key++;
}
$status_xml .= '';
}
else
{
$where = '';
foreach($start_date_arr AS $k => $val)
{
if ($where != '')
{
$where .= ' or ';
}
$where .= "(created_time >= '$start_date_arr[$k]' AND created_time
}
$sql = "SELECT created_time, ebay_status FROM " . $ecs->table('erp_ebay_order') .
" WHERE $where";
$res = $db->query($sql);
$area_arr = array();
while ($val = $db->fetchRow($res))
{
$date = local_date('Y-m', $val['created_time']);
$area_arr[$val['ebay_status']] = null;
if (isset($category[$date][$val['ebay_status']]))
{
$category[$date][$val['ebay_status']]++;
}
else
{
$category[$date][$val['ebay_status']] = 1;
}
}
$status_xml = "";
$status_xml .= "";
foreach ($area_arr AS $k => $v)
{
$status_xml .= "";
}
$status_xml .= "";
$key = 0;
foreach($start_date_arr AS $val)
{
$key++;
$date = local_date('Y-m', $val);
$status_xml .= "";
foreach ($area_arr AS $k => $v)
{
if (isset($category[$date][$k]))
{
$status_xml .= "";
}
else
{
$status_xml .= "";
}
}
$status_xml .= "";
}
$status_xml .= "";
}
/* 模板赋值 */
$smarty->assign('ur_here', $_LANG['01_erp_order_stats']);
$smarty->assign('general_data', $general_xml);
$smarty->assign('amount_data', $amount_xml);
$smarty->assign('status_data', $status_xml);
$smarty->assign('is_multi', $is_multi);
/* 显示日期 */
$smarty->assign('start_date', local_date('Y-m-d', $start_date));
$smarty->assign('end_date', local_date('Y-m-d', $end_date));
for ($i = 0; $i
{
if (isset($start_date_arr[$i]))
{
$start_date_arr[$i] = local_date('Y-m', $start_date_arr[$i]);
}
else
{
$start_date_arr[$i] = null;
}
}
$smarty->assign('start_date_arr', $start_date_arr);
if (!$is_multi)
{
$filename = gmdate($_CFG['date_format'], $start_date + $timezone * 3600 + 86400) . '_' .
gmdate($_CFG['date_format'], $end_date + $timezone * 3600 + 86400);
$smarty->assign('action_link', array('text' => $_LANG['down_order_stats'],
'href'=>'erp_ebay_order_stats.php?act=download&filename=' . $filename .
'&start_date=' . $start_date . '&end_date=' . $end_date));
}
/* 显示页面 */
assign_query_info();
$smarty->display('erp_ebay_order_stats.htm');
}
/* 报表下载 */
elseif ($act = 'download')
{
admin_priv('download_order_stats'); //检查权限
$filename = !empty($_REQUEST['filename']) ? trim($_REQUEST['filename']) : '';
header("Content-type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=$filename.xls");
$start_date = empty($_GET['start_date']) ? strtotime('-20 day') : intval($_GET['start_date']);
$end_date = empty($_GET['end_date']) ? time() : intval($_GET['end_date']);
//综合订单量统计
$sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count, SUM(subtotal) AS order_amount".
" FROM " . $GLOBALS['ecs']->table('erp_ebay_order') .
" WHERE created_time >= '$start_date' AND created_time
" GROUP BY sn";
$res = $GLOBALS['db']->query($sql);
$data .= $_LANG['date'] . "t";
$data .= $_LANG['order_count'] . "t";
$data .= $_LANG['order_amount'] . "tn";
while ($val = $GLOBALS['db']->fetchRow($res))
{
$val['created_date'] = gmdate($_CFG['date_format'], $val['created_time'] + $timezone * 3600 + 86400);
$data .= $val['created_date'] . "t";
$data .= $val['order_count'] . "t";
$data .= price_format($val['order_amount']) . "tn";
$total_count += $val['order_count'];
$total_amount += $val['order_amount'];
}
$data .= $_LANG['total'] . "t";
$data .= $total_count . "t";
$data .= price_format($total_amount) . "tn";
//状态统计
$sql = "SELECT COUNT(*) AS order_count, SUM(subtotal) AS order_amount, ebay_status FROM " . $GLOBALS['ecs']->table('erp_ebay_order') .
" WHERE created_time >= '$start_date' AND created_time
" GROUP BY ebay_status ORDER BY order_count DESC LIMIT 20";
$res = $GLOBALS['db']->query($sql);
$data .= "tn";
$data .= $_LANG['order_status'] . "t";
$data .= $_LANG['order_count'] . "t";
$data .= $_LANG['order_amount'] . "tn";
while ($val = $GLOBALS['db']->fetchRow($res))
{
$data .= $val['ebay_status'] . "t";
$data .= $val['order_count'] . "t";
$data .= price_format($val['order_amount']) . "tn";
}
if (EC_CHARSET != 'UTF-8')
{
echo ecs_iconv(EC_CHARSET, 'UTF-8', $data) . "t";
}
else
{
echo $data. "t";
}
}
?>
|