function changeCake(id, name, price, delta) { var input = document.querySelector('[name="cake[' + id + ']"]'); if (input != null) { var qty = Number(input.value) + delta; if (qty <= 0) { var item = input.closest('.summary-item'); if (item) item.remove(); updateTotals(); updateCatalogueQty(id, 0); return; } input.value = qty; var item = input.closest('.summary-item'); item.querySelector('.cake-qty').innerText = qty; item.querySelector('.cake-total').innerText = (price * qty) + ' PLN'; updateTotals(); updateCatalogueQty(id, qty); return; } if (delta <= 0) return; var item = document.createElement('div'); item.className = 'summary-item'; item.setAttribute('data-cake-id', id); item.innerHTML = '
' + '
' + name + '
' + '
' + price + ' PLN × 1
' + '
' + '
' + price + ' PLN
' + '' + ''; document.getElementById('basket_items').appendChild(item); updateTotals(); updateCatalogueQty(id, 1); } function removeCake(btn) { var item = btn.closest('.summary-item'); var id = item.getAttribute('data-cake-id'); item.remove(); updateTotals(); updateCatalogueQty(id, 0); } function updateTotals() { var subtotal = 0; var items = document.querySelectorAll('#basket_items .summary-item'); items.forEach(function(item) { var priceText = item.querySelector('.cake-price').innerText; var price = Number(priceText.split(' ')[0]); var qty = Number(item.querySelector('.cake-qty').innerText); subtotal += price * qty; }); var paid = Number(document.querySelector('[name="paid"]')?.value || 0); document.getElementById('subtotal-price').innerText = subtotal + ' PLN'; document.getElementById('paid-amount').innerText = paid + ' PLN'; document.getElementById('total-price').innerText = (subtotal - paid) + ' PLN'; } function updateCatalogueQty(id, qty) { var el = document.getElementById('qty-' + id); if (el) el.innerText = qty; } function filterCatalogue(input) { var query = input.value.toLowerCase(); var items = document.querySelectorAll('.catalogue-item'); items.forEach(function(item) { var name = item.getAttribute('data-name').toLowerCase(); item.style.display = name.includes(query) ? '' : 'none'; }); }