1868 行
114 KiB
PHP
可执行文件
1868 行
114 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Retail\Controller;
|
|
|
|
use Think\Controller;
|
|
|
|
//[1.2.91]
|
|
class ExporttableController extends BaseController
|
|
{
|
|
public function goods()
|
|
{
|
|
$storeid = session('storeid');
|
|
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
|
|
import("Vendor.PHPExcel.PHPExcel");
|
|
import("Vendor.PHPExcel.Writer.Excel5");
|
|
import("Vendor.PHPExcel.IOFactory.php");
|
|
//按照商品类别搜索
|
|
//按照商品类别搜索
|
|
$person1 = I('get.person1');
|
|
$person2 = I('get.person2');
|
|
$person3 = I('get.person3');
|
|
$flag = 0;
|
|
if (!empty($person3)) {
|
|
$where['g.goods_class_id'] = $person3;
|
|
} else if (!empty($person2)) {
|
|
$class = M('retail_goods_class as c2')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid')
|
|
->where(array('c2.id' => $person2, 'c3.status' => 0))
|
|
->field('c3.id')->select();
|
|
$flag = 1;
|
|
} else if (!empty($person1)) {
|
|
$class = M('retail_goods_class as c1')
|
|
->join('ls_retail_goods_class as c2 on c1.id=c2.pid')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid AND c3.status=0', 'LEFT')
|
|
->where(array('c1.id' => $person1, 'c2.status' => 0))
|
|
->field('c2.id,c3.id as c3_id')->select();
|
|
$flag = 1;
|
|
}
|
|
if (!empty($class)) {
|
|
$arr = array();
|
|
foreach ($class as &$val) {
|
|
if (!in_array($val['id'], $arr)) {
|
|
$arr[] = $val['id'];
|
|
}
|
|
if (!empty($val['c3_id'])) {
|
|
if (!in_array($val['c3_id'], $arr)) {
|
|
$arr[] = $val['c3_id'];
|
|
}
|
|
}
|
|
}
|
|
$str = implode(',', $arr);
|
|
$where['g.goods_class_id'] = array('in', $str . ',' . ($person2 ? $person2 : $person1));
|
|
} else if ($flag == 1) {
|
|
$where['g.goods_class_id'] = $person2 ? $person2 : $person1;
|
|
}
|
|
$where['g.storeid'] = $storeid;
|
|
$where['g.status'] = array('in', array(0, 1));
|
|
//商品列表
|
|
$goods = M('retail_goods as g')
|
|
->join('ls_retail_goods_class as c on c.id=g.goods_class_id')
|
|
->where($where)
|
|
->order('g.goods_class_id desc,g.status asc')
|
|
->field('g.*,c.class_name,c.type as c_type,c.pid as c_pid')
|
|
->select();
|
|
|
|
foreach ($goods as &$value) {
|
|
//查询出分类名称
|
|
if ($value['c_type'] == 2) {
|
|
$value['class_name'] = M('retail_goods_class')->where(array('id' => $value['c_pid']))->getField('class_name');
|
|
} else if ($value['c_type'] == 3) {
|
|
$_class = M('retail_goods_class as c2')
|
|
->join('ls_retail_goods_class as c1 on c2.pid=c1.id')
|
|
->where(array('c2.id' => $value['c_pid']))
|
|
->field('c1.class_name,c2.class_name as c2_class_name')
|
|
->find();
|
|
$value['class_name'] = $_class['class_name'] . '/' . $_class['c2_class_name'] . '/' . $value['class_name'];
|
|
}
|
|
//判断出商品的状态以及是否允许修改折扣价
|
|
if ($value['status'] == 0) {
|
|
$value['status_name'] = '正常';
|
|
} elseif ($value['status'] == 1) {
|
|
$value['status_name'] = '已下架';
|
|
} elseif ($value['status'] == 2) {
|
|
$value['status_name'] = '已删除';
|
|
}
|
|
if ($value['issellonline'] == 0) {
|
|
$value['issellonline_name'] = '否';
|
|
} else {
|
|
$value['issellonline_name'] = '是';
|
|
}
|
|
$value['goods_code'] = $value['goods_code'] ? $value['goods_code'] : '';
|
|
$value['good_number'] = $value['good_number'] ? $value['good_number'] : '';
|
|
if ($value['vip_online_state'] == 0) {
|
|
$value['vip_online_state'] = '关闭';
|
|
} else {
|
|
$value['vip_online_state'] = '开启';
|
|
}
|
|
if ($value['vip_retail_state'] == 0) {
|
|
$value['vip_retail_state'] = '关闭';
|
|
} else {
|
|
$value['vip_retail_state'] = '开启';
|
|
}
|
|
}
|
|
$filename = "门店商品明细";
|
|
$headArr = array(
|
|
array('goods_name', '商品名称'),
|
|
array('goods_code', '条码'),
|
|
array('good_number', '货号'),
|
|
array('class_name', '所属分类'),
|
|
array('purch_price', '进货价'),
|
|
array('retail_price', '零售价'),
|
|
array('online_price', '线上价'),
|
|
array('issellonline_name', '是否在商城出售'),
|
|
array('vip_online_state', '线上折扣'),
|
|
array('vip_retail_state', '线下折扣'),
|
|
array('goods_num', '商品系统库存'),
|
|
array('more_num', '库存上限(超量值)'),
|
|
array('less_num', '库存下限(预警值)'),
|
|
array('sell_num', '已售数量'),
|
|
array('company', '单位'),
|
|
array('specifications', '规格'),
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $headArr, $goods, $str);
|
|
}
|
|
|
|
public function goodstwo()
|
|
{
|
|
$storeid = session('storeid');
|
|
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
|
|
import("Vendor.PHPExcel.PHPExcel");
|
|
import("Vendor.PHPExcel.Writer.Excel5");
|
|
import("Vendor.PHPExcel.IOFactory.php");
|
|
//按照商品类别搜索
|
|
$person1 = I('get.person1');
|
|
$person2 = I('get.person2');
|
|
$person3 = I('get.person3');
|
|
$flag = 0;
|
|
if (!empty($person3)) {
|
|
$where['g.goods_class_id'] = $person3;
|
|
} else if (!empty($person2)) {
|
|
$class = M('retail_goods_class as c2')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid')
|
|
->where(array('c2.id' => $person2, 'c3.status' => 0))
|
|
->field('c3.id')->select();
|
|
$flag = 1;
|
|
} else if (!empty($person1)) {
|
|
$class = M('retail_goods_class as c1')
|
|
->join('ls_retail_goods_class as c2 on c1.id=c2.pid')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid AND c3.status=0', 'LEFT')
|
|
->where(array('c1.id' => $person1, 'c2.status' => 0))
|
|
->field('c2.id,c3.id as c3_id')->select();
|
|
$flag = 1;
|
|
}
|
|
if (!empty($class)) {
|
|
$arr = array();
|
|
foreach ($class as &$val) {
|
|
if (!in_array($val['id'], $arr)) {
|
|
$arr[] = $val['id'];
|
|
}
|
|
if (!empty($val['c3_id'])) {
|
|
if (!in_array($val['c3_id'], $arr)) {
|
|
$arr[] = $val['c3_id'];
|
|
}
|
|
}
|
|
}
|
|
$str = implode(',', $arr);
|
|
$where['g.goods_class_id'] = array('in', $str . ',' . ($person2 ? $person2 : $person1));
|
|
} else if ($flag == 1) {
|
|
$where['g.goods_class_id'] = $person2 ? $person2 : $person1;
|
|
}
|
|
$where['g.storeid'] = $storeid;
|
|
$where['g.issellonline'] = 1;
|
|
$where['g.status'] = array('in', array(0, 1));
|
|
//商品列表
|
|
$goods = M('retail_goods as g')
|
|
->join('ls_retail_goods_class as c on c.id=g.goods_class_id')
|
|
->where($where)
|
|
->order('g.status asc,g.good_number desc')
|
|
->field('g.*,c.class_name,c.type as c_type,c.pid as c_pid')
|
|
->select();
|
|
foreach ($goods as &$value) {
|
|
//查询出分类名称
|
|
if ($value['c_type'] == 2) {
|
|
$value['class_name'] = M('retail_goods_class')->where(array('id' => $value['c_pid']))->getField('class_name');
|
|
} else if ($value['c_type'] == 3) {
|
|
$_class = M('retail_goods_class as c2')
|
|
->join('ls_retail_goods_class as c1 on c2.pid=c1.id')
|
|
->where(array('c2.id' => $value['c_pid']))
|
|
->field('c1.class_name,c2.class_name as c2_class_name')
|
|
->find();
|
|
$value['class_name'] = $_class['class_name'] . '/' . $_class['c2_class_name'] . '/' . $value['class_name'];
|
|
}
|
|
//判断出商品的状态以及是否允许修改折扣价
|
|
if ($value['status'] == 0) {
|
|
$value['status_name'] = '正常';
|
|
} elseif ($value['status'] == 1) {
|
|
$value['status_name'] = '已下架';
|
|
} elseif ($value['status'] == 2) {
|
|
$value['status_name'] = '已删除';
|
|
}
|
|
if ($value['issellonline'] == 0) {
|
|
$value['issellonline_name'] = '否';
|
|
} else {
|
|
$value['issellonline_name'] = '是';
|
|
}
|
|
$value['goods_code'] = $value['goods_code'] ? $value['goods_code'] : '';
|
|
$value['good_number'] = $value['good_number'] ? $value['good_number'] : '';
|
|
if ($value['vip_online_state'] == 0) {
|
|
$value['vip_online_state'] = '关闭';
|
|
} else {
|
|
$value['vip_online_state'] = '开启';
|
|
}
|
|
if ($value['vip_retail_state'] == 0) {
|
|
$value['vip_retail_state'] = '关闭';
|
|
} else {
|
|
$value['vip_retail_state'] = '开启';
|
|
}
|
|
}
|
|
$filename = "门店商品明细";
|
|
$headArr = array(
|
|
array('goods_name', '商品名称'),
|
|
array('goods_code', '条码'),
|
|
array('good_number', '货号'),
|
|
array('class_name', '所属分类'),
|
|
array('purch_price', '进货价'),
|
|
array('retail_price', '零售价'),
|
|
array('online_price', '线上价'),
|
|
array('issellonline_name', '是否在商城出售'),
|
|
array('vip_online_state', '线上折扣'),
|
|
array('vip_retail_state', '线下折扣'),
|
|
array('goods_num', '商品系统库存'),
|
|
array('more_num', '库存上限(超量值)'),
|
|
array('less_num', '库存下限(预警值)'),
|
|
array('sell_num', '已售数量'),
|
|
array('company', '单位'),
|
|
array('specifications', '规格'),
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $headArr, $goods, $str);
|
|
}
|
|
|
|
// 商品分类导出
|
|
public function goodsclass()
|
|
{
|
|
$storeid = session('storeid');
|
|
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
|
|
import("Vendor.PHPExcel.PHPExcel");
|
|
import("Vendor.PHPExcel.Writer.Excel5");
|
|
import("Vendor.PHPExcel.IOFactory.php");
|
|
$merchantid = M('retail_store')->where(array('id' => $storeid))->getField('merchantid');
|
|
$where['merchantid'] = $merchantid;
|
|
$where['status'] = 0;
|
|
$where['type'] = 1;
|
|
$class1 = M('retail_goods_class')->where($where)->order('addtime desc')->select();
|
|
$classAll = array();
|
|
if (!empty($class1)) {
|
|
foreach ($class1 as &$value) {
|
|
$value['p_name'] = '一级分类';
|
|
$value['p_name_path'] = $value['class_name'];
|
|
$classAll[] = $value;
|
|
$where['type'] = 2;
|
|
$where['pid'] = $value['id'];
|
|
$class2 = M('retail_goods_class')->where($where)->order('addtime desc')->select();
|
|
if (!empty($class2)) {
|
|
foreach ($class2 as &$val) {
|
|
$val['p_name'] = '二级分类';
|
|
$val['p_name_path'] = $value['class_name'] . "/" . $val['class_name'];
|
|
$classAll[] = $val;
|
|
$where['type'] = 3;
|
|
$where['pid'] = $val['id'];
|
|
$class3 = M('retail_goods_class')->where($where)->order('addtime desc')->select();
|
|
if (!empty($class3)) {
|
|
foreach ($class3 as &$v) {
|
|
$v['p_name'] = '三级分类';
|
|
$v['p_name_path'] = $value['class_name'] . "/" . $val['class_name'] . "/" . $v['class_name'];
|
|
$classAll[] = $v;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$classAll = array();
|
|
}
|
|
$filename = "商品分类明细";
|
|
$arr = array(
|
|
array('class_name', '分类名称'),
|
|
array('p_name', '分类级别'),
|
|
array('p_name_path', '分类详情'),
|
|
array('code', '编码')
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $arr, $classAll, $str);
|
|
}
|
|
|
|
private function getExcel($expTitle, $expCellName, $expTableData, $str = "")
|
|
{
|
|
|
|
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
|
|
$fileName = $expTitle . date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
|
|
$cellNum = count($expCellName);
|
|
$dataNum = count($expTableData);
|
|
$common = $str;
|
|
vendor("PHPExcel.PHPExcel");
|
|
ob_clean();
|
|
$objPHPExcel = new \PHPExcel();
|
|
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $common);
|
|
// $objPHPExcel->setActiveSheetIndex(1)->setCellValue('A1', $str);
|
|
for ($i = 0; $i < $cellNum; $i++) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
|
|
}
|
|
|
|
for ($i = 0; $i < $dataNum; $i++) {
|
|
for ($j = 0; $j < $cellNum; $j++) {
|
|
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 3), ' ' . $expTableData[$i][$expCellName[$j][0]]);
|
|
|
|
}
|
|
}
|
|
foreach ($cellName as $value) {
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(20);
|
|
|
|
}
|
|
header('pragma:public');
|
|
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
|
|
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
$objWriter->save('php://output');
|
|
exit();
|
|
}
|
|
|
|
// 商品导出页面
|
|
public function goodsquantity()
|
|
{
|
|
$this->display();
|
|
}
|
|
|
|
public function quantityList()
|
|
{
|
|
$storeid = session('storeid');
|
|
$where['l.storeid'] = $storeid;
|
|
$keyword = I('get.keyword');
|
|
if (!empty($keyword)) {
|
|
$name['goods_name|goods_code|good_number'] = $keyword;
|
|
$name['storeid'] = $storeid;
|
|
$ids = M('retail_goods')->where($name)->field('id')->select();
|
|
$new_id = '';
|
|
foreach ($ids as $key => &$value) {
|
|
$new_id .= $value['id'] . ',';
|
|
}
|
|
$arr_ids = explode(',', trim($new_id, ','));
|
|
$where['l.goods_id'] = array('in', $arr_ids);
|
|
}
|
|
$where['l.type'] = I('get.type');
|
|
$start = I('get.start');
|
|
$end = I('get.end');
|
|
$s = strtotime($start . ' 00:00:00');
|
|
$e = strtotime($end . ' 23:59:59');
|
|
$where['l.addtime'] = array('between', array($s, $e));
|
|
$logs = M('retail_quantity_logs')->alias('l')
|
|
->join('ls_retail_goods as g on g.id=l.goods_id', 'LEFT')
|
|
->where($where)
|
|
->field('l.*,g.goods_name,g.goods_code,g.good_number')
|
|
->order('l.addtime desc, l.id desc')
|
|
->select();
|
|
foreach ($logs as $key => &$value) {
|
|
$logs[$key]['time'] = date('Y-m-d H:i:s', $value['addtime']);
|
|
//商品来源
|
|
if ($value['supplier_id'] == 0) {
|
|
if ($value['type'] == 1) {
|
|
$logs[$key]['supplier_name'] = '自采';
|
|
if ($logs[$key]['remark'] == '盘点增加') {
|
|
$logs[$key]['supplier_name'] = '盘点';
|
|
}
|
|
} else {
|
|
$logs[$key]['supplier_name'] = '出售';
|
|
if ($logs[$key]['remark'] == '盘点减少') {
|
|
$logs[$key]['supplier_name'] = '盘点';
|
|
}
|
|
}
|
|
} else if ($value['supplier_id'] == -1) {
|
|
$logs[$key]['supplier_name'] = '报损';
|
|
} else if ($value['supplier_id'] == -2) {
|
|
$logs[$key]['supplier_name'] = '调出';
|
|
} else if ($value['supplier_id'] == -3) {
|
|
$logs[$key]['supplier_name'] = '退货出库';
|
|
} else {
|
|
if ($value['type'] == 1) {
|
|
$logs[$key]['supplier_name'] = M("retail_supplier")->where(array('id' => $value['supplier_id']))->getField("supplier_name");
|
|
$logs[$key]['supplier_name'] = $logs[$key]['supplier_name'] . "(供货商)";
|
|
} else {
|
|
$logs[$key]['supplier_name'] = '出售';
|
|
}
|
|
}
|
|
|
|
if ($value['type'] == 1) {
|
|
$logs[$key]['type'] = '增加';
|
|
} else {
|
|
$logs[$key]['type'] = '减少';
|
|
}
|
|
$value['key'] = $key + 1;
|
|
$logs[$key]['goods_code'] = $logs[$key]['goods_code'] ? $logs[$key]['goods_code'] : '';
|
|
$logs[$key]['good_number'] = $logs[$key]['good_number'] ? $logs[$key]['good_number'] : '';
|
|
|
|
}
|
|
$rt['code'] = 0;
|
|
$rt['msg'] = '';
|
|
$rt['count'] = count($logs);
|
|
$rt['data'] = $logs;
|
|
$this->ajaxReturn($rt);
|
|
}
|
|
|
|
// 导出单品出入库数据
|
|
public function exportquantityList()
|
|
{
|
|
$storeid = session('storeid');
|
|
$where['l.storeid'] = $storeid;
|
|
$keyword = I('get.keyword');
|
|
if (!empty($keyword)) {
|
|
$name['goods_name|goods_code|good_number'] = $keyword;
|
|
$name['storeid'] = $storeid;
|
|
$ids = M('retail_goods')->where($name)->field('id')->select();
|
|
$new_id = '';
|
|
foreach ($ids as $key => &$value) {
|
|
$new_id .= $value['id'] . ',';
|
|
}
|
|
$arr_ids = explode(',', trim($new_id, ','));
|
|
$where['l.goods_id'] = array('in', $arr_ids);
|
|
}
|
|
$where['l.type'] = I('get.type');
|
|
$start = I('get.start');
|
|
$end = I('get.end');
|
|
$s = strtotime($start . ' 00:00:00');
|
|
$e = strtotime($end . ' 23:59:59');
|
|
$where['l.addtime'] = array('between', array($s, $e));
|
|
$logs = M('retail_quantity_logs')->alias('l')
|
|
->join('ls_retail_goods as g on g.id=l.goods_id', 'LEFT')
|
|
->where($where)
|
|
->field('l.*,g.goods_name,g.goods_code,g.good_number')
|
|
->order('l.addtime desc')
|
|
->select();
|
|
foreach ($logs as $key => &$value) {
|
|
$logs[$key]['time'] = date('Y-m-d H:i:s', $value['addtime']);
|
|
//商品来源
|
|
if ($value['supplier_id'] == 0) {
|
|
if ($value['type'] == 1) {
|
|
$logs[$key]['supplier_name'] = '自采';
|
|
if ($logs[$key]['remark'] == '盘点增加') {
|
|
$logs[$key]['supplier_name'] = '盘点';
|
|
}
|
|
} else {
|
|
$logs[$key]['supplier_name'] = '出售';
|
|
if ($logs[$key]['remark'] == '盘点减少') {
|
|
$logs[$key]['supplier_name'] = '盘点';
|
|
}
|
|
}
|
|
} else if ($value['supplier_id'] == -1) {
|
|
$logs[$key]['supplier_name'] = '报损';
|
|
} else if ($value['supplier_id'] == -2) {
|
|
$logs[$key]['supplier_name'] = '调出';
|
|
} else if ($value['supplier_id'] == -3) {
|
|
$logs[$key]['supplier_name'] = '退货出库';
|
|
} else {
|
|
if ($value['type'] == 1) {
|
|
$logs[$key]['supplier_name'] = M("retail_supplier")->where(array('id' => $value['supplier_id']))->getField("supplier_name");
|
|
$logs[$key]['supplier_name'] = $logs[$key]['supplier_name'] . "(供货商)";
|
|
} else {
|
|
$logs[$key]['supplier_name'] = '出售';
|
|
}
|
|
}
|
|
|
|
if ($value['type'] == 1) {
|
|
$logs[$key]['type'] = '增加';
|
|
} else {
|
|
$logs[$key]['type'] = '减少';
|
|
}
|
|
$value['key'] = $key + 1;
|
|
$logs[$key]['goods_code'] = $logs[$key]['goods_code'] ? $logs[$key]['goods_code'] : '';
|
|
$logs[$key]['good_number'] = $logs[$key]['good_number'] ? $logs[$key]['good_number'] : '';
|
|
}
|
|
import("Vendor.PHPExcel.PHPExcel");
|
|
import("Vendor.PHPExcel.Writer.Excel5");
|
|
import("Vendor.PHPExcel.IOFactory.php");
|
|
$str2 = I('get.type') == 1 ? '入库' : '出库';
|
|
$filename = '商品(' . $logs[0]['goods_name'] . ")" . $str2 . "明细";
|
|
$headArr = array(
|
|
array('goods_name', '商品名称'),
|
|
array('goods_code', '条码'),
|
|
array('good_number', '货号'),
|
|
array('type', '操作类型'),
|
|
array('time', '操作时间'),
|
|
array('supplier_name', '供货商/来源'),
|
|
array('original_stock', '变动前库存'), array('present_stock', '变动后库存'),
|
|
array('do_num', '操作数量'),
|
|
array('remark', '备注'),
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $headArr, $logs, $str);
|
|
}
|
|
|
|
// 导出盘点单商品
|
|
public function exporttablecheck()
|
|
{
|
|
$global_store_jurisdiction = I('session.global_store_jurisdiction'); // 权限
|
|
$showpurch_price = $global_store_jurisdiction['showpurch_price'] ? $global_store_jurisdiction['showpurch_price'] : 2; // 查看进价权限
|
|
$id = I('get.id');
|
|
$storeid = session('storeid');
|
|
$merchantid = M('retail_store')->where(array('id'=>$storeid))->getField("merchantid");
|
|
$where['merchantid'] = $merchantid;
|
|
$where['storeid'] = $storeid;
|
|
$where['pd_order_id'] = $id;
|
|
$orderlist = M('retail_goods_pd')->where($where)->select();
|
|
foreach ($orderlist as $k => &$v) {
|
|
$v['index'] = $k + 1;
|
|
if($v['attribute'] == 2){
|
|
$v['goods_code'] = $v['sku_code'] ? $v['sku_code'] : '--';
|
|
$sku_list = M('retail_sku_goods')->where(array('id'=>$v['sku_id']))->getField("sku_id_list");
|
|
$sku_list = explode(',',$sku_list);
|
|
$sku_name = '';
|
|
foreach ($sku_list as $skuk=>&$skuv){
|
|
$sku_name .= ','.M('retail_sku_list')->where(array('id'=>$skuv))->getField("name");
|
|
}
|
|
$v['goods_name'] = $v['goods_name'].$sku_name;
|
|
}else if($v['attribute'] == 1){
|
|
$v['goods_code'] = $v['goods_code'] ? $v['goods_code'] : '--';
|
|
$v['sku_id'] = '';
|
|
}
|
|
$v['good_number'] = $v['good_number'] ? $v['good_number'] : '--';
|
|
$v['change_num'] = round($v['pd_num'] - $v['goods_num'], 2);
|
|
if($showpurch_price == 2){
|
|
$v['all_money'] = '*';
|
|
$v['purch_price'] = '*';
|
|
}else{
|
|
$v['all_money'] = round(($v['pd_num'] - $v['goods_num']) * $v['purch_price'], 2);
|
|
}
|
|
}
|
|
/* import("Vendor.PHPExcel.PHPExcel");
|
|
import("Vendor.PHPExcel.Writer.Excel5");
|
|
import("Vendor.PHPExcel.IOFactory.php");*/
|
|
$str2 = "日期:" . date('Y-m-d H:i:s', $order['addtime']);
|
|
$filename = "商品盘点(" . $str2 . ")明细";
|
|
$headArr = array(
|
|
array('goods_name', '商品名称'),
|
|
array('goods_code', '条码'),
|
|
array('good_number', '货号'),
|
|
array('purch_price', '成本价'),
|
|
array('retail_price', '零售价'),
|
|
array('goods_num', '商品系统库存'),
|
|
array('pd_num', '盘点(实际)库存'),
|
|
array('change_num', '盈亏数量'),
|
|
array('all_money', '盈亏金额'),
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $headArr, $orderlist, $str);
|
|
}
|
|
|
|
// 导出超量商品数据
|
|
public function exporttablegoodsmore()
|
|
{
|
|
$storeid = session('storeid');
|
|
//接收查询条件
|
|
$keyword = I('get.keyword');
|
|
if (!empty($keyword)) {
|
|
$where['g.good_number|g.goods_name'] = $keyword;
|
|
}
|
|
//按照商品类别搜索
|
|
$person1 = I('get.person1');
|
|
$person2 = I('get.person2');
|
|
$person3 = I('get.person3');
|
|
$flag = 0;
|
|
if (!empty($person3)) {
|
|
$where['g.goods_class_id'] = $person3;
|
|
} else if (!empty($person2)) {
|
|
$class = M('retail_goods_class as c2')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid')
|
|
->where(array('c2.id' => $person2, 'c3.status' => 0))
|
|
->field('c3.id')->select();
|
|
$flag = 1;
|
|
} else if (!empty($person1)) {
|
|
$class = M('retail_goods_class as c1')
|
|
->join('ls_retail_goods_class as c2 on c1.id=c2.pid')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid AND c3.status=0', 'LEFT')
|
|
->where(array('c1.id' => $person1, 'c2.status' => 0))
|
|
->field('c2.id,c3.id as c3_id')->select();
|
|
$flag = 1;
|
|
}
|
|
if (!empty($class)) {
|
|
$arr = array();
|
|
foreach ($class as &$val) {
|
|
if (!in_array($val['id'], $arr)) {
|
|
$arr[] = $val['id'];
|
|
}
|
|
if (!empty($val['c3_id'])) {
|
|
if (!in_array($val['c3_id'], $arr)) {
|
|
$arr[] = $val['c3_id'];
|
|
}
|
|
}
|
|
}
|
|
$str = implode(',', $arr);
|
|
$where['g.goods_class_id'] = array('in', $str . ',' . ($person2 ? $person2 : $person1));
|
|
} else if ($flag == 1) {
|
|
$where['g.goods_class_id'] = $person2 ? $person2 : $person1;
|
|
}
|
|
$where['g.storeid'] = $storeid;
|
|
$where['g.status'] = array('in', array(0, 1));
|
|
//商品列表
|
|
$goods = M('retail_goods')->alias('g')
|
|
->join('ls_retail_goods as rg on g.id=rg.id', 'LEFT')
|
|
->order('g.status asc')
|
|
->where($where)
|
|
->where('g.goods_num >rg.more_num')
|
|
->select();
|
|
$goods_class = M('retail_goods_class')->where(array('storeid' => $storeid, 'status' => 0))->select();
|
|
foreach ($goods as $key => &$value) {
|
|
//查询出分类名称
|
|
foreach ($goods_class as $k => $v) {
|
|
if ($value['goods_class_id'] == $v['id']) {
|
|
$goods[$key]['cate_name'] = $v['class_name'];
|
|
break;
|
|
}
|
|
}
|
|
if ($value['status'] == 0) {
|
|
$goods[$key]['status_name'] = '正常';
|
|
} elseif ($value['status'] == 1) {
|
|
$goods[$key]['status_name'] = '已下架';
|
|
} elseif ($value['status'] == 2) {
|
|
$goods[$key]['status_name'] = '已删除';
|
|
}
|
|
$goods[$key]['goods_code'] = $goods[$key]['goods_code'] ? $goods[$key]['goods_code'] : '';
|
|
}
|
|
$filename = "门店超量商品明细";
|
|
$headArr = array(
|
|
array('goods_name', '商品名称'),
|
|
array('goods_code', '条码'),
|
|
array('good_number', '货号'),
|
|
array('cate_name', '所属分类'),
|
|
array('purch_price', '成本价'),
|
|
array('last_purch_price', '当前进货价'),
|
|
array('retail_price', '零售价'),
|
|
array('online_price', '线上价'),
|
|
array('goods_num', '商品系统库存'),
|
|
array('more_num', '库存上限(超量值)'),
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $headArr, $goods, $str);
|
|
}
|
|
|
|
// 导出不足商品数据
|
|
public function exporttablegoodsless()
|
|
{
|
|
$storeid = session('storeid');
|
|
$keyword = I('get.keyword');
|
|
if (!empty($keyword)) {
|
|
$where['g.good_number|g.goods_name'] = $keyword;
|
|
}
|
|
//按照商品类别搜索
|
|
$person1 = I('get.person1');
|
|
$person2 = I('get.person2');
|
|
$person3 = I('get.person3');
|
|
$flag = 0;
|
|
if (!empty($person3)) {
|
|
$where['g.goods_class_id'] = $person3;
|
|
} else if (!empty($person2)) {
|
|
$class = M('retail_goods_class as c2')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid')
|
|
->where(array('c2.id' => $person2, 'c3.status' => 0))
|
|
->field('c3.id')->select();
|
|
$flag = 1;
|
|
} else if (!empty($person1)) {
|
|
$class = M('retail_goods_class as c1')
|
|
->join('ls_retail_goods_class as c2 on c1.id=c2.pid')
|
|
->join('ls_retail_goods_class as c3 on c2.id=c3.pid AND c3.status=0', 'LEFT')
|
|
->where(array('c1.id' => $person1, 'c2.status' => 0))
|
|
->field('c2.id,c3.id as c3_id')->select();
|
|
$flag = 1;
|
|
}
|
|
if (!empty($class)) {
|
|
$arr = array();
|
|
foreach ($class as &$val) {
|
|
if (!in_array($val['id'], $arr)) {
|
|
$arr[] = $val['id'];
|
|
}
|
|
if (!empty($val['c3_id'])) {
|
|
if (!in_array($val['c3_id'], $arr)) {
|
|
$arr[] = $val['c3_id'];
|
|
}
|
|
}
|
|
}
|
|
$str = implode(',', $arr);
|
|
$where['g.goods_class_id'] = array('in', $str . ',' . ($person2 ? $person2 : $person1));
|
|
} else if ($flag == 1) {
|
|
$where['g.goods_class_id'] = $person2 ? $person2 : $person1;
|
|
}
|
|
$where['g.storeid'] = $storeid;
|
|
$where['g.status'] = array('in', array(0, 1));
|
|
//商品列表
|
|
$goods = M('retail_goods')->alias('g')
|
|
->join('ls_retail_goods as rg on g.id=rg.id', 'LEFT')
|
|
->order('g.status asc')
|
|
->where($where)
|
|
->where('g.goods_num <rg.less_num')
|
|
->select();
|
|
$goods_class = M('retail_goods_class')->where(array('storeid' => $storeid, 'status' => 0))->select();
|
|
foreach ($goods as $key => &$value) {
|
|
//查询出分类名称
|
|
foreach ($goods_class as $k => $v) {
|
|
if ($value['goods_class_id'] == $v['id']) {
|
|
$goods[$key]['cate_name'] = $v['class_name'];
|
|
break;
|
|
}
|
|
}
|
|
//商品状态
|
|
if ($value['status'] == 0) {
|
|
$goods[$key]['status_name'] = '正常';
|
|
} elseif ($value['status'] == 1) {
|
|
$goods[$key]['status_name'] = '已下架';
|
|
} elseif ($value['status'] == 2) {
|
|
$goods[$key]['status_name'] = '已删除';
|
|
}
|
|
//是否允许修改折扣价
|
|
if ($value['canchangeprice'] == 1) {
|
|
$goods[$key]['canchangeprice_name'] = '是';
|
|
} else {
|
|
$goods[$key]['canchangeprice_name'] = '不允许';
|
|
}
|
|
if ($value['issellonline'] == 0) {
|
|
$goods[$key]['issellonline_name'] = '否';
|
|
} else {
|
|
$goods[$key]['issellonline_name'] = '是';
|
|
}
|
|
$goods[$key]['goods_code'] = $goods[$key]['goods_code'] ? $goods[$key]['goods_code'] : '';
|
|
}
|
|
$filename = "门店不足商品明细";
|
|
$headArr = array(
|
|
array('goods_name', '商品名称'),
|
|
array('goods_code', '条码'),
|
|
array('good_number', '货号'),
|
|
array('cate_name', '所属分类'),
|
|
array('purch_price', '成本价'),
|
|
array('last_purch_price', '当前进价'),
|
|
array('retail_price', '零售价'),
|
|
array('goods_num', '商品系统库存'),
|
|
array('less_num', '库存下限(预警值)'),
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $headArr, $goods, $str);
|
|
}
|
|
|
|
|
|
/**
|
|
* 2018-10-09 会员信息导出
|
|
*/
|
|
public function exportVipInfo()
|
|
{
|
|
$user = session('ls_userinfo');
|
|
$store_id = I("get.store_id"); //门店为0时所有门店
|
|
$vipstatus = I('get.vipstatus'); //会员状态
|
|
$keyword = I('get.keyword'); //手机号实体卡号昵称
|
|
$where['v.status'] = array('neq', 2);
|
|
if ($store_id == 0) {
|
|
//查询出该商户所有的会员信息
|
|
$where['v.merchantid'] = $user['merchantid'];
|
|
} else {
|
|
//根据商户选择的门店进行会员信息查询并导出
|
|
$where['v.storeid'] = $store_id;
|
|
$where['v.merchantid'] = $user['merchantid'];
|
|
}
|
|
if ($vipstatus == 0) {
|
|
$where['v.status'] = array('neq', 2);
|
|
} else if ($vipstatus == 1) {
|
|
$where['v.status'] = 1;
|
|
} else if ($vipstatus = 3) {
|
|
$where['v.status'] = 3;
|
|
} else if ($vipstatus = 4) {
|
|
$where['v.status'] = 4;
|
|
}
|
|
if (!empty($keyword)) {
|
|
$where['v.nickname|v.mobile_phone|v.card_key'] = array('like', "%" . $keyword . "%");
|
|
}
|
|
$vipInfo = M('retail_vip as v')
|
|
->join('ls_retail_store as s on v.storeid=s.id')
|
|
->where($where)
|
|
->order('v.addtime desc')
|
|
->field('v.*,s.storetag')
|
|
->select();
|
|
if ($vipInfo) {
|
|
foreach ($vipInfo as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['name'] = $val['name'] ? $val['name'] : "未设置";
|
|
$val['balance'] = $val['balance'] ? $val['balance'] : "0.00";
|
|
$val['nickname'] = $val['nickname'] ? $val['nickname'] : "未设置";
|
|
$one = M('retail_vip_integral')
|
|
->where(array('min_integral' => array('ELT', $val['grade_integral'])))
|
|
->order('min_integral desc')
|
|
->find();
|
|
$val['grade'] = $one ? $one['cardname'] : '默认会员';
|
|
if ($val['sex'] == 1) {
|
|
$val['sex'] = '男';
|
|
} elseif ($val['sex'] == 2) {
|
|
$val['sex'] = '女';
|
|
} else {
|
|
$val['sex'] = '保密';
|
|
}
|
|
|
|
if ($val['is_register'] == 1) {
|
|
$val['is_register'] = '是';
|
|
} else {
|
|
$val['is_register'] = '否';
|
|
}
|
|
if ($one['discount'] == 1) {
|
|
$val['discount'] = '不享受折扣';
|
|
} else {
|
|
$val['discount'] = $one ? $one['discount'] * 10 . '折' : '不打折';
|
|
}
|
|
$val['addtime'] = date('Y-m-d H:i:s', $val['addtime']);
|
|
if (empty($val['card_key'])) {
|
|
$val['card_key_whether'] = '否';
|
|
} else {
|
|
$val['card_key_whether'] = '是';
|
|
}
|
|
if (empty($val['card_key'])) {
|
|
$val['card_key'] = '暂无';
|
|
}
|
|
if ($val['status'] == 1) {
|
|
$val['statusname'] = "正常会员";
|
|
} else if ($val['status'] == 2) {
|
|
$val['statusname'] = "注销会员";
|
|
} else if ($val['status'] == 3) {
|
|
$val['statusname'] = "冻结会员";
|
|
} else if ($val['status'] == 4) {
|
|
$val['statusname'] = "挂失会员";
|
|
}
|
|
}
|
|
}
|
|
$filename = "会员信息统计";
|
|
$headArr = array(
|
|
array('index', '序号'),
|
|
array('storetag', '门店名称'),
|
|
array('statusname', '会员状态'),
|
|
array('mobile_phone', '手机号码'),
|
|
array('card_key', '实体卡'),
|
|
array('name', '姓名'),
|
|
array('nickname', '昵称'),
|
|
array('sex', '性别'),
|
|
array('balance', '会员卡余额'),
|
|
array('grade', '会员等级'),
|
|
array('discount', '会员折扣'),
|
|
array('addtime', '创建时间'),
|
|
array('province', '省份'),
|
|
array('city', '城市'),
|
|
array('birthday', '生日'),
|
|
array('integral', '当前积分'),
|
|
array('grade_integral', '等级积分'),
|
|
array('is_register', '是否激活公众号会员'),
|
|
array('cardnum', '会员卡号'),
|
|
array('card_key_whether', '是否绑定实体卡')
|
|
);
|
|
$str = $filename . ',导出日期:' . date('Y-m-d H:i:s');
|
|
$this->getExcel($filename, $headArr, $vipInfo, $str);
|
|
}
|
|
|
|
public function exportStoreSaleData()
|
|
{
|
|
$user = session('ls_userinfo');
|
|
$time = I('get.date');
|
|
if (!empty($time)) {
|
|
$times = explode('至', $time);
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', strtotime($times[0])));
|
|
$end_time = strtotime(date('Y-m-d 23:59:59', strtotime($times[1])));
|
|
} else {
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', time()));
|
|
$end_time = $start_time + 86399;
|
|
}
|
|
$merchantid = $user['merchantid'];
|
|
$where['merchantid'] = $merchantid;
|
|
$where['store_status'] = 0;
|
|
$where['state'] = 0;
|
|
$store_info = M('retail_store')->where($where)->field('id,storetag')->select(); //门店正常并且开启
|
|
|
|
foreach ($store_info as $key => &$val) {
|
|
$map_duct = array();
|
|
$map_store = array();
|
|
$map_shop = array();
|
|
$map_store['merchantid'] = $merchantid;
|
|
$map_store['storeid'] = $val['id'];
|
|
$map_store['pay_state'] = 1;
|
|
$map_store['paytype'] = array('neq', 0);
|
|
$map_store['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_store['type'] = 2; //店内
|
|
$map_store['order_type'] = 1; //购买订单
|
|
$val['d_total_sales'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内总销售金额
|
|
$val['d_total_sales'] = $val['d_total_sales'] ? $val['d_total_sales'] : 0;
|
|
$val['d_total_sales_num'] = M('retail_bill')->where($map_store)->count(); //店内总销售笔数
|
|
|
|
$map_store['order_type'] = 2;
|
|
$map_store['refund_status'] = 3;
|
|
$val['d_refund_total_sales'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内退款总金额
|
|
$val['d_refund_total_sales'] = $val['d_refund_total_sales'] ? $val['d_refund_total_sales'] : 0;
|
|
$val['d_refund_total_sales_num'] = M('retail_bill')->where($map_store)->count(); //店内退款总笔数
|
|
|
|
$val['d_clean_total_sales'] = round($val['d_total_sales'] - $val['d_refund_total_sales'], 2); //店内总净销售额
|
|
$map_store['order_type'] = 1;
|
|
$map_store['refund_status'] = array('in', '0,1,2,3');
|
|
$map_store['paytype'] = 3;
|
|
$val['d_wxpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内微信总售金额
|
|
$val['d_wxpay'] = $val['d_wxpay'] ? $val['d_wxpay'] : 0;
|
|
$val['d_wxpay_num'] = M('retail_bill')->where($map_store)->count(); //店内微信总销售笔数
|
|
|
|
$map_store['paytype'] = 4;
|
|
$val['d_alipay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内支付宝总金额
|
|
$val['d_alipay'] = $val['d_alipay'] ? $val['d_alipay'] : 0;
|
|
$val['d_alipay_num'] = M('retail_bill')->where($map_store)->count(); //店内支付宝总笔数
|
|
|
|
$map_store['paytype'] = 1;
|
|
$val['d_cash'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内现金金额
|
|
$val['d_cash'] = $val['d_cash'] ? $val['d_cash'] : 0;
|
|
$val['d_cash_num'] = M('retail_bill')->where($map_store)->count(); //店内现金笔数
|
|
|
|
$map_store['paytype'] = 5;
|
|
$val['d_vippay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内会员金额
|
|
$val['d_vippay'] = $val['d_vippay'] ? $val['d_vippay'] : 0;
|
|
$val['d_vippay_num'] = M('retail_bill')->where($map_store)->count(); //店内会员笔数
|
|
|
|
$map_store['paytype'] = 7;
|
|
$val['d_otherpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内其他金额
|
|
$val['d_otherpay'] = $val['d_otherpay'] ? $val['d_otherpay'] : 0;
|
|
$val['d_otherpay_num'] = M('retail_bill')->where($map_store)->count(); //店内其他笔数
|
|
|
|
$map_store['order_type'] = 2;
|
|
$map_store['refund_status'] = 3;
|
|
$map_store['paytype'] = 3;
|
|
$val['d_refund_wxpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //微信退款金额
|
|
$val['d_refund_wxpay'] = $val['d_refund_wxpay'] ? $val['d_refund_wxpay'] : 0;
|
|
$val['d_refund_wxpay_num'] = M('retail_bill')->where($map_store)->count(); //微信退款笔数
|
|
|
|
$map_store['paytype'] = 4;
|
|
$val['d_refund_alipay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //支付宝退款金额
|
|
$val['d_refund_alipay'] = $val['d_refund_alipay'] ? $val['d_refund_alipay'] : 0;
|
|
$val['d_refund_alipay_num'] = M('retail_bill')->where($map_store)->count(); //支付宝退款笔数
|
|
|
|
$map_store['paytype'] = 1;
|
|
$val['d_refund_cash'] = M('retail_bill')->where($map_store)->sum('allmoney'); //现金退款金额
|
|
$val['d_refund_cash'] = $val['d_refund_cash'] ? $val['d_refund_cash'] : 0;
|
|
$val['d_refund_cash_num'] = M('retail_bill')->where($map_store)->count(); //现金退款笔数
|
|
|
|
$map_store['paytype'] = 5;
|
|
$val['d_refund_vippay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //会员退款金额
|
|
$val['d_refund_vippay'] = $val['d_refund_vippay'] ? $val['d_refund_vippay'] : 0;
|
|
$val['d_refund_vippay_num'] = M('retail_bill')->where($map_store)->count(); //会员退款笔数
|
|
|
|
$map_store['paytype'] = 7;
|
|
$val['d_refund_otherpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //其他退款金额
|
|
$val['d_refund_otherpay'] = $val['d_refund_otherpay'] ? $val['d_refund_otherpay'] : 0;
|
|
$val['d_refund_otherpay_num'] = M('retail_bill')->where($map_store)->count(); // 其他退款笔数
|
|
|
|
//商城
|
|
$map_shop['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_shop['merchantid'] = $merchantid;
|
|
$map_shop['storeid'] = $val['id'];
|
|
$map_shop['pay_state'] = 1;
|
|
$map_shop['paytype'] = array('in', '5,6');
|
|
$map_shop['type'] = 1;
|
|
|
|
$map_shop['order_type'] = 1;
|
|
$val['s_total_sales'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城总销售金额
|
|
$val['s_total_sales'] = $val['s_total_sales'] ? $val['s_total_sales'] : 0;
|
|
$val['s_total_sales_num'] = M('retail_bill')->where($map_shop)->count(); //商城总销售笔数
|
|
|
|
$map_shop['order_type'] = 2;
|
|
$map_shop['refund_status'] = 2;
|
|
$val['s_refund_total_sales'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城退款金额
|
|
$val['s_refund_total_sales'] = $val['s_refund_total_sales'] ? $val['s_refund_total_sales'] : 0;
|
|
$val['s_refund_total_sales_num'] = M('retail_bill')->where($map_shop)->count(); //商城退款笔数
|
|
$val['s_clean_total_sales'] = round($val['s_total_sales'] - $val['s_refund_total_sales'], 2); //商城净销售额
|
|
|
|
$map_shop['paytype'] = 6;
|
|
$val['s_refund_wxpay'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城微信退款金额
|
|
$val['s_refund_wxpay'] = $val['s_refund_wxpay'] ? $val['s_refund_wxpay'] : 0;
|
|
$val['s_refund_wxpay_num'] = M('retail_bill')->where($map_shop)->count(); //商城退款笔数
|
|
|
|
$map_shop['paytype'] = 5;
|
|
$val['s_refund_vippay'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //会员退款金额
|
|
$val['s_refund_vippay'] = $val['s_refund_vippay'] ? $val['s_refund_vippay'] : 0;
|
|
$val['s_refund_vippay_num'] = M('retail_bill')->where($map_shop)->count(); //会员退款笔数
|
|
|
|
$map_shop['order_type'] = 1;
|
|
$map_shop['refund_status'] = array('in', '0,1,2,3');
|
|
$map_shop['paytype'] = 5;
|
|
$vippay = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城会员金额
|
|
$val['s_vippay'] = $vippay ? $vippay : 0;
|
|
|
|
$map_shop['paytype'] = 6;
|
|
$vipwxpay = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城微信订单金额
|
|
$val['s_wxpay'] = $vipwxpay ? $vipwxpay : 0;
|
|
|
|
$map_shop['paytype'] = 6;
|
|
$val['s_wxpay_num'] = M('retail_bill')->where($map_shop)->count(); //商城微信订单笔数
|
|
|
|
$map_shop['paytype'] = 5;
|
|
$val['s_vippay_num'] = M('retail_bill')->where($map_shop)->count(); //商城会员订单笔数
|
|
|
|
$val['z_clean_total_sales'] = round($val['d_clean_total_sales'] + $val['s_clean_total_sales'], 2); //小计总净销售额
|
|
$val['z_total_sales'] = round($val['s_total_sales'] + $val['d_total_sales'], 2); //小计总销售额
|
|
$val['z_total_sales_num'] = round($val['d_total_sales_num'] + $val['s_total_sales_num'], 2); //小计销售笔数
|
|
$val['z_refund_total_sales'] = round($val['d_refund_total_sales'] + $val['s_refund_total_sales'], 2); //小计退款金额
|
|
$val['z_refund_total_sales_num'] = round($val['d_refund_total_sales_num'] + $val['s_refund_total_sales_num'], 2); //小计退款总笔数
|
|
|
|
|
|
$val['z_wxpay'] = round($val['d_wxpay'] + $val['s_wxpay'], 2); //小计微信销售金额
|
|
$val['z_wxpay_num'] = round($val['d_wxpay_num'] + $val['s_wxpay_num'], 2); //小计微信笔数
|
|
$val['z_refund_wxpay'] = round($val['d_refund_wxpay'] + $val['s_refund_wxpay'], 2); //小计微信退款金额
|
|
$val['z_refund_wxpay_num'] = round($val['s_refund_wxpay_num'] + $val['d_refund_wxpay_num'], 2); //小计微信退款笔数
|
|
|
|
$val['z_vippay'] = round($val['d_vippay'] + $val['s_vippay'], 2); //小计会员金额
|
|
$val['z_vippay_num'] = round($val['d_vippay_num'] + $val['s_vippay_num'], 2); //小计会员笔数
|
|
$val['z_refund_vippay'] = round($val['d_refund_vippay'] + $val['s_refund_vippay'], 2); //小计会员退款金额
|
|
$val['z_refund_vippay_num'] = round($val['d_refund_vippay_num'] + $val['s_refund_vippay_num'], 2); //小计会员退款笔数
|
|
|
|
|
|
//充值记录
|
|
$map_recharge['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_recharge['merchantid'] = $merchantid;
|
|
$map_recharge['storeid'] = $val['id'];
|
|
|
|
$map_recharge['type'] = 2;
|
|
$map_recharge['paytype'] = 1;
|
|
$val['v_st_cashpay'] = M('retail_viprecharge')->where($map_recharge)->sum('money'); //店内现金充值
|
|
$val['v_st_cashpay'] = $val['v_st_cashpay'] ? $val['v_st_cashpay'] : 0;
|
|
|
|
$v_total_cashpay = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //店内现金获得金额
|
|
$v_total_cashpay = $v_total_cashpay ? $v_total_cashpay : 0;
|
|
|
|
$val['v_cash_discount'] = round($v_total_cashpay - $val['v_st_cashpay'], 2); //店内现金优惠金额
|
|
|
|
$map_recharge['paytype'] = 2;
|
|
$val['v_st_wxpay'] = M('retail_viprecharge')->where($map_recharge)->sum('money'); //店内微信充值
|
|
$val['v_st_wxpay'] = $val['v_st_wxpay'] ? $val['v_st_wxpay'] : 0;
|
|
|
|
$v_total_wxpay = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //店内微信总金额
|
|
$val['v_wxpay_discount'] = round($v_total_wxpay - $val['v_st_wxpay'], 2); //店内微信优惠金额
|
|
|
|
$map_recharge['paytype'] = 3;
|
|
$val['v_st_alipay'] = M('retail_viprecharge')->where($map_recharge)->sum('money'); //店内支付宝充值
|
|
$val['v_st_alipay'] = $val['v_st_alipay'] ? $val['v_st_alipay'] : 0;
|
|
$v_total_alipay = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //店内支付宝总金额
|
|
$val['v_alipay_discount'] = round($v_total_alipay - $val['v_st_alipay'], 2); //店内支付宝优惠
|
|
|
|
$map_recharge['type'] = 4;
|
|
$map_recharge['usertype'] = 2;
|
|
$map_recharge['paytype'] = 1;
|
|
$val['v_stditpay'] = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //门店编辑赠送
|
|
$val['v_stditpay'] = $val['v_stditpay'] ? $val['v_stditpay'] : 0;
|
|
|
|
//门店扣除
|
|
$map_duct['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_duct['merchantid'] = $merchantid;
|
|
$map_duct['storeid'] = $val['id'];
|
|
$map_duct['type'] = 4;
|
|
$map_duct['usertype'] = 2;
|
|
$val['v_st_duct'] = M('recharge_order')->where($map_duct)->sum('money'); //门店扣除
|
|
$val['v_st_duct'] = $val['v_st_duct'] ? $val['v_st_duct'] : 0;
|
|
$map_duct['usertype'] = 3;
|
|
$val['v_cashier_duct'] = M('recharge_order')->where($map_duct)->sum('money'); //收银员扣除
|
|
$val['v_cashier_duct'] = $val['v_cashier_duct'] ? $val['v_cashier_duct'] : 0;
|
|
}
|
|
$recharge = array();
|
|
$map_vip['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_vip['merchantid'] = $merchantid;
|
|
$recharge['v_total_pay'] = M('retail_viprecharge')->where($map_vip)->sum('money');
|
|
$recharge['v_total_pay'] = $recharge['v_total_pay'] ? $recharge['v_total_pay'] : 0; //实际总的充值金额
|
|
|
|
$total_recharge_pay = M('retail_viprecharge')->where($map_vip)->sum('allmoney'); //总获得的充值金额
|
|
$total_recharge_pay = $total_recharge_pay ? $total_recharge_pay : 0;
|
|
|
|
$recharge['v_total_discount'] = round($total_recharge_pay - $recharge['v_total_pay'], 2); // 总优惠金额
|
|
|
|
$map_vip['type'] = 1;
|
|
$recharge['v_wxpay'] = M('retail_viprecharge')->where($map_vip)->sum('money'); //公众号充值
|
|
$recharge['v_wxpay'] = $recharge['v_wxpay'] ? $recharge['v_wxpay'] : 0;
|
|
|
|
$map_vip['type'] = 4;
|
|
$map_vip['usertype'] = 1;
|
|
$recharge['v_merpay'] = M('retail_viprecharge')->where($map_vip)->sum('money'); //商户充值
|
|
$recharge['v_merpay'] = $recharge['v_merpay'] ? $recharge['v_merpay'] : 0;
|
|
|
|
$v_merpay_allmoney = M('retail_viprecharge')->where($map_vip)->sum('allmoney'); //商户赠送
|
|
$v_merpay_allmoney = $v_merpay_allmoney?$v_merpay_allmoney:0;
|
|
$recharge['v_merpay_discount'] =round($v_merpay_allmoney - $recharge['v_merpay'],2);
|
|
|
|
$map_vip['type'] = 3;
|
|
$recharge['v_xcxpay'] = M('retail_viprecharge')->where($map_vip)->sum('money'); //小程序充值
|
|
$recharge['v_xcxpay'] = $recharge['v_xcxpay'] ? $recharge['v_xcxpay'] : 0;
|
|
|
|
//商户扣除
|
|
$map_de['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_de['merchantid'] = $merchantid;
|
|
$map_de['type'] = 4;
|
|
|
|
$recharge['v_total_duct'] = M('recharge_order')->where($map_de)->sum('money'); //总扣除
|
|
$recharge['v_total_duct'] = $recharge['v_total_duct'] ? $recharge['v_total_duct'] : 0;
|
|
|
|
$map_de['usertype'] = 1;
|
|
$recharge['v_mer_duct'] = M('recharge_order')->where($map_de)->sum('money'); //商户扣除
|
|
$recharge['v_mer_duct'] = $recharge['v_mer_duct'] ? $recharge['v_mer_duct'] : 0;
|
|
|
|
$filename = "所有门店销售汇总";
|
|
if (!$time) {
|
|
$time = date('Y-m-d H:i:s', $start_time) . '至' . date('Y-m-d H:i:s', $end_time);
|
|
}
|
|
$common = $time . ',导出时间:' . date('Y-m-d H:i:s');
|
|
$this->getStoreSaleDataExcel($filename, $store_info, $recharge, $common);
|
|
}
|
|
|
|
private function getStoreSaleDataExcel($filename, $expTableData, $recharge, $common = "")
|
|
{
|
|
$filename = iconv('utf-8', 'gb2312', $filename);//文件名称
|
|
$_fileName = $filename . date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
|
|
vendor("PHPExcel.PHPExcel");
|
|
ob_clean();
|
|
$objPHPExcel = new \PHPExcel();
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:AO1');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $common);
|
|
|
|
//表头
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A2:A4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', '门店');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('B2:B4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B2', '渠道');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('C2:C4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C2', '净销售额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('D2:D4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D2', '销售额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('E2:E4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E2', '销售笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('F2:F4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F2', '退款金额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('G2:G4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G2', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('H2:K3');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H2', '微信支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('L2:O3');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L2', '会员卡支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('P2:S3');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P2', '支付宝支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('R4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('S4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('T2:W3');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T2', '现金支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('U4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('V4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('W4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('X2:AA3');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X2', '其他支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Y4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Z4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AA4', '退款笔数');
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AB2:AO2');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB2', '会员充值');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AB3:AB4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB3', '类型');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AC3:AE3');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC3', '店内');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC4', '微信');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AD4', '支付宝');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AE4', '现金');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AF3:AF4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AF3', '门店后台充值');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AG3:AG4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AG3', '门店后台扣除');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AH3:AH4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AH3', '收银员扣除');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AI3:AI4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AI3', '小程序');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AJ3:AJ4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AJ3', '公众号');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AK3:AK4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AK3', '商户后台充值');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AL3:AL4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AL3', '商户后台赠送');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AM3:AM4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AM3', '商户后台扣除');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AN3:AN4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AN3', '实际充值金额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AO3:AO4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AO3', '赠送金额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AP3:AP4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AP3', '扣除总金额');
|
|
|
|
foreach ($expTableData as $key => $val) {
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A' . ($key * 3 + 5) . ':A' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . ($key * 3 + 5), $val['storetag']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . ($key * 3 + 5), '小计');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . ($key * 3 + 5), $val['z_clean_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . ($key * 3 + 5), $val['z_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . ($key * 3 + 5), $val['z_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . ($key * 3 + 5), $val['z_refund_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . ($key * 3 + 5), $val['z_refund_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . ($key * 3 + 5), $val['z_wxpay']);//微信
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . ($key * 3 + 5), $val['z_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J' . ($key * 3 + 5), $val['z_refund_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K' . ($key * 3 + 5), $val['z_refund_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L' . ($key * 3 + 5), $val['z_vippay']);//会员卡
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M' . ($key * 3 + 5), $val['z_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N' . ($key * 3 + 5), $val['z_refund_vippay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O' . ($key * 3 + 5), $val['z_refund_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P' . ($key * 3 + 5), $val['d_alipay']);//支付宝
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q' . ($key * 3 + 5), $val['d_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('R' . ($key * 3 + 5), $val['d_refund_alipay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('S' . ($key * 3 + 5), $val['d_refund_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T' . ($key * 3 + 5), $val['d_cash']);//现金
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('U' . ($key * 3 + 5), $val['d_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('V' . ($key * 3 + 5), $val['d_refund_cash']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('W' . ($key * 3 + 5), $val['d_refund_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X' . ($key * 3 + 5), $val['d_otherpay']);//其他
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Y' . ($key * 3 + 5), $val['d_otherpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Z' . ($key * 3 + 5), $val['d_refund_otherpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AA' . ($key * 3 + 5), $val['d_refund_otherpay_num']);
|
|
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . ($key * 3 + 6), '店内');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . ($key * 3 + 6), $val['d_clean_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . ($key * 3 + 6), $val['d_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . ($key * 3 + 6), $val['d_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . ($key * 3 + 6), $val['d_refund_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . ($key * 3 + 6), $val['d_refund_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . ($key * 3 + 6), $val['d_wxpay']);//微信
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . ($key * 3 + 6), $val['d_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J' . ($key * 3 + 6), $val['d_refund_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K' . ($key * 3 + 6), $val['d_refund_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L' . ($key * 3 + 6), $val['d_vippay']);//会员卡
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M' . ($key * 3 + 6), $val['d_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N' . ($key * 3 + 6), $val['d_refund_vippay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O' . ($key * 3 + 6), $val['d_refund_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P' . ($key * 3 + 6), $val['d_alipay']);//支付宝
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q' . ($key * 3 + 6), $val['d_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('R' . ($key * 3 + 6), $val['d_refund_alipay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('S' . ($key * 3 + 6), $val['d_refund_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T' . ($key * 3 + 6), $val['d_cash']);//现金
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('U' . ($key * 3 + 6), $val['d_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('V' . ($key * 3 + 6), $val['d_refund_cash']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('W' . ($key * 3 + 6), $val['d_refund_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X' . ($key * 3 + 6), $val['d_otherpay']);//其他
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Y' . ($key * 3 + 6), $val['d_otherpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Z' . ($key * 3 + 6), $val['d_refund_otherpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AA' . ($key * 3 + 6), $val['d_refund_otherpay_num']);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . ($key * 3 + 7), '商城');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . ($key * 3 + 7), $val['s_clean_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . ($key * 3 + 7), $val['s_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . ($key * 3 + 7), $val['s_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . ($key * 3 + 7), $val['s_refund_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . ($key * 3 + 7), $val['s_refund_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . ($key * 3 + 7), $val['s_wxpay']);//微信
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . ($key * 3 + 7), $val['s_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J' . ($key * 3 + 7), $val['s_refund_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K' . ($key * 3 + 7), $val['s_refund_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L' . ($key * 3 + 7), $val['s_vippay']);//会员卡
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M' . ($key * 3 + 7), $val['s_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N' . ($key * 3 + 7), $val['s_refund_vippay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O' . ($key * 3 + 7), $val['s_refund_vippay_num']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('P' . ($key * 3 + 7) . ':AA' . ($key * 3 + 7));//合并单元格
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AB' . ($key * 3 + 5) . ':AB' . ($key * 3 + 6));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB' . ($key * 3 + 5), '充值');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB' . ($key * 3 + 7), '赠送');
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AC' . ($key * 3 + 5) . ':AC' . ($key * 3 + 6));//合并单元格
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AD' . ($key * 3 + 5) . ':AD' . ($key * 3 + 6));//合并单元格
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AE' . ($key * 3 + 5) . ':AE' . ($key * 3 + 6));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC' . ($key * 3 + 5), $val['v_st_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AD' . ($key * 3 + 5), $val['v_st_alipay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AE' . ($key * 3 + 5), $val['v_st_cashpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC' . ($key * 3 + 7), $val['v_wxpay_discount']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AD' . ($key * 3 + 7), $val['v_alipay_discount']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AE' . ($key * 3 + 7), $val['v_cash_discount']);
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AF' . ($key * 3 + 5) . ':AF' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AG' . ($key * 3 + 5) . ':AG' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AH' . ($key * 3 + 5) . ':AH' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AF' . ($key * 3 + 5), $val['v_stditpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AG' . ($key * 3 + 5), $val['v_st_duct']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AH' . ($key * 3 + 5), $val['v_cashier_duct']);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A' . ($key * 3 + 5) . ':AH' . ($key * 3 + 7))->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
|
|
if (($key * 3 + 3) % 6 == 0 || ($key * 3 + 4) % 6 == 0 || ($key * 3 + 5) % 6 == 0) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A' . ($key * 3 + 5) . ':AH' . ($key * 3 + 7))->getFill()->getStartColor()->setARGB('FFF9FAFC');
|
|
} else {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A' . ($key * 3 + 5) . ':AH' . ($key * 3 + 7))->getFill()->getStartColor()->setARGB('FFFFFFFF');
|
|
}
|
|
}
|
|
$storeNum = count($expTableData);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AI5:AI' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AI5', $recharge['v_xcxpay']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AJ5:AJ' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AJ5', $recharge['v_wxpay']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AK5:AK' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AK5', $recharge['v_merpay']);
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AL5:AL' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AL5', $recharge['v_merpay_discount']);
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AM5:AM' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AM5', $recharge['v_mer_duct']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AN5:AN' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AN5', $recharge['v_total_pay']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AO5:AO' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AO5', $recharge['v_total_discount']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AP5:AP' . ($storeNum * 3 + 4));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AP5', $recharge['v_total_duct']);
|
|
|
|
$titleArr = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP');
|
|
|
|
$styleThinBlackBorderOutline = array(
|
|
'borders' => array(
|
|
'allborders' => array( //allborders 表示全部线框
|
|
'style' => \PHPExcel_Style_Border::BORDER_THIN, //设置border样式
|
|
'color' => array('argb' => 'FFDDDDDD'), //设置border颜色
|
|
),
|
|
),
|
|
);
|
|
$count = ($storeNum * 3) + 5;
|
|
foreach ($titleArr as $key => $value) {
|
|
for ($i = 2; $i <= 4; $i++) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFill()->getStartColor()->setARGB('FFF3F9FF');
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFont()->getColor()->setARGB('FF333333');
|
|
$objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight('30');
|
|
$objPHPExcel->getActiveSheet()->getStyle($value . $i)->applyFromArray($styleThinBlackBorderOutline);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFont()->setBold(true);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
}
|
|
for ($j = 5; $j <= $count; $j++) {
|
|
if ($key < 7 && ($j - 2) % 3 == 0) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getFont()->setBold(true);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getFont()->getColor()->setARGB('FF333333');
|
|
} else {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getFont()->getColor()->setARGB('FF666666');
|
|
}
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getActiveSheet()->getStyle($value . $j)->applyFromArray($styleThinBlackBorderOutline);
|
|
$objPHPExcel->getActiveSheet()->getRowDimension($j)->setRowHeight('30');
|
|
}
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(20);
|
|
}
|
|
header('pragma:public');
|
|
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $filename . '.xls"');
|
|
header("Content-Disposition:attachment;filename=$_fileName.xls");//attachment新窗口打印inline本窗口打印
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
$objWriter->save('php://output');
|
|
exit();
|
|
}
|
|
|
|
|
|
/*
|
|
* 门店
|
|
* */
|
|
public function exportOneStoreSaleData()
|
|
{
|
|
$user = session('ls_userinfo');
|
|
$time = I('get.date');
|
|
$storeid = session('storeid');
|
|
if (!empty($time)) {
|
|
$times = explode('至', $time);
|
|
$start_time = strtotime(date('Y-m-d', strtotime($times[0])));
|
|
$end_time = strtotime(date('Y-m-d', strtotime($times[1])));
|
|
$days = round($end_time - $start_time) / 86400;
|
|
if ($days > 61) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '单页最多只能查看60天的数据';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$times = array();
|
|
$end_time = $end_time + 86400;
|
|
for ($i = 0; $i < $days; $i++) {
|
|
$end_time = strtotime(date('Y-m-d 00:00:00', $end_time - 86400));
|
|
$start_time = $end_time + 86399;
|
|
$times[] = $end_time . ',' . $start_time;
|
|
}
|
|
} else {
|
|
$times = array();
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', time()));
|
|
$end_time = $start_time + 86399;
|
|
$times[] = $start_time . ',' . $end_time;
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', strtotime("-1 day")));
|
|
$end_time = $start_time + 86399;
|
|
$times[] = $start_time . ',' . $end_time;
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', strtotime("-2 day")));
|
|
$end_time = $start_time + 86399;
|
|
$times[] = $start_time . ',' . $end_time;
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', strtotime("-3 day")));
|
|
$end_time = $start_time + 86399;
|
|
$times[] = $start_time . ',' . $end_time;
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', strtotime("-4 day")));
|
|
$end_time = $start_time + 86399;
|
|
$times[] = $start_time . ',' . $end_time;
|
|
}
|
|
$merchantid = $user['merchantid'];
|
|
$where['id'] = $storeid;
|
|
$where['merchantid'] = $merchantid;
|
|
$store_info = M('retail_store')->where($where)->find();
|
|
if ($store_info) {
|
|
$payInfo = array();
|
|
foreach ($times as $key => &$val) {
|
|
$map_store = array();
|
|
$map_shop = array();
|
|
$map_recharge = array();
|
|
$map_duct = array();
|
|
$search_time = explode(',', $val);
|
|
$start_time = $search_time[0];
|
|
$end_time = $search_time[1];
|
|
$payInfo[$key]['time'] = date('Y-m-d', $start_time);
|
|
$map_store['merchantid'] = $merchantid;
|
|
$map_store['storeid'] = $storeid;
|
|
$map_store['pay_state'] = 1;
|
|
$map_store['paytype'] = array('neq', 0);
|
|
$map_store['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_store['type'] = 2; //店内
|
|
$map_store['order_type'] = 1; //购买订单
|
|
$payInfo[$key]['d_total_sales'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内总销售金额
|
|
$payInfo[$key]['d_total_sales'] = $payInfo[$key]['d_total_sales'] ? $payInfo[$key]['d_total_sales'] : 0;
|
|
$payInfo[$key]['d_total_sales_num'] = M('retail_bill')->where($map_store)->count(); //店内总销售笔数
|
|
|
|
$map_store['order_type'] = 2;
|
|
$map_store['refund_status'] = 3;
|
|
$payInfo[$key]['d_refund_total_sales'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内退款总金额
|
|
$payInfo[$key]['d_refund_total_sales'] = $payInfo[$key]['d_refund_total_sales'] ? $payInfo[$key]['d_refund_total_sales'] : 0;
|
|
$payInfo[$key]['d_refund_total_sales_num'] = M('retail_bill')->where($map_store)->count(); //店内退款总笔数
|
|
|
|
$payInfo[$key]['d_clean_total_sales'] = round(($payInfo[$key]['d_total_sales'] - $payInfo[$key]['d_refund_total_sales']), 2);
|
|
//店内总净销售额
|
|
$map_store['order_type'] = 1;
|
|
$map_store['refund_status'] = array('in', '0,1,2,3');
|
|
$map_store['paytype'] = 3;
|
|
$payInfo[$key]['d_wxpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内微信总售金额
|
|
$payInfo[$key]['d_wxpay'] = $payInfo[$key]['d_wxpay'] ? $payInfo[$key]['d_wxpay'] : 0;
|
|
$payInfo[$key]['d_wxpay_num'] = M('retail_bill')->where($map_store)->count(); //店内微信总销售笔数
|
|
|
|
$map_store['paytype'] = 4;
|
|
$payInfo[$key]['d_alipay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内支付宝总金额
|
|
$payInfo[$key]['d_alipay'] = $payInfo[$key]['d_alipay'] ? $payInfo[$key]['d_alipay'] : 0;
|
|
$payInfo[$key]['d_alipay_num'] = M('retail_bill')->where($map_store)->count(); //店内支付宝总笔数
|
|
|
|
$map_store['paytype'] = 1;
|
|
$payInfo[$key]['d_cash'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内现金金额
|
|
$payInfo[$key]['d_cash'] = $payInfo[$key]['d_cash'] ? $payInfo[$key]['d_cash'] : 0;
|
|
$payInfo[$key]['d_cash_num'] = M('retail_bill')->where($map_store)->count(); //店内现金笔数
|
|
|
|
$map_store['paytype'] = 5;
|
|
$payInfo[$key]['d_vippay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内会员金额
|
|
$payInfo[$key]['d_vippay'] = $payInfo[$key]['d_vippay'] ? $payInfo[$key]['d_vippay'] : 0;
|
|
$payInfo[$key]['d_vippay_num'] = M('retail_bill')->where($map_store)->count(); //店内会员笔数
|
|
|
|
$map_store['paytype'] = 7;
|
|
$payInfo[$key]['d_otherpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //店内其他金额
|
|
$payInfo[$key]['d_otherpay'] = $payInfo[$key]['d_otherpay'] ? $payInfo[$key]['d_otherpay'] : 0;
|
|
$payInfo[$key]['d_otherpay_num'] = M('retail_bill')->where($map_store)->count(); //店内其他笔数
|
|
|
|
$map_store['order_type'] = 2;
|
|
$map_store['refund_status'] = 3;
|
|
$map_store['paytype'] = 3;
|
|
$payInfo[$key]['d_refund_wxpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //微信退款金额
|
|
$payInfo[$key]['d_refund_wxpay'] = $payInfo[$key]['d_refund_wxpay'] ? $payInfo[$key]['d_refund_wxpay'] : 0;
|
|
$payInfo[$key]['d_refund_wxpay_num'] = M('retail_bill')->where($map_store)->count(); //微信退款笔数
|
|
|
|
$map_store['paytype'] = 4;
|
|
$payInfo[$key]['d_refund_alipay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //支付宝退款金额
|
|
$payInfo[$key]['d_refund_alipay'] = $payInfo[$key]['d_refund_alipay'] ? $payInfo[$key]['d_refund_alipay'] : 0;
|
|
$payInfo[$key]['d_refund_alipay_num'] = M('retail_bill')->where($map_store)->count(); //支付宝退款笔数
|
|
|
|
$map_store['paytype'] = 1;
|
|
$payInfo[$key]['d_refund_cash'] = M('retail_bill')->where($map_store)->sum('allmoney'); //现金退款金额
|
|
$payInfo[$key]['d_refund_cash'] = $payInfo[$key]['d_refund_cash'] ? $payInfo[$key]['d_refund_cash'] : 0;
|
|
$payInfo[$key]['d_refund_cash_num'] = M('retail_bill')->where($map_store)->count(); //现金退款笔数
|
|
|
|
$map_store['paytype'] = 5;
|
|
$payInfo[$key]['d_refund_vippay'] = M('retail_bill')->where($map_store)->sum('allmoney');
|
|
$payInfo[$key]['d_refund_vippay'] = $payInfo[$key]['d_refund_vippay'] ? $payInfo[$key]['d_refund_vippay'] : 0;
|
|
|
|
$payInfo[$key]['d_refund_vippay_num'] = M('retail_bill')->where($map_store)->count(); //会员退款笔数
|
|
|
|
$map_store['paytype'] = 7;
|
|
$payInfo[$key]['d_refund_otherpay'] = M('retail_bill')->where($map_store)->sum('allmoney'); //其他退款金额
|
|
$payInfo[$key]['d_refund_otherpay'] = $payInfo[$key]['d_refund_otherpay'] ? $payInfo[$key]['d_refund_otherpay'] : 0;
|
|
$payInfo[$key]['d_refund_otherpay_num'] = M('retail_bill')->where($map_store)->count(); // 其他退款笔数
|
|
|
|
//商城
|
|
$map_shop['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_shop['merchantid'] = $merchantid;
|
|
$map_shop['storeid'] = $storeid;
|
|
$map_shop['pay_state'] = 1;
|
|
$map_shop['paytype'] = array('in', '5,6');
|
|
$map_shop['type'] = 1;
|
|
|
|
$map_shop['order_type'] = 1;
|
|
$payInfo[$key]['s_total_sales'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城总销售金额
|
|
$payInfo[$key]['s_total_sales'] = $payInfo[$key]['s_total_sales'] ? $payInfo[$key]['s_total_sales'] : 0;
|
|
$payInfo[$key]['s_total_sales_num'] = M('retail_bill')->where($map_shop)->count(); //商城总销售笔数
|
|
|
|
$map_shop['order_type'] = 2;
|
|
$map_shop['refund_status'] = 2;
|
|
$payInfo[$key]['s_refund_total_sales'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城退款金额
|
|
$payInfo[$key]['s_refund_total_sales'] = $payInfo[$key]['s_refund_total_sales'] ? $payInfo[$key]['s_refund_total_sales'] : 0;
|
|
$payInfo[$key]['s_refund_total_sales_num'] = M('retail_bill')->where($map_shop)->count(); //商城退款笔数
|
|
$payInfo[$key]['s_clean_total_sales'] = round($payInfo[$key]['s_total_sales'] - $payInfo[$key]['s_refund_total_sales'], 2); //商城净销售额
|
|
|
|
$map_shop['paytype'] = 6;
|
|
$payInfo[$key]['s_refund_wxpay'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城微信退款金额
|
|
$payInfo[$key]['s_refund_wxpay'] = $payInfo[$key]['s_refund_wxpay'] ? $payInfo[$key]['s_refund_wxpay'] : 0;
|
|
$payInfo[$key]['s_refund_wxpay_num'] = M('retail_bill')->where($map_shop)->count(); //商城退款笔数
|
|
|
|
$map_shop['paytype'] = 5;
|
|
$payInfo[$key]['s_refund_vippay'] = M('retail_bill')->where($map_shop)->sum('allmoney'); //会员退款金额
|
|
$payInfo[$key]['s_refund_vippay'] = $payInfo[$key]['s_refund_vippay'] ? $payInfo[$key]['s_refund_vippay'] : 0;
|
|
$payInfo[$key]['s_refund_vippay_num'] = M('retail_bill')->where($map_shop)->count(); //会员退款笔数
|
|
|
|
$map_shop['order_type'] = 1;
|
|
$map_shop['refund_status'] = array('in', '0,1,2,3');
|
|
$map_shop['paytype'] = 5;
|
|
$vippay = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城会员金额
|
|
$payInfo[$key]['s_vippay'] = $vippay ? $vippay : 0;
|
|
|
|
$map_shop['paytype'] = 6;
|
|
$vipwxpay = M('retail_bill')->where($map_shop)->sum('allmoney'); //商城微信订单金额
|
|
$payInfo[$key]['s_wxpay'] = $vipwxpay ? $vipwxpay : 0;
|
|
|
|
$map_shop['paytype'] = 6;
|
|
$payInfo[$key]['s_wxpay_num'] = M('retail_bill')->where($map_shop)->count(); //商城微信订单笔数
|
|
|
|
$map_shop['paytype'] = 5;
|
|
$payInfo[$key]['s_vippay_num'] = M('retail_bill')->where($map_shop)->count(); //商城会员订单笔数
|
|
|
|
$payInfo[$key]['z_clean_total_sales'] = round($payInfo[$key]['d_clean_total_sales'] + $payInfo[$key]['s_clean_total_sales'], 2); //小计总净销售额
|
|
$payInfo[$key]['z_total_sales'] = round($payInfo[$key]['s_total_sales'] + $payInfo[$key]['d_total_sales'], 2); //小计总销售额
|
|
$payInfo[$key]['z_total_sales_num'] = round($payInfo[$key]['d_total_sales_num'] + $payInfo[$key]['s_total_sales_num'], 2); //小计销售笔数
|
|
$payInfo[$key]['z_refund_total_sales'] = round($payInfo[$key]['d_refund_total_sales'] + $payInfo[$key]['s_refund_total_sales'], 2); //小计退款金额
|
|
$payInfo[$key]['z_refund_total_sales_num'] = round($payInfo[$key]['d_refund_total_sales_num'] + $payInfo[$key]['s_refund_total_sales_num'], 2); //小计退款总笔数
|
|
|
|
$payInfo[$key]['z_wxpay'] = round($payInfo[$key]['d_wxpay'] + $payInfo[$key]['s_wxpay'], 2); //小计微信销售金额
|
|
$payInfo[$key]['z_wxpay_num'] = round($payInfo[$key]['d_wxpay_num'] + $payInfo[$key]['s_wxpay_num'], 2); //小计微信笔数
|
|
$payInfo[$key]['z_refund_wxpay'] = round($payInfo[$key]['d_refund_wxpay'] + $payInfo[$key]['s_refund_wxpay'], 2); //小计微信退款金额
|
|
$payInfo[$key]['z_refund_wxpay_num'] = round($payInfo[$key]['s_refund_wxpay_num'] + $payInfo[$key]['d_refund_wxpay_num'], 2); //小计微信退款笔数
|
|
|
|
$payInfo[$key]['z_vippay'] = round($payInfo[$key]['d_vippay'] + $payInfo[$key]['s_vippay'], 2); //小计会员金额
|
|
$payInfo[$key]['z_vippay_num'] = round($payInfo[$key]['d_vippay_num'] + $payInfo[$key]['s_vippay_num'], 2); //小计会员笔数
|
|
$payInfo[$key]['z_refund_vippay'] = round($payInfo[$key]['d_refund_vippay'] + $payInfo[$key]['s_refund_vippay'], 2); //小计会员退款金额
|
|
$payInfo[$key]['z_refund_vippay_num'] = round($payInfo[$key]['d_refund_vippay_num'] + $payInfo[$key]['s_refund_vippay_num'], 2); //小计会员退款笔数
|
|
|
|
//充值记录
|
|
$map_recharge['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_recharge['merchantid'] = $merchantid;
|
|
$map_recharge['storeid'] = $storeid;
|
|
/*$payInfo[$key]['v_total_pay'] = M('retail_viprecharge')->where($map_recharge)->sum('money');
|
|
$payInfo[$key]['v_total_pay'] = $payInfo[$key]['v_total_pay'] ? $payInfo[$key]['v_total_pay'] : 0; //实际总的充值金额
|
|
|
|
$total_recharge_pay = M('retail_viprecharge')->where($map_recharge)->sum('allmoney');
|
|
$payInfo[$key]['v_total_discount'] = round($total_recharge_pay - $payInfo[$key]['v_total_pay'], 2);*/
|
|
|
|
$map_recharge['type'] = 2;
|
|
$map_recharge['paytype'] = 1;
|
|
$payInfo[$key]['v_st_cashpay'] = M('retail_viprecharge')->where($map_recharge)->sum('money'); //店内现金充值
|
|
$payInfo[$key]['v_st_cashpay'] = $payInfo[$key]['v_st_cashpay'] ? $payInfo[$key]['v_st_cashpay'] : 0;
|
|
|
|
$v_total_cashpay = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //店内现金获得金额
|
|
$v_total_cashpay = $v_total_cashpay ? $v_total_cashpay : 0;
|
|
|
|
$payInfo[$key]['v_cash_discount'] = round($v_total_cashpay - $payInfo[$key]['v_st_cashpay'], 2); //店内现金优惠金额
|
|
|
|
$map_recharge['paytype'] = 2;
|
|
$payInfo[$key]['v_st_wxpay'] = M('retail_viprecharge')->where($map_recharge)->sum('money'); //店内微信充值
|
|
$payInfo[$key]['v_st_wxpay'] = $payInfo[$key]['v_st_wxpay'] ? $payInfo[$key]['v_st_wxpay'] : 0;
|
|
|
|
$v_total_wxpay = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //店内微信总金额
|
|
$payInfo[$key]['v_wxpay_discount'] = round($v_total_wxpay - $payInfo[$key]['v_st_wxpay'], 2); //店内微信优惠金额
|
|
|
|
$map_recharge['paytype'] = 3;
|
|
$payInfo[$key]['v_st_alipay'] = M('retail_viprecharge')->where($map_recharge)->sum('money'); //店内支付宝充值
|
|
$payInfo[$key]['v_st_alipay'] = $payInfo[$key]['v_st_alipay'] ? $payInfo[$key]['v_st_alipay'] : 0;
|
|
$v_total_alipay = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //店内支付宝总金额
|
|
$payInfo[$key]['v_alipay_discount'] = round($v_total_alipay - $payInfo[$key]['v_st_alipay'], 2); //店内支付宝优惠
|
|
|
|
$map_recharge['type'] = 4;
|
|
$map_recharge['usertype'] = 2;
|
|
$map_recharge['paytype'] = 1;
|
|
$payInfo[$key]['v_stditpay'] = M('retail_viprecharge')->where($map_recharge)->sum('allmoney'); //门店后台编辑赠送
|
|
$payInfo[$key]['v_stditpay'] = $payInfo[$key]['v_stditpay'] ? $payInfo[$key]['v_stditpay'] : 0;
|
|
|
|
|
|
$payInfo[$key]['v_total_pay'] = round($payInfo[$key]['v_st_cashpay'] + $payInfo[$key]['v_st_wxpay'] + $payInfo[$key]['v_st_alipay'], 2); //门店实际充值金额
|
|
$payInfo[$key]['v_total_discount'] = round($payInfo[$key]['v_cash_discount'] + $payInfo[$key]['v_wxpay_discount'] + $payInfo[$key]['v_alipay_discount'] + $payInfo[$key]['v_stditpay']); //门店赠送金额
|
|
|
|
|
|
$map_duct['addtime'] = array('between', array($start_time, $end_time));
|
|
$map_duct['merchantid'] = $merchantid;
|
|
$map_duct['storeid'] = $storeid;
|
|
$map_duct['type'] = 4;
|
|
$map_duct['usertype'] = 2;
|
|
$v_st_duct = M('recharge_order')->where($map_duct)->sum('money'); //门店扣除
|
|
$payInfo[$key]['v_st_duct'] = $v_st_duct ? $v_st_duct : 0;
|
|
$map_duct['usertype'] = 3;
|
|
$payInfo[$key]['v_cashier_duct'] = M('recharge_order')->where($map_duct)->sum('money'); //收银员扣除
|
|
$payInfo[$key]['v_cashier_duct'] = $payInfo[$key]['v_cashier_duct'] ? $payInfo[$key]['v_cashier_duct'] : 0;
|
|
$payInfo[$key]['v_total_duct'] = round($payInfo[$key]['v_cashier_duct'] + $payInfo[$key]['v_st_duct'], 2); //总扣除
|
|
}
|
|
} else {
|
|
$payInfo = array();
|
|
}
|
|
|
|
$filename = $store_info['storetag'] . "销售汇总";
|
|
if (!$time) {
|
|
$time = date('Y-m-d H:i:s', $times[0]) . '至' . date('Y-m-d H:i:s', $times[1]);
|
|
}
|
|
$common = $time . ',导出时间:' . date('Y-m-d H:i:s');
|
|
$this->getOneStoreSaleDataExcel($filename, $payInfo, $common);
|
|
}
|
|
|
|
private function getOneStoreSaleDataExcel($filename, $expTableData, $common = "")
|
|
{
|
|
$filename = iconv('utf-8', 'gb2312', $filename);//文件名称
|
|
$_fileName = $filename . date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
|
|
vendor("PHPExcel.PHPExcel");
|
|
ob_clean();
|
|
$objPHPExcel = new \PHPExcel();
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:Ak1');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $common);
|
|
|
|
//表头
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A2:A4');//日期
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', '日期');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('B2:B4');//渠道
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B2', '渠道');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('C2:C4');//净销售额
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C2', '净销售额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('D2:D4');//销售额
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D2', '销售额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('E2:E4');//销售笔数
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E2', '销售笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('F2:F4');//退款金额
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F2', '退款金额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('G2:G4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G2', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('H2:K3');//微信支付
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H2', '微信支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('L2:O3');//会员卡支付
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L2', '会员卡支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('P2:S3');//支付宝支付
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P2', '支付宝支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('R4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('S4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('T2:W3');//现金支付
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T2', '现金支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('U4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('V4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('W4', '退款笔数');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('X2:AA3');//其他支付
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X2', '其他支付');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X4', '销售金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Y4', '销售笔数');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Z4', '退款金额');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AA4', '退款笔数');
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AB2:AK2');//会员充值
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB2', '会员充值');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AB3:AB4');//类型
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB3', '类型');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AC3:AE3');//店内
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC3', '店内');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC4', '微信');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AD4', '支付宝');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AE4', '现金');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AF3:AF4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AF3', '门店后台赠送');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AG3:AG4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AG3', '门店后台扣除');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AH3:AH4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AH3', '收银员扣除');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AI3:AI4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AI3', '实际充值金额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AJ3:AJ4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AJ3', '赠送金额');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AK3:AK4');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AK3', '扣除总金额');
|
|
|
|
foreach ($expTableData as $key => $val) {
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A' . ($key * 3 + 5) . ':A' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . ($key * 3 + 5), $val['time']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . ($key * 3 + 5), '小计');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . ($key * 3 + 5), $val['z_clean_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . ($key * 3 + 5), $val['z_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . ($key * 3 + 5), $val['z_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . ($key * 3 + 5), $val['z_refund_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . ($key * 3 + 5), $val['z_refund_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . ($key * 3 + 5), $val['z_wxpay']);//微信
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . ($key * 3 + 5), $val['z_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J' . ($key * 3 + 5), $val['z_refund_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K' . ($key * 3 + 5), $val['z_refund_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L' . ($key * 3 + 5), $val['z_vippay']);//会员卡
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M' . ($key * 3 + 5), $val['z_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N' . ($key * 3 + 5), $val['z_refund_vippay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O' . ($key * 3 + 5), $val['z_refund_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P' . ($key * 3 + 5), $val['d_alipay']);//支付宝
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q' . ($key * 3 + 5), $val['d_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('R' . ($key * 3 + 5), $val['d_refund_alipay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('S' . ($key * 3 + 5), $val['d_refund_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T' . ($key * 3 + 5), $val['d_cash']);//现金
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('U' . ($key * 3 + 5), $val['d_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('V' . ($key * 3 + 5), $val['d_refund_cash']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('W' . ($key * 3 + 5), $val['d_refund_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X' . ($key * 3 + 5), $val['d_otherpay']);//其他
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Y' . ($key * 3 + 5), $val['d_otherpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Z' . ($key * 3 + 5), $val['d_refund_otherpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AA' . ($key * 3 + 5), $val['d_refund_otherpay_num']);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . ($key * 3 + 6), '店内');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . ($key * 3 + 6), $val['d_clean_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . ($key * 3 + 6), $val['d_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . ($key * 3 + 6), $val['d_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . ($key * 3 + 6), $val['d_refund_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . ($key * 3 + 6), $val['d_refund_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . ($key * 3 + 6), $val['d_wxpay']);//微信
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . ($key * 3 + 6), $val['d_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J' . ($key * 3 + 6), $val['d_refund_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K' . ($key * 3 + 6), $val['d_refund_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L' . ($key * 3 + 6), $val['d_vippay']);//会员卡
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M' . ($key * 3 + 6), $val['d_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N' . ($key * 3 + 6), $val['d_refund_vippay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O' . ($key * 3 + 6), $val['d_refund_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('P' . ($key * 3 + 6), $val['d_alipay']);//支付宝
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Q' . ($key * 3 + 6), $val['d_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('R' . ($key * 3 + 6), $val['d_refund_alipay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('S' . ($key * 3 + 6), $val['d_refund_alipay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('T' . ($key * 3 + 6), $val['d_cash']);//现金
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('U' . ($key * 3 + 6), $val['d_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('V' . ($key * 3 + 6), $val['d_refund_cash']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('W' . ($key * 3 + 6), $val['d_refund_cash_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('X' . ($key * 3 + 6), $val['d_otherpay']);//其他
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Y' . ($key * 3 + 6), $val['d_otherpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('Z' . ($key * 3 + 6), $val['d_refund_otherpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AA' . ($key * 3 + 6), $val['d_refund_otherpay_num']);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . ($key * 3 + 7), '商城');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . ($key * 3 + 7), $val['s_clean_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . ($key * 3 + 7), $val['s_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . ($key * 3 + 7), $val['s_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . ($key * 3 + 7), $val['s_refund_total_sales']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . ($key * 3 + 7), $val['s_refund_total_sales_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . ($key * 3 + 7), $val['s_wxpay']);//微信
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . ($key * 3 + 7), $val['s_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J' . ($key * 3 + 7), $val['s_refund_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K' . ($key * 3 + 7), $val['s_refund_wxpay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('L' . ($key * 3 + 7), $val['s_vippay']);//会员卡
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('M' . ($key * 3 + 7), $val['s_vippay_num']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('N' . ($key * 3 + 7), $val['s_refund_vippay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('O' . ($key * 3 + 7), $val['s_refund_vippay_num']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('P' . ($key * 3 + 7) . ':AA' . ($key * 3 + 7));//合并单元格
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AB' . ($key * 3 + 5) . ':AB' . ($key * 3 + 6));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB' . ($key * 3 + 5), '充值');
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AB' . ($key * 3 + 7), '赠送');
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AC' . ($key * 3 + 5) . ':AC' . ($key * 3 + 6));//合并单元格 店内
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AD' . ($key * 3 + 5) . ':AD' . ($key * 3 + 6));//合并单元格
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AE' . ($key * 3 + 5) . ':AE' . ($key * 3 + 6));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC' . ($key * 3 + 5), $val['v_st_wxpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AD' . ($key * 3 + 5), $val['v_st_alipay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AE' . ($key * 3 + 5), $val['v_st_cashpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AC' . ($key * 3 + 7), $val['v_wxpay_discount']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AD' . ($key * 3 + 7), $val['v_alipay_discount']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AE' . ($key * 3 + 7), $val['v_cash_discount']);
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AF' . ($key * 3 + 5) . ':AF' . ($key * 3 + 7));//合并单元格 商户充值
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AG' . ($key * 3 + 5) . ':AG' . ($key * 3 + 7));//合并单元格 商户扣除
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AH' . ($key * 3 + 5) . ':AH' . ($key * 3 + 7));//合并单元格 收银员扣除
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AF' . ($key * 3 + 5), $val['v_stditpay']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AG' . ($key * 3 + 5), $val['v_st_duct']);
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AH' . ($key * 3 + 5), $val['v_cashier_duct']);
|
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AI' . ($key * 3 + 5) . ':AI' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AI' . ($key * 3 + 5), $val['v_total_pay']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AJ' . ($key * 3 + 5) . ':AJ' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AJ' . ($key * 3 + 5), $val['v_total_discount']);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('AK' . ($key * 3 + 5) . ':AK' . ($key * 3 + 7));//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('AK' . ($key * 3 + 5), $val['v_total_duct']);
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A' . ($key * 3 + 5) . ':AK' . ($key * 3 + 7))->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
|
|
if (($key * 3 + 3) % 6 == 0 || ($key * 3 + 4) % 6 == 0 || ($key * 3 + 5) % 6 == 0) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A' . ($key * 3 + 5) . ':AK' . ($key * 3 + 7))->getFill()->getStartColor()->setARGB('FFF9FAFC');
|
|
} else {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A' . ($key * 3 + 5) . ':AK' . ($key * 3 + 7))->getFill()->getStartColor()->setARGB('FFFFFFFF');
|
|
}
|
|
}
|
|
$titleArr = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK');
|
|
$styleThinBlackBorderOutline = array(
|
|
'borders' => array(
|
|
'allborders' => array( //allborders 表示全部线框
|
|
'style' => \PHPExcel_Style_Border::BORDER_THIN, //设置border样式
|
|
'color' => array('argb' => 'FFDDDDDD'), //设置border颜色
|
|
),
|
|
),
|
|
);
|
|
$storeNum = count($expTableData);
|
|
$count = ($storeNum * 3) + 5;
|
|
foreach ($titleArr as $key => $value) {
|
|
for ($i = 2; $i <= 4; $i++) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFill()->getStartColor()->setARGB('FFF3F9FF');
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFont()->getColor()->setARGB('FF333333');
|
|
$objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight('30');
|
|
$objPHPExcel->getActiveSheet()->getStyle($value . $i)->applyFromArray($styleThinBlackBorderOutline);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getFont()->setBold(true);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
}
|
|
if ($storeNum) {
|
|
for ($j = 5; $j <= $count; $j++) {
|
|
if ($key < 7 && ($j - 2) % 3 == 0) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getFont()->setBold(true);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getFont()->getColor()->setARGB('FF333333');
|
|
} else {
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getFont()->getColor()->setARGB('FF666666');
|
|
}
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle($value . $j)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getActiveSheet()->getStyle($value . $j)->applyFromArray($styleThinBlackBorderOutline);
|
|
$objPHPExcel->getActiveSheet()->getRowDimension($j)->setRowHeight('30');
|
|
}
|
|
}
|
|
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(20);
|
|
}
|
|
|
|
header('pragma:public');
|
|
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $filename . '.xls"');
|
|
header("Content-Disposition:attachment;filename=$_fileName.xls");//attachment新窗口打印inline本窗口打印
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
$objWriter->save('php://output');
|
|
exit();
|
|
}
|
|
} |