SupplierController.php 2.9KB

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