Merge pull request #456 from IBCornelsen/Jens
E-Mail Text Registrierung und Speicherung
This commit is contained in:
@@ -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},
|
||||
html: `<p>Sehr geehrte*r ${user.vorname} ${user.name},</p>
|
||||
<p>vielen Dank für Ihre Registrierung bei IBCornelsen. Ihr Benutzerkonto wurde erfolgreich erstellt.<br><br>
|
||||
|
||||
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:<br><br>
|
||||
|
||||
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`
|
||||
<a href="${BASE_URI}/auth/verify?t=${verificationJwt}">E-Mail-Adresse bestätigen</a><br></p>
|
||||
<p>
|
||||
Mit freundlichen Grüßen,
|
||||
<br>
|
||||
Dipl.-Ing. Jens Cornelsen
|
||||
<br>
|
||||
<br>
|
||||
<strong>IB Cornelsen</strong>
|
||||
<br>
|
||||
Katendeich 5A
|
||||
<br>
|
||||
21035 Hamburg
|
||||
<br>
|
||||
www.online-energieausweis.org
|
||||
<br>
|
||||
<br>
|
||||
fon 040 · 209339850
|
||||
<br>
|
||||
fax 040 · 209339859
|
||||
</p>`
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
|
||||
<!-- Section A -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
A. Prüfung der Ausweisart
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Anlass:</strong> Verkauf
|
||||
</li>
|
||||
<li>
|
||||
<strong>Gebäudetyp:</strong> Einfamilienhaus
|
||||
</li>
|
||||
<li>
|
||||
<strong>Anzahl Wohnungen:</strong> 1
|
||||
</li>
|
||||
<li>
|
||||
<strong>Sanierungsstatus:</strong> saniert
|
||||
</li>
|
||||
<li>
|
||||
<strong>Baujahr:</strong> 1990
|
||||
</li>
|
||||
<li>
|
||||
<strong>Baujahr Heizung:</strong> 1995
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Section B -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
B. Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller
|
||||
und Dachgeschoss
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Straße, Hausnummer:</strong> Musterstraße 1
|
||||
</li>
|
||||
<li>
|
||||
<strong>PLZ:</strong> 12345
|
||||
</li>
|
||||
<li>
|
||||
<strong>Ort:</strong> Musterstadt
|
||||
</li>
|
||||
<li>
|
||||
<strong>Wohnfläche m²:</strong> 120
|
||||
</li>
|
||||
<li>
|
||||
<strong>Dachgeschoss:</strong> unbeheizt
|
||||
</li>
|
||||
<li>
|
||||
<strong>Keller:</strong> beheizt
|
||||
</li>
|
||||
<li>
|
||||
<strong>Nutzfläche m²:</strong> 150
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Section C -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
C. Eingabe von 3 zusammenhängenden Verbrauchsjahren
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Verbrauch (02.2022 - 02.2023):</strong> 3000 kWh
|
||||
</li>
|
||||
<li>
|
||||
<strong>Verbrauch (02.2023 - 02.2024):</strong> 3200 kWh
|
||||
</li>
|
||||
<li>
|
||||
<strong>Verbrauch (02.2024 - 02.2025):</strong> 3100 kWh
|
||||
</li>
|
||||
<li>
|
||||
<strong>Heizquelle:</strong> Heizöl EL
|
||||
</li>
|
||||
<li>
|
||||
<strong>Einheit:</strong> Liter
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Section D -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
D. Eingabe Warmwasseranteil und Verwendung von alternativen
|
||||
Energieversorgungssystemen
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Warmwasser im Verbrauch enthalten:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>% Anteil Warmwasser:</strong> 18%
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zusätzliche Heizquelle:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Alternative Energieversorgungssysteme:</strong>
|
||||
Heizung, Warmwasser
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Section E -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
E. Eingabe von Gebäudeteil, Lüftung, Kühlung und Leerstand
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Gebäudeteil:</strong> Gesamtgebäude
|
||||
</li>
|
||||
<li>
|
||||
<strong>Leerstand in %:</strong> 5%
|
||||
</li>
|
||||
<li>
|
||||
<strong>Lüftung durch:</strong> Fensterlüftung
|
||||
</li>
|
||||
<li>
|
||||
<strong>Anlage Kühlung:</strong> nicht vorhanden
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Section F -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
F. Angaben zur Heizungsanlage
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Zentral/Etage:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Einzelofen:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Durchlauferhitzer (elektrisch):</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Standardkessel:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Solarsystem für Warmwasser:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Wärmepumpe:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Niedertemperaturkessel:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Brennwertkessel:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Warmwasserrohre gedämmt:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Heizungsrohre gedämmt:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zirkulation:</strong> Ja
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Section G -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
G. Angaben zu Fenster, Dachfenster und Türen
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Einfachglas:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Doppelverglasung:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Dreifachverglasung:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Isolierverglasung:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Alle Fenster dicht:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Fenster teilweise undicht:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Rollladenkästen gedämmt, luftdicht:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Alle Türen dicht:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Türen teilweise undicht:</strong> Nein
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Section H -->
|
||||
<div class="bg-white shadow rounded-lg p-6 mb-6">
|
||||
<h2 class="text-xl font-semibold border-b pb-2 mb-4">
|
||||
H. Angaben zur Wärmedämmung
|
||||
</h2>
|
||||
<ul class="space-y-2">
|
||||
<li>
|
||||
<strong>Außenwand gedämmt:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Kelleraußenwand gedämmt:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Kellerdecke gedämmt:</strong> Nein
|
||||
</li>
|
||||
<li>
|
||||
<strong>Dachgeschoss gedämmt:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Oberste Geschossdecke gedämmt:</strong> Ja
|
||||
</li>
|
||||
<li>
|
||||
<strong>Oberste Geschossdecke min. 12cm gedämmt:</strong>
|
||||
Ja
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -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
|
||||
}
|
||||
})
|
||||
}
|
||||
---
|
||||
|
||||
<AusweisLayout title="Datenblatt Verbrauchsausweis Wohngebäude">
|
||||
<DatenblattVerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} />
|
||||
</AusweisLayout>
|
||||
@@ -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" <info@online-energieausweis.org>`,
|
||||
to: user.email,
|
||||
subject: `Ihr Ausweis wurde gespeichert - IBCornelsen.`,
|
||||
text: `Sehr geehrte/r ${user.name},
|
||||
subject: `Ihr Ausweis wurde gespeichert - IBCornelsen - (ID: ${id})`,
|
||||
html: `<p>Sehr geehrte*r ${user.vorname} ${user.name},</p>
|
||||
<p>Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.<br><br>
|
||||
|
||||
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:<br><br>
|
||||
|
||||
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`
|
||||
<a href="${BASE_URI}/dashboard">zum Kundenkonto</a><br></p>
|
||||
<p>
|
||||
Mit freundlichen Grüßen,
|
||||
<br>
|
||||
Dipl.-Ing. Jens Cornelsen
|
||||
<br>
|
||||
<br>
|
||||
<strong>IB Cornelsen</strong>
|
||||
<br>
|
||||
Katendeich 5A
|
||||
<br>
|
||||
21035 Hamburg
|
||||
<br>
|
||||
www.online-energieausweis.org
|
||||
<br>
|
||||
<br>
|
||||
fon 040 · 209339850
|
||||
<br>
|
||||
fax 040 · 209339859
|
||||
</p>`
|
||||
})
|
||||
---
|
||||
|
||||
@@ -48,5 +65,4 @@ Ihr IBCornelsen`
|
||||
<h1>Ihr Energieausweis wurde gespeichert</h1>
|
||||
<p>Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.</p>
|
||||
<a href="/dashboard">👉 Jetzt ansehen</a>
|
||||
<p>Falls Sie Fragen haben, steht unser Support-Team Ihnen gerne zur Verfügung.</p>
|
||||
</Layout>
|
||||
Reference in New Issue
Block a user