parseDataTableQuery($request); $referenceType = $request->string('reference_type')->toString(); $cashAccount = $this->cashService->getDefaultAccount(); return Inertia::render('admin/finance/cash/Index', [ 'cashAccount' => $cashAccount, 'transactions' => $this->cashService->paginateForIndex($cashAccount, $tableQuery, $referenceType), 'filters' => $this->dataTableFilters($tableQuery, [ 'reference_type' => $referenceType, ]), ]); } public function update(CashTransactionRequest $request, CashTransaction $cashTransaction): RedirectResponse { try { $cashTransaction->ensureEditable(); } catch (ValidationException) { abort(403); } $this->cashService->updateDeposit($cashTransaction, $request->validated(), $request->user()); $this->flashUpdated('Setor kas'); return redirect()->route('admin.finance.cash.index'); } public function destroy(Request $request, CashTransaction $cashTransaction): RedirectResponse { try { $cashTransaction->ensureEditable(); } catch (ValidationException) { abort(403); } $this->cashService->deleteTransaction($cashTransaction, $request->user()); $this->flashDeleted('Setor kas'); return redirect()->route('admin.finance.cash.index'); } public function deposit(DepositRequest $request): RedirectResponse { $cashAccount = $this->cashService->getDefaultAccount(); $this->cashService->deposit($cashAccount, $request->validated(), $request->user()); $this->flashSuccess('Setor kas berhasil dicatat.'); return redirect()->route('admin.finance.cash.index'); } public function withdraw(WithdrawRequest $request): RedirectResponse { $cashAccount = $this->cashService->getDefaultAccount(); $this->cashService->withdraw($cashAccount, $request->validated(), $request->user()); $this->flashSuccess('Tarik kas berhasil dicatat.'); return redirect()->route('admin.finance.cash.index'); } }