$(document).ready(function () { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); if (cart.length > 0) { $('#floatingCartButton').removeClass('d-none'); } }); function fetchMenu(filter = {}) { const containerGuest = $("#order_guest_id"); if(filter.jenis_menu === "konsultasi"){ const jadwalList = [ { nama_dokter: "dr. Andi exp, Sp.A", spesialis: "Spesialis Anak", hari: "Senin - Rabu", jam: "08.00 - 11.00" }, { nama_dokter: "dr. Siti exp, Sp.GK", spesialis: "Spesialis Gizi Klinik", hari: "Kamis - Jumat", jam: "09.00 - 12.00" }, { nama_dokter: "dr. Dimas exp, Sp.PD", spesialis: "Spesialis Penyakit Dalam", hari: "Sabtu", jam: "10.00 - 13.00" } ]; let html = `

Jadwal Konsultasi

`; jadwalList.forEach(jadwal => { html += `
${jadwal.nama_dokter}

${jadwal.spesialis}

Hari: ${jadwal.hari}

Jam: ${jadwal.jam}

`; }); html += `
`; return containerGuest.html(html); } let params = new URLSearchParams({ page: filter.page || 1, per_page: filter.per_page || 12, search: filter.search || '', jenis_menu: filter.jenis_menu || '' }).toString(); containerGuest.html('

Memuat data....

'); fetch(`/datamenu?${params}`) .then(res => res.json()) .then(res => { if (!res.status){ return containerGuest.html('

Gagal Memuat Data...

'); } const session = JSON.parse(sessionStorage.getItem('customerData') || '{}') let cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); if(cart.length > 0){ updateCartCount(cart.length) } if(session.nama_customer){ $("#welcomeMessage").html(`Selamat Datang, ${session.nama_customer} !`) } const menus = res.data.data || []; if (menus.length === 0){ return containerGuest.html('

.

'); } let html = '
'; menus.forEach(menu => { html += `
${menu.nama_menu}
${ menu.apakah_someday ? ` Tersedia setiap hari (Senin - Minggu)` : (menu.dmph && menu.dmph.length > 0 ? ` Tersedia pada tanggal: ${menu.dmph.slice(0, 5).map(i => i.tgl_harian).join(', ')} ${menu.dmph.length > 5 ? ` dan ${menu.dmph.length - 5} lainnya...` : ''}` : ` Tidak tersedia saat ini`) }
${ menu.apakah_menu_siang && menu.apakah_menu_sore ? ` Tersedia untuk makan siang dan sore` : menu.apakah_menu_siang ? ` Tersedia untuk makan siang` : menu.apakah_menu_sore ? ` Tersedia untuk makan sore` : ` Tidak tersedia untuk waktu makan apapun` }
${ menu.apakah_someday ? `Menu Someday ` : `Menu Normal ` }
${menu.nama}
Harga
Karyawan:
Rp ${parseInt(menu.harga_karyawan).toLocaleString('id-ID')}
Keluarga Pasien:
Rp ${parseInt(menu.harga_keluarga_pasien).toLocaleString('id-ID')}
${(menu.klasifikasiMenu || []) .slice(0, 2) .map(tag => { const name = tag.nama_kategori_diet || ''; const truncated = name.length > 12 ? name.substring(0, 12) + '...' : name; return `${truncated}`; }).join('')} ${(menu.klasifikasiMenu || []).length > 2 ? `+${(menu.klasifikasiMenu.length - 2)} lainnya` : ''}
`; }); html += '
'; html += `
`; if(res.data.total > 12){ html +=`
` } // Pagination buttons if (res.data.last_page > 1) { html += `
`; for (let i = 1; i <= res.data.last_page; i++) { html += ` `; } html += `
`; } containerGuest.html(html); }) .catch(err => { containerGuest.html('

Terjadi kesalahan saat memuat data.

'); console.error(err); }); } const modalCheckout = $("#checkoutModal") function orderMenu(e){ const klasifikasiStr = $(e).data('klasifikasi_menu') || ''; const tags = klasifikasiStr.split(',').map(tag => tag.trim()).filter(tag => tag !== '') const klasifikasiMenu =tags.map(tag => ` ${tag} `).join(''); modalCheckout.modal("show") $('#cathering_order_photo').attr('src', `/gambar/${$(e).data('foto')}`) $('#cathering_order_name').text($(e).data('nama_menu')) $('#cathering_order_menu_id').text($(e).data('id')) $('#cathering_order_jenis_menu').text($(e).data('jenis_menu')) $('#cathering_order_deskripsi').text($(e).data('deskripsi')) $('#cathering_order_price_keluarga_pasien').text("Rp " + parseInt($(e).data('harga_keluarga_pasien')).toLocaleString('id-ID')) $('#cathering_order_price_karyawan').text("Rp " + parseInt($(e).data('harga_karyawan')).toLocaleString('id-ID')) $("#tag_klasifikasi_menu").html(klasifikasiMenu) } function updateCartCount(count) { const $cartCount = $('#cartCount'); if (count > 0) { $cartCount.text(count).show(); let cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); let menuNames = cart.map(item => item.nama_menu).join(', '); const maxLength = 50; if (menuNames.length > maxLength) { menuNames = menuNames.substring(0, maxLength).trim() + '...'; } $('#floatingCartButton').removeClass('d-none'); $('#floatingCartCount').text(cart.length); $('#floatingCartDesc').text(menuNames); $("#scroll-top").addClass('d-none'); } else { $cartCount.hide(); $('#floatingCartButton').addClass('d-none'); } } function parseRupiahToNumber(rpText) { return parseInt(rpText.replace(/[^\d]/g, ''), 10) || 0; } $("#checkoutForm").on('submit', function(e){ e.preventDefault(); let cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const now = new Date(); const todayFormatted = now.getFullYear() + '-' + (now.getMonth() + 1).toString().padStart(2, '0') + '-' + now.getDate().toString().padStart(2, '0') const orders = [{ tgl: todayFormatted, jumlah: 1, kategoriPemesanan: '' }]; let idText = $("#cathering_order_menu_id").text().trim(); let idMenu = parseInt(idText.replace(/[^\d]/g, ''), 10); let foto = $('#cathering_order_photo').attr('src') let resultFoto = foto.replace('/gambar', ''); let namaMenu = $("#cathering_order_name").text(); let existingItem = cart.find(item => item.id_menu === idMenu && item.nama_menu === namaMenu); if(existingItem){ orders.forEach(newOrder => { const existingOrder =existingItem.pesanan.find(p => p.tgl === newOrder.tgl) if(existingOrder){ existingOrder.jumlah += newOrder.jumlah; }else{ existingItem.pesanan.push(newOrder) } }) }else{ const orderItem ={ id:Date.now(), id_menu : $("#cathering_order_menu_id").text(), nama_menu : $("#cathering_order_name").text(), harga_karyawan : parseRupiahToNumber($("#cathering_order_price_karyawan").text()), harga_kp : parseRupiahToNumber($("#cathering_order_price_keluarga_pasien").text()), foto: resultFoto, jenis_menu: $('#cathering_order_jenis_menu').text(), deskripsi:$("#cathering_order_deskripsi").text(), pesanan : orders } cart.push(orderItem) } sessionStorage.setItem('cart', JSON.stringify(cart)) updateCartCount(cart.length) modalCheckout.modal('hide') }) function saveItem(e){ let cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const now = new Date(); const todayFormatted = now.getFullYear() + '-' + (now.getMonth() + 1).toString().padStart(2, '0') + '-' + now.getDate().toString().padStart(2, '0') const orders = [{ tgl: todayFormatted, jumlah: 1, kategoriPemesanan: '' }]; let idMenu = $(e).data('id'); let namaMenu = $(e).data('nama_menu'); let existingItem = cart.find(item => item.id_menu === idMenu && item.nama_menu === namaMenu); if(existingItem){ orders.forEach(newOrder => { const existingOrder =existingItem.pesanan.find(p => p.tgl === newOrder.tgl) if(existingOrder){ existingOrder.jumlah += newOrder.jumlah; }else{ existingItem.pesanan.push(newOrder) } }) }else{ const orderItem ={ id:Date.now(), id_menu : idMenu, nama_menu : namaMenu, harga_karyawan : $(e).data('harga_karyawan'), harga_kp : $(e).data('harga_keluarga_pasien'), foto: $(e).data('foto'), jenis_menu: $(e).data('jenis_menu'), deskripsi: $(e).data('deskripsi'), pesanan : orders } cart.push(orderItem) } sessionStorage.setItem('cart', JSON.stringify(cart)) updateCartCount(cart.length) } function checkout(){ const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); if(cart.length > 0){ window.location.href = '/checkout' }else{ alert("Pilih Menu terlebih dahulu yang ingin dipesan !"); return } }