mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-04 14:36:50 +08:00
296 lines
10 KiB
PHP
296 lines
10 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
|
||
class omeanalysts_ome_shop extends eccommon_analysis_abstract implements eccommon_analysis_interface{
|
||
public $report_type = 'true';
|
||
public $type_options = array(
|
||
'display' => 'true',
|
||
);
|
||
public $logs_options = array(
|
||
'1' => array(
|
||
'name' => '销售单数',
|
||
'flag' => array(),
|
||
'memo' => '销售单数',
|
||
'icon' => 'money.gif',
|
||
'col' => '1',
|
||
),
|
||
'2' => array(
|
||
'name' => '销售货品数',
|
||
'flag' => array(),
|
||
'memo' => '销售货品数',
|
||
'icon' => 'money.gif',
|
||
'col' => '2',
|
||
),
|
||
'3' => array(
|
||
'name' => '销售金额',
|
||
'flag' => array(),
|
||
'memo' => '销售金额',
|
||
'icon' => 'coins.gif',
|
||
'col' => '3',
|
||
),
|
||
'4' => array(
|
||
'name' => '售后单数',
|
||
'flag' => array(),
|
||
'memo' => '售后单数',
|
||
'icon' => 'money.gif',
|
||
'col' => '4',
|
||
),
|
||
'5' => array(
|
||
'name' => '售后货品数',
|
||
'flag' => array(),
|
||
'memo' => '售后货品数',
|
||
'icon' => 'money.gif',
|
||
'col' => '5',
|
||
),
|
||
'6' => array(
|
||
'name' => '退款金额',
|
||
'flag' => array(),
|
||
'memo' => '退款金额',
|
||
'icon' => 'coins.gif',
|
||
'col' => '6',
|
||
),
|
||
'7' => array(
|
||
'name' => '合计金额',
|
||
'flag' => array(),
|
||
'memo' => '合计金额',
|
||
'icon' => 'coins.gif',
|
||
'col' => '7',
|
||
),
|
||
);
|
||
public $graph_options = array(
|
||
'hidden' => true,
|
||
'iframe_height' => 180,
|
||
'callback' => 'omeanalysts_ome_graph_month',
|
||
);
|
||
|
||
/**
|
||
* __construct
|
||
* @param mixed $app app
|
||
* @return mixed 返回值
|
||
*/
|
||
public function __construct(&$app){
|
||
parent::__construct($app);
|
||
$typeObj = $this->app->model('ome_type');
|
||
$flagList = $typeObj->get_shop();
|
||
foreach($this->logs_options as $key=>$val){
|
||
$this->logs_options[$key]['flag'][0] = '全部';
|
||
foreach($flagList as $shop){
|
||
$this->logs_options[$key]['flag'][$shop['relate_id']] = $shop['name'];
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取_type
|
||
* @return mixed 返回结果
|
||
*/
|
||
public function get_type(){
|
||
$typeObj = $this->app->model('ome_type');
|
||
$shop_data = $typeObj->get_shop();
|
||
$shop_types = $typeObj->getShopType();
|
||
$org_data = $typeObj->getOrg();
|
||
|
||
$return = array(
|
||
'type_id[]'=>array(
|
||
'lab' => '店铺',
|
||
'data' => $shop_data,
|
||
'id' => 'shop_type_id',
|
||
'multiple' => 'true',
|
||
),
|
||
'shop_type'=>array(
|
||
'lab'=>'平台类型',
|
||
'data'=>$shop_types,
|
||
//'type' => 'select',
|
||
),
|
||
'org_id'=>array(
|
||
'lab' => '运营组织',
|
||
'data' => $org_data,
|
||
),
|
||
);
|
||
|
||
return $return;
|
||
}
|
||
|
||
|
||
/**
|
||
* 获取_logs
|
||
* @param mixed $time time
|
||
* @return mixed 返回结果
|
||
*/
|
||
public function get_logs($time){
|
||
$filter = $this->_params;
|
||
|
||
/** 依据 所有店铺 来统计数据 **/
|
||
$filter = array(
|
||
'time_from' => date('Y-m-d',$time),
|
||
'time_to' => date('Y-m-d',$time),
|
||
);
|
||
|
||
$shopObj = $this->app->model('ome_shop');
|
||
|
||
$all = $shopObj->add_shoplog($filter);
|
||
|
||
$result[] = array('type'=>0, 'target'=>1, 'flag'=>0, 'value'=>$all['sale_order']);
|
||
$result[] = array('type'=>0, 'target'=>2, 'flag'=>0, 'value'=>$all['sale_num']);
|
||
$result[] = array('type'=>0, 'target'=>3, 'flag'=>0, 'value'=>$all['sale_amount']);
|
||
$result[] = array('type'=>0, 'target'=>4, 'flag'=>0, 'value'=>$all['aftersale_order']);
|
||
$result[] = array('type'=>0, 'target'=>5, 'flag'=>0, 'value'=>$all['aftersale_num']);
|
||
$result[] = array('type'=>0, 'target'=>6, 'flag'=>0, 'value'=>$all['aftersale_amount']);
|
||
$result[] = array('type'=>0, 'target'=>7, 'flag'=>0, 'value'=>$all['total_amount']);
|
||
|
||
/** 依据 各个店铺 来统计数据 **/
|
||
|
||
$typeObj = $this->app->model('ome_type');
|
||
$flagList = $typeObj->get_shop();
|
||
foreach($flagList as $key=>$val){
|
||
|
||
$filter['type_id'] = $val['type_id'];
|
||
$shop = $shopObj->add_shoplog($filter);
|
||
|
||
$result[] = array('type'=>0, 'target'=>1, 'flag'=>$val['relate_id'], 'value'=>$shop['sale_order']);
|
||
$result[] = array('type'=>0, 'target'=>2, 'flag'=>$val['relate_id'], 'value'=>$shop['sale_num']);
|
||
$result[] = array('type'=>0, 'target'=>3, 'flag'=>$val['relate_id'], 'value'=>$shop['sale_amount']);
|
||
$result[] = array('type'=>0, 'target'=>4, 'flag'=>$val['relate_id'], 'value'=>$shop['aftersale_order']);
|
||
$result[] = array('type'=>0, 'target'=>5, 'flag'=>$val['relate_id'], 'value'=>$shop['aftersale_num']);
|
||
$result[] = array('type'=>0, 'target'=>6, 'flag'=>$val['relate_id'], 'value'=>$shop['aftersale_amount']);
|
||
$result[] = array('type'=>0, 'target'=>7, 'flag'=>$val['relate_id'], 'value'=>$shop['total_amount']);
|
||
|
||
}
|
||
|
||
return $result;
|
||
}
|
||
|
||
|
||
/**
|
||
* ext_detail
|
||
* @param mixed $detail detail
|
||
* @return mixed 返回值
|
||
*/
|
||
public function ext_detail(&$detail){
|
||
|
||
$filter = $this->_params;
|
||
|
||
$shops = $this->app->model('ome_shop')->getlist('*',$filter);
|
||
|
||
$sale_order = $sale_num = $sale_amount = $aftersale_order = 0;
|
||
$aftersale_num = $aftersale_amount = $total_amount = 0;
|
||
|
||
foreach ($shops as $shop) {
|
||
$sale_order += $shop['sale_order'];
|
||
$sale_num += $shop['sale_num'];
|
||
$sale_amount += $shop['sale_amount'];
|
||
$aftersale_order += $shop['aftersale_order'];
|
||
$aftersale_num += $shop['aftersale_num'];
|
||
$aftersale_amount += $shop['aftersale_amount'];
|
||
$total_amount += $shop['total_amount'];
|
||
}
|
||
|
||
$detail['销售单数']['value'] = $sale_order;
|
||
$detail['销售货品数']['value'] = $sale_num;
|
||
$detail['销售金额']['value'] = "¥".$sale_amount;
|
||
$detail['售后单数']['value'] = $aftersale_order;
|
||
$detail['售后货品数']['value'] = $aftersale_num;
|
||
$detail['退款金额']['value'] = "¥".$aftersale_amount;
|
||
$detail['合计金额']['value'] = "¥".$total_amount;
|
||
|
||
}
|
||
|
||
/**
|
||
* 查找er
|
||
* @return mixed 返回结果
|
||
*/
|
||
public function finder(){
|
||
|
||
$_extra_view = array(
|
||
'omeanalysts' => 'ome/extra_view.html',
|
||
);
|
||
|
||
$this->set_extra_view($_extra_view);
|
||
|
||
$params = array(
|
||
'model' => 'omeanalysts_mdl_ome_shop',
|
||
'params' => array(
|
||
'actions'=>array(
|
||
'export'=>array(
|
||
'label'=>app::get('omeanalysts')->_('导出报表'),
|
||
'class'=>'export',
|
||
'icon'=>'add.gif',
|
||
'href'=>'index.php?app=omeanalysts&ctl=ome_analysis&act=shop&action=export',
|
||
'target'=>'{width:600,height:300,title:\'导出报表\'}'
|
||
),
|
||
array(
|
||
'label'=>app::get('omeanalysts')->_('重新生成报表'),
|
||
'href'=>'index.php?app=omeanalysts&ctl=ome_analysis&act=regenerate_report&p[0]=shop&p[1]=regenerate',
|
||
'target'=>'dialog::{width:400,height:170,title:\'重新生成报表\'}',
|
||
),
|
||
),
|
||
'title'=>app::get('omeanalysts')->_('店铺每日汇总<script>if($$(".finder-list").getElement("tbody").get("html") == "\n" || $$(".finder-list").getElement("tbody").get("html") == "" ){$$(".export").set("href","javascript:;").set("onclick", "alert(\"没有可以生成的数据\")");}else{$$(".export").set("href",\'index.php?app=omeanalysts&ctl=ome_analysis&act=shop&action=export\');}</script>'),
|
||
'use_buildin_recycle'=>false,
|
||
'use_buildin_selectrow'=>false,
|
||
),
|
||
);
|
||
#增加报表导出权限
|
||
$is_export = kernel::single('desktop_user')->has_permission('analysis_export');
|
||
if(!$is_export){
|
||
unset($params['params']['actions']['export']);
|
||
}
|
||
return $params;
|
||
}
|
||
|
||
/**
|
||
* detail
|
||
* @return mixed 返回值
|
||
*/
|
||
public function detail()
|
||
{
|
||
if($this->detail_options['hidden'] == true){
|
||
$this->_render->pagedata['detail_hidden'] = 1;
|
||
return false;
|
||
}
|
||
$detail = array();
|
||
|
||
foreach($this->logs_options AS $target=>$option){
|
||
$detail[$option['name']]['value'] = ($tmp[$target]) ? $tmp[$target] : 0;
|
||
$detail[$option['name']]['memo'] = $this->logs_options[$target]['memo'];
|
||
$detail[$option['name']]['icon'] = $this->logs_options[$target]['icon'];
|
||
$detail[$option['name']]['col'] = $target;
|
||
}
|
||
|
||
if(method_exists($this, 'ext_detail')){
|
||
$this->ext_detail($detail);
|
||
}
|
||
foreach($detail AS $key=>$val){
|
||
$name = $this->app->_($key);
|
||
$data[$name]['value'] = $val['value'];
|
||
$data[$name]['memo'] = $this->app->_($val['memo']);
|
||
$data[$name]['icon'] = $val['icon'];
|
||
$data[$name]['col'] = $val['col'];
|
||
}
|
||
$this->_render->pagedata['detail'] = $data;
|
||
return true;
|
||
}//End Function
|
||
|
||
/**
|
||
* headers
|
||
* @return mixed 返回值
|
||
*/
|
||
public function headers()
|
||
{
|
||
parent::headers();
|
||
if($this->type_options['display'] == 'true'){
|
||
$this->_render->pagedata['type_display'] = 'true';
|
||
$this->_render->pagedata['typeData'] = $this->get_type();
|
||
|
||
$type_selected = array(
|
||
'type_id[]'=>$this->_params['type_id'],
|
||
'shop_type'=>$this->_params['shop_type'],
|
||
'org_id'=>$this->_params['org_id'],
|
||
);
|
||
$this->_render->pagedata['type_selected'] = $type_selected;
|
||
}
|
||
}//End Function
|
||
|
||
} |