* @Date:2018-11-30 */ public function index(Request $request) { $sellers = Seller::whereHas('orders')->get(); $numPerPage = $request->numPerPage ?: 30; $start = $request->start; $end = $request->end; $seller_id = Admin::id() == 1 ? $request->seller_id : Admin::user()->seller_id; $seller_orders = WindupReport::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);}) ->when($start && $end, function ($query) use ($start, $end) { $query->whereBetween('start_time', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]); }) ->when($start && !$end, function ($query) use ($start) { $query->where('start_time', '>=', $start); }) ->when((!$start && $end), function ($query) use ($end) { $query->where('start_time', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end)))); })->where('state',0)->orderBy('id','desc')->paginate($numPerPage); $unwinduped = WindupReport::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);})->where('state',0) ->select(DB::raw('SUM(seller_freight_sum + seller_amount_sum) AS sum_total'))->first(); $winduped = WindupReport::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);})->where('state',1) ->select(DB::raw('SUM(seller_freight_sum + seller_amount_sum) AS sum_total'))->first(); $curr_unwinduped = Order::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);}) ->whereHas('logs', function ($query) { $query->where('state','DELIVERED|SIGNED'); }) ->where('state', '<>',Order::ORDER_CLOSED) ->where('windup_report_id',0) ->select(DB::raw('SUM(seller_freight + seller_amount) AS sum_total'))->first(); return view('Admin::windups.index', compact('seller_orders','sellers','unwinduped','winduped','curr_unwinduped')); } /** * 待结算订单明细-平台管理员、商户管理员同时可查看 * @Author: * @Date:2018-11-30 */ public function orders(Request $request) { $orderid = $request->orderid; $windup_report_id = $request->windup_report_id; $numPerPage = $request->numPerPage ?: 30; $orders = Order::where('windup_report_id', $windup_report_id) ->when($orderid, function ($query) use ($orderid) { $query->where('orderid', 'like', "%{$orderid}%"); }) ->with(['seller', 'user.info']) ->orderBy('created_at', 'desc') ->paginate($numPerPage); return view('Admin::windups.orders', compact('orders')); } /** * 创建商户结算记录-平台管理员 * @Author: * @Date:2018-11-30 */ public function create(Request $request) { $windup_report_id = $request->windup_report_id; $windup = WindupReport::find($windup_report_id); return view('Admin::windups.create', compact('windup')); } /** * 保存商户结算记录-平台管理员 * @Author: * @Date:2018-11-30 */ public function dostate(Request $request) { $windup_report_id = $request->windup_report_id; $windup = WindupReport::find($windup_report_id); if(!$windup->seller || empty($windup->seller->account_name)){ return $this->error('商户必须设置收款账户才能结算', 'close'); } $windup->remark = $request->remark; $windup->is_provide_invoice = $request->is_provide_invoice; $windup->state = 1; $windup->seller_account_name = $windup->seller->account_name; $windup->seller_account_bank = $windup->seller->bank_name; $windup->seller_account_number = $windup->seller->account_number; $windup->winduped_at = now(); $windup->save(); return $this->success('操作成功', 'close'); } /** * 全部已结算记录-平台管理员 * @Author: * @Date:2018-11-30 */ public function winduped(Request $request) { $sellers = Seller::whereHas('orders')->get(); $numPerPage = $request->numPerPage ?: 30; $start = $request->start; $end = $request->end; $seller_id = Admin::id() == 1 ? $request->seller_id : Admin::user()->seller_id; $seller_orders = WindupReport::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);}) ->when($start && $end, function ($query) use ($start, $end) { $query->whereBetween('start_time', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]); }) ->when($start && !$end, function ($query) use ($start) { $query->where('start_time', '>=', $start); }) ->when((!$start && $end), function ($query) use ($end) { $query->where('start_time', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end)))); })->where('state',1)->orderBy('id','desc')->paginate($numPerPage); $unwinduped = WindupReport::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);})->where('state',0) ->select(DB::raw('SUM(seller_freight_sum + seller_amount_sum) AS sum_total'))->first(); $winduped = WindupReport::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);})->where('state',1) ->select(DB::raw('SUM(seller_freight_sum + seller_amount_sum) AS sum_total'))->first(); $curr_unwinduped = Order::when($seller_id, function ($q) use ($seller_id) {$q->where('seller_id', $seller_id);}) ->whereHas('logs', function ($query) { $query->where('state','DELIVERED|SIGNED'); }) ->where('state', '<>',Order::ORDER_CLOSED) ->where('windup_report_id',0) ->select(DB::raw('SUM(seller_freight + seller_amount) AS sum_total'))->first(); return view('Admin::windups.winduped', compact('seller_orders','sellers','unwinduped','winduped','curr_unwinduped')); } public function rule() { $info = \Params::get('windup_rule'); $info = str_replace("\r", "
", $info); return view('Admin::windups.rule', compact('info')); } public function invoice() { $info = \Params::get('invoice_info'); $info = str_replace("\r", "
", $info); return view('Admin::windups.invoice', compact('info')); } }