|
@@ -1409,28 +1409,30 @@ class SaleReport extends Base
|
|
|
->leftJoin("business bus", "bus.companyNo=b.supplierNo")
|
|
|
->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
- ->where($where)
|
|
|
+ ->leftJoin("purchease_order d", "d.cgdNo=os.cgdNo")
|
|
|
+ ->leftJoin("supplier e", "e.code=d.supplierNo")->where($where)
|
|
|
->order("a.addtime desc")
|
|
|
->count('a.id');
|
|
|
|
|
|
$data = Db::name('order_out')
|
|
|
->alias('a')
|
|
|
- ->field('a.addtime,a.orderCode,os.cgdNo,bus.company,a.apply_name,a.apply_id,b.status,a.send_num,b.good_code,b.good_name,v.companyName,b.wsend_num,b.skuCode,b.order_type')
|
|
|
+ ->field('a.addtime,a.orderCode,os.cgdNo,bus.company,a.apply_name,a.apply_id,b.status,a.send_num,b.good_code,b.good_name,v.companyName,b.wsend_num,b.skuCode,b.order_type,e.person')
|
|
|
->leftJoin("sale b", "b.orderCode=a.orderCode")
|
|
|
->leftJoin("customer_info v", "v.companyNo=b.customer_code")
|
|
|
->leftJoin("order_send os", "os.outCode=a.outCode")
|
|
|
->leftJoin("business bus", "bus.companyNo=b.supplierNo")
|
|
|
->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
- ->where($where)
|
|
|
+ ->leftJoin("purchease_order d", "d.cgdNo=os.cgdNo")
|
|
|
+ ->leftJoin("supplier e", "e.code=d.supplierNo")->where($where)
|
|
|
->page($param['page'], $param['size'])
|
|
|
->order("a.addtime desc")
|
|
|
->cursor();
|
|
|
|
|
|
- $list = [];
|
|
|
+ $list = $tmp_apply = $tmp_cat = [];
|
|
|
foreach ($data as $value) {
|
|
|
-
|
|
|
- $value['apply_company'] = get_company_name_by_uid($value['apply_id']);
|
|
|
+ if (!isset($tmp_apply[$value['apply_id']])) $tmp_apply[$value['apply_id']] = get_company_name_by_uid($value['apply_id']);
|
|
|
+ $value['apply_company'] = $tmp_apply[$value['apply_id']];
|
|
|
|
|
|
if ($value['order_type'] == 3 || $value['order_type'] == 4) {
|
|
|
$goon = Db::name("good_zixun")
|
|
@@ -1446,7 +1448,9 @@ class SaleReport extends Base
|
|
|
->find();
|
|
|
}
|
|
|
|
|
|
- $value['cat'] = implode('/', array_column(made($goon['cat_id']), 'name'));
|
|
|
+ if (!isset($tmp_cat[$goon['cat_id']])) $tmp_cat[$goon['cat_id']] = implode('/', array_column(made($goon['cat_id']), 'name'));
|
|
|
+ $value['cat'] = $tmp_cat[$goon['cat_id']];
|
|
|
+
|
|
|
$value['send_date'] = date('Y-m-d H:i:s', strtotime($value['addtime']) + $goon['customized'] * 24 * 3600);
|
|
|
|
|
|
$value['status'] = isset($this->all_sale_status[$value['status']]) ? $this->all_sale_status[$value['status']] : '';
|
|
@@ -1472,21 +1476,24 @@ class SaleReport extends Base
|
|
|
|
|
|
$data = Db::name('order_out')
|
|
|
->alias('a')
|
|
|
- ->field('a.addtime 下单时间,a.orderCode 订单编号,os.cgdNo 采购单编号,bus.company 公司名称,a.apply_name 申请人,"" 部门,a.apply_id,b.status 状态,a.send_num 出库总数,"" 商品分类,b.good_code 商品编码,b.good_name 商品名称,v.companyName 客户名称,b.wsend_num 未发货数量,"" 应发货日期,b.skuCode,b.order_type 订单类型')
|
|
|
+ ->field('a.addtime 下单时间,a.orderCode 订单编号,os.cgdNo 采购单编号,bus.company 公司名称,a.apply_name 申请人,"" 部门,a.apply_id,b.status 状态,a.send_num 出库总数,"" 商品分类,b.good_code 商品编码,b.good_name 商品名称,v.companyName 客户名称,b.wsend_num 未发货数量,"" 应发货日期,b.skuCode,b.order_type 订单类型,e.person 采购员')
|
|
|
->leftJoin("sale b", "b.orderCode=a.orderCode")
|
|
|
->leftJoin("customer_info v", "v.companyNo=b.customer_code")
|
|
|
->leftJoin("order_send os", "os.outCode=a.outCode")
|
|
|
->leftJoin("business bus", "bus.companyNo=b.supplierNo")
|
|
|
->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
+ ->leftJoin("purchease_order d", "d.cgdNo=os.cgdNo")
|
|
|
+ ->leftJoin("supplier e", "e.code=d.supplierNo")
|
|
|
->where($where)
|
|
|
->order("a.addtime desc")
|
|
|
->cursor();
|
|
|
|
|
|
- $list = [];
|
|
|
+ $list = $tmp_apply = $tmp_cat = [];
|
|
|
foreach ($data as $value) {
|
|
|
|
|
|
- $value['部门'] = get_company_name_by_uid($value['apply_id']);
|
|
|
+ if (!isset($tmp_apply[$value['apply_id']])) $tmp_apply[$value['apply_id']] = get_company_name_by_uid($value['apply_id']);
|
|
|
+ $value['部门'] = $tmp_apply[$value['apply_id']];
|
|
|
|
|
|
if ($value['订单类型'] == 3 || $value['订单类型'] == 4) {
|
|
|
$goon = Db::name("good_zixun")
|
|
@@ -1503,7 +1510,9 @@ class SaleReport extends Base
|
|
|
->find();
|
|
|
}
|
|
|
|
|
|
- $value['商品分类'] = implode('/', array_column(made($goon['cat_id']), 'name'));
|
|
|
+ if (!isset($tmp_cat[$goon['cat_id']])) $tmp_cat[$goon['cat_id']] = implode('/', array_column(made($goon['cat_id']), 'name'));
|
|
|
+ $value['商品分类'] = $tmp_cat[$goon['cat_id']];
|
|
|
+
|
|
|
$value['应发货日期'] = date('Y-m-d H:i:s', strtotime($value['下单时间']) + $goon['customized'] * 24 * 3600);
|
|
|
|
|
|
$value['状态'] = isset($this->all_sale_status[$value['状态']]) ? $this->all_sale_status[$value['状态']] : '';
|
|
@@ -1540,19 +1549,21 @@ class SaleReport extends Base
|
|
|
->leftJoin("order_addr oa", "oa.id=a.addrid")
|
|
|
->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
+ ->leftJoin("supplier c", "c.code=po.supplierNo")
|
|
|
->where($where)
|
|
|
->order("a.addtime desc")
|
|
|
->count('a.id');
|
|
|
|
|
|
$data = Db::name('order_out')
|
|
|
->alias('a')
|
|
|
- ->field('a.addtime,a.orderCode,a.sendtime,a.outCode,b.status,b.good_name,b.sale_price,a.send_num,a.apply_name,ci.name apply_company,po.cgder,a.post_name,a.post_code,oa.contactor,oa.mobile,oa.addr,oa.addr_code,a.remark,b.order_type')
|
|
|
+ ->field('a.addtime,a.orderCode,a.sendtime,a.outCode,b.status,b.good_name,b.sale_price,a.send_num,a.apply_name,ci.name apply_company,c.person cgder,a.post_name,a.post_code,oa.contactor,oa.mobile,oa.addr,oa.addr_code,a.remark,b.order_type')
|
|
|
->leftJoin("sale b", "b.orderCode=a.orderCode")
|
|
|
->leftJoin("order_send os", "os.outCode=a.outCode")
|
|
|
->leftJoin("purchease_order po", "po.cgdNo=os.cgdNo")
|
|
|
->leftJoin("order_addr oa", "oa.id=a.addrid")
|
|
|
->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
+ ->leftJoin("supplier c", "c.code=po.supplierNo")
|
|
|
->where($where)
|
|
|
->page($param['page'], $param['size'])
|
|
|
->order("a.addtime desc")
|
|
@@ -1594,13 +1605,14 @@ class SaleReport extends Base
|
|
|
|
|
|
$data = Db::name('order_out')
|
|
|
->alias('a')
|
|
|
- ->field('a.addtime 下单日期,a.orderCode 订单编号,a.sendtime 发货时间,a.outCode 发货申请单号,b.status 发货申请单状态,b.good_name 商品名称,b.sale_price 产品单价,a.send_num 发货数量,"" 发货申请单总价,a.apply_name 申请人,ci.name 部门,po.cgder 采购人,a.post_name 快递公司,a.post_code 快递单号,oa.contactor 收货人,oa.mobile 收货电话,oa.addr 收货地址,oa.addr_code,a.remark 备注,b.order_type 订单类型')
|
|
|
+ ->field('a.addtime 下单日期,a.orderCode 订单编号,a.sendtime 发货时间,a.outCode 发货申请单号,b.status 发货申请单状态,b.good_name 商品名称,b.sale_price 产品单价,a.send_num 发货数量,"" 发货申请单总价,a.apply_name 申请人,ci.name 部门,c.person 采购员,a.post_name 快递公司,a.post_code 快递单号,oa.contactor 收货人,oa.mobile 收货电话,oa.addr 收货地址,oa.addr_code,a.remark 备注,b.order_type 订单类型')
|
|
|
->leftJoin("sale b", "b.orderCode=a.orderCode")
|
|
|
->leftJoin("order_send os", "os.outCode=a.outCode")
|
|
|
->leftJoin("purchease_order po", "po.cgdNo=os.cgdNo")
|
|
|
->leftJoin("order_addr oa", "oa.id=a.addrid")
|
|
|
->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
+ ->leftJoin("supplier c", "c.code=po.supplierNo")
|
|
|
->where($where)
|
|
|
->order("a.addtime desc")
|
|
|
->cursor();
|
|
@@ -1608,7 +1620,7 @@ class SaleReport extends Base
|
|
|
$list = [];
|
|
|
foreach ($data as $value) {
|
|
|
|
|
|
- $value['发货申请单总价'] = round($value['发货数量'] * $value['产品单价'], 2);
|
|
|
+ $value['发货申请单总价'] = round(bcmul($value['发货数量'], $value['产品单价'], 3), 2);
|
|
|
|
|
|
$value['发货申请单状态'] = isset($this->all_sale_status[$value['发货申请单状态']]) ? $this->all_sale_status[$value['发货申请单状态']] : '';
|
|
|
$value['订单类型'] = isset($this->all_order_type[$value['订单类型']]) ? $this->all_order_type[$value['订单类型']] : '';
|
|
@@ -1653,12 +1665,31 @@ class SaleReport extends Base
|
|
|
->having('a.good_num > SUM(IFNULL(b.receipt_quantity,0)) ')
|
|
|
->count('a.id');
|
|
|
|
|
|
+ $cgd_sql = Db::name('sale')
|
|
|
+ ->alias('a')
|
|
|
+ ->field('a.orderCode')
|
|
|
+ ->leftJoin("order_addr b", "b.orderCode=a.orderCode AND b.is_del=0")->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0 AND u.status=1")
|
|
|
+ ->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
+ ->where($where)
|
|
|
+ ->order("a.addtime desc")
|
|
|
+ ->buildSql();
|
|
|
+
|
|
|
+ $cgd = Db::name('order_num')
|
|
|
+ ->alias('a')
|
|
|
+ ->leftJoin("purchease_order d", "d.cgdNo=a.cgdNo")
|
|
|
+ ->leftJoin("supplier e", "e.code=d.supplierNo")
|
|
|
+ ->where('a.orderCode IN ' . $cgd_sql)
|
|
|
+ ->column('e.person', 'a.orderCode');
|
|
|
+
|
|
|
$data = Db::name('sale')
|
|
|
->alias('a')
|
|
|
- ->field('a.id,a.orderCode,a.order_type,a.good_code,a.skuCode,good_name,a.good_num,a.send_num,a.wsend_num,a.status,u.nickname,ci.name,(a.good_num - SUM(IFNULL(b.receipt_quantity,0)) ) as not_addr_address_good_num')
|
|
|
+ ->field('a.id,a.orderCode,a.order_type,a.good_code,a.skuCode,good_name,a.good_num,a.send_num,a.wsend_num,a.status,u.nickname,ci.name,(a.good_num - SUM(IFNULL(b.receipt_quantity,0)) ) as not_addr_address_good_num,"" person')
|
|
|
->leftJoin("order_addr b", "b.orderCode=a.orderCode AND b.is_del=0")
|
|
|
->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
+ ->withAttr('person', function ($val, $da) use ($cgd) {
|
|
|
+ return $cgd[$da['orderCode']] ?? '';
|
|
|
+ })
|
|
|
->where($where)
|
|
|
->group('a.id,a.orderCode,a.order_type,a.good_code,a.skuCode,good_name,a.good_num,a.send_num,a.wsend_num,a.status,u.nickname,ci.name,b.orderCode')
|
|
|
->having('not_addr_address_good_num > 0 ')
|
|
@@ -1685,24 +1716,41 @@ class SaleReport extends Base
|
|
|
|
|
|
$data = Db::name('sale')
|
|
|
->alias('a')
|
|
|
- ->field('a.orderCode 订单编号,a.order_type 订单类型,a.good_code 商品成本编码,a.skuCode 商品上线编码,good_name 商品名称,a.good_num 购买数量,a.send_num 已发货数量,a.wsend_num 未发货数量,a.status 订单状态,u.nickname 申请人名称,ci.name 申请人所属部门,(a.good_num - SUM(IFNULL(b.receipt_quantity,0)) ) as 无地址数量')
|
|
|
- ->leftJoin("order_addr b", "b.orderCode=a.orderCode AND b.is_del=0")->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
|
|
|
+ ->field('a.orderCode 订单编号,a.order_type 订单类型,a.good_code 商品成本编码,a.skuCode 商品上线编码,a.good_name 商品名称,a.good_num 购买数量,a.send_num 已发货数量,a.wsend_num 未发货数量,a.status 订单状态,u.nickname 申请人名称,ci.name 申请人所属部门,(a.good_num - SUM(IFNULL(b.receipt_quantity,0)) ) as 无地址数量,"" 采购员')
|
|
|
+ ->leftJoin("order_addr b", "b.orderCode=a.orderCode AND b.is_del=0")->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0 AND u.status=1")
|
|
|
->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
->where($where)
|
|
|
- ->group('a.id,a.orderCode,a.order_type,a.good_code,a.skuCode,good_name,a.good_num,a.send_num,a.wsend_num,a.status,u.nickname,ci.name,b.orderCode')
|
|
|
+ ->group('a.id,a.orderCode,a.order_type,a.good_code,a.skuCode,a.good_name,a.good_num,a.send_num,a.wsend_num,a.status,u.nickname,ci.name,b.orderCode')
|
|
|
->having('无地址数量 > 0')
|
|
|
->order("a.addtime desc")
|
|
|
->cursor();
|
|
|
|
|
|
+ $cgd_sql = Db::name('sale')
|
|
|
+ ->alias('a')
|
|
|
+ ->field('a.orderCode')
|
|
|
+ ->leftJoin("order_addr b", "b.orderCode=a.orderCode AND b.is_del=0")->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0 AND u.status=1")
|
|
|
+ ->leftJoin("company_item ci", "ci.id=u.itemid")
|
|
|
+ ->where($where)
|
|
|
+ ->order("a.addtime desc")
|
|
|
+ ->buildSql();
|
|
|
+
|
|
|
+ $cgd = Db::name('order_num')
|
|
|
+ ->alias('a')
|
|
|
+ ->leftJoin("purchease_order d", "d.cgdNo=a.cgdNo")
|
|
|
+ ->leftJoin("supplier e", "e.code=d.supplierNo")
|
|
|
+ ->where('a.orderCode IN ' . $cgd_sql)
|
|
|
+ ->column('e.person', 'a.orderCode');
|
|
|
+
|
|
|
$list = [];
|
|
|
foreach ($data as $value) {
|
|
|
|
|
|
$value['订单类型'] = isset($this->all_order_type[$value['订单类型']]) ? $this->all_order_type[$value['订单类型']] : '';
|
|
|
$value['订单状态'] = isset($this->all_sale_status[$value['订单状态']]) ? $this->all_sale_status[$value['订单状态']] : '';
|
|
|
+ $value['采购员'] = $cgd[$value['订单编号']] ?? '';
|
|
|
|
|
|
$list[] = $value;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (empty($list)) $list[] = '没有相关可导出的数据';
|
|
|
excelSave('无地址销售订单列表' . date('YmdHis'), array_keys($list[0]), $list);
|
|
|
|