diff --git a/app/Http/Controllers/PesananController.php b/app/Http/Controllers/PesananController.php index b74f54f..0fced52 100644 --- a/app/Http/Controllers/PesananController.php +++ b/app/Http/Controllers/PesananController.php @@ -37,6 +37,16 @@ class PesananController extends Controller }else{ $tanggalFormatted = [Carbon::now()->toDateString()]; } + + $dataPending = Order::whereIn('status_order', [ + 'Menunggu Konfirmasi Pembayaran', + 'Menunggu Konfirmasi Pembayaran Via Billing', + 'Menunggu Konfirmasi Pesanan MCU' + ]) + ->select(DB::raw('COUNT(DISTINCT DATE(entry_at)) as total')) + ->value('total'); + + $orders = DB::connection('dbOrderGizi')->table('public.order as o') ->leftJoin('public.order_detail as od', 'od.order_id', '=', 'o.order_id') ->where('o.statusenabled', true) @@ -86,10 +96,12 @@ class PesananController extends Controller ->filter(function($item){ return $item['total_detail'] > 0 && $item['total_detail'] != $item['selesai_detail']; })->values(); + return response()->json([ 'status' => true, 'rows' => $grouped->values(), - 'total' => $grouped->count() + 'total' => $grouped->count(), + 'dataPending'=> $dataPending ]); } @@ -181,6 +193,23 @@ class PesananController extends Controller ]); } + public function dataPending(){ + $data = Order::selectRaw('DATE(entry_at) as tgl, COUNT(*) as total') + ->whereIn('status_order', [ + 'Menunggu Konfirmasi Pembayaran', + 'Menunggu Konfirmasi Pembayaran Via Billing', + 'Menunggu Konfirmasi Pesanan MCU' + ]) + ->groupBy(DB::raw('DATE(entry_at)')) + ->orderBy('tgl', 'asc') + ->get(); + return response()->json([ + 'status' => true, + 'rows' => $data->values(), + 'total' => $data->count() + ]); + } + public function indexSelesai() { $payload = [ @@ -282,9 +311,32 @@ class PesananController extends Controller // if($status !== "all"){ // $data->where('status_order', $status); // } + $dataPending = OrderDetail::whereHas('order', function($query) { + $query->where('status_order', 'Lunas'); + })->where('status_order', 'Pending') + ->select(DB::raw('COUNT(DISTINCT DATE(tgl_antar)) as total')) + ->value('total'); + $data = $data->get(); return response()->json([ + 'rows' => $data->values(), + 'total' => $data->count(), + 'dataPending' => $dataPending + ]); + } + + public function dataPekerjaanPending(){ + $data = OrderDetail::with('order')->where('status_order', 'Pending') + ->select(DB::raw('DATE(tgl_antar) as tgl'), DB::raw('COUNT(*) as total')) + ->whereHas('order', function($query) { + $query->where('status_order', 'Lunas'); // filter status di tabel orders + }) + ->groupBy(DB::raw('DATE(tgl_antar)')) + ->orderBy('tgl', 'asc') + ->get(); + return response()->json([ + 'status' => true, 'rows' => $data->values(), 'total' => $data->count() ]); diff --git a/public/js/pekerjaan/_init.js b/public/js/pekerjaan/_init.js index 5b40f3f..1757bfa 100644 --- a/public/js/pekerjaan/_init.js +++ b/public/js/pekerjaan/_init.js @@ -5,3 +5,6 @@ const modalDetailOrder = document.getElementById('modalDetailOrder'); const modalActionOrder = document.getElementById('modalActionApproveOrder'); const modalExport = document.getElementById('modalExportPekerjaan'); + +const modalInfoPending = document.getElementById('modalActionInfoPending') +const datatablePekerjaanPending = $("#datatableDataPending") diff --git a/public/js/pekerjaan/action.js b/public/js/pekerjaan/action.js index 54a2d69..c741b2c 100644 --- a/public/js/pekerjaan/action.js +++ b/public/js/pekerjaan/action.js @@ -102,6 +102,7 @@ document.getElementById('formActionApproveOrder').addEventListener('submit', fun backdrop: true, }); datatablePekerjaan.bootstrapTable('refresh'); + modalActionOrder.removeEventListener('hidden.bs.modal', handler); // ✅ pakai DOM getReminderVerifikasiMakanan() }; @@ -124,3 +125,43 @@ document.getElementById('formActionApproveOrder').addEventListener('submit', fun function exportPekerjaan(){ new bootstrap.Modal(modalExport).show() } + + function datapending(){ + new bootstrap.Modal(modalInfoPending).show() + datatablePekerjaanPending.bootstrapTable('destroy') + datatablePekerjaanPending.bootstrapTable({ + url: "/dashboard/data/pending-pekerjaan", + 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: "datatablePesananPending", + icons: { + refresh: "fas fa-sync-alt", // atau ganti ke icon lain + columns: "fas fa-th-large" + }, + + columns: [ + { + title: "Tanggal", + field: 'tgl', + sortable: true, + }, + { + title: "Total", + formatter: function(value, row){ + return row?.total + }, + sortable: true, + }, + ], + }); + } diff --git a/public/js/pekerjaan/dt.js b/public/js/pekerjaan/dt.js index d9cc86a..14d08dc 100644 --- a/public/js/pekerjaan/dt.js +++ b/public/js/pekerjaan/dt.js @@ -156,6 +156,14 @@ }, ], + onLoadSuccess: function (res) { + // res = data JSON dari server + if (res.dataPending && res.dataPending > 0) { + $("#data_pending").show(); // tampilkan tombol + } else { + $("#data_pending").hide(); // sembunyikan tombol + } + } }); $(document).on('click', '#selectAll', function () { selectedRows = []; @@ -193,3 +201,5 @@ window.open(`/dashboard/pekerjaan/label?data=${order_detail_ids}`, '_blank'); // window.open(`https://smart.rsabhk.co.id:2222/service-reporting/label-cetering/${order_detail_ids}`, '_blank'); } + + diff --git a/public/js/pesanan_pending/_init.js b/public/js/pesanan_pending/_init.js index d99fd3d..cdec4b0 100644 --- a/public/js/pesanan_pending/_init.js +++ b/public/js/pesanan_pending/_init.js @@ -18,3 +18,7 @@ const modalExportPekerjaan = document.getElementById('modalExportPekerjaan'); const datatableOfPekerjaan = $("#datatableVerifikasiMakananOffcanvas") const modalDetailOrder = document.getElementById('modalDetailOrderOf'); const modalActionOrderPekerjaan = document.getElementById('modalActionApproveOrder'); + + +const modalDataPending = document.getElementById('modalActionInfoPending') +const datatableDataPending = $("#datatableDataPending") diff --git a/public/js/pesanan_pending/action.js b/public/js/pesanan_pending/action.js index 4f0cf26..1de187d 100644 --- a/public/js/pesanan_pending/action.js +++ b/public/js/pesanan_pending/action.js @@ -158,3 +158,43 @@ function approveProgress(order_id){ function exportPending(){ new bootstrap.Modal(modalExport).show(); } + +function datapending(){ + new bootstrap.Modal(modalDataPending).show(); + datatableDataPending.bootstrapTable('destroy') + datatableDataPending.bootstrapTable({ + url: "/dashboard/data/pending", + 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: "datatablePesananPending", + icons: { + refresh: "fas fa-sync-alt", // atau ganti ke icon lain + columns: "fas fa-th-large" + }, + + columns: [ + { + title: "Tanggal", + field: 'tgl', + sortable: true, + }, + { + title: "Total", + formatter: function(value, row){ + return row?.total + }, + sortable: true, + }, + ], + }); +} diff --git a/public/js/pesanan_pending/dt.js b/public/js/pesanan_pending/dt.js index 853c943..f9fda32 100644 --- a/public/js/pesanan_pending/dt.js +++ b/public/js/pesanan_pending/dt.js @@ -192,6 +192,14 @@ }, ], + onLoadSuccess: function (res) { + // res = data JSON dari server + if (res.dataPending && res.dataPending > 0) { + $("#data_pending").show(); // tampilkan tombol + } else { + $("#data_pending").hide(); // sembunyikan tombol + } + } }); } diff --git a/public/js/pesanan_pending/of_dt.js b/public/js/pesanan_pending/of_dt.js index cb3f37b..a0d410e 100644 --- a/public/js/pesanan_pending/of_dt.js +++ b/public/js/pesanan_pending/of_dt.js @@ -336,3 +336,49 @@ document.getElementById('formActionApproveOrder').addEventListener('submit', fun }); }); }); + + +function dataPendingPekerjaan(){ + const offcanvas = bootstrap.Offcanvas.getInstance(document.getElementById('offcanvasKonfirmasiPesanan')) || new bootstrap.Offcanvas(document.getElementById('offcanvasKonfirmasiPesanan')); + offcanvas.hide(); + new bootstrap.Modal(modalDataPending).show(); + datatableDataPending.bootstrapTable('destroy') + datatableDataPending.bootstrapTable({ + url: "/dashboard/data/pending-pekerjaan", + 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: "datatablePesananPending", + icons: { + refresh: "fas fa-sync-alt", // atau ganti ke icon lain + columns: "fas fa-th-large" + }, + + columns: [ + { + title: "Tanggal", + field: 'tgl', + sortable: true, + }, + { + title: "Total", + formatter: function(value, row){ + return row?.total + }, + sortable: true, + }, + ], + }); + document.getElementById('modalActionInfoPending').addEventListener('hidden.bs.modal', () => { + new bootstrap.Offcanvas(document.getElementById('offcanvasKonfirmasiPesanan')).show() + }, { once:true}); +} diff --git a/public/logo/icon.ico b/public/logo/icon.ico new file mode 100644 index 0000000..fd4c8ac Binary files /dev/null and b/public/logo/icon.ico differ diff --git a/public/logo/logo-kemkes-kiri.png b/public/logo/logo-kemkes-kiri.png new file mode 100644 index 0000000..d9d21ab Binary files /dev/null and b/public/logo/logo-kemkes-kiri.png differ diff --git a/resources/views/auth/index.blade.php b/resources/views/auth/index.blade.php index d64d63d..38e51ac 100644 --- a/resources/views/auth/index.blade.php +++ b/resources/views/auth/index.blade.php @@ -17,7 +17,7 @@ {{ $title }} - + diff --git a/resources/views/dashboard/layouts/main.blade.php b/resources/views/dashboard/layouts/main.blade.php index 2087c4b..e0c9e4c 100644 --- a/resources/views/dashboard/layouts/main.blade.php +++ b/resources/views/dashboard/layouts/main.blade.php @@ -19,7 +19,7 @@ - + diff --git a/resources/views/dashboard/partials/sidenav.blade.php b/resources/views/dashboard/partials/sidenav.blade.php index 2f9be18..65e11fb 100644 --- a/resources/views/dashboard/partials/sidenav.blade.php +++ b/resources/views/dashboard/partials/sidenav.blade.php @@ -77,7 +77,7 @@ diff --git a/resources/views/dashboard/pesanan/pekerjaan/index.blade.php b/resources/views/dashboard/pesanan/pekerjaan/index.blade.php index c09752d..e8f024a 100644 --- a/resources/views/dashboard/pesanan/pekerjaan/index.blade.php +++ b/resources/views/dashboard/pesanan/pekerjaan/index.blade.php @@ -18,6 +18,9 @@
+ @@ -48,6 +51,8 @@ @include('dashboard.pesanan.pekerjaan.modal.detail') @include('dashboard.pesanan.pekerjaan.modal.action') + @include('dashboard.pesanan.pekerjaan.modal.infoDataPending') + diff --git a/resources/views/dashboard/pesanan/pekerjaan/modal/infoDataPending.blade.php b/resources/views/dashboard/pesanan/pekerjaan/modal/infoDataPending.blade.php new file mode 100644 index 0000000..b74a7bb --- /dev/null +++ b/resources/views/dashboard/pesanan/pekerjaan/modal/infoDataPending.blade.php @@ -0,0 +1,23 @@ + + diff --git a/resources/views/dashboard/pesanan/pending/index.blade.php b/resources/views/dashboard/pesanan/pending/index.blade.php index 558d99c..899eba4 100644 --- a/resources/views/dashboard/pesanan/pending/index.blade.php +++ b/resources/views/dashboard/pesanan/pending/index.blade.php @@ -12,12 +12,16 @@
Konfirmasi Pesanan
+ +
@@ -48,6 +52,7 @@ {{-- @include('dashboard.pesanan.pending.modal.export') --}} @include('dashboard.pesanan.pending.offcanvas.konfirmasiPesanan') @include('dashboard.pesanan.pending.modal.actionPekerjaan') +@include('dashboard.pesanan.pending.modal.infoDataPending') diff --git a/resources/views/dashboard/pesanan/pending/modal/infoDataPending.blade.php b/resources/views/dashboard/pesanan/pending/modal/infoDataPending.blade.php new file mode 100644 index 0000000..b74a7bb --- /dev/null +++ b/resources/views/dashboard/pesanan/pending/modal/infoDataPending.blade.php @@ -0,0 +1,23 @@ + + diff --git a/resources/views/dashboard/pesanan/pending/offcanvas/konfirmasiPesanan.blade.php b/resources/views/dashboard/pesanan/pending/offcanvas/konfirmasiPesanan.blade.php index 9e58cc3..f93d42d 100644 --- a/resources/views/dashboard/pesanan/pending/offcanvas/konfirmasiPesanan.blade.php +++ b/resources/views/dashboard/pesanan/pending/offcanvas/konfirmasiPesanan.blade.php @@ -14,6 +14,9 @@
+