'Transaksi', 'transactions' => Transaction::latest()->get(), ]); } public function create(): View { return view('pages.admin.manage.transaction.create', [ 'pageTitle' => 'Tambah Transaksi', 'services' => Service::latest()->get(), 'customers' => Customer::latest()->get(), ]); } public function store(TransactionRequest $request): RedirectResponse { $validatedData = $request->validated(); DB::transaction(function () use ($validatedData) { $newTransaction = Transaction::create(array_merge($validatedData, [ 'user_id' => Auth::id(), 'barbershop_id' => Auth::user()->barbershop_id, 'service_id' => $validatedData['service'], 'customer_id' => $validatedData['customer'], ])); $this->uploadAttachment($validatedData['image'], 'transactions', Transaction::class, $newTransaction->id); }); notify()->success('Data berhasil ditambahkan', 'Berhasil'); return redirect('dashboard/manage/transactions'); } public function edit(Transaction $transaction): View { return view('pages.admin.manage.transaction.edit', [ 'pageTitle' => 'Edit Transaksi', 'transaction' => $transaction, ]); } public function update(Transaction $transaction, TransactionRequest $request): RedirectResponse { $validatedData = $request->validated(); $transaction->update($validatedData); notify()->success('Data berhasil diubah', 'Berhasil'); return redirect('dashboard/manage/transactions'); } public function delete(Transaction $transaction): RedirectResponse { $transaction->delete(); notify()->success('Data berhasil dihapus', 'Berhasil'); return back(); } public function getPrice(string $serviceId): JsonResponse { $service = Service::find($serviceId); if (! $service) { return response()->json([ 'status' => false, 'message' => 'Service not found', ], 404); } return response()->json([ 'status' => true, 'message' => 'Data retrieved successfully', 'data' => decimalToInteger($service->price), ], 200); } }