This commit is contained in:
JokoPrasetio 2025-07-29 00:29:38 +07:00
parent b9b22a2848
commit 9dcbfe87fd
4 changed files with 57 additions and 3 deletions

View File

@ -56,7 +56,10 @@ class CustomerController extends Controller
'mn.harga_karyawan',
'mn.harga_keluarga_pasien',
'mn.status',
'mn.deskripsi'
'mn.deskripsi',
'mn.apakah_someday',
'mn.apakah_menu_siang',
'mn.apakah_menu_sore',
)
->paginate($perPage);
$menuIds = collect($paginated->items())->pluck('master_menu_id')->toArray();
@ -70,8 +73,15 @@ class CustomerController extends Controller
->get()
->groupBy('master_menu_id');
$dmph = DB::connection('dbOrderGizi')
->table('public.detail_menu_paket_harian as dmph')
->whereIn('dmph.master_menu_id', $menuIds)
->select('dmph.master_menu_id', 'dmph.tgl_harian')
->get()
->groupBy('master_menu_id');
// Step 3: Gabungkan data menu + klasifikasi
$result = collect($paginated->items())->map(function ($menu) use ($klasifikasi) {
$result = collect($paginated->items())->map(function ($menu) use ($klasifikasi, $dmph) {
return [
'master_menu_id' => $menu->master_menu_id,
'nama' => $menu->nama_menu,
@ -82,12 +92,20 @@ class CustomerController extends Controller
'harga_keluarga_pasien' => $menu->harga_keluarga_pasien,
'status' => $menu->status,
'deskripsi' => $menu->deskripsi,
'apakah_someday' => $menu->apakah_someday,
'apakah_menu_sore' => $menu->apakah_menu_sore,
'apakah_menu_siang' => $menu->apakah_menu_siang,
'klasifikasiMenu' => isset($klasifikasi[$menu->master_menu_id]) ? $klasifikasi[$menu->master_menu_id]->map(function ($item) {
return [
'kategori_diet_id' => $item->kategori_diet_id,
'nama_kategori_diet' => $item->nama_kategori_diet,
];
})->values() : [],
'dmph' => isset($dmph[$menu->master_menu_id]) ? $dmph[$menu->master_menu_id]->map(function ($item) {
return [
'tgl_harian' => $item->tgl_harian,
];
})->values() : [],
];
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@ -82,6 +82,8 @@
if (menus.length === 0){
return containerGuest.html('<p class="text-muted">.</p>');
}
let html = '<div class="container"><div class="row row-cols-1 row-cols-md-2 g-4">';
menus.forEach(menu => {
html += `
@ -91,7 +93,41 @@
<img src="gambar/${menu.foto || '3.jpeg'}"
class="rounded shadow-sm object-fit-cover" height="150px"
alt="${menu.nama_menu}">
<!-- Info Tersedia Tanggal -->
<div class="text-muted small mt-2 px-1">
${
menu.apakah_someday
? `<i class="fa fa-calendar-check me-1 text-success"></i> Tersedia setiap hari (Senin - Minggu)`
: (menu.dmph && menu.dmph.length > 0
? `<i class="fa fa-calendar-alt me-1 text-success"></i> Tersedia pada tanggal:
${menu.dmph.slice(0, 5).map(i => i.tgl_harian).join(', ')}
${menu.dmph.length > 5 ? ` dan ${menu.dmph.length - 5} lainnya...` : ''}`
: `<i class="fa fa-calendar-times me-1 text-danger"></i> Tidak tersedia saat ini`)
}
</div>
<!-- Ketersediaan Siang/Sore -->
<div class="text-muted small mt-1 px-1">
${
menu.apakah_menu_siang && menu.apakah_menu_sore
? `<i class="fa fa-clock me-1 text-success"></i> Tersedia untuk makan siang dan sore`
: menu.apakah_menu_siang
? `<i class="fa fa-sun me-1 text-warning"></i> Tersedia untuk makan siang`
: menu.apakah_menu_sore
? `<i class="fa fa-moon me-1 text-primary"></i> Tersedia untuk makan sore`
: `<i class="fa fa-ban me-1 text-danger"></i> Tidak tersedia untuk waktu makan apapun`
}
</div>
<div class="text-muted small">
${
menu.apakah_someday
? `<span class="badge bg-success ms-2 tx" title="Tersedia setiap hari">Menu Someday</span>
`
: `<span class="badge bg-warning text-dark ms-2" title="Hanya tersedia di tanggal tertentu">Menu Normal</span>
`
}
</div>
<!-- Nama & Harga -->
<h5 class="fw-bold mb-1 mt-2">${menu.nama}</h5>
<div class="row text-muted small">
@ -116,7 +152,7 @@
? `<span class="badge bg-secondary">+${(menu.klasifikasiMenu.length - 2)} lainnya</span>`
: ''}
</div>
<!-- Tombol Order -->
<div class="d-flex p-2 mt-auto">
<button class="btn btn-outline-success w-50 me-2"