parseDataTableQuery($request); $tableQuery['search_id'] = $request->string('search_id')->trim()->toString(); return Inertia::render('admin/manage/purchases/Index', [ 'purchases' => $this->purchaseService->paginateForIndex($tableQuery), 'filters' => $this->dataTableFilters($tableQuery, [ 'search_id' => $tableQuery['search_id'], ]), ]); } public function create(Request $request): Response { $user = $request->user(); return Inertia::render('admin/manage/purchases/Create', [ 'suppliers' => $this->purchaseService->supplierOptions(), 'catalog' => $this->purchaseService->catalogItems(user: $user), 'draftItems' => $this->purchaseService->draftItemsForUser($user), ]); } public function store(PurchaseRequest $request): RedirectResponse { $this->purchaseService->create($request->validated(), $request->user()); $this->flashCreated('Belanja'); return redirect()->route('admin.manage.purchases.index'); } public function edit(Purchase $purchase): Response { return Inertia::render('admin/manage/purchases/Edit', [ 'purchase' => $this->purchaseService->findForEdit($purchase), 'suppliers' => $this->purchaseService->supplierOptions(), 'catalog' => $this->purchaseService->catalogItems($purchase), ]); } public function update(PurchaseRequest $request, Purchase $purchase): RedirectResponse { $this->purchaseService->update($purchase, $request->validated(), $request->user()); $this->flashUpdated('Belanja'); return redirect()->route('admin.manage.purchases.index'); } public function destroy(Request $request, Purchase $purchase): RedirectResponse { $this->purchaseService->delete($purchase, $request->user()); $this->flashDeleted('Belanja'); return redirect()->route('admin.manage.purchases.index'); } }