diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php index 57bfb7e..3a1b1a8 100644 --- a/app/Http/Controllers/CustomerController.php +++ b/app/Http/Controllers/CustomerController.php @@ -28,7 +28,7 @@ class CustomerController extends Controller public function dataOrder(){ $search = request('search'); $jenis_menu = request('jenis_menu'); - $perPage = request()->get('per_page', 12); + $perPage = request()->get('per_page', 50); $tanggal_awal = (int) request('tanggal_awal'); $tanggal_akhir = (int) request('tanggal_akhir'); @@ -57,8 +57,7 @@ class CustomerController extends Controller // Step 2: Query menu $menuQuery = DB::connection('dbOrderGizi') ->table('public.master_menu as mn') - ->where('mn.statusenabled', true); - + ->where(['mn.statusenabled' => true, 'mn.status' => true]); if (!empty($jenis_menu)) { $menuQuery->where('mn.jenis_menu', 'ILIKE', '%' . $jenis_menu . '%'); } @@ -96,7 +95,6 @@ class CustomerController extends Controller )->get(); $menuIds = $menuItems->pluck('master_menu_id')->toArray(); - if (empty($menuIds)) { return self::emptyMenuResponse($perPage); } @@ -123,26 +121,22 @@ class CustomerController extends Controller ->get() ->groupBy('master_menu_id'); - function buildGroupLabel($tglList, $isSomeday){ - if($isSomeday) return 'Menu Sameday'; + function buildGroupLabel($tglList, $isSomeday){ + if($isSomeday) return 'Menu Sameday'; - if(empty($tglList)) return '-'; - $days = collect($tglList)->map(fn($t) => substr($t, -2)) - ->unique() - ->sort() - ->values(); - $groups = []; - foreach ($days as $d) { - $lastDigit = substr($d, -1); - $groups[$lastDigit][] = $d; + if(empty($tglList)) return '-'; + + $days = collect($tglList) + ->map(fn($t) => substr($t, -2)) + ->unique() + ->sort() + ->values(); + + // Jika semua tanggal memiliki digit terakhir yang sama, gabungkan + $tanggal = implode(',', $days->toArray()); + + return 'Menu Normal Tersedia Tanggal ' . $tanggal; } - // buat label - $labels = []; - foreach ($groups as $list) { - $labels[] = 'Menu Normal Tersedia Tanggal ' . implode(',', $list); - } - return implode(' & ', $labels); - } // Step 4: Transform response $enriched = $menuItems->map(function ($menu) use ($klasifikasi, $dmph, $kkal) { diff --git a/app/Http/Controllers/MenuController.php b/app/Http/Controllers/MenuController.php index df2e2ca..6c9d69e 100644 --- a/app/Http/Controllers/MenuController.php +++ b/app/Http/Controllers/MenuController.php @@ -58,7 +58,7 @@ class MenuController extends Controller 'status' => true, 'apakah_someday' => $data['kategori_menu'] === "Menu Normal" ? false : true, 'apakah_menu_siang' => (isset($data['apakah_menu_siang']) && $data['apakah_menu_siang'] === "iya") ? true : false, - 'apakah_menu_sore' => (isset($data['apakah_menu_sore']) && $data['apakah_menu_sore'] === "iya") ? true : false, + 'apakah_menu_sore' => (isset($data['apakah_menu_sore']) && $data['apakah_menu_sore'] === "iya") ? true : false ]; if($data['foto']){ @@ -115,7 +115,6 @@ class MenuController extends Controller ]); } catch (\Throwable $th) { DB::connection('dbOrderGizi')->rollBack(); - return response()->json([ 'status' => false, 'message' => 'Menu gagal ditambahkan!', @@ -169,7 +168,7 @@ class MenuController extends Controller 'status' => true, 'apakah_someday' => request('kategori_menu') === "Menu Normal" ? false : true, 'apakah_menu_siang' => (request('apakah_menu_siang') && request('apakah_menu_siang') === "iya") ? true : false, - 'apakah_menu_sore' => (request('apakah_menu_sore') && request('apakah_menu_sore') === "iya") ? true : false, + 'apakah_menu_sore' => (request('apakah_menu_sore') && request('apakah_menu_sore') === "iya") ? true : false ]; if(request()->hasFile('foto')){ $imageName = Str::random(15) . '.' . request('foto')->getClientOriginalExtension(); @@ -235,8 +234,8 @@ class MenuController extends Controller */ public function destroy(string $id) { - $data = Menu::where(['statusenabled' => true, 'master_menu_id' => $id])->first(); - $payload = [ + $data = Menu::where(['statusenabled' => true, 'master_menu_id' => $id])->first(); + $payload = [ 'statusenabled' => false, 'pegawai_id_entry' => auth()->user()->id, 'pegawai_nama_entry' => auth()->user()->full_name, @@ -342,4 +341,18 @@ class MenuController extends Controller 'message' => 'berhasil mendapatkan data' ]); } + + public function switchMenu(string $id, $status){ + $data = Menu::where('master_menu_id', $id)->first(); + $statusResult = $status === "true" ? true : false; + + $data->update([ + 'status' => $statusResult + ]); + return response()->json([ + 'status' => true, + 'message' => 'berhasil memperbarui data' + ], 200); + + } } diff --git a/app/Http/Controllers/PesananController.php b/app/Http/Controllers/PesananController.php index 51aa947..09de531 100644 --- a/app/Http/Controllers/PesananController.php +++ b/app/Http/Controllers/PesananController.php @@ -268,6 +268,7 @@ class PesananController extends Controller $q->where('status_order', 'Lunas'); }); $tanggal = request('tanggal'); + $status = request('status'); if(!empty($tanggal)){ $flattened = is_array($tanggal[0]) ? Arr::flatten($tanggal) : $tanggal; $data->whereIn('tgl_antar', $flattened); @@ -275,6 +276,9 @@ class PesananController extends Controller $now = Carbon::now()->format('Y-m-d'); $data->where('tgl_antar', $now); } + // if($status !== "all"){ + // $data->where('status_order', $status); + // } $data = $data->get(); return response()->json([ diff --git a/app/Models/Menu.php b/app/Models/Menu.php index 548dfaa..d2ff548 100644 --- a/app/Models/Menu.php +++ b/app/Models/Menu.php @@ -28,7 +28,7 @@ class Menu extends Model 'status', 'apakah_someday', 'apakah_menu_siang', - 'apakah_menu_sore' + 'apakah_menu_sore', ]; public function klasifikasiMenuKalori(){ diff --git a/public/assets/css/demo.css b/public/assets/css/demo.css index de1e494..3abae76 100644 --- a/public/assets/css/demo.css +++ b/public/assets/css/demo.css @@ -130,3 +130,11 @@ .tagify__dropdown { z-index: 99999 !important; } +.row-disabled { + opacity: 0.5; +} + +/* Kunci interaksi di semua kolom kecuali Action */ +.row-disabled td:not(:first-child) { + pointer-events: none; +} diff --git a/public/gambar/3XWTtco35MMnkOm.jpg b/public/gambar/3XWTtco35MMnkOm.jpg new file mode 100644 index 0000000..46c1428 Binary files /dev/null and b/public/gambar/3XWTtco35MMnkOm.jpg differ diff --git a/public/gambar/FkUlOiP2ayCcmLN.png b/public/gambar/FkUlOiP2ayCcmLN.png new file mode 100644 index 0000000..a12f6e7 Binary files /dev/null and b/public/gambar/FkUlOiP2ayCcmLN.png differ diff --git a/public/gambar/JYsT1u3OO6nh65P.jpg b/public/gambar/JYsT1u3OO6nh65P.jpg new file mode 100644 index 0000000..4a53692 Binary files /dev/null and b/public/gambar/JYsT1u3OO6nh65P.jpg differ diff --git a/public/gambar/PFIxh3Ip7dHHnGV.png b/public/gambar/PFIxh3Ip7dHHnGV.png new file mode 100644 index 0000000..f1c3450 Binary files /dev/null and b/public/gambar/PFIxh3Ip7dHHnGV.png differ diff --git a/public/gambar/REZDDmhE7ldVSfH.jpg b/public/gambar/REZDDmhE7ldVSfH.jpg new file mode 100644 index 0000000..652eaab Binary files /dev/null and b/public/gambar/REZDDmhE7ldVSfH.jpg differ diff --git a/public/gambar/ZzpfD5sC5NSJ8mF.jpg b/public/gambar/ZzpfD5sC5NSJ8mF.jpg new file mode 100644 index 0000000..652eaab Binary files /dev/null and b/public/gambar/ZzpfD5sC5NSJ8mF.jpg differ diff --git a/public/gambar/iTTNxFmBk06B5aE.png b/public/gambar/iTTNxFmBk06B5aE.png new file mode 100644 index 0000000..7b35e09 Binary files /dev/null and b/public/gambar/iTTNxFmBk06B5aE.png differ diff --git a/public/gambar/odUYjkIt3BueoMr.png b/public/gambar/odUYjkIt3BueoMr.png new file mode 100644 index 0000000..7b35e09 Binary files /dev/null and b/public/gambar/odUYjkIt3BueoMr.png differ diff --git a/public/gambar/p2jZoa7Uo1U1gpz.png b/public/gambar/p2jZoa7Uo1U1gpz.png new file mode 100644 index 0000000..7b35e09 Binary files /dev/null and b/public/gambar/p2jZoa7Uo1U1gpz.png differ diff --git a/public/gambar/r2Hx6t7TtfFpwRl.png b/public/gambar/r2Hx6t7TtfFpwRl.png new file mode 100644 index 0000000..7b35e09 Binary files /dev/null and b/public/gambar/r2Hx6t7TtfFpwRl.png differ diff --git a/public/gambar/tLwK04DBgwSFXc2.jpg b/public/gambar/tLwK04DBgwSFXc2.jpg new file mode 100644 index 0000000..8c199ec Binary files /dev/null and b/public/gambar/tLwK04DBgwSFXc2.jpg differ diff --git a/public/js/menu/action.js b/public/js/menu/action.js index ef1cc16..e346102 100644 --- a/public/js/menu/action.js +++ b/public/js/menu/action.js @@ -387,8 +387,12 @@ function editMasterMenu(e) { $("#harga_karyawan_edit").val(dataOld.harga_karyawan); $("#jenis_makanan_edit").val(dataOld.jenis_menu); $("#deskripsi_edit").val(dataOld.deskripsi); + let kategoriValue = 'Menu Normal'; + if (dataOld?.apakah_someday) { + kategoriValue = 'Sameday'; + } - $(`input[name="kategori_menu"][value="${dataOld.apakah_someday ? 'Sameday' : 'Menu Normal'}"]`).prop('checked', true); + $(`input[name="kategori_menu"][value="${kategoriValue}"]`).prop('checked', true); $(`input[name="apakah_menu_siang"][value="${dataOld.apakah_menu_siang ? 'iya' : ''}"]`).prop('checked', true); $(`input[name="apakah_menu_sore"][value="${dataOld.apakah_menu_sore ? 'iya' : ''}"]`).prop('checked', true); @@ -601,9 +605,10 @@ function detailMasterMenu(e){ const sore = el.data('apakah_menu_sore'); const kalori = JSON.parse(decodeURIComponent(el.data('kalori'))) - const kaloriMenu = kalori.map(kal => ` + + const kaloriMenu = kalori.length > 0 && kalori.every(item => item.kalori_id !== null) ? kalori.map(kal => ` ${kal.nilai_kalori} (kkal) - `).join(''); + `).join('') :'-'; const tags = JSON.parse(decodeURIComponent(el.data('klasifikasi_menu'))); const klasifikasiMenu = tags.map(tag => ` @@ -615,7 +620,7 @@ function detailMasterMenu(e){
Kalori:
- ${kaloriMenu || '-'} + ${kaloriMenu}