pmsService = $pmsService; } /** * Index interface. * * @param Content $content * @return Content */ public function index(Content $content) { return $content ->header('发票列表') ->description('列表') ->body($this->grid()); } /** * Show interface. * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header('Detail') ->description('description') ->body($this->detail($id)); } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { return $content ->header('修改') ->description('description') ->body($this->editForm()->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { return $content ->header('Create') ->description('description') ->body($this->form()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { Permission::check('invoice_manager_index'); $grid = new Grid(new Invoice); $grid->model()->when(get_subsite_id()>0, function ($querys) { $querys->whereHas('companys', function ($query) { $query->where('subsite_id', get_subsite_id()); }); })->orderByRaw('audit asc, created_at desc'); $grid->cid('服务名称')->display(function ($cid) { $list = InvoiceCategory::list()->pluck('categoryname', 'id'); foreach ($list as $key => $value) { if ($cid == $key) { return $value; } } }); $grid->audit('处理状态')->display(function ($audit) { switch ($audit) { case 0: return "未开票"; break; case 1: return "已开票"; break; case 2: return "取消"; break; } }); $grid->title('发票抬头')->display(function ($title) { switch ($title) { case 1: return "企业"; break; case 2: return "个人"; break; } }); $grid->oid('订单号'); $grid->order_num('金额')->display(function ($order_num){ return Order::where('id',$order_num)->value('amount'); }); $grid->organization('单位名称'); $grid->addressee('收件人'); $grid->mobile('收件人电话'); $grid->address('邮寄地址'); $grid->postcode('邮编'); $grid->actions(function ($actions) { if (Admin::user()->can('invoice_manager_index_edit')) { $actions->disableEdit(false); } if (Admin::user()->can('invoice_manager_index_delete')) { $actions->disableDelete(false); } }); $grid->filter(function ($filter) { $filter->column(1/2, function ($filter) { $filter->where(function ($query) { $query->whereHas('companys', function ($query) { $query->where('companyname', 'like', "%{$this->input}%"); }); }, '公司名称'); $filter->like('addressee', '收件人'); $filter->equal('uid', '会员ID'); $filter->between('created_at', '添加时间')->datetime(); }); $filter->column(1/2, function ($filter) { $filter->equal('audit', '处理状态')->select([0=>'未开票',1=>'已开票',2=>'取消']); $filter->equal('title', '发票抬头')->select(['1'=>'企业','2'=>'个人']); $filter->equal('cid', '发票内容')->select( InvoiceCategory::list()->pluck('categoryname', 'id') ); }); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(Invoice::findOrFail($id)); $show->cid('服务名称')->as(function ($cid) { $list = InvoiceCategory::list()->pluck('categoryname', 'id'); foreach ($list as $key => $value) { if ($cid == $key) { return $value; } } }); $show->audit('处理状态')->as(function ($audit) { switch ($audit) { case 0: return "未开票"; break; case 1: return "已开票"; break; case 2: return "取消"; break; } }); $show->title('发票抬头')->as(function ($title) { switch ($title) { case 1: return "企业"; break; case 2: return "个人"; break; } }); $show->organization('单位名称'); $show->addressee('收件人'); $show->deposit_bank('开户行'); $show->account('开户账号'); $show->mobile('收件人电话'); $show->address('邮寄地址'); $show->postcode('邮编'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new Invoice); $form->display('ID'); $form->display('Created at'); $form->display('Updated at'); return $form; } protected function editForm() { Permission::check('invoice_manager_index_edit'); $form = new Form(new Invoice); $form->html("