From 57bf235ccaf5505a243af4e12570b27f3da6f6f3 Mon Sep 17 00:00:00 2001 From: JokoPrasetio Date: Tue, 29 Jul 2025 22:41:17 +0700 Subject: [PATCH] on progress dashboard --- app/Http/Controllers/DashboardController.php | 5 + public/js/dashboard/index.js | 135 ++++++++ resources/views/dashboard/index.blade.php | 336 +++++-------------- routes/web.php | 1 + 4 files changed, 234 insertions(+), 243 deletions(-) create mode 100644 public/js/dashboard/index.js diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 3dfcee5..113afae 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; class DashboardController extends Controller { @@ -12,4 +13,8 @@ class DashboardController extends Controller ]; return view('dashboard.index', $data); } + + public function dataDashboard(){ + $data = DB::connection('dbOrderGizi')->table('public.order'); + } } diff --git a/public/js/dashboard/index.js b/public/js/dashboard/index.js new file mode 100644 index 0000000..7f1a858 --- /dev/null +++ b/public/js/dashboard/index.js @@ -0,0 +1,135 @@ +const datatable = $("#datatableRekapDashboard") + + datatable.bootstrapTable({ + url: "/dashboard/datatable/selesai", + showColumns: true, + showColumnsToggleAll: true, + showRefresh: true, + sortable: true, + search: true, + searchOnEnterKey: false, + searchHighlight: true, + pagination: true, + serverSide:true, + pageSize: 10, + pageList: [10, 20, 30, 40, 50, 100, 200], + cookie: true, + cookieIdTable: "table_rma_ssc_id", + icons: { + refresh: "fas fa-sync-alt", // atau ganti ke icon lain + columns: "fas fa-th-large" + }, + + columns: [ + { + title: "Action", + field:'order_id', + formatter: function(value, row) { + let buttons = '' + if(row?.status_order === "Lunas"){ + buttons += ` + + ` + } + + return ` +
+ ${buttons} +
+ `; + } + }, + + { + title: "No.Order", + field: 'no_order', + sortable: true, + }, + { + title: "Status Pembayaran", + field: 'status_order', + sortable: true, + formatter: function(value, row) { + const status = value; + let badgeClass = 'bg-secondary'; + if (status === "Belum Bayar") { + badgeClass = 'bg-warning text-dark'; + } else if (status === "Menunggu Konfirmasi Pembayaran") { + badgeClass = 'bg-primary'; + } else if (status === "Lunas" || status === "Sudah Bayar") { + badgeClass = 'bg-success text-dark'; + } else if(status === "Dibatalkan"){ + badgeClass = 'bg-danger'; + } + return ` + ${status} + ${status === 'Dibatalkan' && row.note_dibatalkan ? ` +
+ ${row.note_dibatalkan} +
+ ` : ''} + `; + } + }, + { + title: "Status Pesanan", + formatter: function(value, row) { + const progress = parseInt(row.progress) || 0; + const total = row.total_detail || 0; + const selesai = row.selesai_detail || 0; + + return ` +
+
+
+ ${progress}% +
+
+ ${selesai} / ${total} selesai +
+ `; + }, + sortable: true, + }, + { + title: "Pemesan", + field:'nama_pemesan', + sortable: true, + }, + { + title: "Tgl Pemesanan", + field: 'entry_at', + formatter: function(value, row) { + if (!row?.entry_at) return '-'; + + const date = new Date(row.entry_at); + return date.toLocaleString('id-ID', { + day: '2-digit', + month: 'short', // Bisa diganti 'long' kalau mau 'Juli' bukan 'Jul' + year: 'numeric', + hour: '2-digit', + minute: '2-digit', + hour12: false // pakai format 24 jam + }); + }, + sortable: true, + }, + { + title: "Kategori Customer", + field: 'jenis_customer', + sortable: true, + }, + { + title: "Total Harga Pesanan", + field:'total_harga', + formatter: function(value, row){ + return 'Rp ' + parseInt(row.total_harga).toLocaleString('id-ID') + } + } + + ], + }); diff --git a/resources/views/dashboard/index.blade.php b/resources/views/dashboard/index.blade.php index ece38a8..1b63367 100644 --- a/resources/views/dashboard/index.blade.php +++ b/resources/views/dashboard/index.blade.php @@ -1,254 +1,104 @@ @extends('dashboard.layouts.main') @section('body_main') -
-
-
-
-
-
-
-
Congratulations John! 🎉
-

- You have done 72% more sales today. Check your new badge in - your profile. -

+
+
+

Dashboard Pesanan

+
- View Badges -
-
-
-
- View Badge User -
-
-
-
+ {{-- Filter Tanggal --}} +
+
+
+
+ +
-
-
-
-
-
-
-
- chart success -
- -
- Profit -

$12,628

- +72.80% -
-
-
-
-
-
-
-
- Credit Card -
- -
- Sales -

$4,679

- +28.42% -
-
-
-
+
+ +
- -
-
-
-
-
Total Revenue
-
-
-
-
-
- -
-
-
-
62% Company Growth
+
+ +
+ +
+
-
-
-
- -
-
- 2022 -
$32.5k
-
-
-
-
- -
-
- 2021 -
$41.2k
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
- Credit Card -
- -
- Payments -

$2,456

- -14.82% -
-
-
-
-
-
-
-
- Credit Card -
- -
- Transactions -

$14,857

- +28.14% -
-
-
-
-
-
-
-
-
-
-
-
Profile Report
- Year 2021 -
-
- 68.2% -

$84,686k

-
-
-
-
-
-
-
-
-
+ {{-- Row 1: Ringkasan Umum --}} +
+
+
+
+
Pesanan Hari Ini
+

23

+ Data tanggal {{ \Carbon\Carbon::now()->format('d M Y') }}
+
+
+
+
+
Pesanan Lunas
+

15

+ Status: Lunas +
+
+
+ +
+
+
+
Belum Selesai
+

8

+ Menunggu Konfirmasi / Pembayaran +
+
+
+
+ + {{-- Row 2: Transaksi & Status Pengambilan --}} +
+
+
+
+
Total Nilai Transaksi
+

Rp 1.240.000

+ Akumulasi dari pesanan Lunas +
+
+
+ +
+
+
+
Pesanan Pending
+

5

+ Lunas tapi belum diambil +
+
+
+ +
+
+
+
Pesanan Diambil
+

10

+ Pemesan sudah ambil makanannya +
+
+
+
+ +
+
+
Data Pesanan
+
+
+
+
+
+
+ @endsection diff --git a/routes/web.php b/routes/web.php index acb729c..af6e87b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,6 +22,7 @@ Route::group(['middleware' => ['auth']], function(){ Route::group(['prefix' => 'dashboard'], function(){ Route::get('/', [DashboardController::class, 'index']); + Route::get('/data', [DashboardController::class, 'dataDashboard']); Route::resource('/klasifikasi-menu', KlasifikasiMenuController::class); Route::get('/datatable/klasifikasi-menu', [KlasifikasiMenuController::class, 'datatable']);