CustomerController.php 3.1KB

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