From d9dfa18e28d024e1d63f874b50560be77f539b6e Mon Sep 17 00:00:00 2001
From: Jens Cornelsen <79703163+IB-Cornelsen@users.noreply.github.com>
Date: Sat, 15 Mar 2025 22:27:06 +0100
Subject: [PATCH] E-Mail Text Registrierung und Speicherung
---
src/lib/server/mail/registrierung.ts | 38 ++-
.../DatenblattVerbrauchsausweisWohnen.svelte | 232 ++++++++++++++++++
...blatt-verbrauchsausweis-wohngebaeude.astro | 111 +++++++++
src/pages/speichern-erfolgreich.astro | 42 +++-
4 files changed, 397 insertions(+), 26 deletions(-)
create mode 100644 src/modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte
create mode 100644 src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/datenblatt-verbrauchsausweis-wohngebaeude.astro
diff --git a/src/lib/server/mail/registrierung.ts b/src/lib/server/mail/registrierung.ts
index 1b4b8ef2..445f3f14 100644
--- a/src/lib/server/mail/registrierung.ts
+++ b/src/lib/server/mail/registrierung.ts
@@ -20,18 +20,30 @@ export async function sendRegisterMail(
to: user.email,
subject: `Ihre Registrierung bei IBCornelsen`,
bcc: "info@online-energieausweis.org",
- text: `Hallo ${user.vorname},
-
-vielen Dank für Ihre Registrierung bei IBCornelsen! Ihr Benutzerkonto wurde erfolgreich erstellt.
-
-Um Ihre Registrierung abzuschließen, klicken Sie bitte auf den folgenden Link, um Ihre E-Mail-Adresse zu bestätigen:
-https://${BASE_URI}/auth/verify?t=${verificationJwt}
-
-Falls Sie diese Registrierung nicht durchgeführt haben, ignorieren Sie bitte diese E-Mail. Bei Fragen oder Problemen steht Ihnen unser Support-Team jederzeit zur Verfügung.
-
-Wir freuen uns, Sie beim IBC willkommen zu heißen!
-
-Mit freundlichen Grüßen
-Ihr IBCornelsen-Team`
+ html: `
Sehr geehrte*r ${user.vorname} ${user.name},
+ vielen Dank für Ihre Registrierung bei IBCornelsen. Ihr Benutzerkonto wurde erfolgreich erstellt.
+
+ Um Ihre Registrierung abzuschließen, klicken Sie bitte auf den folgenden Link, um Ihre E-Mail-Adresse zu bestätigen:
+
+ E-Mail-Adresse bestätigen
+
+ Mit freundlichen Grüßen,
+
+ Dipl.-Ing. Jens Cornelsen
+
+
+ IB Cornelsen
+
+ Katendeich 5A
+
+ 21035 Hamburg
+
+ www.online-energieausweis.org
+
+
+ fon 040 · 209339850
+
+ fax 040 · 209339859
+
`
});
}
diff --git a/src/modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte b/src/modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte
new file mode 100644
index 00000000..2b83ecbf
--- /dev/null
+++ b/src/modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte
@@ -0,0 +1,232 @@
+
+
+
+
+ A. Prüfung der Ausweisart
+
+
+ -
+ Anlass: Verkauf
+
+ -
+ Gebäudetyp: Einfamilienhaus
+
+ -
+ Anzahl Wohnungen: 1
+
+ -
+ Sanierungsstatus: saniert
+
+ -
+ Baujahr: 1990
+
+ -
+ Baujahr Heizung: 1995
+
+
+
+
+
+
+
+ B. Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller
+ und Dachgeschoss
+
+
+ -
+ Straße, Hausnummer: Musterstraße 1
+
+ -
+ PLZ: 12345
+
+ -
+ Ort: Musterstadt
+
+ -
+ Wohnfläche m²: 120
+
+ -
+ Dachgeschoss: unbeheizt
+
+ -
+ Keller: beheizt
+
+ -
+ Nutzfläche m²: 150
+
+
+
+
+
+
+
+ C. Eingabe von 3 zusammenhängenden Verbrauchsjahren
+
+
+ -
+ Verbrauch (02.2022 - 02.2023): 3000 kWh
+
+ -
+ Verbrauch (02.2023 - 02.2024): 3200 kWh
+
+ -
+ Verbrauch (02.2024 - 02.2025): 3100 kWh
+
+ -
+ Heizquelle: Heizöl EL
+
+ -
+ Einheit: Liter
+
+
+
+
+
+
+
+ D. Eingabe Warmwasseranteil und Verwendung von alternativen
+ Energieversorgungssystemen
+
+
+ -
+ Warmwasser im Verbrauch enthalten: Ja
+
+ -
+ % Anteil Warmwasser: 18%
+
+ -
+ Zusätzliche Heizquelle: Nein
+
+ -
+ Alternative Energieversorgungssysteme:
+ Heizung, Warmwasser
+
+
+
+
+
+
+
+ E. Eingabe von Gebäudeteil, Lüftung, Kühlung und Leerstand
+
+
+ -
+ Gebäudeteil: Gesamtgebäude
+
+ -
+ Leerstand in %: 5%
+
+ -
+ Lüftung durch: Fensterlüftung
+
+ -
+ Anlage Kühlung: nicht vorhanden
+
+
+
+
+
+
+
+ F. Angaben zur Heizungsanlage
+
+
+ -
+ Zentral/Etage: Ja
+
+ -
+ Einzelofen: Nein
+
+ -
+ Durchlauferhitzer (elektrisch): Ja
+
+ -
+ Standardkessel: Ja
+
+ -
+ Solarsystem für Warmwasser: Ja
+
+ -
+ Wärmepumpe: Nein
+
+ -
+ Niedertemperaturkessel: Nein
+
+ -
+ Brennwertkessel: Ja
+
+ -
+ Warmwasserrohre gedämmt: Ja
+
+ -
+ Heizungsrohre gedämmt: Ja
+
+ -
+ Zirkulation: Ja
+
+
+
+
+
+
+
+ G. Angaben zu Fenster, Dachfenster und Türen
+
+
+ -
+ Einfachglas: Nein
+
+ -
+ Doppelverglasung: Ja
+
+ -
+ Dreifachverglasung: Nein
+
+ -
+ Isolierverglasung: Ja
+
+ -
+ Alle Fenster dicht: Ja
+
+ -
+ Fenster teilweise undicht: Nein
+
+ -
+ Rollladenkästen gedämmt, luftdicht: Ja
+
+ -
+ Alle Türen dicht: Ja
+
+ -
+ Türen teilweise undicht: Nein
+
+
+
+
+
+
+
+ H. Angaben zur Wärmedämmung
+
+
+ -
+ Außenwand gedämmt: Ja
+
+ -
+ Kelleraußenwand gedämmt: Ja
+
+ -
+ Kellerdecke gedämmt: Nein
+
+ -
+ Dachgeschoss gedämmt: Ja
+
+ -
+ Oberste Geschossdecke gedämmt: Ja
+
+ -
+ Oberste Geschossdecke min. 12cm gedämmt:
+ Ja
+
+
+
\ No newline at end of file
diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/datenblatt-verbrauchsausweis-wohngebaeude.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/datenblatt-verbrauchsausweis-wohngebaeude.astro
new file mode 100644
index 00000000..552d81e8
--- /dev/null
+++ b/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/datenblatt-verbrauchsausweis-wohngebaeude.astro
@@ -0,0 +1,111 @@
+---
+import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
+import DatenblattVerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte";
+import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
+import { createCaller } from "src/astro-typesafe-api-caller";
+import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
+import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
+import { Enums } from "#lib/server/prisma";
+
+const uid = Astro.url.searchParams.get("uid");
+const uid_aufnahme = Astro.url.searchParams.get("aufnahme")
+const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
+
+
+let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
+let aufnahme: AufnahmeClient = {} as AufnahmeClient;
+let objekt: ObjektClient = {} as ObjektClient;
+let bilder: UploadedGebaeudeBild[] = []
+
+const valid = validateAccessTokenServer(Astro);
+
+const caller = createCaller(Astro);
+
+if (uid) {
+ if (!valid) {
+ return Astro.redirect(
+ `/auth/login?redirect=${Astro.url.toString()}`
+ );
+ }
+
+ try {
+ ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(null, {
+ headers: {
+ authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
+ },
+ params: {
+ uid
+ }
+ });
+
+ aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
+ headers: {
+ authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
+ },
+ params: {
+ uid: ausweis.uid_aufnahme
+ }
+ })
+
+ objekt = await caller.objekt._uid.GET.fetch(null, {
+ headers: {
+ authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
+ },
+ params: {
+ uid: ausweis.uid_objekt
+ }
+ })
+
+ bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
+ headers: {
+ authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
+ },
+ params: {
+ uid: ausweis.uid_aufnahme
+ }
+ })
+
+ if (!ausweis) {
+ // Der Ausweis scheint nicht zu existieren.
+ // Wir leiten auf die generische Ausweisseite ohne UID weiter.
+ return Astro.redirect(
+ "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
+ );
+ }
+ } catch(e) {
+ return Astro.redirect(
+ "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
+ );
+ }
+} else if (uid_aufnahme) {
+ if (!valid) {
+ return Astro.redirect(
+ `/auth/login?redirect=${Astro.url.toString()}`
+ );
+ }
+
+ let { uid_objekt, ...result} = await caller.aufnahme._uid.GET.fetch(null, {
+ headers: {
+ authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
+ },
+ params: {
+ uid: uid_aufnahme
+ }
+ })
+
+ aufnahme = result;
+
+ objekt = await caller.objekt._uid.GET.fetch(null, {
+ headers: {
+ authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
+ },
+ params: {
+ uid: uid_objekt
+ }
+ })
+}
+---
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/speichern-erfolgreich.astro b/src/pages/speichern-erfolgreich.astro
index debe17cb..eab214fe 100644
--- a/src/pages/speichern-erfolgreich.astro
+++ b/src/pages/speichern-erfolgreich.astro
@@ -4,6 +4,7 @@ import { BASE_URI } from "#lib/constants";
import { transport } from "#lib/mail";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
import { getCurrentUser } from "#lib/server/user";
+import { shortenUID } from "#server/lib/hash.js";
const user = await getCurrentUser(Astro)
const uid = Astro.url.searchParams.get("uid");
@@ -22,6 +23,8 @@ const ausweis = await adapter.findUnique({
}
})
+const id = shortenUID(ausweis.uid);
+
if (!ausweis) {
return Astro.redirect("/")
}
@@ -29,18 +32,32 @@ if (!ausweis) {
transport.sendMail({
from: `"IBCornelsen" `,
to: user.email,
- subject: `Ihr Ausweis wurde gespeichert - IBCornelsen.`,
- text: `Sehr geehrte/r ${user.name},
-
-Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.
-
-Zum Download oder zur Verwaltung Ihrer Ausweise besuchen Sie bitte:
-${BASE_URI}/dashboard
-
-Falls Sie Fragen haben, stehen wir Ihnen gerne zur Verfügung.
-
-Mit freundlichen Grüßen
-Ihr IBCornelsen`
+ subject: `Ihr Ausweis wurde gespeichert - IBCornelsen - (ID: ${id})`,
+ html: `Sehr geehrte*r ${user.vorname} ${user.name},
+ Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.
+
+ Ihre Vorgänge und Ausweise können Sie in Ihrem Kundenkonto einsehen und bearbeiten:
+
+ zum Kundenkonto
+
+ Mit freundlichen Grüßen,
+
+ Dipl.-Ing. Jens Cornelsen
+
+
+ IB Cornelsen
+
+ Katendeich 5A
+
+ 21035 Hamburg
+
+ www.online-energieausweis.org
+
+
+ fon 040 · 209339850
+
+ fax 040 · 209339859
+
`
})
---
@@ -48,5 +65,4 @@ Ihr IBCornelsen`
Ihr Energieausweis wurde gespeichert
Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.
👉 Jetzt ansehen
- Falls Sie Fragen haben, steht unser Support-Team Ihnen gerne zur Verfügung.
\ No newline at end of file
--
2.49.1