header('财务概览') ->body($this->grid()); } protected function grid() { $grid = new Grid(new Finance); $grid->disableRowSelector(); $grid->disableActions(); $grid->model()->latest()->with(['company']); // $grid->paginate(Company::count()); $grid->tools(function ($tools) { $tools->batch(function ($batch) { $batch->disableDelete(); }); }); $grid->filter(function ($filter) { $filter->disableIdFilter(); $filter->column(1 / 3, function ($filter) { $filter->like('company.name', '公司名称'); $filter->like('sn', '#SN#'); $filter->equal('status', '结算状态')->select([ 0 => '初始化', 1 => '结算中', 2 => '结算失败', 9 => '结算完成', ]); }); $filter->column(1 / 3, function ($filter) { $filter->date('date', '结算日期'); $filter->equal('type', '账单类型')->select([ 'day' => '日账单', 'week' => '周账单', 'month' => '月账单', 'quarter' => '季账单', 'year' => '年账单', 'custom' => '自定义', ]); $filter->group('orders', '订单总数', function ($group) { $group->gt('大于'); $group->lt('小于'); $group->nlt('不小于'); $group->ngt('不大于'); $group->equal('等于'); }); }); $filter->column(1 / 3, function ($filter) { $filter->between('start_time', '结算期始')->datetime(); $filter->between('end_time', '结算期止')->datetime(); }); // $filter->expand(); }); $grid->id('Id')->sortable(); $grid->column('公司名称/#SN#')->display(function () { return $this->company->name . '
' . $this->sn; }); $grid->column('日期/类型')->display(function () { $ret = $this->date . '
'; $ret .= $this->type_text; return $ret; }); $grid->column('结算周期')->display(function () { return $this->start_time . '
' . $this->end_time; }); $grid->column('销售/退款金额')->display(function () { return $this->total_sales . '
' . $this->total_refunds; }); $grid->total_cost('成本金额'); $grid->column('订单总数/支付')->display(function () { return $this->orders . ' / ' . $this->orders_paid; }); $grid->refunds('退款数量'); $grid->heads('参与团长'); $grid->users('参与用户'); $grid->goods('销售商品'); $grid->column('状态')->display(function () { switch ($this->status) { case 0: return '初始化'; break; case 1: return '结算中'; break; case 2: return '结算失败'; break; case 9: return '结算完成'; break; } }); $grid->column('创建/更新时间')->display(function () { return $this->created_at . '
' . $this->updated_at; }); return $grid; } public function create(Content $content) { return $content ->header('手动生成账单') ->body($this->form()); } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new Finance); $form->setWidth(3, 2); $form->footer(function ($footer) { $footer->disableViewCheck(); $footer->disableCreatingCheck(); $footer->disableEditingCheck(); }); $form->datetimeRange('start_at', 'end_at', '日期范围')->help('选择日期范围的情况下,下面的属性会失效'); $form->date('date', '账单日期')->default(Carbon::now()->toDateString()); $form->select('type', '账单类型')->options([ 'day' => '日账单', 'week' => '周账单', 'month' => '月账单', 'quarter' => '季账单', 'year' => '年账单', 'custom' => '自定义', ])->default('day')->setWidth(2, 2); return $form; } public function store() { $date = request('date'); $type = request('type'); $start_at = request('start_at'); $end_at = request('end_at'); try { if ($start_at && $end_at) { Artisan::call('bill:create', [ '--day' => $date, '--type' => [$start_at, $end_at], ]); } else { Artisan::call('bill:create', [ '--day' => $date, '--type' => $type, ]); } admin_toastr('账单生成成功', 'success'); return redirect('/admin/finances'); } catch (\Exception $e) { admin_toastr($e->getMessage(), 'error'); return back(); } } public function orders(Content $content) { return $content ->header('订单支付记录') ->description('所有订单的支付记录,包含未支付的信息') ->body($this->ordersGrid()); } public function ordersGrid() { $grid = new Grid(new OrderPayment); $grid->disableRowSelector(); $grid->disableActions(); $grid->disableCreateButton(); $grid->model()->latest()->with(['order']); $grid->tools(function ($tools) { $tools->batch(function ($batch) { $batch->disableDelete(); }); }); $grid->filter(function ($filter) { $filter->disableIdFilter(); $filter->column(1 / 3, function ($filter) { $filter->like('order.orderid', '订单编号'); $filter->like('out_trade_no', '支付单号'); }); $filter->column(1 / 3, function ($filter) { $filter->like('transaction_id', '交易单号'); $filter->equal('type', '支付方式')->select([ 'wxpay' => '微信支付', 'balance' => '余额支付', ]); }); $filter->column(1 / 3, function ($filter) { $filter->between('end_at', '支付时间')->datetime(); $filter->between('created_at', '创建时间')->datetime(); }); // $filter->expand(); }); $grid->id('#Id#')->sortable(); $grid->column('order.orderid', '订单编号'); $grid->out_trade_no('支付单号'); $grid->transaction_id('交易单号'); $grid->end_at('支付时间'); $grid->column('支付方式')->display(function () { return $this->type_text; }); $grid->created_at('创建时间'); return $grid; } }