|
@@ -16,7 +16,9 @@ class Report extends Command
|
|
|
private $key='Reportexec';
|
|
|
private $param=[];
|
|
|
private $qrdType = [1 => '库存品', 2 => '非库存品', 3 => '采购反馈'];
|
|
|
- private $qrdSource = [1 => '直接下单', 2 => '竞价转单', 3 => '项目转单', 4 => '平台导入', 5 => '有赞平台', 6 => '售后补换货',7=>'报备转单',8=>'支付渠道拆单'];
|
|
|
+ private $qrdSource = [1 => '直接下单', 2 => '竞价转单', 3 => '项目转单', 4 => '平台导入', 5 => '有赞平台', 6 => '售后补换货',7=>'报备转单',8=>'支付渠道拆单',9=>"采销补录",10=>"结算补录"];
|
|
|
+ private $cgdSource = [0=>"备库单",1 => '直接下单', 2 => '竞价转单', 3 => '项目转单', 4 => '平台导入', 5 => '有赞平台', 6 => '售后补换货',7=>'报备转单',
|
|
|
+ 8=>'支付渠道拆单',9=>"采销补录",10=>"结算补录"];
|
|
|
private $sendType = [1 => '包邮', 2 => '自提'];
|
|
|
private $pay_status = [1 => '未回', 2 => '部分回款', 3 => '已回'];
|
|
|
private $inv_status = [1 => '未开', 2 => '部分开票', 3 => '已开'];
|
|
@@ -26,6 +28,7 @@ class Report extends Command
|
|
|
private $cgdType = [1 => '库存', 2 => '非库存', 3 => '咨询'];
|
|
|
private $invoice_return_status = [0 => '待财务审核', 1 => '退票中', 2 => '退票成功', 3 => '审核驳回', 4 => '退票失败'];
|
|
|
private $sendStatus = [1=>'未发货',2=>'部分发货',3=>'全部发货'];
|
|
|
+ private $TagName = [1=>'采购单付款',2=>'采购单回票',3=>'销售回款',4=>"销售开票"];
|
|
|
|
|
|
protected function configure()
|
|
|
{
|
|
@@ -46,7 +49,7 @@ class Report extends Command
|
|
|
Db::startTrans();
|
|
|
try{
|
|
|
$info = json_decode($info,true);
|
|
|
- ini_set ('memory_limit', '1024M') ;
|
|
|
+ ini_set ('memory_limit', '2048M') ;
|
|
|
$date=date("Y-m-d H:i:s");
|
|
|
$param = Db::name("exec_log")->where("id",$info['id'])->findOrEmpty();
|
|
|
if(isset($param) && !empty($param)){
|
|
@@ -99,6 +102,14 @@ class Report extends Command
|
|
|
case 'N':
|
|
|
$method="N";
|
|
|
$file='退货台账';
|
|
|
+ break;
|
|
|
+ case 'Q':
|
|
|
+ $method="Q";
|
|
|
+ $file='产品部门销售业绩';
|
|
|
+ break;
|
|
|
+ case 'R':
|
|
|
+ $method="R";
|
|
|
+ $file='采购部门销售业绩';
|
|
|
break;
|
|
|
default:
|
|
|
$file='暂无数据';
|
|
@@ -131,7 +142,7 @@ class Report extends Command
|
|
|
"remark"=>$e->getMessage(),
|
|
|
'updatetime' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
- $output->writeln("[$date]【{$info['name']}】[{$info['apply_name']}]预约记录处理失败 message:【{$e->getMessage()}】");
|
|
|
+ $output->writeln("[$date]【{$info['name']}】[{$info['apply_name']}]预约记录处理失败 message:【{$e->getMessage()}|{$e->getFile()}|{$e->getCode()}】");
|
|
|
}
|
|
|
Cache::store('redis')->handler()->decrby('ExecCommand',1);
|
|
|
Db::commit();
|
|
@@ -145,19 +156,6 @@ class Report extends Command
|
|
|
|
|
|
if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.addtime', 'between', [$param['start'], $param['end']]];
|
|
|
if (($param['companyNo'] != '') && ($param['companyNo'] != '')) $where[] = ["a.inv_out","=",$param['companyNo']];
|
|
|
-
|
|
|
-// if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
|
|
|
-// if ($param['inv_type'] != '') $where[] = ['a.inv_type', '=', $param['inv_type']];
|
|
|
-// if ($param['inv_out'] != '') $where[] = ['a.inv_out', '=', $param['inv_out']];
|
|
|
-// if ($param['invNo'] != '') $where[] = ['a.invNo', 'in', $param['invNo']];
|
|
|
-// if ($param['relaComNo'] != '') $where[] = ['a.inv_out', '=', $param['relaComNo']];
|
|
|
-// if ($param['inv_number'] != '') $where[] = ['c.inv_number', 'like', '%' . $param['inv_number'] . '%'];
|
|
|
-// if ($param['inv_code'] != '') $where[] = ['c.inv_code', 'like', '%' . $param['inv_code'] . '%'];
|
|
|
-// if ($param['inv_company'] != '') $where[] = ['a.inv_company', 'like', '%' . $param['inv_company'] . '%'];
|
|
|
-// if ($param['buyer_name'] != '') $where[] = ['b.buyer_title', 'like', '%' . $param['buyer_name'] . '%'];
|
|
|
-// if ($param['apply_id'] != '') $where[] = ['a.apply_id', '=', $param['apply_id']];
|
|
|
-// if ($param['apply_name'] != '') $where[] = ['a.apply_name', 'like', '%' . $param['apply_name'] . '%'];
|
|
|
-
|
|
|
$open_type = [1 => '金税开票', 2 => '金税线下', 3 => '纯线下'];//开票方式
|
|
|
$inv_type = config('invoiceType.invoiceName');//开票种类(发票类型)
|
|
|
|
|
@@ -183,13 +181,15 @@ class Report extends Command
|
|
|
CONCAT(d.catName,"*",d.goodName) 发票货物或应税劳务、服务名称,
|
|
|
d.unitName 单位,
|
|
|
d.goodNum 数量,
|
|
|
- d.goodPrice 单价,
|
|
|
+ round(d.totalTax/d.goodNum,2) 单价,
|
|
|
d.tax 税率,
|
|
|
- d.totalPrice 总价,
|
|
|
+ d.totalTax 总价,
|
|
|
a.inv_type 开票种类,
|
|
|
a.open_type 开票方式,
|
|
|
a.exam_remark 申请备注,
|
|
|
- a.remark 发票备注')
|
|
|
+ a.remark 发票备注,
|
|
|
+ if(f.cxCode="",f.sequenceNo,f.cxCode) 销售主单号,
|
|
|
+ f.goodPrice 商品单价')
|
|
|
->leftJoin('invoice_pool_info b', 'a.invNo=b.invNo')
|
|
|
->leftJoin('invoice_ticket c', 'a.invNo=c.invNo AND c.type=0 AND c.status=1')
|
|
|
->leftJoin('invoice_good d', 'd.invNo=a.invNo')
|
|
@@ -212,21 +212,6 @@ class Report extends Command
|
|
|
// $param = $this->request->only(['start' => '', 'end' => '', 'invType' => '', 'company' => '', 'relaComNo' => '', 'supplierNo' => '', 'hpNo' => '', 'payNo' => '', 'invoiceType' => '', 'status' => '', 'invoiceNumber' => '', 'checkApi' => '', 'invoiceCode' => '', 'open_start' => '', 'open_end' => '', 'apply_id' => '', 'apply_name' => ''], 'post', 'trim');
|
|
|
|
|
|
$where = [['a.is_del', '=', 0], ['b.is_del', '=', 0]];
|
|
|
-// if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.addtime', 'between', [$param['start'], $param['end']]];
|
|
|
-// if ($param['invType'] != '') $where[] = ['a.invType', '=', $param['invType']];
|
|
|
-// if ($param['company'] != '') $where[] = ['b.companyNo', 'like', '%' . $param['company'] . '%'];
|
|
|
-// if ($param['relaComNo'] != '') $where[] = ['b.companyNo|b.supplierNo', 'like', '%' . $param['relaComNo'] . '%'];
|
|
|
-// if ($param['supplierNo'] != '') $where[] = ['b.supplierNo', '=', $param['supplierNo']];
|
|
|
-// if ($param['hpNo'] != '') $where[] = ['a.hpNo', 'like', '%' . $param['hpNo'] . '%'];
|
|
|
-// if ($param['payNo'] != '') $where[] = ['a.payNo', 'like', '%' . $param['payNo'] . '%'];
|
|
|
-// if ($param['invoiceType'] != '') $where[] = ['a.invoiceType', '=', $param['invoiceType']];
|
|
|
-// if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
|
|
|
-// if ($param['invoiceNumber'] != '') $where[] = ['a.invoiceNumber', '=', $param['invoiceNumber']];
|
|
|
-// if ($param['checkApi'] != '') $where[] = ['a.checkApi', '=', $param['checkApi']];
|
|
|
-// if ($param['invoiceCode'] != '') $where[] = ['a.invoiceCode', '=', $param['invoiceCode']];
|
|
|
-// if (($param['open_start'] != '') && ($param['open_end'] != '')) $where[] = ['a.open_time', 'between', [$param['open_start'], $param['open_end']]];
|
|
|
-// if ($param['apply_id'] != '') $where[] = ['a.apply_id', '=', $param['apply_id']];
|
|
|
-// if ($param['apply_name'] != '') $where[] = ['a.apply_name', 'like', '%' . $param['apply_name'] . '%'];
|
|
|
if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.addtime', 'between', [$param['start'], $param['end']]];
|
|
|
if (($param['companyNo'] != '') && ($param['companyNo'] != '')) $where[] = ["b.companyNo","=",$param['companyNo']];
|
|
|
$status = [1 => '待系统验证', 2 => '买方公司审核', 3 => '待买方公司认证', 4 => '认证成功', 5 => '验证失败', 6 => '买方审核驳回', 7 => '认证失败', 8 => '回票流程终止', 9 => '验证超次数', 10 => '回票已退'];//认证状态
|
|
@@ -235,7 +220,7 @@ class Report extends Command
|
|
|
|
|
|
$list = Db::name('pay_invoice')
|
|
|
->alias('a')
|
|
|
- ->leftJoin('pay b', 'a.payNo=b.payNo')
|
|
|
+ ->leftJoin('pay b', 'a.payNo=b.payNo and b.status=2')
|
|
|
->leftJoin('invoice_info c', 'c.hpNo=a.hpNo AND c.status=1')
|
|
|
->field('"" 序号,
|
|
|
a.payNo 对账编号,
|
|
@@ -243,16 +228,16 @@ class Report extends Command
|
|
|
DATE_FORMAT(a.addtime,\'%Y\') 年,
|
|
|
DATE_FORMAT(a.addtime,\'%m\') 月,
|
|
|
a.invoiceNumber 发票号,
|
|
|
+ c.total 总额,
|
|
|
+ c.subtotal_amount 金额,
|
|
|
+ c.subtotal_tax 税额,
|
|
|
a.open_time 开票日期,
|
|
|
b.supplierName 供应商,
|
|
|
a.invoiceType 发票类型,
|
|
|
"" as 业务类型,
|
|
|
a.status 认证状态,
|
|
|
a.updatetime 认证时间,
|
|
|
- a.remark 备注,
|
|
|
- c.total 总额,
|
|
|
- c.subtotal_amount 金额,
|
|
|
- c.subtotal_tax 税额')
|
|
|
+ a.remark 备注')
|
|
|
->where($where)
|
|
|
->order('a.addtime desc')
|
|
|
->cursor();
|
|
@@ -273,16 +258,8 @@ class Report extends Command
|
|
|
private function C($param=[])
|
|
|
{
|
|
|
// $param = $this->request->only(['start' => '', 'end' => '', 'name' => '', 'bank' => '', 'status' => '', 'tradNo' => '', 'company' => '', 'userd_lower' => '', 'used_upper' => ''], 'post', 'trim');
|
|
|
- $where = [['a.is_del', '=', 0], ['b.is_del', '=', 0]];
|
|
|
-// if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.trade_time', 'between', [$param['start'], $param['end']]];
|
|
|
-// if ($param['name'] != '') $where[] = ['a.trade_out', 'like', '%' . $param['name'] . '%'];
|
|
|
-// if ($param['bank'] != '') $where[] = ['a.trade_bank', 'like', '%' . $param['bank'] . '%'];
|
|
|
-// if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
|
|
|
-// if ($param['tradNo'] != '') $where[] = ['a.tradNo', 'like', '%' . $param['tradNo'] . '%'];
|
|
|
-// if ($param['company'] != '') $where[] = ['a.companyNo', 'like', '%' . $param['company'] . '%'];
|
|
|
-// if ($param['userd_lower'] != '') $where[] = ['a.used_fee', '>=', $param['userd_lower']];
|
|
|
-// if ($param['used_upper'] != '') $where[] = ['a.used_fee', '<=', $param['used_upper']];
|
|
|
- if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.addtime', 'between', [$param['start'], $param['end']]];
|
|
|
+ $where = [['a.is_del', '=', 0]];
|
|
|
+ if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['b.addtime', 'between', [$param['start'],$param['end']]];
|
|
|
if (($param['companyNo'] != '') && ($param['companyNo'] != '')) $where[] = ["a.companyNo","=",$param['companyNo']];
|
|
|
$status = [1 => '未认领', 2 => '部分认领', 3 => '全部认领'];//状态
|
|
|
$b_status = [1 => '待审批', 2 => '审批通过', 3 => '审批驳回', 4 => '退款', 5 => '解除认领'];//认领审批状态
|
|
@@ -300,17 +277,18 @@ class Report extends Command
|
|
|
a.status 状态,
|
|
|
a.total_fee 收入金额,
|
|
|
a.balance 未认领金额,
|
|
|
- a.used_fee 已认领金额,
|
|
|
+ b.total_fee 已认领金额,
|
|
|
b.logNo 资金认领编号,
|
|
|
- a.customerNo 认领企业,
|
|
|
+ b.customerNo 认领企业,
|
|
|
c.orderCode 订单编号,
|
|
|
+ d.cxCode 销售主单号,
|
|
|
d.poCode 平台编号,
|
|
|
d.goodName 产品名称,
|
|
|
d.ownerName 资金创建人,
|
|
|
c.apply_name 认领创建人,
|
|
|
b.status 认领审批状态,
|
|
|
b.remark 驳回原因')
|
|
|
- ->leftJoin('trade_pool b', 'b.tradNo=a.tradNo')
|
|
|
+ ->leftJoin('trade_pool b', 'b.tradNo=a.tradNo and b.is_del=0')
|
|
|
->leftJoin('assoc c', 'c.viceCode=b.logNo and c.type=2 and c.status<>3')
|
|
|
->leftJoin('qrd_info d', 'd.sequenceNo=c.orderCode')
|
|
|
->where($where)
|
|
@@ -338,7 +316,7 @@ class Report extends Command
|
|
|
|
|
|
$data = Db::name('assoc')
|
|
|
->alias('b')
|
|
|
- ->field('DATE_FORMAT(b.addtime,\'%Y\') 年,DATE_FORMAT(b.addtime,\'%m\') 月,DATE_FORMAT(b.addtime,\'%d\') 日,a.companyName 业务公司名称,a.companyNo 业务公司编号,b.viceCode 资金认领编号,c.tradNo 资金编号,c.total_fee 本次核销金额,c.addtime 本次核销时间,c.status 资金认领状态,a.sequenceNo 确认单编号,a.department 业务员部门,a.ownerName 业务员,a.platName 平台类型,a.qrdSource 确认单类型,a.qrdType 商品类型,a.poCode PO编号,a.customerAttr 客户属性,a.branch 分公司,a.customerName 客户名称,a.firstCat 一级分类,a.goodName 产品名称,round(a.tax/100,2) 税点,(a.goodNum-a.thNum) 下单数量,a.goodPrice 销售单价,(a.totalPrice-a.th_fee) 销售总额')
|
|
|
+ ->field('DATE_FORMAT(b.addtime,\'%Y\') 年,DATE_FORMAT(b.addtime,\'%m\') 月,DATE_FORMAT(b.addtime,\'%d\') 日,a.companyName 业务公司名称,a.companyNo 业务公司编号,b.viceCode 资金认领编号,c.tradNo 资金编号,c.total_fee 本次核销金额,c.addtime 本次核销时间,c.status 资金认领状态,a.sequenceNo 确认单编号,a.department 业务员部门,a.ownerName 业务员,a.platName 平台类型,a.qrdSource 确认单类型,a.qrdType 商品类型,a.poCode 平台订单号,a.customerAttr 客户属性,a.branch 分公司,a.customerName 客户名称,a.firstCat 一级分类,a.goodName 产品名称,round(a.tax/100,2) 税点,(a.goodNum-a.thNum) 下单数量,a.goodPrice 销售单价,(a.totalPrice-a.th_fee) 销售总额')
|
|
|
->leftJoin('qrd_info a', 'b.orderCode=a.sequenceNo')
|
|
|
->leftJoin('trade_pool c', 'c.logNo=b.viceCode')
|
|
|
->where($where)
|
|
@@ -356,11 +334,6 @@ class Report extends Command
|
|
|
$value['商品类型'] = $this->qrdType[$value['商品类型']] ?? '';
|
|
|
yield $value;
|
|
|
}
|
|
|
- //
|
|
|
- // if (empty($list)) $list[] = ['导出数据为空' => ''];
|
|
|
- //
|
|
|
- // excelExport('回款核销明细表', array_keys($list[0]), $list);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
//回票明细表
|
|
@@ -368,7 +341,7 @@ class Report extends Command
|
|
|
{
|
|
|
// $param = $this->request->only(['company' => '', 'start' => '', 'end' => ''], 'post', 'trim');
|
|
|
|
|
|
- $where = [['a.is_del', '=', 0], ['b.is_del', '=', 0], ['c.is_del', '=', 0], ['d.is_del', '=', 0]];
|
|
|
+ $where = [['a.is_del', '=', 0],['a.status', 'in',[3,4]],['b.is_del', '=', 0], ['c.is_del', '=', 0], ['d.is_del', '=', 0]];
|
|
|
|
|
|
if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.check_time', 'between', [$param['start'], $param['end']]];
|
|
|
if ($param['companyNo'] != '') $where[] = ['b.companyNo', '=', $param['companyNo']];
|
|
@@ -384,6 +357,7 @@ class Report extends Command
|
|
|
a.check_time 本次回票时间,
|
|
|
a.invoiceNumber 发票号,
|
|
|
a.inv_amount 本次回票金额,
|
|
|
+ d.totalPrice 采购单回票金额,
|
|
|
"" 不含税采购成本,
|
|
|
"" 税额,
|
|
|
d.companyName 公司回票抬头,
|
|
@@ -413,48 +387,31 @@ class Report extends Command
|
|
|
d.qrdCode 确认单编号,
|
|
|
d.bkCode 备库编号,
|
|
|
d.thNum 退货数量,
|
|
|
- d.th_fee 退货金额')
|
|
|
+ d.th_fee 退货金额,
|
|
|
+ a.exam_remark 回票审核备注,
|
|
|
+ a.remark 回票申请备注')
|
|
|
->leftJoin('pay b', 'a.payNo=b.payNo')
|
|
|
- ->leftJoin('pay_info c', 'c.payNo=a.payNo')
|
|
|
+ ->leftJoin('pay_info c', 'c.payNo=a.payNo and c.status=1 and c.is_del=0')
|
|
|
->leftJoin('cgd_info d', 'd.sequenceNo=c.cgdNo')
|
|
|
- ->leftJoin('invoice_info e', 'e.payNo=a.payNo')
|
|
|
->where($where)
|
|
|
->order(['a.id' => 'desc'])
|
|
|
->cursor();
|
|
|
|
|
|
//采购单类型
|
|
|
- $cgdSource = [1 => '直接下单', 2 => '咨询', 3 => '项目', 4 => '平台', 5 => '有赞'];
|
|
|
+// $cgdSource = [1 => '直接下单', 2 => '咨询', 3 => '项目', 4 => '平台', 5 => '有赞'];
|
|
|
//商品类型
|
|
|
$goodType = [1 => '正常商品', 2 => '赠品', 3 => '样品'];
|
|
|
|
|
|
// $list = [];
|
|
|
|
|
|
foreach ($data as $value) {
|
|
|
- $value['采购单类型'] = $cgdSource[$value['采购单类型']] ?? '';
|
|
|
+ $value['采购单类型'] = $this->cgdSource[$value['采购单类型']] ?? '';
|
|
|
$value['商品类型'] = $goodType[$value['商品类型']] ?? '';
|
|
|
$value['不含税采购成本'] = round($value['采购总货款']/(1+$value['税率']),2) ;
|
|
|
$value['税额'] = round($value['不含税采购成本']*$value['税率'],2) ;
|
|
|
|
|
|
yield $value;
|
|
|
-// $item_list = json_decode($value['item_list'], true);
|
|
|
-//
|
|
|
-// unset($value['item_list']);
|
|
|
-// foreach ($item_list as $item) {
|
|
|
-// $value['税额']= $item['tax'] ?? '';
|
|
|
-// $value['票面税率']= $item['tax_rate'] ?? '';
|
|
|
-// // $list = array_merge($value, [
|
|
|
-// // '税额' => $item['tax'] ?? '',
|
|
|
-// // '票面税率' => $item['tax_rate'] ?? '',
|
|
|
-// // ]);
|
|
|
-// yield $value;
|
|
|
-// }
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
- // if (empty($list)) $list[] = ['导出数据为空' => ''];
|
|
|
- //
|
|
|
- // excelExport('回票明细表', array_keys($list[0]), $list);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
//经营分析报表
|
|
@@ -485,7 +442,7 @@ class Report extends Command
|
|
|
b.bkCode 备库单编号,
|
|
|
b.sequenceNo 采购单单号,
|
|
|
a.platName 平台类型,
|
|
|
- a.poCode PO编号,
|
|
|
+ a.poCode 平台订单号,
|
|
|
a.customerAttr 客户属性,
|
|
|
a.branch 分公司,
|
|
|
a.customerName 客户名称,
|
|
@@ -528,21 +485,13 @@ class Report extends Command
|
|
|
foreach ($data as $value) {
|
|
|
$value['订单来源'] = $this->qrdSource[$value['订单来源']] ?? '';
|
|
|
$value['库存性质'] = $this->qrdType[$value['库存性质']] ?? '';
|
|
|
- // $value['开票状态'] = $this->inv_status[$value['开票状态']] ?? '';
|
|
|
- // $value['回款状态'] = $this->pay_status[$value['回款状态']] ?? '';
|
|
|
$value['发货方式'] = $this->sendType[$value['发货方式']] ?? '';
|
|
|
-
|
|
|
$value['毛利润'] = round(bcsub($value['销售总额'], $value['采购总货款'], 3), 2);
|
|
|
- $value['毛利率'] = $value['销售总额'] == 0 ? 0 : round(bcmul(bcsub(1, bcdiv($value['采购总货款'], $value['销售总额'], 5), 5), 100), 2) . '%';
|
|
|
- $value['不含税采购成本'] = round(bcdiv($value['采购总货款'], bcadd(1,$value['采购税点']), 3), 2);
|
|
|
+ $value['毛利率'] = $value['销售总额'] == 0 ? 0 : round(bcmul(bcsub(1, bcdiv($value['采购总货款'], $value['销售总额'], 5),5), 100,2), 2) . '%';
|
|
|
+ $value['不含税采购成本'] = round(bcdiv($value['采购总货款'], bcadd(1,$value['采购税点'],3), 3), 2);
|
|
|
|
|
|
yield $value;
|
|
|
}
|
|
|
-
|
|
|
- // if (empty($list)) $list[] = ['导出数据为空' => ''];
|
|
|
- //
|
|
|
- // excelExport('经营分析报表', array_keys($list[0]), $list);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
//收入成本明细表
|
|
@@ -552,7 +501,7 @@ class Report extends Command
|
|
|
|
|
|
$where = [['a.is_del', '=', 0], ['a.status', '>=', 4]];
|
|
|
|
|
|
- if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.addtime', 'between', [$param['start'], $param['end']]];
|
|
|
+ if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['c.open_date', 'between', [$param['start'],$param['end']]];
|
|
|
if ($param['companyNo'] != '') $where[] = ['a.inv_out', '=', $param['companyNo']];
|
|
|
|
|
|
$data = Db::name('invoice_pool')
|
|
@@ -566,7 +515,7 @@ class Report extends Command
|
|
|
e.department 业务部门,
|
|
|
e.ownerName 业务人员,
|
|
|
m.goodNum 本次开票数量,
|
|
|
- m.totalPrice 本次开票金额,
|
|
|
+ m.totalTax 本次开票金额,
|
|
|
e.goodPrice 销售单价,
|
|
|
c.open_date 本次开票时间,
|
|
|
c.inv_number 发票号,
|
|
@@ -603,7 +552,7 @@ class Report extends Command
|
|
|
f.th_fee 退货金额
|
|
|
')
|
|
|
->leftJoin('invoice_pool_info b', 'b.invNo=a.invNo')
|
|
|
- ->leftJoin('invoice_ticket c', 'c.invNo=a.invNo and c.type=0 and c.status=1')
|
|
|
+ ->leftJoin('invoice_ticket c', 'c.invNo=a.invNo and c.type=0 and c.status in (0,1,2,3)')
|
|
|
->leftJoin("invoice_good m","m.invNo=a.invNo and m.invtype=0 and m.is_del=0")
|
|
|
// ->leftJoin('assoc d', 'd.viceCode=a.invNo and d.type=1')
|
|
|
->leftJoin('qrd_info e', 'e.sequenceNo=m.orderCode')
|
|
@@ -623,11 +572,6 @@ class Report extends Command
|
|
|
$value['销售来源'] = $this->qrdSource[$value['销售来源']] ?? '';
|
|
|
yield $value;
|
|
|
}
|
|
|
-
|
|
|
- // if (empty($list)) $list[] = ['导出数据为空' => ''];
|
|
|
- //
|
|
|
- // excelExport('收入成本明细表', array_keys($list[0]), $list);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
//应收台账表
|
|
@@ -652,7 +596,7 @@ class Report extends Command
|
|
|
a.ownerName 销售员,
|
|
|
a.qrdSource 订单来源,
|
|
|
a.platName 平台类型,
|
|
|
- a.poCode PO编号,
|
|
|
+ a.poCode 平台订单号,
|
|
|
a.customerName 客户名称,
|
|
|
a.customerAttr 客户属性,
|
|
|
a.branch 客户分公司,
|
|
@@ -690,24 +634,34 @@ class Report extends Command
|
|
|
$time = time();
|
|
|
|
|
|
foreach ($data as $value) {
|
|
|
- $value['订单来源'] = $this->qrdSource[$value['订单来源']] ?? '';
|
|
|
- $value['回款状态'] = $this->pay_status[$value['回款状态']] ?? '';
|
|
|
- $value['开票状态'] = $this->inv_status[$value['开票状态']] ?? '';
|
|
|
- $value['发货状态'] = $this->sendStatus[$value['发货状态']] ?? '';
|
|
|
+// $value['订单来源'] = $this->qrdSource[$value['订单来源']] ?? '';
|
|
|
+// $value['回款状态'] = $this->pay_status[$value['回款状态']] ?? '';
|
|
|
+// $value['开票状态'] = $this->inv_status[$value['开票状态']] ?? '';
|
|
|
+// $value['发货状态'] = $this->sendStatus[$value['发货状态']] ?? '';
|
|
|
$value['业务提票时间'] =Db::name("assoc")->where(["type"=>1,"status"=>[1,2],"is_del"=>0,'orderCode'=>$value['业务订单编号']])
|
|
|
->order("id desc")->value('addtime','');
|
|
|
//计算账期
|
|
|
- $value['账期'] = round(bcdiv(bcsub($time,strtotime($value['最近回款时间']??$value['下单时间']), 3), 86400, 3),
|
|
|
- 2);
|
|
|
- $value['比率'] = round(bcdiv($value['账期'], 30, 1));
|
|
|
+ $value['账期'] = bcdiv(bcsub($time,strtotime($value['最近回款时间']==''?$value['下单时间']:$value['最近回款时间']), 3), 86400, 0);
|
|
|
+ $value['比率'] = round(bcdiv($value['账期'], 30, 4),3);
|
|
|
$value['订单是否超期'] = $value['比率'] > 6 ? '是' : '否';
|
|
|
|
|
|
- $value['开票是否超期'] = round(bcdiv(bcsub($time, strtotime($value['最近开票时间']??$value['下单时间']), 1), 86400, 1)) > 15 ? '是' : '否';
|
|
|
+ $value['开票是否超期'] = round(bcdiv(bcsub($time, strtotime($value['最近开票时间']==''?$value['下单时间']:$value['最近开票时间']), 1), 86400, 1)
|
|
|
+ ) >
|
|
|
+ 15 ? '是' : '否';
|
|
|
|
|
|
$value['最近一次发货时间'] = Db::table('fh_source')
|
|
|
->whereIn('qrdNo', [$value['业务订单编号'], $value['销售订单主编号']])
|
|
|
->order(['id' => 'desc'])
|
|
|
->value('send_date', '');
|
|
|
+ $value['销售回款'] = Db::name("tag_log")->alias("a")->leftJoin("order_tag b","a.tag_id=b.id")
|
|
|
+ ->where(["a.code"=>$value['业务订单编号'],"a.status"=>1,"b.type"=>3])->value("b.tag_name",'');
|
|
|
+ $value['销售开票'] = Db::name("tag_log")->alias("a")->leftJoin("order_tag b","a.tag_id=b.id")
|
|
|
+ ->where(["a.code"=>$value['业务订单编号'],"a.status"=>1,"b.type"=>4])->value("b.tag_name",'');
|
|
|
+ if($value['订单来源']==10)$value['最近一次发货时间']=$value['下单时间'];
|
|
|
+ $value['订单来源'] = $this->qrdSource[$value['订单来源']] ?? '';
|
|
|
+ $value['回款状态'] = $this->pay_status[$value['回款状态']] ?? '';
|
|
|
+ $value['开票状态'] = $this->inv_status[$value['开票状态']] ?? '';
|
|
|
+ $value['发货状态'] = $this->sendStatus[$value['发货状态']] ?? '';
|
|
|
yield $value;
|
|
|
}
|
|
|
|
|
@@ -718,7 +672,7 @@ class Report extends Command
|
|
|
{
|
|
|
// $param = $this->request->only(['company' => '', 'start' => '', 'end' => ''], 'post', 'trim');
|
|
|
|
|
|
- $where = [['a.is_del', '=', 0], ['c.is_del', '=', 0], ['d.is_del', '=', 0], ['e.is_del', '=', 0]];
|
|
|
+ $where = [['a.is_del', '=', 0],["a.status","in",[3,4]], ['e.is_del','=', 0]];
|
|
|
|
|
|
if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.check_time', 'between', [$param['start'], $param['end']]];
|
|
|
if ($param['companyNo'] != '') $where[] = ['e.companyNo', '=', $param['companyNo']];
|
|
@@ -726,12 +680,9 @@ class Report extends Command
|
|
|
$data = Db::name('pay_invoice')
|
|
|
->alias('a')
|
|
|
->field('
|
|
|
- d.companyName 回票业务公司名称,
|
|
|
+ e.companyName 回票业务公司名称,
|
|
|
a.hpNo 回票编码,
|
|
|
- c.cgdNo 采购单编号,
|
|
|
- d.fundCode 财务核算编码,
|
|
|
- d.goodName 产品名称,
|
|
|
- d.supplierName 供应商名称,
|
|
|
+ e.supplierName 供应商名称,
|
|
|
a.invoiceNumber 发票号,
|
|
|
b.item_list,
|
|
|
"" 发票货物或应税劳务、服务名称,
|
|
@@ -742,9 +693,7 @@ class Report extends Command
|
|
|
b.total 本次回票总金额,
|
|
|
a.check_time 本次回票时间
|
|
|
')
|
|
|
- ->leftJoin('invoice_info b', 'b.payNo=a.payNo')
|
|
|
- ->leftJoin('pay_info c', 'c.payNo=a.payNo')
|
|
|
- ->leftJoin('cgd_info d', 'd.sequenceNo=c.cgdNo')
|
|
|
+ ->leftJoin('invoice_info b', 'b.hpNo=a.hpNo and b.status=1')
|
|
|
->leftJoin('pay e', 'e.payNo=a.payNo')
|
|
|
->where($where)
|
|
|
->order(['a.id' => 'desc'])
|
|
@@ -785,7 +734,6 @@ class Report extends Command
|
|
|
|
|
|
if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['createdTime', 'between', [$param['start'], $param['end']]];
|
|
|
if ($param['companyNo'] != '') $where[] = ['companyNo', '=', $param['companyNo']];
|
|
|
-// if ($param['supplierNo'] != '') $where[] = ['supplierNo', '=', $param['supplierNo']];
|
|
|
$data = Db::name("cgd_info")->where($where)
|
|
|
->field("
|
|
|
sequenceNo '采购单编号',
|
|
@@ -796,7 +744,7 @@ class Report extends Command
|
|
|
createdTime '采购时间',
|
|
|
cgdType '采购单类型',
|
|
|
if(qrdCode='',bkCode,qrdCode) '确认单编号/备库单编号',
|
|
|
- if(cxCode='',sequenceNo,cxCode) '销售单主单号',
|
|
|
+ if(cxCode='',if(qrdCode='',bkCode,qrdCode),cxCode) '销售单主单号',
|
|
|
goodNo '商品编号',
|
|
|
goodName '商品名称',
|
|
|
firstCat '一级分类',
|
|
@@ -836,10 +784,6 @@ class Report extends Command
|
|
|
$value['发货状态'] = $this->sendStatus[$value['发货状态']];
|
|
|
yield $value;
|
|
|
}
|
|
|
-
|
|
|
- // if (empty($list)) $list[] = ['导出数据为空' => ''];
|
|
|
- //
|
|
|
- // excelExport('采购单明细表', array_keys($list[0]), $list);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -904,18 +848,16 @@ class Report extends Command
|
|
|
DATE_FORMAT( a.createtime, '%Y' ) 年,
|
|
|
DATE_FORMAT( a.createtime, '%m' ) 月,
|
|
|
DATE_FORMAT( a.createtime, '%d' ) 日,
|
|
|
- a.createtime 退货创建时间,
|
|
|
- a.thNo 退货单号,
|
|
|
b.companyName 退货公司名称,
|
|
|
b.companyNo 退货公司编号,
|
|
|
- b.ownerName 销售员,
|
|
|
b.department 销售部门,
|
|
|
+ b.ownerName 销售员,
|
|
|
b.qrdSource 销售来源,
|
|
|
b.pay_source 支付渠道,
|
|
|
'' 活动类型,
|
|
|
b.sequenceNo 订单编号,
|
|
|
if(b.cxCode='',b.sequenceNo,b.cxCode) 销售订单编号,
|
|
|
- c.bkCode 备库编号,
|
|
|
+ a.thNo 退货单号,
|
|
|
b.cgdNo 采购单号,
|
|
|
b.platName 平台类型,
|
|
|
b.poCode 平台订单号,
|
|
@@ -931,7 +873,7 @@ class Report extends Command
|
|
|
a.th_num 退货数量,
|
|
|
b.goodPrice 销售单价,
|
|
|
a.th_qrd_fee 退货金额,
|
|
|
- b.tax 税点,
|
|
|
+ ifnull(b.tax,0)/100 税点,
|
|
|
c.ownerName 采购员,
|
|
|
c.barePrice 采购裸价,
|
|
|
c.markPrice 加标费,
|
|
@@ -942,14 +884,15 @@ class Report extends Command
|
|
|
c.deliveryPrice 物流费,
|
|
|
c.goodPrice 采购单价,
|
|
|
round(a.th_num * ifnull(c.goodPrice,b.total_origin_price/b.goodNum),2) 退货采购货款,
|
|
|
- c.tax 采购税点,
|
|
|
- c.supplierName 供应商名称,
|
|
|
+ ifnull(c.tax,0)/100 采购税点,
|
|
|
if(b.isStock=1,'是','否') 是否库存,
|
|
|
+ c.supplierName 供应商名称,
|
|
|
c.sendType 发货方式,
|
|
|
if(a.is_th=1,'是','否') 供应商是否同意退货,
|
|
|
'' as 付款方式,
|
|
|
b.fundCode 财务核算码,
|
|
|
- a.th_remark 退货备注
|
|
|
+ a.th_remark 退货备注,
|
|
|
+ c.bkCode 备库单号
|
|
|
")->cursor();
|
|
|
foreach ($list as $value) {
|
|
|
$value['销售来源']= $this->qrdSource[$value['销售来源']]??"";
|
|
@@ -957,4 +900,65 @@ class Report extends Command
|
|
|
yield $value;
|
|
|
}
|
|
|
}
|
|
|
+ //产品部门销售业绩
|
|
|
+ private function Q($param=[]){
|
|
|
+ $where = [["is_del","=",0],["status","in",[0,1,2]]];
|
|
|
+ if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['addtime', 'between', [date("Y-m-d 00:00:00",strtotime($param['start'])),date("Y-m-d 23:59:59",
|
|
|
+ strtotime($param['end']))]];
|
|
|
+// if ($param['companyNo'] != '') $where[] = ['supplierNo', '=', $param['companyNo']];
|
|
|
+ $Db= Db::connect("mysql_wsm");
|
|
|
+ $list =$Db->name("sale")->field("orderCode 销售单号,apply_name 业务人员,apply_id 业务部门,cat_id 分类,total_price 产品货款总额,addtime 日期")
|
|
|
+ ->where($where)
|
|
|
+ ->cursor();
|
|
|
+ foreach ($list as $value){
|
|
|
+ $value['业务部门'] = $Db->name("depart_user")->alias("a")->leftjoin("company_item b","a.itemid=b.id")
|
|
|
+ ->where(["a.is_del"=>0,"a.status"=>1,"a.uid"=>$value['业务部门']])->value("b.name",'');
|
|
|
+ $value['分类'] = $Db->name("cat")->where(["id"=>$value['分类']])->value("search","");
|
|
|
+ yield $value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //采购部门销售业绩
|
|
|
+ private function R($param=[]){
|
|
|
+ $where = [["a.is_del","=",0],["a.status","=",2],["b.is_stock","=",0]];
|
|
|
+ if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.sendtime', 'between', [date("Y-m-d 00:00:00",
|
|
|
+ strtotime($param['start'])),date("Y-m-d 23:59:59",strtotime($param['end']))]];
|
|
|
+// if ($param['companyNo'] != '') $where[] = ['supplierNo', '=', $param['companyNo']];
|
|
|
+ $Db= Db::connect("mysql_wsm");
|
|
|
+ $list =$Db->name("order_out")->alias("a")
|
|
|
+ ->leftjoin("sale b","a.orderCode=b.orderCode")
|
|
|
+ ->leftjoin("order_send c","a.outCode=c.outCode")
|
|
|
+ ->leftjoin("purchease_order d","c.cgdNo=d.cgdNo")
|
|
|
+ ->field("
|
|
|
+ a.outCode 发货单号,
|
|
|
+ c.cgdNo 采购单号,
|
|
|
+ a.orderCode 销售单号,
|
|
|
+ b.platform_id 平台类型,
|
|
|
+ d.cgder_id 业务部门,
|
|
|
+ d.cgder 采购人员,
|
|
|
+ b.order_source 咨询类型,
|
|
|
+ a.sendtime 发货时间,
|
|
|
+ b.cat_id `一级分类`,
|
|
|
+ b.good_name 商品名称,
|
|
|
+ a.post_name 物流公司,
|
|
|
+ a.post_code 物流单号,
|
|
|
+ a.send_num 本次发货数量,
|
|
|
+ a.send_num*b.sale_price 本次发货金额,
|
|
|
+ b.sale_price 销售单价,
|
|
|
+ b.good_num-b.th_num 销售数量,
|
|
|
+ b.total_price-b.th_fee 销售金额,
|
|
|
+ d.supplier_name `供应商名称`
|
|
|
+ ")
|
|
|
+ ->where($where)
|
|
|
+ ->cursor();
|
|
|
+ foreach ($list as $value){
|
|
|
+ $value['业务部门'] = $Db->name("depart_user")->alias("a")->leftjoin("company_item b","a.itemid=b.id")
|
|
|
+ ->where(["a.is_del"=>0,"a.status"=>1,"a.uid"=>$value['业务部门']])->value("b.name",'');
|
|
|
+ $value['一级分类'] = $Db->name("cat")->where(["id"=>$value['一级分类']])->value("search","");
|
|
|
+ $value['平台类型'] = $Db->name("platform")->where(["id"=>$value['平台类型']])->value("platform_name","");
|
|
|
+ $value['咨询类型']=$this->qrdSource[$value['咨询类型']]??"";
|
|
|
+ $value['物流单号'].='';
|
|
|
+ yield $value;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|