let orderIndex = 0; function addOrderRow(data = {}) { orderIndex++; const html = `
`; $('#order_input_wrapper').append(html); } function removeOrderRow(index) { $(`#order_input_wrapper [data-row="${index}"]`).remove(); } function renderCartList() { $("#cartSidebar").offcanvas('show') $('#floatingCartButton').addClass('d-none'); const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); let total = 0; const html = cart.map(item => { const hargaNum = parseInt(item.harga.replace(/[^\d]/g, '')); let pesananHTML = ''; item.pesanan.forEach((p, i) => { pesananHTML += `
`; }); const itemTotal = item.pesanan.reduce((sum, p) => sum + (p.jumlah * hargaNum), 0); total += itemTotal; return `
${item.nama_menu}
${item.harga}
${pesananHTML}
Total: Rp ${itemTotal.toLocaleString('id-ID')}
`; }).join(''); $('#cartListContainer').html(html); $('#cartTotal').text('Rp ' + total.toLocaleString('id-ID')); } function addOrderDate(itemId) { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const item = cart.find(i => i.id === itemId); if (item) { item.pesanan.push({ tgl: '', jumlah: 1 }); sessionStorage.setItem('cart', JSON.stringify(cart)); renderCartList(); } } function removeOrderDate(itemId, index) { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const item = cart.find(i => i.id === itemId); if (item && item.pesanan.length > index) { item.pesanan.splice(index, 1); sessionStorage.setItem('cart', JSON.stringify(cart)); renderCartList(); } } function removeCartItem(itemId){ let cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); cart = cart.filter(i => i.id !== itemId); sessionStorage.setItem('cart', JSON.stringify(cart)); updateCartCount(cart.length); renderCartList() } function onJumlahChange(itemId, index) { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const jumlahInput = document.querySelector(`div[data-item-id='${itemId}'][data-index='${index}'] .jumlah-input`).value; if (!isNaN(jumlahInput)) { cart.forEach(item => { if (item.id === itemId) { item.pesanan[index].jumlah = parseInt(jumlahInput); } }); sessionStorage.setItem('cart', JSON.stringify(cart)); renderCartList(); } } function onTanggalChange(itemId, index) { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const tanggalInput = document.querySelector(`div[data-item-id='${itemId}'][data-index='${index}'] .tanggal-input`).value; cart.forEach(item => { if (item.id === itemId) { item.pesanan[index].tgl = tanggalInput; } }); sessionStorage.setItem('cart', JSON.stringify(cart)); validateCheckoutButton(); } function onKategoriChange(itemId, index) { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const item = cart.find(i => i.id === itemId); if (!item) return; const kategori = $(`[data-item-id='${itemId}'][data-index='${index}'] .kategori-pemesanan-input`).val(); item.pesanan[index].kategoriPemesanan = kategori; sessionStorage.setItem('cart', JSON.stringify(cart)); } function renderCartTotalOnly() { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); let total = 0; cart.forEach(item => { const hargaNum = parseInt(item.harga.replace(/[^\d]/g, '')); const itemTotal = item.pesanan.reduce((sum, p) => sum + (p.jumlah * hargaNum), 0); total += itemTotal; }); $('#cartTotal').text('Rp ' + total.toLocaleString('id-ID')); } function updateFloatingCartButton() { const cart = JSON.parse(sessionStorage.getItem('cart') || '[]'); const totalItem = cart.reduce((sum, item) => { return sum + item.pesanan.reduce((s, p) => s + p.jumlah, 0); }, 0); const totalHarga = cart.reduce((sum, item) => { const harga = parseInt(item.harga.replace(/[^\d]/g, '')); return sum + item.pesanan.reduce((s, p) => s + (p.jumlah * harga), 0); }, 0); if (cart.length > 0) { $('#floatingCartButton').removeClass('d-none'); $('#floatingCartCount').text(totalItem); $('#floatingCartTotal').text('Rp ' + totalHarga.toLocaleString('id-ID')); $('#floatingCartDesc').text(`Total pesanan dari ${cart[0].nama_menu}`); } else { $('#floatingCartButton').addClass('d-none'); } }