CustomerController.php 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\Customer\StoreCustomerRequest;
  4. use App\Http\Requests\Customer\UpdateCustomerRequest;
  5. use App\Models\Customer;
  6. class CustomerController extends Controller
  7. {
  8. public function __construct()
  9. {
  10. $this->authorizeResource(Customer::class);
  11. }
  12. /**
  13. * Display a listing of the resource.
  14. *
  15. * @return \Illuminate\Http\Response
  16. */
  17. public function index()
  18. {
  19. return inertia('Customers/Index.vue', [
  20. 'initialSearch' => request('search'),
  21. 'customers' => Customer::filter(request()->only('search'))
  22. ->latest()
  23. ->paginate(10)
  24. ->withQueryString()
  25. ->through(fn($customer) => [
  26. 'id' => $customer->id,
  27. 'name' => $customer->name,
  28. 'address' => $customer->address,
  29. 'phone' => $customer->phone,
  30. 'npwp' => $customer->npwp
  31. ])
  32. ]);
  33. }
  34. /**
  35. * Show the form for creating a new resource.
  36. *
  37. * @return \Illuminate\Http\Response
  38. */
  39. public function create()
  40. {
  41. return inertia('Customers/Create');
  42. }
  43. /**
  44. * Store a newly created resource in storage.
  45. *
  46. * @param \Illuminate\Http\Request $request
  47. * @return \Illuminate\Http\Response
  48. */
  49. public function store(StoreCustomerRequest $request)
  50. {
  51. Customer::create($request->validated());
  52. return back()->with('success', __('messages.success.store.customer'));
  53. }
  54. /**
  55. * Display the specified resource.
  56. *
  57. * @param Customer $customer
  58. * @return \Illuminate\Http\Response
  59. */
  60. public function show(Customer $customer)
  61. {
  62. //
  63. }
  64. /**
  65. * Show the form for editing the specified resource.
  66. *
  67. * @param Customer $customer
  68. * @return \Illuminate\Http\Response
  69. */
  70. public function edit(Customer $customer)
  71. {
  72. return inertia('Customers/Edit.vue', compact('customer'));
  73. }
  74. /**
  75. * Update the specified resource in storage.
  76. *
  77. * @param \Illuminate\Http\Request $request
  78. * @param Customer $customer
  79. * @return \Illuminate\Http\Response
  80. */
  81. public function update(UpdateCustomerRequest $request, Customer $customer)
  82. {
  83. $customer->update($request->validated());
  84. return back()->with('success', __('messages.success.update.customer'));
  85. }
  86. /**
  87. * Remove the specified resource from storage.
  88. *
  89. * @param Customer $customer
  90. * @return \Illuminate\Http\Response
  91. */
  92. public function destroy(Customer $customer)
  93. {
  94. //
  95. }
  96. }