import { currentUser, users } from "./account.js"; import { renderCart, saveCart } from "./cart.js"; import { cart, emptyCart, occupiedSeatsData } from "./main.js"; function formatCheckoutEuro(value: number) { return `${Number(value || 0).toFixed(2).replace(".", ",")} EUR`; } let selectedPaymentMethod = ""; let checkoutEventsBound = false; function setCheckoutStep(step: number) { const step1 = document.getElementById("checkout-step-1"); const step2 = document.getElementById("checkout-step-2"); const step3 = document.getElementById("checkout-step-3"); step1?.classList.toggle("hidden", step !== 1); step2?.classList.toggle("hidden", step !== 2); step3?.classList.toggle("hidden", step !== 3); const line1 = document.getElementById("line-1"); const line2 = document.getElementById("line-2"); const indicator1 = document.getElementById("step-1-indicator"); const indicator2 = document.getElementById("step-2-indicator"); const indicator3 = document.getElementById("step-3-indicator"); indicator1?.classList.add("active"); indicator2?.classList.toggle("active", step >= 2); indicator3?.classList.toggle("active", step >= 3); line1?.classList.toggle("active", step >= 2); line2?.classList.toggle("active", step >= 3); } export function renderCheckout() { const summaryList = document.getElementById("checkout-summary-list"); const totalDisplay = document.getElementById("checkout-total-display"); const vatDisplay = document.getElementById("checkout-vat-display"); const nextButton = document.getElementById("btn-next-step-2"); if (!summaryList) { return; } summaryList.innerHTML = ""; const safeCart = Array.isArray(cart) ? cart : []; const total = safeCart.reduce((sum, item) => sum + Number(item.price || 0), 0); const vat = total - total / 1.19; safeCart.forEach((item) => { const row = document.createElement("div"); row.style.cssText = "display:flex; justify-content:space-between; gap:12px; margin-bottom:10px; font-size:0.95rem;"; const infoText = item.category === "movie" ? `Sitz ${item.seatId || "-"} | ${item.hall || "-"} | ${item.time || "-"} Uhr` : `${item.time || "Standard"} | ${item.hall || "-"}`; row.innerHTML = `${item.title} (${infoText})${formatCheckoutEuro(item.price)}`; summaryList.appendChild(row); }); if (totalDisplay) { totalDisplay.innerText = `Gesamtbetrag: ${formatCheckoutEuro(total)}`; } if (vatDisplay) { vatDisplay.innerText = `inkl. 19% MwSt: ${formatCheckoutEuro(vat)}`; } selectedPaymentMethod = ""; document.querySelectorAll(".payment-method").forEach((method) => { method.classList.remove("selected"); }); nextButton?.classList.add("hidden"); setCheckoutStep(1); } function generateTicket() { const ticketContainer = document.getElementById("ticket-container"); if (!ticketContainer) { return; } const moviesInCart = (Array.isArray(cart) ? cart : []).filter((item) => item.category === "movie"); if (!moviesInCart.length) { ticketContainer.innerHTML = "
Danke fuer deinen Einkauf!
"; return; } const mainMovie = moviesInCart[0]; const matchingMovieSeats = moviesInCart .filter((item) => item.title === mainMovie.title && item.time === mainMovie.time) .map((item) => item.seatId) .join(", "); const qrData = encodeURIComponent(`EAGLE-IMAX|${mainMovie.title}|${mainMovie.hall}|${matchingMovieSeats}`); const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${qrData}&bgcolor=ffffff`; ticketContainer.innerHTML = /*html*/`SAAL ${mainMovie.hall}
ZEIT ${mainMovie.time} Uhr
SITZE ${matchingMovieSeats || "-"}