暫無描述

FxStatisticsController.php 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. /**
  3. * Created by Sublime.
  4. * User: hao
  5. * Date: 19/08/30
  6. * Time: 上午11:20
  7. */
  8. namespace App\Http\Controllers\Admin;
  9. use App\Http\Controllers\Controller;
  10. use App\Logs;
  11. use App\Order;
  12. use App\FxOrder;
  13. use App\FxOrderGoodsSkus;
  14. use App\Admin;
  15. use App\Goods;
  16. use App\GoodsSkus;
  17. use App\RedisModel as Redis;
  18. use Illuminate\Http\Request;
  19. use Illuminate\Support\Facades\DB;
  20. class FxStatisticsController extends Controller
  21. {
  22. /**
  23. * 发货财务明细
  24. */
  25. public function sendFinanceList(Request $request){
  26. $team_id = (int)$request->input('team_id');
  27. //分銷商只能看自己团队
  28. $self_id = session('admin_id');
  29. $team_id = Admin::where('id', $self_id)->pluck('team_id');
  30. $stime = $request->input('stime');
  31. $etime = $request->input('etime');
  32. $warehouse = 3;
  33. $page = (int)$request->input('page');
  34. $pageSize = 20;
  35. if($page<=0){
  36. $page = 1;
  37. }
  38. $offset = ($page-1) * $pageSize;
  39. $count = FxOrder::where(function($query) use($team_id, $stime, $etime, $warehouse){
  40. if($team_id) $query->where('team_id', $team_id);
  41. if($warehouse) $query->where('warehouse', $warehouse);
  42. if($stime) $query->where('send_time', '>=', $stime);
  43. if($etime) $query->where('send_time', '<=', $etime);
  44. })->where('is_del', 0)->where('status','>=',2)->where('logistics_id', '>', '')->count();
  45. if ($count > 1) {
  46. // 总页数
  47. $pages = ceil($count/$pageSize);
  48. }else{
  49. // 总页数
  50. $pages = 1;
  51. }
  52. $teams = DB::table('teams')->lists('name', 'id');
  53. $resultQuery = FxOrder::select('team_id', 'createTime', 'id', 'receivedAmount', 'cost', 'freight_cost', 'payment_type', 'send_time', 'warehouse', 'receiverName', 'logistics_id')->where(function($query) use($team_id, $stime, $etime, $warehouse){
  54. if($team_id) $query->where('team_id', $team_id);
  55. if($warehouse) $query->where('warehouse', $warehouse);
  56. if($stime ) $query->where('send_time', '>=', $stime);
  57. if($etime ) $query->where('send_time', '<=', $etime);
  58. })->where('is_del', 0)->where('status','>=',2)->where('logistics_id', '>', '');
  59. $result = $resultQuery->orderBy('send_time','desc')->offset($offset)->limit($pageSize)->get();
  60. $result = json_decode(json_encode($result), true);
  61. $payArr = [1=>'微信支付', 2=>'付款码支付', 3=>'个体户支付', 4=>'充值卡支付'];
  62. $wareArr = array(
  63. 0 => '其他',
  64. 1 => 'A仓',
  65. 2 => 'B仓',
  66. 3 => 'C仓',
  67. );
  68. foreach($result as $k=>&$v){
  69. $v['team_name'] = $v['team_id']>0 ? $teams[$v['team_id']] : '';;
  70. $v['payment_type'] = $payArr[$v['payment_type']];
  71. $v['ctime'] = $v['send_time'];
  72. $v['warehouse'] = $wareArr[$v['warehouse']];
  73. }
  74. return view('/fxstatistics/sendFinanceList',[
  75. 'result' => $result,
  76. 'team_id' => $team_id,
  77. 'stime' => $stime,
  78. 'etime' => $etime,
  79. 'page' => $page,
  80. 'count' => $count,
  81. 'pages' => $pages,
  82. ]);
  83. }
  84. /**
  85. * 发货财务明细
  86. */
  87. public function sendFinanceList_export(Request $request){
  88. $team_id = (int)$request->input('team_id');
  89. $self_id = session('admin_id');
  90. $team_id = Admin::where('id', $self_id)->pluck('team_id');
  91. $stime = $request->input('stime');
  92. $etime = $request->input('etime');
  93. $warehouse = 3;
  94. $teams = DB::table('teams')->lists('name', 'id');
  95. $resultQuery = FxOrder::select('team_id', 'createTime', 'id', 'receivedAmount', 'cost', 'freight_cost', 'payment_type', 'send_time', 'warehouse', 'receiverName', 'logistics_id')->where(function($query) use($team_id, $stime, $etime, $warehouse){
  96. if($team_id) $query->where('team_id', $team_id);
  97. if($warehouse) $query->where('warehouse', $warehouse);
  98. if($stime ) $query->where('send_time', '>=', $stime);
  99. if($etime ) $query->where('send_time', '<=', $etime);
  100. })->where('is_del', 0)->where('status','>=',2)->where('logistics_id', '>', '');
  101. $result = $resultQuery->orderBy('send_time','desc')->get();
  102. $result = json_decode(json_encode($result), true);
  103. $payArr = [1=>'微信支付', 2=>'付款码支付', 3=>'个体户支付', 4=>'充值卡支付'];
  104. $wareArr = array(
  105. 0 => '其他',
  106. 1 => 'A仓',
  107. 2 => 'B仓',
  108. 3 => 'C仓',
  109. );
  110. foreach($result as $k=>&$v){
  111. $v['team_name'] = $v['team_id']>0 ? $teams[$v['team_id']] : '';;
  112. $v['payment_type'] = $payArr[$v['payment_type']];
  113. $v['ctime'] = $v['send_time'];
  114. $v['warehouse'] = $wareArr[$v['warehouse']];
  115. }
  116. $indexKey = ['team_name','ctime','id','receivedAmount', 'cost', 'freight_cost', 'payment_type', 'receiverName', 'logistics_id'];
  117. $title = ['团队', '发货时间', '订单编号', '成交金额','货品成本', '物流成本', '支付方式', '收货人', '物流单号'];
  118. $filename = 'fahuomingxi_'.date('Y-m-d_H').'.xlsx';
  119. return Order::export_excel($result, $filename, $indexKey, $title);
  120. }
  121. }