| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- namespace App\Http\Controllers;
- use App\Filters\LaborCompanyDispatchFilters;
- use App\LaborApply;
- use App\LaborCompany;
- use App\LaborCompanyDispatch;
- use App\User;
- use App\Warehouse;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Http\Request;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Facades\Gate;
- class LaborCompanyDispatchController extends Controller
- {
- public function index(Request $request, LaborCompanyDispatchFilters $filters)
- {
- //按照分配日期倒序
- /** @var Builder $builder */
- $builder = LaborCompanyDispatch::query()
- ->filter($filters)
- ->with(['laborCompany', 'laborCompanyDispatchDetails','warehouse','checkUser']);
- /** @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();
- $warehouses = Warehouse::all();
- $labor_companies = LaborCompany::all();
- return view('personnel.laborApply.dispatch.index', compact('labor_company_dispatches', 'warehouses', 'labor_companies'));
- }
- 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->check_user_id = auth()->id();
- $laborCompanyDispatch->save();
- return redirect()->back()->with('success', '人事确认成功!');
- }
- }
|