CustomerController.php 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. 'filters' => request()->all('search'),
  18. 'customers' => Customer::latest()
  19. ->filter(request()->only('search'))
  20. ->paginate(10)
  21. ->withQueryString()
  22. ->through(fn($customer) => [
  23. 'id' => $customer->id,
  24. 'customer_number' => $customer->customer_number,
  25. 'name' => $customer->name,
  26. 'phone' => $customer->phone,
  27. 'address' => $customer->address,
  28. 'gender' => $customer->gender_id,
  29. ]),
  30. ]);
  31. }
  32. /**
  33. * Show the form for creating a new resource.
  34. *
  35. * @return \Inertia\Response
  36. */
  37. public function create()
  38. {
  39. return inertia('customer/Create', [
  40. 'customer_number' => 'CS' . now()->format('YmdHis'),
  41. 'genders' => [
  42. ['label' => 'Perempuan', 'value' => 1],
  43. ['label' => 'Laki-laki', 'value' => 2],
  44. ],
  45. ]);
  46. }
  47. /**
  48. * Store a newly created resource in storage.
  49. *
  50. * @param \Illuminate\Http\Request $request
  51. * @return \Illuminate\Http\Response
  52. */
  53. public function store(StoreCustomerRequest $request)
  54. {
  55. Customer::create($request->validated());
  56. if ($request->transaction_number) {
  57. return back()->with('success', __('messages.success.store.customer'));
  58. } else {
  59. return to_route('customers.index')->with('success', __('messages.success.store.customer'));
  60. }
  61. }
  62. /**
  63. * Display the specified resource.
  64. *
  65. * @param int $id
  66. * @return \Inertia\Response
  67. */
  68. public function show($id)
  69. {
  70. //
  71. }
  72. /**
  73. * Show the form for editing the specified resource.
  74. *
  75. * @param Customer $customer
  76. * @return \Inertia\Response
  77. */
  78. public function edit(Customer $customer)
  79. {
  80. return inertia('customer/Edit', [
  81. 'customer' => [
  82. 'id' => $customer->id,
  83. 'customer_number' => $customer->customer_number,
  84. 'name' => $customer->name,
  85. 'phone' => $customer->phone,
  86. 'address' => $customer->address,
  87. 'gender_id' => $customer->getRawOriginal('gender_id'),
  88. ],
  89. 'genders' => [
  90. ['label' => 'Perempuan', 'value' => 1],
  91. ['label' => 'Laki-laki', 'value' => 2],
  92. ],
  93. ]);
  94. }
  95. /**
  96. * Update the specified resource in storage.
  97. *
  98. * @param \Illuminate\Http\Request $request
  99. * @param Customer $customer
  100. * @return \Illuminate\Http\Response
  101. */
  102. public function update(UpdateCustomerRequest $request, Customer $customer)
  103. {
  104. $customer->update($request->validated());
  105. return back()->with('success', __('messages.success.update.customer'));
  106. }
  107. /**
  108. * Remove the specified resource from storage.
  109. *
  110. * @param Customer $customer
  111. * @return \Illuminate\Http\Response
  112. */
  113. public function destroy(Customer $customer)
  114. {
  115. $customer->delete();
  116. return to_route('customers.index')->with('success', __('messages.success.destroy.customer'));
  117. }
  118. }