Datenbank Popup
This commit is contained in:
106
prisma/migrations/20250406203632_id_longer/migration.sql
Normal file
106
prisma/migrations/20250406203632_id_longer/migration.sql
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The primary key for the `Anteilshaber` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `ApiRequests` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `Aufnahme` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `BedarfsausweisGewerbe` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `BedarfsausweisWohnen` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `Bild` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `Event` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `GEGEinpreisung` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `GEGNachweisGewerbe` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `GEGNachweisWohnen` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `Objekt` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `Rechnung` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `Tickets` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `Unterlage` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `VerbrauchsausweisGewerbe` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `VerbrauchsausweisWohnen` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The primary key for the `benutzer` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Anteilshaber" DROP CONSTRAINT "Anteilshaber_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Anteilshaber_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "ApiRequests" DROP CONSTRAINT "ApiRequests_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "ApiRequests_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Aufnahme" DROP CONSTRAINT "Aufnahme_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Aufnahme_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "BedarfsausweisGewerbe" DROP CONSTRAINT "BedarfsausweisGewerbe_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "BedarfsausweisGewerbe_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "BedarfsausweisWohnen" DROP CONSTRAINT "BedarfsausweisWohnen_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "BedarfsausweisWohnen_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Bild" DROP CONSTRAINT "Bild_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Bild_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Event" DROP CONSTRAINT "Event_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Event_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GEGEinpreisung" DROP CONSTRAINT "GEGEinpreisung_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "GEGEinpreisung_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GEGNachweisGewerbe" DROP CONSTRAINT "GEGNachweisGewerbe_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "GEGNachweisGewerbe_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GEGNachweisWohnen" DROP CONSTRAINT "GEGNachweisWohnen_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "GEGNachweisWohnen_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Objekt" DROP CONSTRAINT "Objekt_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Objekt_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Rechnung" DROP CONSTRAINT "Rechnung_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Rechnung_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Tickets" DROP CONSTRAINT "Tickets_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Tickets_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Unterlage" DROP CONSTRAINT "Unterlage_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "Unterlage_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "VerbrauchsausweisGewerbe" DROP CONSTRAINT "VerbrauchsausweisGewerbe_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "VerbrauchsausweisGewerbe_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "VerbrauchsausweisWohnen" DROP CONSTRAINT "VerbrauchsausweisWohnen_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "VerbrauchsausweisWohnen_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "benutzer" DROP CONSTRAINT "benutzer_pkey",
|
||||
ALTER COLUMN "id" SET DATA TYPE VARCHAR(10),
|
||||
ADD CONSTRAINT "benutzer_pkey" PRIMARY KEY ("id");
|
||||
@@ -1,5 +1,5 @@
|
||||
model Anteilshaber {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
rolle String? @db.VarChar
|
||||
privilegien BigInt?
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
model ApiRequests {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
date DateTime @default(now()) @db.Timestamp(6)
|
||||
ip String @db.VarChar(50)
|
||||
method String @db.VarChar(10)
|
||||
|
||||
@@ -13,7 +13,7 @@ enum Lueftungskonzept {
|
||||
}
|
||||
|
||||
model Aufnahme {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
benutzer_id String?
|
||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||
/// @zod.describe("Art des Gebäudes und seiner primären Nutzungsart")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model BedarfsausweisGewerbe {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
|
||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||
ausstellgrund Ausstellgrund?
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
model BedarfsausweisWohnen {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
benutzer_id String?
|
||||
ausstellgrund Ausstellgrund?
|
||||
registriernummer String? @db.VarChar
|
||||
|
||||
@@ -5,7 +5,7 @@ enum BenutzerRolle {
|
||||
}
|
||||
|
||||
model Benutzer {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
name String? @db.VarChar(50)
|
||||
vorname String? @db.VarChar(50)
|
||||
email String @unique(map: "benutzer_email_idx") @db.VarChar(255)
|
||||
|
||||
@@ -8,7 +8,7 @@ enum BilderKategorie {
|
||||
}
|
||||
|
||||
model Bild {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
kategorie BilderKategorie
|
||||
name String
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Hier werden beispielsweise Events wie "Nachricht Verschickt" gespeichert.
|
||||
// Diese Events werden dann in der Admin-Oberfläche angezeigt.
|
||||
model Event {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
date DateTime @default(now()) @db.Timestamp(6)
|
||||
|
||||
title String @db.VarChar(255)
|
||||
|
||||
@@ -6,7 +6,7 @@ enum Einpreisungsstatus {
|
||||
}
|
||||
|
||||
model GEGEinpreisung {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
|
||||
empfaenger String? @db.VarChar
|
||||
strasse String? @db.VarChar
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model GEGNachweisGewerbe {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
|
||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||
ausstellgrund Ausstellgrund?
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model GEGNachweisWohnen {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
|
||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||
ausstellgrund Ausstellgrund?
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
model Objekt {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
|
||||
latitude Float?
|
||||
longitude Float?
|
||||
|
||||
@@ -24,7 +24,7 @@ enum AusweisTyp {
|
||||
}
|
||||
|
||||
model Rechnung {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
|
||||
empfaenger String? @db.VarChar
|
||||
strasse String? @db.VarChar
|
||||
|
||||
@@ -8,7 +8,7 @@ enum TicketStatus {
|
||||
}
|
||||
|
||||
model Tickets {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime? @updatedAt
|
||||
deleted_at DateTime?
|
||||
|
||||
@@ -5,7 +5,7 @@ enum UnterlagenKategorie {
|
||||
}
|
||||
|
||||
model Unterlage {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
name String?
|
||||
kategorie String?
|
||||
mime String
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
model VerbrauchsausweisGewerbe {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
ausstellgrund Ausstellgrund?
|
||||
registriernummer String? @db.VarChar
|
||||
zusaetzliche_heizquelle Boolean?
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
model VerbrauchsausweisWohnen {
|
||||
/// @zod.describe("ID des Ausweises")
|
||||
id String @id @unique @db.VarChar(8)
|
||||
id String @id @unique @db.VarChar(10)
|
||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||
ausstellgrund Ausstellgrund?
|
||||
/// @zod.describe("Die Registriernummer des Ausweises")
|
||||
|
||||
@@ -12,8 +12,8 @@ export const createCaller = createCallerFactory({
|
||||
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||
@@ -31,10 +31,10 @@ export const createCaller = createCallerFactory({
|
||||
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||
"user": await import("../src/pages/api/user/index.ts"),
|
||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
||||
"user": await import("../src/pages/api/user/index.ts"),
|
||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
||||
|
||||
@@ -1,77 +1,106 @@
|
||||
<script lang="ts">
|
||||
|
||||
let showPopup = true;
|
||||
let popupContent = null;
|
||||
|
||||
function closePopup() {
|
||||
showPopup = false;
|
||||
popupContent = null;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
{#if showPopup}
|
||||
<div class="popup-overlay">
|
||||
<div class="popup-content" on:keydown|stopPropagation on:keyup|stopPropagation on:keypress|stopPropagation>
|
||||
<button class="close-button" on:click={closePopup}>X</button>
|
||||
<div class="popup-title">Wichtige Info zur Neuentwicklung</div>
|
||||
<div class="popup-body">
|
||||
<p>
|
||||
Wie seit längerem angekündigt ist es jetzt endlich soweit. Seit dem <b>07.04.2025</b> ist unser neues System online. Das <strong>Front- und Backend wurde komplett neu entwickelt</strong> und folgende Neuerungen wurden durchgeführt:
|
||||
</p>
|
||||
<ul class="popup-list">
|
||||
<li>Intuitivere Benutzerführung durch dynamische Infoslides</li>
|
||||
<li>Optimierung des Bestellprozesses</li>
|
||||
<li>Neues Widget <a href="/welcher-energieausweis/">"Welcher Energieausweis?"</a> zur Benutzerführung. Es werden jetzt alle <b>Energieausweise und GEG-Berechnungen</b> für Wohnen und Gewerbe abgebildet.</li>
|
||||
<li>Das <b>Widget wird in Ihrem Branding</b> (Farbe und Schriftart) wenn gewünscht zur Verfügung gestellt (entweder als Code oder iframe).</li>
|
||||
<li>Implementierung der <b>DIN18599</b> für Wohngebäude inkl. Darstellung aller Rechenschritte gem. DIN18599 Formblättern.</li>
|
||||
<li>Erweiterung der FAQ's und Arbeitsmaterialien</li>
|
||||
<li>API Schnittstelle</li>
|
||||
<li><b>Kundendashboard</b> mit Gebäudeübersicht und Ausweisübersicht pro Gebäude. Hier können aus früheren Ausweisen neue Ausweise per Klick erstellt werden. Oder weiterführende GEG-Berechnungen auf Grundlage der bestehenden Daten.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Wir freuen uns, Ihnen die neuen Funktionen ab sofort zur Verfügung zu stellen. Das neue System ist <strong>responsive</strong> und kann auf allen Endgeräten genutzt werden. Im Zuge der Neuentwicklung haben wir auch die <strong>Preise</strong> angepasst. Diese sind ab dem <b>06.04.2025</b> gültig.<br><br>
|
||||
<b>Sprechen Sie uns doch gerne an falls Sie an einer Kooperation interessiert sind.</b> Wir freuen uns auf Ihr Feedback!
|
||||
</p>
|
||||
import Cookies from "js-cookie";
|
||||
import moment from "moment";
|
||||
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<style lang="scss">
|
||||
.popup-body {
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
margin-bottom: 1rem;
|
||||
let showPopup = Cookies.get("seen-info-popup") !== "1";
|
||||
|
||||
|
||||
.popup-list {
|
||||
list-style-type: disc;
|
||||
margin-left: 1.5rem;
|
||||
padding-left: 0.5rem;
|
||||
function closePopup() {
|
||||
showPopup = false;
|
||||
Cookies.set("seen-info-popup", "1", {
|
||||
domain: `.${window.location.hostname}`,
|
||||
path: "/",
|
||||
expires: moment().add(30, "days").toDate()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
.popup-list li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.popup-overlay {
|
||||
@apply fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center;
|
||||
}
|
||||
|
||||
.popup-content {
|
||||
@apply w-3/4 bg-white p-4 rounded-lg shadow-lg relative;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
@apply absolute top-3 right-3 bg-secondary text-white rounded-full p-2 cursor-pointer;
|
||||
}
|
||||
|
||||
.popup-title {
|
||||
@apply top-6 left-8 text-3xl font-bold mb-2;
|
||||
}
|
||||
$: {
|
||||
if (showPopup) {
|
||||
document.body.style.overflow = "hidden"
|
||||
} else {
|
||||
document.body.style.overflow = "auto"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{#if showPopup}
|
||||
<div class="fixed w-full h-full inset-0 bg-black bg-opacity-50 flex justify-center items-center">
|
||||
<div
|
||||
class="w-3/4 bg-white p-4 rounded-lg shadow-lg relative"
|
||||
on:keydown|stopPropagation
|
||||
on:keyup|stopPropagation
|
||||
on:keypress|stopPropagation
|
||||
>
|
||||
<button class="absolute top-3 right-3 bg-secondary text-white rounded-full p-2 cursor-pointer" on:click={closePopup}>X</button>
|
||||
<div class="top-6 left-8 text-3xl font-bold mb-2">Wichtige Info zur Neuentwicklung</div>
|
||||
<div class="popup-body">
|
||||
<p>
|
||||
Wie seit längerem angekündigt ist es jetzt endlich soweit. Seit
|
||||
dem <b>07.04.2025</b> ist unser neues System online. Das
|
||||
<strong>Front- und Backend wurde komplett neu entwickelt</strong
|
||||
> und folgende Neuerungen wurden durchgeführt:
|
||||
</p>
|
||||
<ul class="popup-list">
|
||||
<li>Intuitivere Benutzerführung durch dynamische Infoslides</li>
|
||||
<li>Optimierung des Bestellprozesses</li>
|
||||
<li>
|
||||
Neues Widget <a href="/welcher-energieausweis/"
|
||||
>"Welcher Energieausweis?"</a
|
||||
>
|
||||
zur Benutzerführung. Es werden jetzt alle
|
||||
<b>Energieausweise und GEG-Berechnungen</b> für Wohnen und Gewerbe
|
||||
abgebildet.
|
||||
</li>
|
||||
<li>
|
||||
Das <b>Widget wird in Ihrem Branding</b> (Farbe und Schriftart)
|
||||
wenn gewünscht zur Verfügung gestellt (entweder als Code oder
|
||||
iframe).
|
||||
</li>
|
||||
<li>
|
||||
Implementierung der <b>DIN18599</b> für Wohngebäude inkl. Darstellung
|
||||
aller Rechenschritte gem. DIN18599 Formblättern.
|
||||
</li>
|
||||
<li>Erweiterung der FAQ's und Arbeitsmaterialien</li>
|
||||
<li>API Schnittstelle</li>
|
||||
<li>
|
||||
<b>Kundendashboard</b> mit Gebäudeübersicht und Ausweisübersicht
|
||||
pro Gebäude. Hier können aus früheren Ausweisen neue Ausweise
|
||||
per Klick erstellt werden. Oder weiterführende GEG-Berechnungen
|
||||
auf Grundlage der bestehenden Daten.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Wir freuen uns, Ihnen die neuen Funktionen ab sofort zur
|
||||
Verfügung zu stellen. Das neue System ist <strong
|
||||
>responsive</strong
|
||||
>
|
||||
und kann auf allen Endgeräten genutzt werden. Im Zuge der Neuentwicklung
|
||||
haben wir auch die <strong>Preise</strong>
|
||||
angepasst. Diese sind ab dem <b>06.04.2025</b> gültig.<br /><br
|
||||
/>
|
||||
<b
|
||||
>Sprechen Sie uns doch gerne an falls Sie an einer
|
||||
Kooperation interessiert sind.</b
|
||||
> Wir freuen uns auf Ihr Feedback!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<style lang="scss">
|
||||
.popup-body {
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.popup-list {
|
||||
list-style-type: disc;
|
||||
margin-left: 1.5rem;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.popup-list li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,79 +1,108 @@
|
||||
<script lang="ts">
|
||||
import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
|
||||
import Progressbar from "#components/Ausweis/Progressbar.svelte";
|
||||
|
||||
|
||||
import Bereich from "#components/labels/Bereich.svelte";
|
||||
|
||||
import ButtonWeiterHilfe from "#components/Ausweis/ButtonWeiterHilfe.svelte";
|
||||
import Ausweisart from "#components/Ausweis/Ausweisart.svelte";
|
||||
import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
|
||||
import GebaeudeVolumen from "#components/Ausweis/GebaeudeVolumen.svelte";
|
||||
import Fensterflaechen from "#components/Ausweis/Fensterflaechen.svelte";
|
||||
import LueftungKuehlung from "#components/Ausweis/LueftungKuehlung.svelte";
|
||||
import Fensterflaechen from "#components/Ausweis/Fensterflaechen.svelte";
|
||||
import LueftungKuehlung from "#components/Ausweis/LueftungKuehlung.svelte";
|
||||
|
||||
import SanierungszustandHeizungsanlage from "#components/Ausweis/SanierungszustandHeizungsanlage.svelte";
|
||||
import SanierungszustandFensterTueren from "#components/Ausweis/SanierungszustandFensterTueren.svelte";
|
||||
import SanierungszustandWaermedammung from "#components/Ausweis/SanierungszustandWaermedammung.svelte";
|
||||
import AusweisPreviewContainer from "#components/Ausweis/AusweisPreviewContainer.svelte";
|
||||
|
||||
|
||||
import moment from "moment";
|
||||
import { Benutzer, Enums } from "#lib/client/prisma.js";
|
||||
import {
|
||||
BedarfsausweisWohnenClient,
|
||||
ObjektClient,
|
||||
BildClient,
|
||||
AufnahmeClient
|
||||
AufnahmeClient,
|
||||
} from "#components/Ausweis/types.js";
|
||||
|
||||
|
||||
|
||||
export let ausweis: BedarfsausweisWohnenClient;
|
||||
export let objekt: ObjektClient
|
||||
export let aufnahme: AufnahmeClient
|
||||
export let objekt: ObjektClient;
|
||||
export let aufnahme: AufnahmeClient;
|
||||
export let user: Benutzer | null;
|
||||
export let ausweistyp: Enums.AusweisTyp
|
||||
export let bilder: BildClient[] = []
|
||||
export let ausweistyp: Enums.AusweisTyp;
|
||||
export let bilder: BildClient[] = [];
|
||||
export let id: string | null;
|
||||
|
||||
export let loadFromDatabase: boolean = false
|
||||
export let loadFromDatabase: boolean = false;
|
||||
|
||||
// Wir holen die daten aus dem LocalStorage falls
|
||||
// Der Nutzer kein Admin ist
|
||||
// Der Ausweis noch nicht gespeichert wurde
|
||||
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && !loadFromDatabase && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||
const localStorageAusweis = localStorage.getItem("bedarfsausweis-wohnen.ausweis");
|
||||
if (
|
||||
((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) &&
|
||||
!loadFromDatabase &&
|
||||
(!ausweis.updated_at ||
|
||||
moment(
|
||||
localStorage.getItem("bedarfsausweis-wohnen.updated_at") ||
|
||||
new Date()
|
||||
).isAfter(ausweis.updated_at))
|
||||
) {
|
||||
const localStorageAusweis = localStorage.getItem(
|
||||
"bedarfsausweis-wohnen.ausweis"
|
||||
);
|
||||
if (localStorageAusweis) {
|
||||
ausweis = JSON.parse(localStorageAusweis)
|
||||
ausweis = JSON.parse(localStorageAusweis);
|
||||
}
|
||||
|
||||
const localStorageAufnahme = localStorage.getItem("bedarfsausweis-wohnen.aufnahme");
|
||||
const localStorageAufnahme = localStorage.getItem(
|
||||
"bedarfsausweis-wohnen.aufnahme"
|
||||
);
|
||||
if (localStorageAufnahme) {
|
||||
aufnahme = JSON.parse(localStorageAufnahme)
|
||||
aufnahme = JSON.parse(localStorageAufnahme);
|
||||
}
|
||||
|
||||
const localStorageObjekt = localStorage.getItem("bedarfsausweis-wohnen.objekt");
|
||||
const localStorageObjekt = localStorage.getItem(
|
||||
"bedarfsausweis-wohnen.objekt"
|
||||
);
|
||||
if (localStorageObjekt) {
|
||||
objekt = JSON.parse(localStorageObjekt)
|
||||
objekt = JSON.parse(localStorageObjekt);
|
||||
}
|
||||
|
||||
const localStorageBilder = localStorage.getItem("bedarfsausweis-wohnen.bilder");
|
||||
const localStorageBilder = localStorage.getItem(
|
||||
"bedarfsausweis-wohnen.bilder"
|
||||
);
|
||||
if (localStorageBilder) {
|
||||
bilder = JSON.parse(localStorageBilder)
|
||||
bilder = JSON.parse(localStorageBilder);
|
||||
}
|
||||
}
|
||||
|
||||
$: {
|
||||
if (!blockLocalStorageSync) {
|
||||
localStorage.setItem("bedarfsausweis-wohnen.ausweis", JSON.stringify(ausweis))
|
||||
localStorage.setItem("bedarfsausweis-wohnen.aufnahme", JSON.stringify(aufnahme))
|
||||
localStorage.setItem("bedarfsausweis-wohnen.objekt", JSON.stringify(objekt))
|
||||
localStorage.setItem("bedarfsausweis-wohnen.bilder", JSON.stringify(bilder))
|
||||
localStorage.setItem("bedarfsausweis-wohnen.updated_at", moment().toString())
|
||||
localStorage.setItem(
|
||||
"bedarfsausweis-wohnen.ausweis",
|
||||
JSON.stringify(ausweis)
|
||||
);
|
||||
localStorage.setItem(
|
||||
"bedarfsausweis-wohnen.aufnahme",
|
||||
JSON.stringify(aufnahme)
|
||||
);
|
||||
localStorage.setItem(
|
||||
"bedarfsausweis-wohnen.objekt",
|
||||
JSON.stringify(objekt)
|
||||
);
|
||||
localStorage.setItem(
|
||||
"bedarfsausweis-wohnen.bilder",
|
||||
JSON.stringify(bilder)
|
||||
);
|
||||
localStorage.setItem(
|
||||
"bedarfsausweis-wohnen.updated_at",
|
||||
moment().toString()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const ausweisart = Enums.Ausweisart.BedarfsausweisWohnen
|
||||
const ausweisart = Enums.Ausweisart.BedarfsausweisWohnen;
|
||||
const anliegen = "Energieausweis erstellen";
|
||||
|
||||
let form: HTMLFormElement;
|
||||
@@ -81,89 +110,71 @@
|
||||
let blockLocalStorageSync: boolean = false;
|
||||
</script>
|
||||
|
||||
<div
|
||||
id="skala"
|
||||
class="bg-white grid grid-cols-1 px-0 sm:p-4 lg:grid-cols-2 lg:gap-x-6"
|
||||
bind:this={skala}
|
||||
>
|
||||
<PerformanceScore bind:ausweis bind:aufnahme bind:objekt {ausweisart} />
|
||||
|
||||
<div id="skala" class="bg-white grid grid-cols-1 px-0 sm:p-4 lg:grid-cols-2 lg:gap-x-6" bind:this={skala}>
|
||||
|
||||
<PerformanceScore
|
||||
bind:ausweis
|
||||
bind:aufnahme={aufnahme}
|
||||
bind:objekt={objekt}
|
||||
{ausweisart}
|
||||
/>
|
||||
|
||||
<Progressbar active={0} {ausweisart} {anliegen} {ausweistyp}/>
|
||||
|
||||
<Progressbar active={0} {ausweisart} {anliegen} {ausweistyp} />
|
||||
</div>
|
||||
|
||||
<form id="formInput-1" bind:this={form} name="ausweis" data-cy="ausweis">
|
||||
<div id="formular-box" class="formular-boxen ring-0">
|
||||
|
||||
|
||||
<ButtonWeiterHilfe
|
||||
bind:ausweis
|
||||
bind:bilder
|
||||
bind:user
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
bind:blockLocalStorageSync
|
||||
{ausweisart}
|
||||
showWeiter={false}
|
||||
{form}
|
||||
{skala}
|
||||
>
|
||||
</ButtonWeiterHilfe>
|
||||
bind:ausweis
|
||||
bind:bilder
|
||||
bind:user
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
bind:blockLocalStorageSync
|
||||
{ausweisart}
|
||||
showWeiter={false}
|
||||
{form}
|
||||
{skala}
|
||||
></ButtonWeiterHilfe>
|
||||
|
||||
<!-- A Prüfung der Ausweisart -->
|
||||
|
||||
<Bereich bereich="A" title="Prüfung der Ausweisart">
|
||||
<Ausweisart
|
||||
bind:objekt={objekt}
|
||||
bind:aufnahme={aufnahme}
|
||||
bind:ausweis
|
||||
{ausweisart}
|
||||
/>
|
||||
<Ausweisart bind:objekt bind:aufnahme bind:ausweis {ausweisart} />
|
||||
</Bereich>
|
||||
|
||||
<!-- B Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss -->
|
||||
|
||||
<!-- B Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss -->
|
||||
<!-- B Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss -->
|
||||
|
||||
<Bereich
|
||||
bereich="B"
|
||||
title="Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss"
|
||||
><GebaeudeDaten bind:aufnahme bind:objekt {ausweisart} /></Bereich
|
||||
bereich="B"
|
||||
title="Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss"
|
||||
><GebaeudeDaten bind:aufnahme bind:objekt {ausweisart} /></Bereich
|
||||
>
|
||||
|
||||
<!-- C - Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen -->
|
||||
|
||||
<!-- C - Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen -->
|
||||
<!-- <Bereich
|
||||
bereich="C"
|
||||
title="Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen"
|
||||
><GebaeudeVolumen bind:ausweis /></Bereich
|
||||
> -->
|
||||
|
||||
<Bereich
|
||||
bereich="C"
|
||||
title="Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen"
|
||||
><GebaeudeVolumen bind:ausweis/></Bereich>
|
||||
<!-- D - Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden -->
|
||||
|
||||
<!-- <Bereich
|
||||
bereich="D"
|
||||
title="Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden"
|
||||
><Fensterflaechen bind:ausweis /></Bereich
|
||||
> -->
|
||||
|
||||
<!-- D - Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden -->
|
||||
<!-- E - Angabe zu Lüftung und Kühlung -->
|
||||
|
||||
<Bereich
|
||||
bereich="D"
|
||||
title="Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden"
|
||||
><Fensterflaechen bind:ausweis/></Bereich>
|
||||
|
||||
<Bereich bereich="E" title="Angabe zu Lüftung und Kühlung"
|
||||
><LueftungKuehlung bind:ausweis /></Bereich
|
||||
>
|
||||
|
||||
|
||||
<!-- E - Angabe zu Lüftung und Kühlung -->
|
||||
|
||||
<Bereich
|
||||
bereich="E"
|
||||
title="Angabe zu Lüftung und Kühlung"
|
||||
><LueftungKuehlung bind:ausweis/></Bereich>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- F Angaben zur Heizungsanlage -->
|
||||
<Bereich bereich="F" title="Angaben zur Heizunganlage"
|
||||
<!-- F Angaben zur Heizungsanlage -->
|
||||
<!-- <Bereich bereich="F" title="Angaben zur Heizunganlage"
|
||||
><SanierungszustandHeizungsanlage
|
||||
bind:images={bilder}
|
||||
bind:objekt
|
||||
@@ -171,44 +182,43 @@ title="Angabe zu Lüftung und Kühlung"
|
||||
bind:ausweis
|
||||
{ausweisart}
|
||||
/></Bereich
|
||||
>
|
||||
|
||||
<!-- G Angaben zur Fenster, Dachfenster und Türen -->
|
||||
|
||||
<Bereich bereich="G" title="Angaben zu Fenster, Dachfenster und Türen"
|
||||
><SanierungszustandFensterTueren
|
||||
bind:images={bilder}
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
bind:ausweis
|
||||
/></Bereich
|
||||
>
|
||||
<!-- H Angaben zur Wärmedammung -->
|
||||
|
||||
<Bereich bereich="H" title="Angaben zur Wärmedämmung"
|
||||
><SanierungszustandWaermedammung
|
||||
bind:images={bilder}
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
bind:ausweis
|
||||
/></Bereich
|
||||
>
|
||||
|
||||
<!-- I Gebäudebild und Energieausweis PDF Vorschau -->
|
||||
|
||||
<Bereich bereich="I" title="Gebäudebild und Energieausweis PDF Vorschau"
|
||||
><AusweisPreviewContainer
|
||||
bind:images={bilder}
|
||||
bind:ausweis
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
{ausweisart}
|
||||
/></Bereich
|
||||
>
|
||||
> -->
|
||||
|
||||
</div>
|
||||
|
||||
<ButtonWeiterHilfe
|
||||
<!-- G Angaben zur Fenster, Dachfenster und Türen -->
|
||||
|
||||
<Bereich bereich="G" title="Angaben zu Fenster, Dachfenster und Türen"
|
||||
><SanierungszustandFensterTueren
|
||||
bind:images={bilder}
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
bind:ausweis
|
||||
/></Bereich
|
||||
>
|
||||
<!-- H Angaben zur Wärmedammung -->
|
||||
|
||||
<Bereich bereich="H" title="Angaben zur Wärmedämmung"
|
||||
><SanierungszustandWaermedammung
|
||||
bind:images={bilder}
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
bind:ausweis
|
||||
/></Bereich
|
||||
>
|
||||
|
||||
<!-- I Gebäudebild und Energieausweis PDF Vorschau -->
|
||||
|
||||
<Bereich bereich="I" title="Gebäudebild und Energieausweis PDF Vorschau"
|
||||
><AusweisPreviewContainer
|
||||
bind:images={bilder}
|
||||
bind:ausweis
|
||||
bind:objekt
|
||||
bind:aufnahme
|
||||
{ausweisart}
|
||||
/></Bereich
|
||||
>
|
||||
</div>
|
||||
|
||||
<ButtonWeiterHilfe
|
||||
bind:ausweis
|
||||
bind:bilder
|
||||
bind:user
|
||||
@@ -219,8 +229,5 @@ title="Angabe zu Lüftung und Kühlung"
|
||||
showWeiter={true}
|
||||
{form}
|
||||
{skala}
|
||||
>
|
||||
</ButtonWeiterHilfe>
|
||||
|
||||
|
||||
></ButtonWeiterHilfe>
|
||||
</form>
|
||||
|
||||
@@ -5,201 +5,307 @@ import ProduktVergleichGewerbe from "#components/design/content/ProduktVergleich
|
||||
import WelcherAusweisWidget from "#components/widgets/ibcornelsen/WelcherAusweisWidget_ibcornelsen.svelte";
|
||||
import TextboxCardTemplate from "#components/design/content/TextboxCardTemplate.svelte";
|
||||
import InfoPopup from "#components/design/content/InfoPopup.svelte";
|
||||
|
||||
---
|
||||
|
||||
<Layout title="Energieausweis online erstellen - Online Energieausweis">
|
||||
|
||||
<h1>Ihr Partner für Energieausweise und GEG Nachweise</h1>
|
||||
<p>Ob für Vermietung, Verkauf, Modernisierung, Neubau oder zur Vorlage bei Ihrer Bank -
|
||||
wir erstellen den passenden Energieausweis oder GEG-Nachweis für Ihr Objekt.
|
||||
Mit <span>18 Jahren Erfahrung</span> sind wir der richtige Ansprechpartner
|
||||
für Hauseigentümer, Bauherren, Makler und Verwalter.</p>
|
||||
|
||||
<h2>Machen Sie hier den <span>online Check</span> welcher Energieausweis der Richtige für Sie ist:</h2>
|
||||
|
||||
<div class="mt-4 mb-6">
|
||||
<WelcherAusweisWidget client:load></WelcherAusweisWidget>
|
||||
</div>
|
||||
|
||||
<h2>Erfüllen Sie die gesetzlichen Vorgaben des <span>GEG 2024</span>. Mit uns profitieren Sie von:</h2>
|
||||
<p>
|
||||
Rechtssicherer Bearbeitung <span class="text-green-700;">✔</span>
|
||||
Langjähriger Erfahrung <span class="text-green-700;">✔</span>
|
||||
Schneller <span>online Erstellung </span><span class="text-green-700;">✔</span>
|
||||
Ob für Vermietung, Verkauf, Modernisierung, Neubau oder zur Vorlage bei
|
||||
Ihrer Bank - wir erstellen den passenden Energieausweis oder
|
||||
GEG-Nachweis für Ihr Objekt. Mit <span>18 Jahren Erfahrung</span> sind wir
|
||||
der richtige Ansprechpartner für Hauseigentümer, Bauherren, Makler und Verwalter.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Machen Sie hier den <span>online Check</span> welcher Energieausweis der
|
||||
Richtige für Sie ist:
|
||||
</h2>
|
||||
|
||||
<h2>GEG gilt ab 1. Mai 2021 und löst die EnEV ab</h2>
|
||||
<TextboxCardTemplate
|
||||
TitelName="Folgende Punkte ändern sich:"
|
||||
BulletPoints={[
|
||||
|
||||
["Erhöhte Sorgfaltspflicht bei der Erstellung der Energieausweise. Zur Einschätzung von Modernisierungsempfehlungen sind jetzt Fotos relevanter Gebäudebereiche erforderlich. Dazu zählen Dach, Fenster, Heizung und Außenwand. Diese Maßnahmen sorgen für präzisere Bewertungen und Modernisierungsvorschläge.", true],
|
||||
["Die Primärenergiefaktoren zur Ermittlung des Gebäudekennwerts werden jetzt direkt im GEG (§22 Primärenergiefaktoren) geregelt. Dadurch wird mehr Transparenz und Nachvollziehbarkeit geschaffen. Auch findet die Verwendung von Biogas aus dem Erdgasnetz jetzt angemessen Berücksichtigung.", true],
|
||||
["Die lokal erzeugte Energie durch PV-Anlagen wird besser berücksichtigt. Bis zu 45 % des Jahres-Primärenergiebedarfs können durch selbst erzeugten Strom abgezogen werden. Das fördert die Nutzung erneuerbarer Energien und reduziert den Gesamtenergiebedarf.", false],
|
||||
["Im Energieausweis müssen nun verpflichtend die CO2-Emissionen des Gebäudes angegeben werden. Diese neue Regelung erhöht die Transparenz hinsichtlich der Klimawirkung und unterstützt Eigentümer bei der Planung nachhaltiger Maßnahmen.", false],
|
||||
]}
|
||||
></TextboxCardTemplate>
|
||||
<div class="mt-4 mb-6">
|
||||
<WelcherAusweisWidget client:load />
|
||||
</div>
|
||||
|
||||
<h2>
|
||||
Erfüllen Sie die gesetzlichen Vorgaben des <span>GEG 2024</span>. Mit
|
||||
uns profitieren Sie von:
|
||||
</h2>
|
||||
<p>
|
||||
Rechtssicherer Bearbeitung <span class="text-green-700;">✔</span
|
||||
> Langjähriger Erfahrung <span class="text-green-700;"
|
||||
>✔</span
|
||||
> Schneller <span>online Erstellung </span><span
|
||||
class="text-green-700;">✔</span
|
||||
>
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Energieausweis nach aktueller GEG (vormals EnEV) geprüft vom Diplom Ingenieur
|
||||
</h2>
|
||||
<div class="p-6">
|
||||
<div class="flex flex-row">
|
||||
<div class="w-3/4">
|
||||
<p>
|
||||
Sie möchten Ihren <strong>Energieausweis online erstellen</strong>? Auf dieser Seite finden Sie alle nötigen Informationen hierzu.
|
||||
Sollten Sie sich nicht sicher sein, <a href="/welcher-energieausweis/">welchen Energieausweis</a>
|
||||
Sie benötigen, können Sie sich bei uns umfassend informieren. Wir haben für Sie alle wichtigen Informationen rund um die GEG und zur
|
||||
<a href="/energieausweis/energieausweis-pflicht/">Energieausweis Pflicht</a> zusammengetragen.
|
||||
Zusätzlich haben wir die entscheidenden Informationen auf übersichtlichen Merkblättern im PDF-Format zum Download zusammengefasst.
|
||||
Sollten Sie noch Fragen zum Thema Energieausweis online erstellen haben, stehen wir Ihnen gerne telefonisch unter folgender Nummer:
|
||||
<span>040/209 339 850</span> zur Verfügung.
|
||||
</p>
|
||||
<hr class="mb-4">
|
||||
<p>
|
||||
Mit dem <strong>Energieausweis</strong> werden Wohngebäude und Nichtwohngebäude nach den Vorgaben des Gebäudeenergiegesetzes
|
||||
<a href="/geg/">GEG</a> energetisch bewertet. Das <a href="https://www.dibt.de/" target="blank">DIBt</a>
|
||||
(Deutsches Institut für Bautechnik) regelt die Grundsätze zur Ausstellung, Berechnung und der Qualitätssicherung.
|
||||
Der Energieausweis beschreibt die entsprechenden Energiekennwerte auf einer Farbskala: grün (A+/Effizienzhaus), gelb (D), und rot (H / unsaniert).
|
||||
Es wird grundsätzlich zwischen zwei Energieausweisarten unterschieden:
|
||||
</p>
|
||||
<h2>GEG gilt ab 1. Mai 2021 und löst die EnEV ab</h2>
|
||||
<TextboxCardTemplate
|
||||
TitelName="Folgende Punkte ändern sich:"
|
||||
BulletPoints={[
|
||||
[
|
||||
"Erhöhte Sorgfaltspflicht bei der Erstellung der Energieausweise. Zur Einschätzung von Modernisierungsempfehlungen sind jetzt Fotos relevanter Gebäudebereiche erforderlich. Dazu zählen Dach, Fenster, Heizung und Außenwand. Diese Maßnahmen sorgen für präzisere Bewertungen und Modernisierungsvorschläge.",
|
||||
true,
|
||||
],
|
||||
[
|
||||
"Die Primärenergiefaktoren zur Ermittlung des Gebäudekennwerts werden jetzt direkt im GEG (§22 Primärenergiefaktoren) geregelt. Dadurch wird mehr Transparenz und Nachvollziehbarkeit geschaffen. Auch findet die Verwendung von Biogas aus dem Erdgasnetz jetzt angemessen Berücksichtigung.",
|
||||
true,
|
||||
],
|
||||
[
|
||||
"Die lokal erzeugte Energie durch PV-Anlagen wird besser berücksichtigt. Bis zu 45 % des Jahres-Primärenergiebedarfs können durch selbst erzeugten Strom abgezogen werden. Das fördert die Nutzung erneuerbarer Energien und reduziert den Gesamtenergiebedarf.",
|
||||
false,
|
||||
],
|
||||
[
|
||||
"Im Energieausweis müssen nun verpflichtend die CO2-Emissionen des Gebäudes angegeben werden. Diese neue Regelung erhöht die Transparenz hinsichtlich der Klimawirkung und unterstützt Eigentümer bei der Planung nachhaltiger Maßnahmen.",
|
||||
false,
|
||||
],
|
||||
]}
|
||||
/>
|
||||
|
||||
<h2>
|
||||
Energieausweis nach aktueller GEG (vormals EnEV) geprüft vom Diplom
|
||||
Ingenieur
|
||||
</h2>
|
||||
<div class="p-6">
|
||||
<div class="flex flex-row">
|
||||
<div class="w-3/4">
|
||||
<p>
|
||||
Sie möchten Ihren <strong
|
||||
>Energieausweis online erstellen</strong
|
||||
>? Auf dieser Seite finden Sie alle nötigen Informationen
|
||||
hierzu. Sollten Sie sich nicht sicher sein, <a
|
||||
href="/welcher-energieausweis/"
|
||||
>welchen Energieausweis</a
|
||||
>
|
||||
Sie benötigen, können Sie sich bei uns umfassend informieren.
|
||||
Wir haben für Sie alle wichtigen Informationen rund um die GEG
|
||||
und zur
|
||||
<a href="/energieausweis/energieausweis-pflicht/"
|
||||
>Energieausweis Pflicht</a
|
||||
> zusammengetragen. Zusätzlich haben wir die entscheidenden Informationen
|
||||
auf übersichtlichen Merkblättern im PDF-Format zum Download zusammengefasst.
|
||||
Sollten Sie noch Fragen zum Thema Energieausweis online erstellen
|
||||
haben, stehen wir Ihnen gerne telefonisch unter folgender Nummer:
|
||||
<span>040/209 339 850</span> zur Verfügung.
|
||||
</p>
|
||||
<hr class="mb-4" />
|
||||
<p>
|
||||
Mit dem <strong>Energieausweis</strong> werden Wohngebäude und
|
||||
Nichtwohngebäude nach den Vorgaben des Gebäudeenergiegesetzes
|
||||
<a href="/geg/">GEG</a> energetisch bewertet. Das <a
|
||||
href="https://www.dibt.de/"
|
||||
target="blank">DIBt</a
|
||||
>
|
||||
(Deutsches Institut für Bautechnik) regelt die Grundsätze zur
|
||||
Ausstellung, Berechnung und der Qualitätssicherung. Der Energieausweis
|
||||
beschreibt die entsprechenden Energiekennwerte auf einer Farbskala:
|
||||
grün (A+/Effizienzhaus), gelb (D), und rot (H / unsaniert). Es
|
||||
wird grundsätzlich zwischen zwei Energieausweisarten unterschieden:
|
||||
</p>
|
||||
</div>
|
||||
<div class="mb-4 w-1/4 p-4">
|
||||
<img
|
||||
class="w-full max-w-md mx-auto rounded-md"
|
||||
title="Energieausweis online erstellen"
|
||||
src="images/Bedarfsausweis-Wohngebaeude-Beispiel.jpg"
|
||||
alt="Energieausweis online erstellen"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-4 w-1/4 p-4">
|
||||
<img class="w-full max-w-md mx-auto rounded-md" title="Energieausweis online erstellen"
|
||||
src="images/Bedarfsausweis-Wohngebaeude-Beispiel.jpg" alt="Energieausweis online erstellen">
|
||||
<hr class="mb-4" />
|
||||
<div class="border-l-4 border-r-4 border-orange-300 p-4">
|
||||
<ul id="start_ul" class="list-disc list-inside">
|
||||
<li class="mb-4">
|
||||
Der verbrauchsbasierte Energieausweis wird als <a
|
||||
href="/verbrauchsausweis/"
|
||||
title="Verbrauchsausweis">Verbrauchsausweis</a
|
||||
>
|
||||
bezeichnet. Dies ist der „kleine“ Energieausweis und kann bei
|
||||
Vermietung und Verkauf in den meisten Fällen verwendet werden.
|
||||
Hier geht's direkt zum Eingabeformular:
|
||||
<br />→ <a
|
||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/"
|
||||
title="Energieausweis online erstellen - Verbrauchsausweis"
|
||||
>
|
||||
Energieausweis online erstellen</a
|
||||
>
|
||||
<hr class="mt-4" />
|
||||
</li>
|
||||
<li>
|
||||
Der bedarfsbasierte Energieausweis wird als <a
|
||||
href="/bedarfsausweis/"
|
||||
title="Bedarfsausweis">Bedarfsausweis</a
|
||||
> bezeichnet. Dies ist der „große“ Energieausweis und kann immer
|
||||
verwendet werden. Bei Neubau und Modernisierung ist er zwingend
|
||||
vorgeschrieben. Hier geht's direkt zum Eingabeformular:
|
||||
<br />→ <a
|
||||
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude/"
|
||||
title="Energieausweis online erstellen - Bedarfsausweis"
|
||||
>
|
||||
Energieausweis online erstellen</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="mb-4">
|
||||
<div class="border-l-4 border-r-4 border-orange-300 p-4">
|
||||
<ul id="start_ul" class="list-disc list-inside">
|
||||
<li class="mb-4">
|
||||
Der verbrauchsbasierte Energieausweis wird als <a href="/verbrauchsausweis/" title="Verbrauchsausweis">Verbrauchsausweis</a>
|
||||
bezeichnet. Dies ist der „kleine“ Energieausweis und kann bei Vermietung und Verkauf in den meisten Fällen verwendet werden.
|
||||
Hier geht's direkt zum Eingabeformular:
|
||||
<br>→ <a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/" title="Energieausweis online erstellen - Verbrauchsausweis">
|
||||
Energieausweis online erstellen</a>
|
||||
<hr class="mt-4">
|
||||
</li>
|
||||
<li>
|
||||
Der bedarfsbasierte Energieausweis wird als <a href="/bedarfsausweis/" title="Bedarfsausweis">Bedarfsausweis</a> bezeichnet.
|
||||
Dies ist der „große“ Energieausweis und kann immer verwendet werden. Bei Neubau und Modernisierung ist er zwingend vorgeschrieben.
|
||||
Hier geht's direkt zum Eingabeformular:
|
||||
<br>→ <a href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude/" title="Energieausweis online erstellen - Bedarfsausweis">
|
||||
Energieausweis online erstellen</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<h2>Übersicht <span class="font-bold">Verbrauchsausweis</span> und <span class="font-bold">Bedarfsausweis</span> für Wohngebäude:</h2>
|
||||
<h2>
|
||||
Übersicht <span class="font-bold">Verbrauchsausweis</span> und <span
|
||||
class="font-bold">Bedarfsausweis</span
|
||||
> für Wohngebäude:
|
||||
</h2>
|
||||
|
||||
<ProduktVergleich />
|
||||
|
||||
<h2>Übersicht <span class="font-bold">Verbrauchsausweis</span> und <span class="font-bold">Bedarfsausweis</span> für Gewerbegebäude:</h2>
|
||||
<h2>
|
||||
Übersicht <span class="font-bold">Verbrauchsausweis</span> und <span
|
||||
class="font-bold">Bedarfsausweis</span
|
||||
> für Gewerbegebäude:
|
||||
</h2>
|
||||
|
||||
<ProduktVergleichGewerbe />
|
||||
<ProduktVergleichGewerbe />
|
||||
|
||||
<div class="p-6 border-2 mb-6">
|
||||
<h2>Unterschied: Verbrauchsausweis und Bedarfsausweis</h2>
|
||||
<p>
|
||||
Grundsätzlich unterscheidet man beim Energieausweis zwischen <span>Verbrauchsausweis</span> und <span>Bedarfsausweis</span>.
|
||||
</p>
|
||||
|
||||
<h3>Was ist ein Verbrauchsausweis?</h3>
|
||||
<p>
|
||||
Der Verbrauchsausweis gibt den Energieverbrauch der Gebäudebewohner in den vergangenen drei Jahren für Heizung und
|
||||
Warmwasserbereitung an. Um den <a href="/geg/#p82">Energieverbrauchskennwert zu ermitteln</a>, wird
|
||||
der tatsächliche Energieverbrauch mithilfe eines standortbezogenen Klimafaktors bereinigt. Der Durchschnittswert wird durch die sogenannte
|
||||
<span>energetische Gebäudenutzfläche (An)</span> geteilt.
|
||||
</p>
|
||||
<p>
|
||||
So führt beispielsweise ein hoher Verbrauch in einem einzelnen harten Winter nicht zu einer schlechteren Beurteilung des Gebäudes.
|
||||
Der tatsächliche Energieverbrauch in einem Gebäude oder einer Wohnung kann aufgrund des Witterungseinflusses vom
|
||||
Energieverbrauchskennwert abweichen. Das Ergebnis im Verbrauchsausweis ist stark vom individuellen Nutzungsverhalten der
|
||||
Bewohner abhängig. Wird in einem energetisch schlechten Gebäude kaum geheizt, so kann der Energieausweis trotzdem sehr gut ausfallen.
|
||||
</p>
|
||||
|
||||
<h3>Was ist ein Bedarfsausweis?</h3>
|
||||
<p>
|
||||
Der Bedarfsausweis entsteht auf Grundlage einer technischen
|
||||
<a href="/geg/#p81">Analyse der Bausubstanz und der Heizungsanlage eines Gebäudes</a> und ist unabhängig vom
|
||||
individuellen Nutzerverhalten.
|
||||
</p>
|
||||
<p>
|
||||
Die Farbverlaufsskala im Bedarfsausweis weist zwei verschiedene Werte aus: einen Wert für den <span>Endenergiebedarf</span> und
|
||||
einen für den <span>Primärenergiebedarf</span>. Zusätzlich wird noch ein Kennwert für die energetische Qualität der Gebäudehülle dargestellt.
|
||||
</p>
|
||||
<p>
|
||||
Der Energiebedarf gibt die nach technischen Regeln berechnete, vom konkreten Gebäude jährlich benötigte Energiemenge für Heizung,
|
||||
Lüftung und Warmwasserbereitung an. Dabei werden standardisierte Randbedingungen – beispielsweise eine Innentemperatur von
|
||||
19 Grad im beheizten Bereich des Gebäudes – zugrunde gelegt.
|
||||
</p>
|
||||
<p>
|
||||
Am <span>Endenergiebedarf</span> sollten sich Hausbewohner orientieren, wenn sie ihren künftigen Energieverbrauch und die
|
||||
Energiekosten abschätzen wollen. Der <span>Primärenergiebedarf</span> bildet die Gesamtenergieeffizienz eines Gebäudes ab.
|
||||
Er berücksichtigt neben der Endenergie auch die sogenannte „Vorkette“ (Erkundung, Gewinnung, Verteilung, Umwandlung) der
|
||||
jeweils eingesetzten Energieträger (z. B. Heizöl, Gas, Strom, erneuerbare Energien).
|
||||
</p>
|
||||
<p>
|
||||
Besonders niedrig fällt der Primärenergiebedarf aus, wenn erneuerbare Energien (solare Strahlungsenergie, Geothermie, Energie aus Biomasse)
|
||||
für die Energieversorgung im Gebäude eingesetzt werden. Am Primärenergiebedarf können Verbraucher erkennen, wie umweltfreundlich
|
||||
ihr Gebäude ist.
|
||||
</p>
|
||||
|
||||
<h3>Fazit – Verbrauchsausweis / Bedarfsausweis</h3>
|
||||
<p>
|
||||
Geht es um den tatsächlichen Verbrauch der Energie, der den Aufwand für Heizung und zentrale Warmwasserbereitung der vergangenen
|
||||
drei Jahre berücksichtigt, wird der <span>Energieverbrauchskennwert</span> für den Verbrauchsausweis ermittelt. Bei gewerblichen
|
||||
Objekten wird zusätzlich der Verbrauch für Beleuchtung und Klimatisierung mit eingerechnet.
|
||||
</p>
|
||||
<p>
|
||||
Für das Ausstellen des Bedarfsausweises wird der rechnerische Energiebedarf unter standardisierten Randbedingungen benötigt.
|
||||
Daten rund um Bausubstanz, Gebäudehülle und Heizanlage fließen in die Berechnung mit ein. Bedarfsausweise widerspiegeln die
|
||||
tatsächliche energetische Qualität eines Gebäudes damit wesentlich besser als die Verbrauchsausweise.
|
||||
</p>
|
||||
</div>
|
||||
<div class="p-6 border-2 mb-6">
|
||||
<h2>Unterschied: Verbrauchsausweis und Bedarfsausweis</h2>
|
||||
<p>
|
||||
Grundsätzlich unterscheidet man beim Energieausweis zwischen <span
|
||||
>Verbrauchsausweis</span
|
||||
> und <span>Bedarfsausweis</span>.
|
||||
</p>
|
||||
|
||||
<div class="p-6 border-2 mb-6">
|
||||
<h2>Energieausweis online erstellen</h2>
|
||||
<p>
|
||||
Soll Wohneigentum veräußert oder bauliches Teileigentum zum Erwerb angeboten werden, muss dem möglichen Käufer oder Leasingnehmer auf
|
||||
Verlangen unverzüglich ein <a href="/geg/#p87">Energieausweis vorgelegt werden</a>. In den meisten Fällen ist hier ein Verbrauchsausweis ausreichend.
|
||||
</p>
|
||||
<p>
|
||||
Auch Mietern oder Pächtern soll der Energieausweis unmittelbaren Aufschluss über die energetischen Bedingungen des Gebäudes aufzeigen.Kommt der
|
||||
Anbieter der offerierten Immobilie diesem Auftrag nach der Energieeinsparverordnung nicht nach, drohen Bußgelder bis zu 15 000 Euro. Als
|
||||
<a href="/geg/#p79">Ausnahmen</a> (§ 79 GEG) gelten Gebäude mit nicht mehr als 50 m² Fläche sowie Baudenkmäler.
|
||||
</p>
|
||||
<p>
|
||||
Die <a href="https://www.dena.de/">Deutsche Energie-Agentur GmbH (dena)</a> empfiehlt bei Wohngebäuden generell den Bedarfsausweis. Er erlaubt eine nutzerunabhängige Bewertung
|
||||
des Gebäudes. Zusätzlich können bei der Erstellung eines Bedarfsausweises die Empfehlungen für Modernisierungen auf der Basis einer technischen
|
||||
Analyse des Gebäudes ermittelt werden.
|
||||
</p>
|
||||
</div>
|
||||
<h3>Was ist ein Verbrauchsausweis?</h3>
|
||||
<p>
|
||||
Der Verbrauchsausweis gibt den Energieverbrauch der Gebäudebewohner
|
||||
in den vergangenen drei Jahren für Heizung und Warmwasserbereitung
|
||||
an. Um den <a href="/geg/#p82"
|
||||
>Energieverbrauchskennwert zu ermitteln</a
|
||||
>, wird der tatsächliche Energieverbrauch mithilfe eines
|
||||
standortbezogenen Klimafaktors bereinigt. Der Durchschnittswert wird
|
||||
durch die sogenannte
|
||||
<span>energetische Gebäudenutzfläche (An)</span> geteilt.
|
||||
</p>
|
||||
<p>
|
||||
So führt beispielsweise ein hoher Verbrauch in einem einzelnen
|
||||
harten Winter nicht zu einer schlechteren Beurteilung des Gebäudes.
|
||||
Der tatsächliche Energieverbrauch in einem Gebäude oder einer
|
||||
Wohnung kann aufgrund des Witterungseinflusses vom
|
||||
Energieverbrauchskennwert abweichen. Das Ergebnis im
|
||||
Verbrauchsausweis ist stark vom individuellen Nutzungsverhalten der
|
||||
Bewohner abhängig. Wird in einem energetisch schlechten Gebäude kaum
|
||||
geheizt, so kann der Energieausweis trotzdem sehr gut ausfallen.
|
||||
</p>
|
||||
|
||||
<h3>Was ist ein Bedarfsausweis?</h3>
|
||||
<p>
|
||||
Der Bedarfsausweis entsteht auf Grundlage einer technischen
|
||||
<a href="/geg/#p81"
|
||||
>Analyse der Bausubstanz und der Heizungsanlage eines Gebäudes</a
|
||||
> und ist unabhängig vom individuellen Nutzerverhalten.
|
||||
</p>
|
||||
<p>
|
||||
Die Farbverlaufsskala im Bedarfsausweis weist zwei verschiedene
|
||||
Werte aus: einen Wert für den <span>Endenergiebedarf</span> und einen
|
||||
für den <span>Primärenergiebedarf</span>. Zusätzlich wird noch ein
|
||||
Kennwert für die energetische Qualität der Gebäudehülle dargestellt.
|
||||
</p>
|
||||
<p>
|
||||
Der Energiebedarf gibt die nach technischen Regeln berechnete, vom
|
||||
konkreten Gebäude jährlich benötigte Energiemenge für Heizung,
|
||||
Lüftung und Warmwasserbereitung an. Dabei werden standardisierte
|
||||
Randbedingungen – beispielsweise eine Innentemperatur von 19 Grad im
|
||||
beheizten Bereich des Gebäudes – zugrunde gelegt.
|
||||
</p>
|
||||
<p>
|
||||
Am <span>Endenergiebedarf</span> sollten sich Hausbewohner orientieren,
|
||||
wenn sie ihren künftigen Energieverbrauch und die Energiekosten abschätzen
|
||||
wollen. Der <span>Primärenergiebedarf</span> bildet die Gesamtenergieeffizienz
|
||||
eines Gebäudes ab. Er berücksichtigt neben der Endenergie auch die sogenannte
|
||||
„Vorkette“ (Erkundung, Gewinnung, Verteilung, Umwandlung) der jeweils
|
||||
eingesetzten Energieträger (z. B. Heizöl, Gas, Strom, erneuerbare Energien).
|
||||
</p>
|
||||
<p>
|
||||
Besonders niedrig fällt der Primärenergiebedarf aus, wenn
|
||||
erneuerbare Energien (solare Strahlungsenergie, Geothermie, Energie
|
||||
aus Biomasse) für die Energieversorgung im Gebäude eingesetzt
|
||||
werden. Am Primärenergiebedarf können Verbraucher erkennen, wie
|
||||
umweltfreundlich ihr Gebäude ist.
|
||||
</p>
|
||||
|
||||
<h2>Was ist ein Energieausweis?</h2>
|
||||
<TextboxCardTemplate
|
||||
TitelName="Zusammenfassung"
|
||||
BulletPoints={[
|
||||
|
||||
["Der Gesetzgeber hat zwei Arten des Energieausweises bestimmt: Den Verbrauchsausweis und den Bedarfsausweis.", true],
|
||||
["Je nach Gebäudeart, Baujahr, Nutzungsart gilt es verschiedene Kriterien für den Energieausweis zu beachten.", true],
|
||||
["Der Energieausweis gibt Modernisierungsempfehlungen aus die auf mögliche Energiesparmaßnahmen hinweisen.", false],
|
||||
["Der Energieausweises beinflusst den Marktwert einer Immobilie.", false],
|
||||
["Der Energieausweis offenbart bauliche Mängel, die eine Energieverschwendung mit sich bringen.", true],
|
||||
["Anhand des Bedarfsausweises lässt sich der energetische Zustand verschiedener Gebäude miteinander vergleichen.", false],
|
||||
]}
|
||||
></TextboxCardTemplate>
|
||||
<h3>Fazit – Verbrauchsausweis / Bedarfsausweis</h3>
|
||||
<p>
|
||||
Geht es um den tatsächlichen Verbrauch der Energie, der den Aufwand
|
||||
für Heizung und zentrale Warmwasserbereitung der vergangenen drei
|
||||
Jahre berücksichtigt, wird der <span>Energieverbrauchskennwert</span
|
||||
> für den Verbrauchsausweis ermittelt. Bei gewerblichen Objekten wird
|
||||
zusätzlich der Verbrauch für Beleuchtung und Klimatisierung mit eingerechnet.
|
||||
</p>
|
||||
<p>
|
||||
Für das Ausstellen des Bedarfsausweises wird der rechnerische
|
||||
Energiebedarf unter standardisierten Randbedingungen benötigt. Daten
|
||||
rund um Bausubstanz, Gebäudehülle und Heizanlage fließen in die
|
||||
Berechnung mit ein. Bedarfsausweise widerspiegeln die tatsächliche
|
||||
energetische Qualität eines Gebäudes damit wesentlich besser als die
|
||||
Verbrauchsausweise.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<InfoPopup></InfoPopup>
|
||||
<div class="p-6 border-2 mb-6">
|
||||
<h2>Energieausweis online erstellen</h2>
|
||||
<p>
|
||||
Soll Wohneigentum veräußert oder bauliches Teileigentum zum Erwerb
|
||||
angeboten werden, muss dem möglichen Käufer oder Leasingnehmer auf
|
||||
Verlangen unverzüglich ein <a href="/geg/#p87"
|
||||
>Energieausweis vorgelegt werden</a
|
||||
>. In den meisten Fällen ist hier ein Verbrauchsausweis ausreichend.
|
||||
</p>
|
||||
<p>
|
||||
Auch Mietern oder Pächtern soll der Energieausweis unmittelbaren
|
||||
Aufschluss über die energetischen Bedingungen des Gebäudes
|
||||
aufzeigen.Kommt der Anbieter der offerierten Immobilie diesem
|
||||
Auftrag nach der Energieeinsparverordnung nicht nach, drohen
|
||||
Bußgelder bis zu 15 000 Euro. Als
|
||||
<a href="/geg/#p79">Ausnahmen</a> (§ 79 GEG) gelten Gebäude mit nicht
|
||||
mehr als 50 m² Fläche sowie Baudenkmäler.
|
||||
</p>
|
||||
<p>
|
||||
Die <a href="https://www.dena.de/"
|
||||
>Deutsche Energie-Agentur GmbH (dena)</a
|
||||
> empfiehlt bei Wohngebäuden generell den Bedarfsausweis. Er erlaubt
|
||||
eine nutzerunabhängige Bewertung des Gebäudes. Zusätzlich können bei
|
||||
der Erstellung eines Bedarfsausweises die Empfehlungen für Modernisierungen
|
||||
auf der Basis einer technischen Analyse des Gebäudes ermittelt werden.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h2>Was ist ein Energieausweis?</h2>
|
||||
<TextboxCardTemplate
|
||||
TitelName="Zusammenfassung"
|
||||
BulletPoints={[
|
||||
[
|
||||
"Der Gesetzgeber hat zwei Arten des Energieausweises bestimmt: Den Verbrauchsausweis und den Bedarfsausweis.",
|
||||
true,
|
||||
],
|
||||
[
|
||||
"Je nach Gebäudeart, Baujahr, Nutzungsart gilt es verschiedene Kriterien für den Energieausweis zu beachten.",
|
||||
true,
|
||||
],
|
||||
[
|
||||
"Der Energieausweis gibt Modernisierungsempfehlungen aus die auf mögliche Energiesparmaßnahmen hinweisen.",
|
||||
false,
|
||||
],
|
||||
[
|
||||
"Der Energieausweises beinflusst den Marktwert einer Immobilie.",
|
||||
false,
|
||||
],
|
||||
[
|
||||
"Der Energieausweis offenbart bauliche Mängel, die eine Energieverschwendung mit sich bringen.",
|
||||
true,
|
||||
],
|
||||
[
|
||||
"Anhand des Bedarfsausweises lässt sich der energetische Zustand verschiedener Gebäude miteinander vergleichen.",
|
||||
false,
|
||||
],
|
||||
]}
|
||||
/>
|
||||
|
||||
<InfoPopup client:only />
|
||||
</Layout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ import * as fs from "fs";
|
||||
import { fileURLToPath } from "url";
|
||||
import { hashPassword } from "#lib/password.js";
|
||||
import Papa from "papaparse"
|
||||
import { generatePrefixedId } from "#lib/db.js";
|
||||
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
|
||||
|
||||
const saveUserMap = () => {
|
||||
fs.writeFileSync(
|
||||
@@ -24,7 +26,6 @@ const file = fs.createReadStream(path, "utf8");
|
||||
Papa.parse(file, {
|
||||
header: true,
|
||||
step: async function(results) {
|
||||
await prisma.$transaction(async (tx) => {
|
||||
const dataset = results.data as any;
|
||||
|
||||
if (dataset.id in processed) {
|
||||
@@ -37,7 +38,7 @@ Papa.parse(file, {
|
||||
console.log(`Missing user ${user_id}`);
|
||||
|
||||
if (dataset.email) {
|
||||
user = await tx.benutzer.findUnique({
|
||||
user = await prisma.benutzer.findUnique({
|
||||
where: {
|
||||
email: dataset.email
|
||||
}
|
||||
@@ -45,8 +46,11 @@ Papa.parse(file, {
|
||||
|
||||
|
||||
if (!user) {
|
||||
user = await tx.benutzer.create({
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.User)
|
||||
|
||||
user = await prisma.benutzer.create({
|
||||
data: {
|
||||
id,
|
||||
email: dataset.email,
|
||||
passwort: hashPassword(Math.random().toString(36).slice(-8)),
|
||||
adresse: dataset.strasse,
|
||||
@@ -60,13 +64,13 @@ Papa.parse(file, {
|
||||
});
|
||||
}
|
||||
|
||||
newUserIdMap[user_id] = user.uid;
|
||||
newUserIdMap[user_id] = user.id;
|
||||
saveUserMap();
|
||||
}
|
||||
} else {
|
||||
user = await tx.benutzer.findUnique({
|
||||
user = await prisma.benutzer.findUnique({
|
||||
where: {
|
||||
uid: newUserIdMap[user_id],
|
||||
id: newUserIdMap[user_id],
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -77,22 +81,27 @@ Papa.parse(file, {
|
||||
return
|
||||
}
|
||||
|
||||
const objekt = await tx.objekt.create({
|
||||
const objekt_id = generatePrefixedId(6, VALID_UUID_PREFIXES.Objekt)
|
||||
const objekt = await prisma.objekt.create({
|
||||
data: {
|
||||
id: objekt_id,
|
||||
adresse: dataset.objekt_strasse,
|
||||
erstellungsdatum: moment(dataset.erstellungsdatum).toDate(),
|
||||
ort: dataset.objekt_ort,
|
||||
plz: dataset.objekt_plz,
|
||||
benutzer: {
|
||||
connect: {
|
||||
uid: user.uid,
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const aufnahme = await tx.aufnahme.create({
|
||||
const aufnahme_id = generatePrefixedId(6, VALID_UUID_PREFIXES.Objekt)
|
||||
|
||||
const aufnahme = await prisma.aufnahme.create({
|
||||
data: {
|
||||
id: aufnahme_id,
|
||||
alternative_heizung: dataset.alheizung == "1",
|
||||
alternative_kuehlung: dataset.alkuehlung == "1",
|
||||
alternative_lueftung: dataset.allueftung == "1",
|
||||
@@ -100,13 +109,12 @@ Papa.parse(file, {
|
||||
aussenwand_gedaemmt: dataset.aussenwand_gedaemmt == "1",
|
||||
aussenwand_min_12cm_gedaemmt:
|
||||
dataset.aussenwand_min_12cm_gedaemmt == "1",
|
||||
ausstellungsdatum: moment(dataset.erstellungsdatum).toDate(),
|
||||
baujahr_gebaeude: parseInt(dataset.baujahr_gebaeude) ? [parseInt(dataset.baujahr_gebaeude)] : [],
|
||||
baujahr_heizung: parseInt(dataset.baujahr_anlage) ? [parseInt(dataset.baujahr_anlage)] : [],
|
||||
baujahr_klima: parseInt(dataset.baujahr_klimaanlage) ? [parseInt(dataset.baujahr_klimaanlage)] : [],
|
||||
benutzer: {
|
||||
connect: {
|
||||
uid: user.uid,
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
objekt: {
|
||||
@@ -114,8 +122,6 @@ Papa.parse(file, {
|
||||
id: objekt.id,
|
||||
},
|
||||
},
|
||||
brennstoff_1: dataset.energietraeger_1,
|
||||
brennstoff_2: dataset.energietraeger_2,
|
||||
dachgeschoss:
|
||||
dataset.dachgeschoss == "Beheizt"
|
||||
? Enums.Heizungsstatus.BEHEIZT
|
||||
@@ -183,7 +189,6 @@ Papa.parse(file, {
|
||||
dataset.warmwasser_rohre_gedaemmt == "1",
|
||||
zentralheizung: dataset.zentralheizung == "1",
|
||||
zirkulation: dataset.zirkulation == "1",
|
||||
boxpruefung: dataset.boxpruefung == "1",
|
||||
},
|
||||
});
|
||||
|
||||
@@ -199,12 +204,14 @@ Papa.parse(file, {
|
||||
"heizung": Enums.BilderKategorie.Heizung
|
||||
}
|
||||
|
||||
const img = await tx.bild.create({
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.Bild)
|
||||
const img = await prisma.bild.create({
|
||||
data: {
|
||||
id,
|
||||
kategorie: categoryMap[kategorie as keyof typeof categoryMap],
|
||||
aufnahme: {
|
||||
connect: {
|
||||
uid: aufnahme.uid
|
||||
id: aufnahme.id
|
||||
}
|
||||
},
|
||||
name: image
|
||||
@@ -214,9 +221,9 @@ Papa.parse(file, {
|
||||
}
|
||||
|
||||
if (dataset.ausweisart === "VA") {
|
||||
const ausweis = await tx.verbrauchsausweisWohnen.create({
|
||||
const ausweis = await prisma.verbrauchsausweisWohnen.create({
|
||||
data: {
|
||||
alte_ausweis_id: parseInt(dataset.id),
|
||||
id: VALID_UUID_PREFIXES.VerbrauchsausweisWohnen + dataset.id,
|
||||
alternative_heizung: dataset.alheizung == "1",
|
||||
alternative_kuehlung: dataset.alkuehlung == "1",
|
||||
alternative_lueftung: dataset.allueftung == "1",
|
||||
@@ -249,7 +256,7 @@ Papa.parse(file, {
|
||||
storniert: dataset.erledigt == "4",
|
||||
benutzer: {
|
||||
connect: {
|
||||
uid: user.uid,
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
kontrolldatei_angefragt: dataset.kontrolldatei == "1",
|
||||
@@ -279,12 +286,18 @@ Papa.parse(file, {
|
||||
zurueckgestellt: dataset.zurueckGestellt == "1",
|
||||
zusaetzliche_heizquelle:
|
||||
dataset.zusaetzliche_heizquelle == "1",
|
||||
ausstellungsdatum: moment(dataset.bestelldatum).isValid() ? moment(dataset.bestelldatum).toDate() : new Date(),
|
||||
ausweistyp: Enums.AusweisTyp.Standard,
|
||||
brennstoff_1: dataset.energietraeger_1,
|
||||
brennstoff_2: dataset.energietraeger_2,
|
||||
boxpruefung: dataset.boxpruefung == "1",
|
||||
created_at: moment(dataset.erstellungsdatum).toDate(),
|
||||
},
|
||||
});
|
||||
} else if (dataset.ausweisart === "VANW") {
|
||||
const ausweis = await tx.verbrauchsausweisGewerbe.create({
|
||||
const ausweis = await prisma.verbrauchsausweisGewerbe.create({
|
||||
data: {
|
||||
alte_ausweis_id: parseInt(dataset.id),
|
||||
id: VALID_UUID_PREFIXES.VerbrauchsausweisGewerbe + dataset.id,
|
||||
alternative_heizung: dataset.alheizung == "1",
|
||||
alternative_kuehlung: dataset.alkuehlung == "1",
|
||||
alternative_lueftung: dataset.allueftung == "1",
|
||||
@@ -317,7 +330,7 @@ Papa.parse(file, {
|
||||
storniert: dataset.erledigt == "4",
|
||||
benutzer: {
|
||||
connect: {
|
||||
uid: user.uid,
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
kontrolldatei_angefragt: dataset.kontrolldatei == "1",
|
||||
@@ -358,13 +371,17 @@ Papa.parse(file, {
|
||||
warmwasser_enthalten: dataset.warmwasser_enthalten == "1",
|
||||
zurueckgestellt: dataset.zurueckGestellt == "1",
|
||||
zusaetzliche_heizquelle:
|
||||
dataset.zusaetzliche_heizquelle == "1"
|
||||
dataset.zusaetzliche_heizquelle == "1",
|
||||
ausstellungsdatum: moment(dataset.bestelldatum).isValid() ? moment(dataset.bestelldatum).toDate() : new Date(),
|
||||
ausweistyp: Enums.AusweisTyp.Standard,
|
||||
boxpruefung: dataset.boxpruefung == "1",
|
||||
created_at: moment(dataset.erstellungsdatum).toDate(),
|
||||
},
|
||||
});
|
||||
} else if (dataset.ausweisart === "BA") {
|
||||
const ausweis = await tx.bedarfsausweisWohnen.create({
|
||||
const ausweis = await prisma.bedarfsausweisWohnen.create({
|
||||
data: {
|
||||
alte_ausweis_id: parseInt(dataset.id),
|
||||
id: VALID_UUID_PREFIXES.BedarfsausweisWohnen + dataset.id,
|
||||
alternative_heizung: dataset.alheizung == "1",
|
||||
alternative_kuehlung: dataset.alkuehlung == "1",
|
||||
alternative_lueftung: dataset.allueftung == "1",
|
||||
@@ -389,7 +406,7 @@ Papa.parse(file, {
|
||||
storniert: dataset.erledigt == "4",
|
||||
benutzer: {
|
||||
connect: {
|
||||
uid: user.uid,
|
||||
id: user.id,
|
||||
},
|
||||
},
|
||||
kontrolldatei_angefragt: dataset.kontrolldatei == "1",
|
||||
@@ -443,17 +460,17 @@ Papa.parse(file, {
|
||||
waerme_erzeugung_heizung: dataset.waerme_erzeugung_heizung,
|
||||
warmwasser_erzeugung: dataset.warmwasser_erzeugung,
|
||||
warmwasser_speicherung: dataset.warmwasser_speicherung,
|
||||
warmwasser_verteilung: dataset.warmwasser_verteilung
|
||||
warmwasser_verteilung: dataset.warmwasser_verteilung,
|
||||
ausstellungsdatum: moment(dataset.bestelldatum).isValid() ? moment(dataset.bestelldatum).toDate() : new Date(),
|
||||
ausweistyp: Enums.AusweisTyp.Standard,
|
||||
boxpruefung: dataset.boxpruefung == "1",
|
||||
created_at: moment(dataset.erstellungsdatum).toDate(),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
processed[dataset.id as string] = true;
|
||||
saveProcessed()
|
||||
}, {
|
||||
maxWait: 5000,
|
||||
timeout: 10000
|
||||
});
|
||||
},
|
||||
complete(results, file) {
|
||||
saveProcessed()
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user