/* Powermieter — Screen 3: Vertragsabschluss */ const TARIF = { arbeitspreis: 28.9, grundpreis: 8.90, gv_arbeit: 36.5, gv_grund: 11.90, laufzeit: '12 Monate', kuendigung: '1 Monat', solar: 73 }; function eur(n) { return n.toLocaleString('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } function Screen3({ form, set, errors, onNext, onBack, device, model = 'mieterstrom', tweaks = {} }) { const mobile = device === 'mobile'; const mdl = VERTRAGSMODELLE[model] || VERTRAGSMODELLE.mieterstrom; const [iban, setIban] = React.useState(''); const [sepaOk, setSepaOk] = React.useState(false); const verbrauch = parseInt(String(form.verbrauch).replace(/\D/g, '')) || 2500; const jahrPM = verbrauch * TARIF.arbeitspreis / 100 + 12 * TARIF.grundpreis; const jahrGV = verbrauch * TARIF.gv_arbeit / 100 + 12 * TARIF.gv_grund; const ersparnis = Math.max(0, Math.round((jahrGV - jahrPM) / 5) * 5); const name = [form.vorname, form.nachname].filter(Boolean).join(' ') || 'Max Mustermann'; const adr = [form.strasse + ' ' + form.hausnr, [form.plz, form.ort].filter(Boolean).join(' ')].filter(s => s.trim()).join(', ') || 'Musterstraße 12, 10115 Berlin'; const lb = form.lieferbeginnTyp === 'fruehest' || !form.lieferbeginn ? 'Schnellstmöglich' : new Date(form.lieferbeginn).toLocaleDateString('de-DE'); const [codeMode, setCodeMode] = React.useState('code'); const [code, setCode] = React.useState(['', '', '', '', '', '']); const [sig, setSig] = React.useState(''); const [signOpen, setSignOpen] = React.useState(false); const canSign = form.v_agb && form.v_widerruf && form.v_digital; const openSign = () => { if (canSign) setSignOpen(true); else onNext(); }; const Tariff = (
Powermieter Lokalstrom
{eur(TARIF.arbeitspreis).replace(',00','')}ct/kWh · Arbeitspreis
{TARIF.solar}% Solar Reststrom inkl.
Grundpreis{eur(TARIF.grundpreis)} € / Monat
Vertragslaufzeit{TARIF.laufzeit}
Kündigungsfrist{TARIF.kuendigung}
Lieferbeginn{lb}
AbrechnungMonatlich
); const Savings = (
Ihr Vorteil pro Jahr
Gegenüber dem Grundversorgungstarif bei {verbrauch.toLocaleString('de-DE')} kWh/Jahr.
≈ {ersparnis} €
{eur(jahrPM)} € statt {eur(jahrGV)} €
); return (

Ihr Vertrag im Überblick

Prüfen Sie alle Angaben in Ruhe. Es entstehen keine versteckten Kosten. Erst mit Ihrer Bestätigung wird der Vertrag wirksam.

Ihre Wohnung wurde für Powermieter vorbereitet
Ihre Hausverwaltung hat {OBJEKT.name} für {mdl.label} ({mdl.legal}) freigegeben. Sie bestätigen nur noch Ihre Teilnahme — freiwillig und jederzeit kündbar.
{mdl.kurz}
{/* MAIN */}
{/* Mobile-only tariff + savings on top */} {mobile && <>{Tariff}{Savings}} {/* Review summary */}

Ihre Daten

Name{name}
E-Mail{form.email || 'max@beispiel.de'}
Adresse{adr}
Zählernummer{form.zaehlerUnbekannt ? 'Wird ermittelt' : (form.zaehler || '1 ESY 0123 4567')}
Jahresverbrauch{verbrauch.toLocaleString('de-DE')} kWh
Lieferbeginn{lb}
{/* Animated savings comparison */} {/* Vorteilsbox */}

Ihr Vorteil mit Powermieter

  • Sie nutzen lokal erzeugten Solarstrom direkt aus Ihrem Gebäude.
  • Sie erhalten eine transparente, digitale Abrechnung — monatlich nachvollziehbar.
  • Ihre Versorgung bleibt jederzeit gesichert, auch wenn die Sonne nicht scheint.
  • Sie unterstützen die Energiewende direkt in Ihrem eigenen Haus.
  • Sie sehen Ihren Verbrauch und Solaranteil später jederzeit im Portal.
{/* Legal accordion */}

Vertragsdokumente

Alle als PDF
{[ ['Allgemeine Geschäftsbedingungen (AGB)', 'Die vollständigen AGB regeln Rechte und Pflichten beider Seiten. Sie können das Dokument jederzeit als PDF herunterladen und in Ruhe lesen.'], [model === 'ggv' ? 'Teilnahme- & Verteilvereinbarung (gGV)' : 'Stromliefervertrag', model === 'ggv' ? 'Regelt Ihre Teilnahme an der gemeinschaftlichen Gebäudeversorgung (§ 42b EnWG) und die Verteilung des lokal erzeugten Stroms — ohne separaten Liefervertrag.' : 'Hier sind Tarif, Laufzeit, Preise und Lieferbedingungen verbindlich festgehalten — genau so, wie oben in der Tarifkarte angezeigt.'], ['Preisblatt', `Arbeitspreis ${eur(TARIF.arbeitspreis).replace(',00','')} ct/kWh, Grundpreis ${eur(TARIF.grundpreis)} € pro Monat. Alle Preise inkl. Steuern und Abgaben. Keine zusätzlichen Gebühren.`], ['Widerrufsbelehrung', 'Sie können diesen Vertrag innerhalb von 14 Tagen ohne Angabe von Gründen in Textform widerrufen. Die Frist beginnt mit Vertragsabschluss.'], ['Datenschutzinformation', 'Wir verarbeiten Ihre Daten ausschließlich zur Vertragserfüllung. Keine Weitergabe an Dritte zu Werbezwecken.'], ].map(([q, a], i) => {a})}
{/* Consent checkboxes */}

Ihre Bestätigung

set('v_agb', v)}>Ich akzeptiere die Vertragsbedingungen und das Preisblatt.
set('v_widerruf', v)}>Ich habe die Widerrufsbelehrung gelesen und zur Kenntnis genommen.
set('v_digital', v)}>Ich stimme der digitalen Kommunikation und Vertragszustellung per E-Mail zu.
{/* SEPA mandate */}

SEPA-Lastschriftmandat

{sepaOk && erteilt}

Die monatliche Abrechnung wird bequem per SEPA-Lastschrift eingezogen. Sie können das Mandat jederzeit widerrufen.

setIban(e.target.value)} style={{ fontFamily: 'var(--font-mono)' }} />
Ich ermächtige Powermieter, Zahlungen per SEPA-Lastschrift einzuziehen, und weise mein Kreditinstitut an, die Lastschriften einzulösen.
{/* Digital abschließen — Aufruf des Signatur-Screens */}

Vertrag digital abschließen

Im nächsten Schritt unterzeichnen Sie {model === 'ggv' ? 'die Teilnahme- & Verteilvereinbarung' : 'Ihren Teilnahme- & Stromliefervertrag'} digital — per Unterschrift oder getipptem Namen. 14 Tage Widerrufsrecht inklusive.

{!mobile && (
)}
{/* RAIL */} {!mobile && ( )}
{/* Mobile bottom CTA */} {mobile && (
Ihr Vorteil / Jahr≈ {ersparnis} €
)} {signOpen && window.SigningScreen && ( setSignOpen(false)} onDone={() => { setSignOpen(false); onNext(); }} /> )}
); } Object.assign(window, { Screen3 });