LaborCompanyDispatchController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\LaborApply;
  4. use App\LaborCompany;
  5. use App\LaborCompanyDispatch;
  6. use App\User;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Carbon;
  9. use Illuminate\Support\Facades\Gate;
  10. class LaborCompanyDispatchController extends Controller
  11. {
  12. public function index()
  13. {
  14. //按照分配日期倒序
  15. $builder = LaborCompanyDispatch::query()
  16. ->with(['laborCompany', 'laborCompanyDispatchDetails']);
  17. if (!(\auth()->user()->isSuperAdmin() || Gate::allows('宝时人事部'))) {
  18. /** @var User $user */
  19. $user = auth()->user();
  20. //获取用户的劳务角色 劳务角色名 与 劳务所名称相同
  21. $laborCompanyNames = $user->roles()->where('name', 'LIKE', '劳务')->pluck('name');
  22. //根据劳务所名称相同 查询劳务所Id
  23. $laborCompanyIds = LaborCompany::query()->whereIn('name', $laborCompanyNames)->pluck('id');
  24. $builder->whereIn('labor_company_id', $laborCompanyIds);
  25. }
  26. $labor_company_dispatches = $builder
  27. ->orderByDesc('dispatch_date')
  28. ->paginate();
  29. return view('personnel.laborApply.dispatch.index', compact('labor_company_dispatches'));
  30. }
  31. public function createDetail(Request $request, LaborCompanyDispatch $laborCompanyDispatch)
  32. {
  33. return view('personnel.laborApply.dispatch.detail.create', compact('laborCompanyDispatch'));
  34. }
  35. public function editDetail(Request $request, LaborCompanyDispatch $laborCompanyDispatch)
  36. {
  37. $laborCompanyDispatch->loadMissing('laborCompanyDispatchDetails');
  38. return view('personnel.laborApply.dispatch.detail.edit', compact('laborCompanyDispatch'));
  39. }
  40. public function storeDetail(Request $request, LaborCompanyDispatch $laborCompanyDispatch)
  41. {
  42. $laborCompanyDispatch->laborCompanyDispatchDetails()->delete();
  43. $laborCompanyDispatch->laborCompanyDispatchDetails()->createMany(
  44. $request->input('users')
  45. );
  46. /** @var Carbon $dispatch_date */
  47. $dispatch_date = $laborCompanyDispatch->dispatch_date;
  48. LaborApply::query()
  49. ->whereDate('created_at', $dispatch_date->subDay()->toDateString())
  50. ->where('warehouse_id', $laborCompanyDispatch->laborCompany->warehouse_id)
  51. ->update([
  52. 'status' => 3, //劳务接单
  53. ]);
  54. return redirect(route('laborApplyDispatch.index'))->with('success', '添加临时工详情成功!');
  55. }
  56. }