SupplierController.php 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. "initialFilters" => request()->only("search"),
  21. "suppliers" => Supplier::search(request()->only("search"))
  22. ->latest()
  23. ->paginate(10)
  24. ->withQueryString()
  25. ->through(
  26. fn($supplier) => [
  27. "id" => $supplier->id,
  28. "name" => $supplier->name,
  29. "address" => $supplier->address,
  30. "email" => $supplier->email,
  31. "phone" => $supplier->phone,
  32. "npwp" => $supplier->npwp,
  33. "isUsed" => $supplier->purchases()->exists(),
  34. ]
  35. ),
  36. ]);
  37. }
  38. /**
  39. * Show the form for creating a new resource.
  40. *
  41. * @return \Illuminate\Http\Response
  42. */
  43. public function create()
  44. {
  45. return inertia("Suppliers/Create");
  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(StoreSupplierRequest $request)
  54. {
  55. Supplier::create($request->validated());
  56. return back()->with("success", __("messages.success.store.supplier"));
  57. }
  58. /**
  59. * Display the specified resource.
  60. *
  61. * @param Supplier $supplier
  62. * @return \Illuminate\Http\Response
  63. */
  64. public function show(Supplier $supplier)
  65. {
  66. //
  67. }
  68. /**
  69. * Show the form for editing the specified resource.
  70. *
  71. * @param Supplier $supplier
  72. * @return \Illuminate\Http\Response
  73. */
  74. public function edit(Supplier $supplier)
  75. {
  76. return inertia("Suppliers/Edit", compact("supplier"));
  77. }
  78. /**
  79. * Update the specified resource in storage.
  80. *
  81. * @param \Illuminate\Http\Request $request
  82. * @param Supplier $supplier
  83. * @return \Illuminate\Http\Response
  84. */
  85. public function update(UpdateSupplierRequest $request, Supplier $supplier)
  86. {
  87. $supplier->update($request->validated());
  88. return back()->with("success", __("messages.success.update.supplier"));
  89. }
  90. /**
  91. * Remove the specified resource from storage.
  92. *
  93. * @param Supplier $supplier
  94. * @return \Illuminate\Http\Response
  95. */
  96. public function destroy(Supplier $supplier)
  97. {
  98. $supplier->delete();
  99. return back()->with("success", __("messages.success.destroy.supplier"));
  100. }
  101. }