OwnerSundryFeeDetailsController.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Filters\OwnerSundryFeeDetailFilters;
  4. use App\Owner;
  5. use App\OwnerSundryFeeDetail;
  6. use Illuminate\Http\Request;
  7. use App\Http\Requests\OwnerSundryFeeDetailRequest;
  8. use Oursdreams\Export\Export;
  9. class OwnerSundryFeeDetailsController extends Controller
  10. {
  11. public function __construct()
  12. {
  13. $this->middleware('auth');
  14. }
  15. public function index(Request $request, OwnerSundryFeeDetailFilters $filters)
  16. {
  17. $paginateParams = $request->input();
  18. $owner_sundry_fee_details = OwnerSundryFeeDetail::query()
  19. ->filter($filters)->with('owner', 'logistic')
  20. ->orderByDesc('updated_at')
  21. ->paginate($request->paginate ?? 50);
  22. $owners = Owner::all();
  23. return view('customer.ownerSundryFee.index', compact('owner_sundry_fee_details', 'paginateParams', 'owners'));
  24. }
  25. public function show($owner_sundry_fee_detail)
  26. {
  27. $owner_sundry_fee_detail = OwnerSundryFeeDetail::find($owner_sundry_fee_detail);
  28. $owner_sundry_fee_detail->loadMissing('owner');
  29. return view('customer.ownerSundryFee.show', compact('owner_sundry_fee_detail'));
  30. }
  31. public function create(OwnerSundryFeeDetail $owner_sundry_fee_detail)
  32. {
  33. $types = [
  34. '材料',
  35. '垫付',
  36. '人工',
  37. '其他',
  38. ];
  39. $owners = Owner::all();
  40. $logistics = \App\Logistic::all();
  41. return view('customer.ownerSundryFee.create_and_edit', compact('owner_sundry_fee_detail', 'types', 'owners', 'logistics'));
  42. }
  43. public function store(OwnerSundryFeeDetailRequest $request)
  44. {
  45. $data = $request->all();
  46. $data['fee'] = $data['amount'] * $data['price'];
  47. $owner_sundry_fee_detail = OwnerSundryFeeDetail::create($data);
  48. return redirect()->route('ownerSundryFeeDetails.index', $owner_sundry_fee_detail->id)->with('success', '创建成功');
  49. }
  50. public function edit($owner_sundry_fee_detail)
  51. {
  52. $owner_sundry_fee_detail = OwnerSundryFeeDetail::find($owner_sundry_fee_detail);
  53. $owner_sundry_fee_detail->loadMissing('owner');
  54. $this->authorize('update', $owner_sundry_fee_detail);
  55. $types = [
  56. '材料',
  57. '垫付',
  58. '人工',
  59. '其他',
  60. ];
  61. $owners = Owner::all();
  62. $logistics = \App\Logistic::all();
  63. return view('customer.ownerSundryFee.create_and_edit', compact('owner_sundry_fee_detail', 'types', 'owners', 'logistics'));
  64. }
  65. public function update(OwnerSundryFeeDetailRequest $request, $owner_sundry_fee_detail)
  66. {
  67. $owner_sundry_fee_detail = OwnerSundryFeeDetail::find($owner_sundry_fee_detail);
  68. $this->authorize('update', $owner_sundry_fee_detail);
  69. $data = $request->all();
  70. $data['fee'] = $data['amount'] * $data['price'];
  71. $owner_sundry_fee_detail->update($data);
  72. return redirect()->route('ownerSundryFeeDetails.index', $owner_sundry_fee_detail->id)->with('success', '更新成功');
  73. }
  74. public function destroy($owner_sundry_fee_detail)
  75. {
  76. $owner_sundry_fee_detail = OwnerSundryFeeDetail::find($owner_sundry_fee_detail);
  77. $this->authorize('destroy', $owner_sundry_fee_detail);
  78. $owner_sundry_fee_detail->delete();
  79. return redirect()->route('ownerSundryFeeDetails.index')->with('success', '删除成功');
  80. }
  81. public function export(Request $request, OwnerSundryFeeDetailFilters $filters)
  82. {
  83. $query = OwnerSundryFeeDetail::query()
  84. ->filter($filters)->with('owner', 'logistic');
  85. $row = ['货主', '日期', '作业类型', '费用描述', '快递单号', '承运商', '数量', '单价', '收费金额', '备注'];
  86. if (!$request->exists('checkAllSign')) {
  87. $query->whereIn('id', explode(',', $request['data']));
  88. }
  89. $details = $query
  90. ->orderByDesc('updated_at')
  91. ->get();
  92. $json = [];
  93. foreach ($details as $detail) {
  94. $json[] = [
  95. $detail->owner->name ?? '',
  96. $detail->created_at ?? '',
  97. $detail->type ?? '',
  98. $detail->fee_explain ?? '',
  99. $detail->logistic_name ?? '',
  100. $detail->logistic->name ?? '',
  101. $detail->amount ?? '',
  102. $detail->price ?? '',
  103. $detail->fee ?? '',
  104. $detail->remark ?? '',
  105. ];
  106. }
  107. return Export::make($row, $json, "杂项费");
  108. }
  109. }