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';
});
}