// Datum auf heute und vor 7 Tagen setzen function initializeDates() { const today = new Date(); const weekAgo = new Date(); weekAgo.setDate(today.getDate() - 7); document.getElementById('endDate').valueAsDate = today; document.getElementById('startDate').valueAsDate = weekAgo; } // Datum formatieren function formatDate(dateString) { const date = new Date(dateString); return date.toLocaleString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit' }); } // Zahl formatieren function formatNumber(num) { return new Intl.NumberFormat('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(num); } // Formular absenden document.getElementById('verbrauchForm').addEventListener('submit', async (e) => { e.preventDefault(); // Ausgewählte Collections sammeln const checkboxes = document.querySelectorAll('.checkbox-group input[type="checkbox"]:checked'); const selectedCollections = Array.from(checkboxes).map(cb => cb.value); if (selectedCollections.length === 0) { alert('Bitte wählen Sie mindestens eine Collection aus.'); return; } const startDate = document.getElementById('startDate').value; const endDate = document.getElementById('endDate').value; const resultsDiv = document.getElementById('results'); resultsDiv.innerHTML = '
Lade Daten...
'; try { const collectionsParam = selectedCollections.join(','); const response = await fetch( `/api/verbrauch?collections=${collectionsParam}&startDate=${startDate}&endDate=${endDate}` ); if (!response.ok) { throw new Error('Fehler beim Abrufen der Daten'); } const data = await response.json(); displayResults(data); } catch (error) { resultsDiv.innerHTML = `
Fehler: ${error.message}
`; } }); // Ergebnisse anzeigen function displayResults(data) { const resultsDiv = document.getElementById('results'); if (data.verbraucher.length === 0) { resultsDiv.innerHTML = `
Keine Daten für den gewählten Zeitraum gefunden.
`; return; } // Gesamtverbrauch berechnen const gesamtVerbrauch = data.verbraucher.reduce((sum, v) => sum + v.verbrauch, 0); let html = `
Zeitraum: ${formatDate(data.zeitraum.von)} - ${formatDate(data.zeitraum.bis)}
Collections: ${data.collections.join(', ')}
Anzahl Verbraucher: ${data.verbraucher.length}
`; data.verbraucher.forEach(v => { html += ` `; }); html += `
Collection Verbraucher Anfangswert (Wh) Anfangszeit Endwert (Wh) Endzeit Verbrauch (Wh) Verbrauch (kWh)
${v.collection} ${v.verbraucher} ${formatNumber(v.anfangsWert)} ${formatDate(v.anfangsZeit)} ${formatNumber(v.endWert)} ${formatDate(v.endZeit)} ${formatNumber(v.verbrauch)} ${formatNumber(v.verbrauch / 1000)}
Gesamtverbrauch: ${formatNumber(gesamtVerbrauch / 1000)} kWh
`; resultsDiv.innerHTML = html; } // Beim Laden initialisieren window.addEventListener('DOMContentLoaded', () => { initializeDates(); });