$(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.spesialis}
Hari: ${jadwal.hari}
Jam: ${jadwal.jam}
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 = '
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 } }