diff --git a/app/Http/Controllers/Admin/Manage/TransactionController.php b/app/Http/Controllers/Admin/Manage/TransactionController.php
index e2f6120..d68161a 100644
--- a/app/Http/Controllers/Admin/Manage/TransactionController.php
+++ b/app/Http/Controllers/Admin/Manage/TransactionController.php
@@ -13,24 +13,61 @@
use Illuminate\Contracts\View\View;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
+use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Storage;
+use Yajra\DataTables\Facades\DataTables;
class TransactionController extends Controller
{
use DeleteAttachment, UploadAttachment;
- public function index(): View
+ public function index(Request $request): View|JsonResponse
{
- return view('pages.admin.manage.transaction.index', [
- 'pageTitle' => 'Transaksi',
- 'transactions' => Transaction::with(['user', 'user.biography', 'cashier', 'cashier.biography', 'customer', 'service', 'barbershop'])
+ if ($request->ajax()) {
+ $transactions = Transaction::with(['user', 'user.biography', 'cashier', 'cashier.biography', 'customer', 'service', 'barbershop'])
->barbershop()
->when(auth()->user()->role_id === 5, function ($query) {
return $query->where('user_id', auth()->id());
+ });
+
+ return DataTables::eloquent($transactions)
+ ->addIndexColumn()
+ ->editColumn('created_at', function ($item) {
+ return formatDateIndo($item->created_at);
})
- ->latest()
- ->get(),
+ ->editColumn('payment_method', function ($item) {
+ switch ($item->payment_method) {
+ case '1':
+ return 'Tunai';
+ case '2':
+ return 'Qris';
+ case '2':
+ return 'Lainnya';
+
+ default:
+ return 'Tidak Diketahui';
+ }
+ })
+ ->addColumn('image', function ($item) {
+ if ($item->attachment && $item->attachment->formatted_attachment) {
+ $imageUrl = Storage::url("transactions/{$item->attachment->formatted_attachment}");
+
+ return '';
+ }
+
+ return '-';
+ })
+ ->addColumn('actions', function ($item) {
+ return view('partials.admin._actions', ['item' => $item]);
+ })
+ ->rawColumns(['payment_method', 'image', 'actions'])
+ ->make();
+ }
+
+ return view('pages.admin.manage.transaction.index', [
+ 'pageTitle' => 'Transaksi',
]);
}
diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php
index a58668e..861136e 100644
--- a/app/Models/Transaction.php
+++ b/app/Models/Transaction.php
@@ -30,7 +30,7 @@ class Transaction extends Model
public function scopeBarbershop(Builder $query): Builder
{
- return $query->where('barbershop_id', Auth::user()->barbershop_id);
+ return $query->where('transactions.barbershop_id', Auth::user()->barbershop_id);
}
public function scopeToday(Builder $query): Builder
diff --git a/public/assets/admin/js/datatable/custom-table/transaction.js b/public/assets/admin/js/datatable/custom-table/transaction.js
new file mode 100644
index 0000000..c84a903
--- /dev/null
+++ b/public/assets/admin/js/datatable/custom-table/transaction.js
@@ -0,0 +1,27 @@
+window.columns = [
+ {
+ data: 'DT_RowIndex',
+ orderable: false,
+ searchable: false
+ },
+ {
+ data: 'cashier.biography.full_name',
+ },
+ {
+ data: 'user.biography.full_name',
+ },
+ { data: 'customer.name' },
+ { data: 'service.name' },
+ { data: 'price' },
+ { data: 'discount' },
+ { data: 'total' },
+ { data: 'payment_method' },
+ {
+ data: 'image',
+ orderable: false,
+ searchable: false
+
+ },
+ { data: 'created_at' },
+ { data: 'actions' },
+];
diff --git a/resources/views/pages/admin/manage/transaction/index.blade.php b/resources/views/pages/admin/manage/transaction/index.blade.php
index 6e6bc94..0d1890f 100644
--- a/resources/views/pages/admin/manage/transaction/index.blade.php
+++ b/resources/views/pages/admin/manage/transaction/index.blade.php
@@ -16,7 +16,7 @@
| No | @@ -30,88 +30,10 @@Metode Pembayaran | Gambar | Tanggal | - @if (in_array(auth()->user()->role_id, [1, 3, 4])) -Aksi | - @endif +Aksi | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ $loop->iteration }} | -{{ $transaction->cashier->biography->full_name ?? '-deleted-' }} | -{{ $transaction->user->biography->full_name ?? '-deleted-' }} | -{{ $transaction->customer->name }} | -{{ $transaction->service->name }} | -{{ formatToRupiah($transaction->price) }} | -{{ formatToRupiah($transaction->discount) }} | -{{ formatToRupiah($transaction->total) }} | -- @if ($transaction->payment_method === '1') - Tunai - @elseif($transaction->payment_method === '2') - Qris - @elseif($transaction->payment_method === '3') - Lainnya - @else - Tidak Diketahui - @endif - | -
- @if ($transaction->attachment && $transaction->attachment->formatted_attachment)
- attachment->formatted_attachment}") }}">
-
-
- @endif
- |
- {{ formatDateIndo($transaction->created_at) }} | - @if (in_array(auth()->user()->role_id, [1, 3, 4])) -- - | - @endif -