filter($filters) ->with(['laborCompany.warehouse', 'laborCompanyDispatchDetails']); /** @var User $user */ $user = auth()->user(); $auth_user_is_人事主管 = $user->roles()->where('name', '人事主管')->exists(); if (!($user->isSuperAdmin() || $auth_user_is_人事主管 || Gate::allows('临时工申请协调-劳务派遣明细-可见全部'))) { //获取用户的劳务角色 劳务角色名 与 劳务所名称相同 $laborCompanyNames = $user->roles()->where('name', 'LIKE', '%劳务%')->pluck('name'); //根据劳务所名称相同 查询劳务所Id $laborCompanyIds = LaborCompany::query()->whereIn('name', $laborCompanyNames)->pluck('id'); $builder->whereIn('labor_company_id', $laborCompanyIds); } $labor_company_dispatches = $builder ->orderByDesc('id') ->simplePaginate(); return view('personnel.laborApply.dispatch.index', compact('labor_company_dispatches')); } public function edit(LaborCompanyDispatch $laborCompanyDispatch) { return view('personnel.laborApply.dispatch.edit', compact('laborCompanyDispatch')); } public function update(LaborCompanyDispatch $laborCompanyDispatch, Request $request) { $laborCompanyDispatch->update($request->all()); return redirect(route('laborCompanyDispatch.index'))->with('success', '更新成功!'); } public function createDetail(Request $request, LaborCompanyDispatch $laborCompanyDispatch) { return view('personnel.laborApply.dispatch.detail.create', compact('laborCompanyDispatch')); } public function editDetail(Request $request, LaborCompanyDispatch $laborCompanyDispatch) { $laborCompanyDispatch->loadMissing('laborCompanyDispatchDetails'); return view('personnel.laborApply.dispatch.detail.edit', compact('laborCompanyDispatch')); } public function storeDetail(Request $request, LaborCompanyDispatch $laborCompanyDispatch) { $laborCompanyDispatch->laborCompanyDispatchDetails()->delete(); $laborCompanyDispatch->laborCompanyDispatchDetails()->createMany( $request->input('users') ); return redirect(route('laborCompanyDispatch.index'))->with('success', '添加临时工详情成功!'); } /** * 劳务接单 * @param LaborCompanyDispatch $laborCompanyDispatch * @param Request $request * @return \Illuminate\Http\RedirectResponse */ public function laborCompanyReceivingOrder(LaborCompanyDispatch $laborCompanyDispatch, Request $request) { /** @var Carbon $dispatch_date */ $dispatch_date = $laborCompanyDispatch->dispatch_date; //更新创建日期为 分配日期前一天的全部申请状态为 劳务接单 LaborApply::query() ->whereDate('created_at', $dispatch_date->subDay()->toDateString()) ->where('warehouse_id', $laborCompanyDispatch->laborCompany->warehouse_id) ->update([ 'status' => $request->status, //劳务接单 ]); $laborCompanyDispatch->status = '劳务接单'; $laborCompanyDispatch->save(); return redirect()->back()->with('success', '接单成功!'); } public function personnelCheck(LaborCompanyDispatch $laborCompanyDispatch, Request $request) { $laborCompanyDispatch->status = $request->status; $laborCompanyDispatch->save(); return redirect()->back()->with('success', '人事确认成功!'); } }