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,
|
to: user.email,
|
||||||
subject: `Ihre Registrierung bei IBCornelsen`,
|
subject: `Ihre Registrierung bei IBCornelsen`,
|
||||||
bcc: "info@online-energieausweis.org",
|
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}
|
<a href="${BASE_URI}/auth/verify?t=${verificationJwt}">E-Mail-Adresse bestätigen</a><br></p>
|
||||||
|
<p>
|
||||||
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.
|
Mit freundlichen Grüßen,
|
||||||
|
<br>
|
||||||
Wir freuen uns, Sie beim IBC willkommen zu heißen!
|
Dipl.-Ing. Jens Cornelsen
|
||||||
|
<br>
|
||||||
Mit freundlichen Grüßen
|
<br>
|
||||||
Ihr IBCornelsen-Team`
|
<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 { transport } from "#lib/mail";
|
||||||
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
|
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
|
||||||
import { getCurrentUser } from "#lib/server/user";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
|
import { shortenUID } from "#server/lib/hash.js";
|
||||||
|
|
||||||
const user = await getCurrentUser(Astro)
|
const user = await getCurrentUser(Astro)
|
||||||
const uid = Astro.url.searchParams.get("uid");
|
const uid = Astro.url.searchParams.get("uid");
|
||||||
@@ -22,6 +23,8 @@ const ausweis = await adapter.findUnique({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const id = shortenUID(ausweis.uid);
|
||||||
|
|
||||||
if (!ausweis) {
|
if (!ausweis) {
|
||||||
return Astro.redirect("/")
|
return Astro.redirect("/")
|
||||||
}
|
}
|
||||||
@@ -29,18 +32,32 @@ if (!ausweis) {
|
|||||||
transport.sendMail({
|
transport.sendMail({
|
||||||
from: `"IBCornelsen" <info@online-energieausweis.org>`,
|
from: `"IBCornelsen" <info@online-energieausweis.org>`,
|
||||||
to: user.email,
|
to: user.email,
|
||||||
subject: `Ihr Ausweis wurde gespeichert - IBCornelsen.`,
|
subject: `Ihr Ausweis wurde gespeichert - IBCornelsen - (ID: ${id})`,
|
||||||
text: `Sehr geehrte/r ${user.name},
|
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
|
<a href="${BASE_URI}/dashboard">zum Kundenkonto</a><br></p>
|
||||||
|
<p>
|
||||||
Falls Sie Fragen haben, stehen wir Ihnen gerne zur Verfügung.
|
Mit freundlichen Grüßen,
|
||||||
|
<br>
|
||||||
Mit freundlichen Grüßen
|
Dipl.-Ing. Jens Cornelsen
|
||||||
Ihr IBCornelsen`
|
<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>
|
<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>
|
<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>
|
<a href="/dashboard">👉 Jetzt ansehen</a>
|
||||||
<p>Falls Sie Fragen haben, steht unser Support-Team Ihnen gerne zur Verfügung.</p>
|
|
||||||
</Layout>
|
</Layout>
|
||||||
Reference in New Issue
Block a user