Felder angepasst und Tests

This commit is contained in:
Moritz Utcke
2025-03-30 20:18:30 -03:00
parent e2e576e4fe
commit c8b41458e1
34 changed files with 303 additions and 376 deletions

View File

@@ -0,0 +1,44 @@
/*
Warnings:
- You are about to drop the column `ausstellungsdatum` on the `Aufnahme` table. All the data in the column will be lost.
- You are about to drop the column `ausweisart` on the `Aufnahme` table. All the data in the column will be lost.
- You are about to drop the column `boxpruefung` on the `Aufnahme` table. All the data in the column will be lost.
- You are about to drop the column `brennstoff_1` on the `Aufnahme` table. All the data in the column will be lost.
- You are about to drop the column `brennstoff_2` on the `Aufnahme` table. All the data in the column will be lost.
- You are about to drop the column `energieeffizienzklasse` on the `Aufnahme` table. All the data in the column will be lost.
- You are about to drop the column `uid` on the `Bild` table. All the data in the column will be lost.
- You are about to drop the column `keller_beheizt` on the `VerbrauchsausweisWohnen` table. All the data in the column will be lost.
*/
-- DropIndex
DROP INDEX "Bild_uid_key";
-- AlterTable
ALTER TABLE "Aufnahme" DROP COLUMN "ausstellungsdatum",
DROP COLUMN "ausweisart",
DROP COLUMN "boxpruefung",
DROP COLUMN "brennstoff_1",
DROP COLUMN "brennstoff_2",
DROP COLUMN "energieeffizienzklasse";
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "ausstellungsdatum" TIMESTAMP(3),
ADD COLUMN "boxpruefung" BOOLEAN DEFAULT false,
ADD COLUMN "energieeffizienzklasse" VARCHAR(5);
-- AlterTable
ALTER TABLE "Bild" DROP COLUMN "uid";
-- AlterTable
ALTER TABLE "VerbrauchsausweisGewerbe" ADD COLUMN "ausstellungsdatum" TIMESTAMP(3),
ADD COLUMN "boxpruefung" BOOLEAN DEFAULT false,
ADD COLUMN "energieeffizienzklasse" VARCHAR(5);
-- AlterTable
ALTER TABLE "VerbrauchsausweisWohnen" DROP COLUMN "keller_beheizt",
ADD COLUMN "ausstellungsdatum" TIMESTAMP(3),
ADD COLUMN "boxpruefung" BOOLEAN DEFAULT false,
ADD COLUMN "brennstoff_1" VARCHAR(50),
ADD COLUMN "brennstoff_2" VARCHAR(50),
ADD COLUMN "energieeffizienzklasse" VARCHAR(5);

View File

@@ -16,8 +16,6 @@ model Aufnahme {
id String @id @unique @db.VarChar(8) id String @id @unique @db.VarChar(8)
benutzer_id String? benutzer_id String?
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
/// @zod.describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen")
ausweisart Ausweisart?
/// @zod.describe("Art des Gebäudes und seiner primären Nutzungsart") /// @zod.describe("Art des Gebäudes und seiner primären Nutzungsart")
gebaeudetyp String? @db.VarChar gebaeudetyp String? @db.VarChar
/// @zod.describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil") /// @zod.describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil")
@@ -56,20 +54,8 @@ model Aufnahme {
/// @zod.describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen") /// @zod.describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
alternative_kuehlung Boolean? alternative_kuehlung Boolean?
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle") /// @zod.describe("Datum an dem der Kunde die Aufnahme erstellt hat")
brennstoff_1 String? @db.VarChar(50)
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
brennstoff_2 String? @db.VarChar(50)
boxpruefung Boolean? @default(false)
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
energieeffizienzklasse String? @db.VarChar(5)
/// @zod.describe("Datum an dem der Kunde den Ausweis erstellt hat")
erstellungsdatum DateTime? @default(now()) erstellungsdatum DateTime? @default(now())
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
ausstellungsdatum DateTime?
/// @zod.describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen") /// @zod.describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen")
zentralheizung Boolean? zentralheizung Boolean?

View File

@@ -11,6 +11,12 @@ model BedarfsausweisWohnen {
alternative_lueftung Boolean? alternative_lueftung Boolean?
alternative_kuehlung Boolean? alternative_kuehlung Boolean?
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
energieeffizienzklasse String? @db.VarChar(5)
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
ausstellungsdatum DateTime?
boxpruefung Boolean? @default(false)
anzahl_vollgeschosse Int? anzahl_vollgeschosse Int?
geschosshoehe Float? geschosshoehe Float?
anzahl_gauben Int? anzahl_gauben Int?

View File

@@ -5,9 +5,7 @@ model VerbrauchsausweisGewerbe {
ausstellgrund Ausstellgrund? ausstellgrund Ausstellgrund?
registriernummer String? @db.VarChar registriernummer String? @db.VarChar
zusaetzliche_heizquelle Boolean? zusaetzliche_heizquelle Boolean?
brennstoff_1 String? @db.VarChar(50)
einheit_1 String? @db.VarChar(50) einheit_1 String? @db.VarChar(50)
brennstoff_2 String? @db.VarChar(50)
einheit_2 String? @db.VarChar(50) einheit_2 String? @db.VarChar(50)
startdatum DateTime? @db.Timestamp(6) startdatum DateTime? @db.Timestamp(6)
verbrauch_1 Int? verbrauch_1 Int?
@@ -17,6 +15,17 @@ model VerbrauchsausweisGewerbe {
verbrauch_5 Int? verbrauch_5 Int?
verbrauch_6 Int? verbrauch_6 Int?
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle")
brennstoff_1 String? @db.VarChar(50)
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
brennstoff_2 String? @db.VarChar(50)
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
energieeffizienzklasse String? @db.VarChar(5)
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
ausstellungsdatum DateTime?
boxpruefung Boolean? @default(false)
strom_1 Int? strom_1 Int?
strom_2 Int? strom_2 Int?
strom_3 Int? strom_3 Int?

View File

@@ -13,6 +13,18 @@ model VerbrauchsausweisWohnen {
einheit_1 String? @db.VarChar(50) einheit_1 String? @db.VarChar(50)
/// @zod.describe("Einheit des Energieträgers der sekundären Heizquelle") /// @zod.describe("Einheit des Energieträgers der sekundären Heizquelle")
einheit_2 String? @db.VarChar(50) einheit_2 String? @db.VarChar(50)
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle")
brennstoff_1 String? @db.VarChar(50)
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
brennstoff_2 String? @db.VarChar(50)
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
energieeffizienzklasse String? @db.VarChar(5)
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
ausstellungsdatum DateTime?
boxpruefung Boolean? @default(false)
startdatum DateTime? @db.Timestamptz(6) startdatum DateTime? @db.Timestamptz(6)
/// @zod.describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre") /// @zod.describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre")
verbrauch_1 Int? verbrauch_1 Int?
@@ -30,8 +42,6 @@ model VerbrauchsausweisWohnen {
warmwasser_enthalten Boolean? warmwasser_enthalten Boolean?
/// @zod.describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen") /// @zod.describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen")
warmwasser_anteil_bekannt Boolean? warmwasser_anteil_bekannt Boolean?
/// @zod.describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen")
keller_beheizt Boolean?
/// @zod.describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.") /// @zod.describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.")
faktorKeller Float? faktorKeller Float?

View File

@@ -5,7 +5,6 @@ export const createCaller = createCallerFactory({
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"), "klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"), "postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
"unterlage": await import("../src/pages/api/unterlage.ts"), "unterlage": await import("../src/pages/api/unterlage.ts"),
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"), "admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"), "admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"), "admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
@@ -14,11 +13,12 @@ export const createCaller = createCallerFactory({
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"), "admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"), "admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
"ausweise": await import("../src/pages/api/ausweise/index.ts"), "ausweise": await import("../src/pages/api/ausweise/index.ts"),
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"), "aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
"auth/access-token": await import("../src/pages/api/auth/access-token.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/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"), "bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"), "bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),

View File

@@ -57,9 +57,6 @@ export async function ausweisSpeichern(
alternative_warmwasser: aufnahme.alternative_warmwasser, alternative_warmwasser: aufnahme.alternative_warmwasser,
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt, aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt, aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
ausweisart: aufnahme.ausweisart,
brennstoff_1: aufnahme.brennstoff_1,
brennstoff_2: aufnahme.brennstoff_2,
brennwert_kessel: aufnahme.brennwert_kessel, brennwert_kessel: aufnahme.brennwert_kessel,
dachgeschoss: aufnahme.dachgeschoss, dachgeschoss: aufnahme.dachgeschoss,
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt, dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
@@ -70,7 +67,6 @@ export async function ausweisSpeichern(
einfach_verglasung: aufnahme.einfach_verglasung, einfach_verglasung: aufnahme.einfach_verglasung,
einheiten: aufnahme.einheiten, einheiten: aufnahme.einheiten,
einzelofen: aufnahme.einzelofen, einzelofen: aufnahme.einzelofen,
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
fenster_dicht: aufnahme.fenster_dicht, fenster_dicht: aufnahme.fenster_dicht,
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht, fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,
flaeche: aufnahme.flaeche, flaeche: aufnahme.flaeche,
@@ -119,10 +115,7 @@ export async function ausweisSpeichern(
alternative_warmwasser: aufnahme.alternative_warmwasser, alternative_warmwasser: aufnahme.alternative_warmwasser,
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt, aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt, aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
ausweisart: aufnahme.ausweisart,
baujahr_klima: aufnahme.baujahr_klima, baujahr_klima: aufnahme.baujahr_klima,
brennstoff_1: aufnahme.brennstoff_1,
brennstoff_2: aufnahme.brennstoff_2,
brennwert_kessel: aufnahme.brennwert_kessel, brennwert_kessel: aufnahme.brennwert_kessel,
dachgeschoss: aufnahme.dachgeschoss, dachgeschoss: aufnahme.dachgeschoss,
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt, dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
@@ -133,7 +126,6 @@ export async function ausweisSpeichern(
einfach_verglasung: aufnahme.einfach_verglasung, einfach_verglasung: aufnahme.einfach_verglasung,
einheiten: aufnahme.einheiten, einheiten: aufnahme.einheiten,
einzelofen: aufnahme.einzelofen, einzelofen: aufnahme.einzelofen,
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
erstellungsdatum: aufnahme.erstellungsdatum, erstellungsdatum: aufnahme.erstellungsdatum,
fenster_dicht: aufnahme.fenster_dicht, fenster_dicht: aufnahme.fenster_dicht,
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht, fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,

View File

@@ -58,9 +58,6 @@ export async function nachweisSpeichern(
alternative_warmwasser: aufnahme.alternative_warmwasser, alternative_warmwasser: aufnahme.alternative_warmwasser,
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt, aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt, aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
ausweisart: aufnahme.ausweisart,
brennstoff_1: aufnahme.brennstoff_1,
brennstoff_2: aufnahme.brennstoff_2,
brennwert_kessel: aufnahme.brennwert_kessel, brennwert_kessel: aufnahme.brennwert_kessel,
dachgeschoss: aufnahme.dachgeschoss, dachgeschoss: aufnahme.dachgeschoss,
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt, dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
@@ -71,7 +68,6 @@ export async function nachweisSpeichern(
einfach_verglasung: aufnahme.einfach_verglasung, einfach_verglasung: aufnahme.einfach_verglasung,
einheiten: aufnahme.einheiten, einheiten: aufnahme.einheiten,
einzelofen: aufnahme.einzelofen, einzelofen: aufnahme.einzelofen,
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
fenster_dicht: aufnahme.fenster_dicht, fenster_dicht: aufnahme.fenster_dicht,
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht, fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,
flaeche: aufnahme.flaeche, flaeche: aufnahme.flaeche,
@@ -120,10 +116,7 @@ export async function nachweisSpeichern(
alternative_warmwasser: aufnahme.alternative_warmwasser, alternative_warmwasser: aufnahme.alternative_warmwasser,
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt, aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt, aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
ausweisart: aufnahme.ausweisart,
baujahr_klima: aufnahme.baujahr_klima, baujahr_klima: aufnahme.baujahr_klima,
brennstoff_1: aufnahme.brennstoff_1,
brennstoff_2: aufnahme.brennstoff_2,
brennwert_kessel: aufnahme.brennwert_kessel, brennwert_kessel: aufnahme.brennwert_kessel,
dachgeschoss: aufnahme.dachgeschoss, dachgeschoss: aufnahme.dachgeschoss,
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt, dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
@@ -134,7 +127,6 @@ export async function nachweisSpeichern(
einfach_verglasung: aufnahme.einfach_verglasung, einfach_verglasung: aufnahme.einfach_verglasung,
einheiten: aufnahme.einheiten, einheiten: aufnahme.einheiten,
einzelofen: aufnahme.einzelofen, einzelofen: aufnahme.einzelofen,
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
erstellungsdatum: aufnahme.erstellungsdatum, erstellungsdatum: aufnahme.erstellungsdatum,
fenster_dicht: aufnahme.fenster_dicht, fenster_dicht: aufnahme.fenster_dicht,
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht, fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,

View File

@@ -79,11 +79,6 @@
} }
} }
$: {
console.log(aufnahme.brennstoff_1);
}
$: abweichung = auditVerbrauchAbweichung(ausweis, aufnahme); $: abweichung = auditVerbrauchAbweichung(ausweis, aufnahme);
</script> </script>
@@ -234,7 +229,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
class="rounded-e-none" class="rounded-e-none"
name="brennstoff_1" name="brennstoff_1"
data-cy="brennstoff_1" data-cy="brennstoff_1"
bind:value={aufnahme.brennstoff_1} bind:value={ausweis.brennstoff_1}
required required
> >
<option disabled selected value={null}>Bitte auswählen</option> <option disabled selected value={null}>Bitte auswählen</option>
@@ -267,11 +262,11 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
name="einheit_1" name="einheit_1"
data-cy="einheit_1" data-cy="einheit_1"
bind:value={ausweis.einheit_1} bind:value={ausweis.einheit_1}
disabled={!aufnahme.brennstoff_1} disabled={!ausweis.brennstoff_1}
required required
> >
<option disabled selected >Bitte auswählen</option> <option disabled selected >Bitte auswählen</option>
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_1) ? fuelMap[aufnahme.brennstoff_1] : [] as unit} {#each fuelMap.hasOwnProperty(ausweis.brennstoff_1) ? fuelMap[ausweis.brennstoff_1] : [] as unit}
<option value={unit}>{unit}</option> <option value={unit}>{unit}</option>
{/each} {/each}
</select> </select>
@@ -425,7 +420,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
class="rounded-e-none" class="rounded-e-none"
name="brennstoff_2" name="brennstoff_2"
data-cy="brennstoff_2" data-cy="brennstoff_2"
bind:value={aufnahme.brennstoff_2} bind:value={ausweis.brennstoff_2}
required required
> >
<option disabled selected <option disabled selected
@@ -460,13 +455,13 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
name="einheit_2" name="einheit_2"
data-cy="einheit_2" data-cy="einheit_2"
bind:value={ausweis.einheit_2} bind:value={ausweis.einheit_2}
disabled={!aufnahme.brennstoff_2} disabled={!ausweis.brennstoff_2}
required required
> >
<option disabled selected <option disabled selected
>Bitte auswählen</option >Bitte auswählen</option
> >
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_2) ? fuelMap[aufnahme.brennstoff_2] : [] as unit} {#each fuelMap.hasOwnProperty(ausweis.brennstoff_2) ? fuelMap[ausweis.brennstoff_2] : [] as unit}
<option value={unit}>{unit}</option> <option value={unit}>{unit}</option>
{/each} {/each}
</select> </select>

View File

@@ -233,7 +233,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
<select <select
class="rounded-e-none" class="rounded-e-none"
name="brennstoff_1" name="brennstoff_1"
bind:value={aufnahme.brennstoff_1} bind:value={ausweis.brennstoff_1}
required required
> >
<option disabled selected value>Bitte auswählen</option> <option disabled selected value>Bitte auswählen</option>
@@ -273,11 +273,11 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
class="rounded-s-none" class="rounded-s-none"
name="einheit_1" name="einheit_1"
bind:value={ausweis.einheit_1} bind:value={ausweis.einheit_1}
disabled={!aufnahme.brennstoff_1} disabled={!ausweis.brennstoff_1}
required required
> >
<option disabled selected value>Bitte auswählen</option> <option disabled selected value>Bitte auswählen</option>
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_1) ? fuelMap[aufnahme.brennstoff_1] : [] as unit} {#each fuelMap.hasOwnProperty(ausweis.brennstoff_1) ? fuelMap[ausweis.brennstoff_1] : [] as unit}
<option value={unit}>{unit}</option> <option value={unit}>{unit}</option>
{/each} {/each}
</select> </select>
@@ -436,7 +436,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
<select <select
class="rounded-e-none" class="rounded-e-none"
name="brennstoff_2" name="brennstoff_2"
bind:value={aufnahme.brennstoff_2} bind:value={ausweis.brennstoff_2}
required required
data-cy="brennstoff_2" data-cy="brennstoff_2"
> >
@@ -480,13 +480,13 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
name="einheit_2" name="einheit_2"
data-cy="einheit_2" data-cy="einheit_2"
bind:value={ausweis.einheit_2} bind:value={ausweis.einheit_2}
disabled={!aufnahme.brennstoff_2} disabled={!ausweis.brennstoff_2}
required required
> >
<option disabled selected <option disabled selected
>Bitte auswählen</option >Bitte auswählen</option
> >
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_2) ? fuelMap[aufnahme.brennstoff_2] : [] as unit} {#each fuelMap.hasOwnProperty(ausweis.brennstoff_2) ? fuelMap[ausweis.brennstoff_2] : [] as unit}
<option value={unit}>{unit}</option> <option value={unit}>{unit}</option>
{/each} {/each}
</select> </select>

View File

@@ -141,7 +141,7 @@
Abgeschlossen = 2; Abgeschlossen = 2;
} }
if (aufnahme.boxpruefung) { if (ausweis.boxpruefung) {
symbolPruefung = "/images/dashboard/kreishaken.png"; symbolPruefung = "/images/dashboard/kreishaken.png";
} else { } else {
symbolPruefung = "/images/dashboard/kreiskreuz.png"; symbolPruefung = "/images/dashboard/kreiskreuz.png";
@@ -205,7 +205,7 @@
" x " + " x " +
aufnahme.flaeche + aufnahme.flaeche +
" m² Energetische Nutzfläche (Keller " + " m² Energetische Nutzfläche (Keller " +
ausweis.keller_beheizt + aufnahme.keller +
" ) in m²"; " ) in m²";
table3Z1 = aufnahme.flaeche; table3Z1 = aufnahme.flaeche;
table3Z2 = calculations?.energetischeNutzflaeche; table3Z2 = calculations?.energetischeNutzflaeche;
@@ -229,8 +229,8 @@
" kWh/" + " kWh/" +
ausweis.einheit_1 + ausweis.einheit_1 +
" >> Verbrauch 1 " + " >> Verbrauch 1 " +
aufnahme.brennstoff_1 + ausweis.brennstoff_1 +
" in kWh"; " in kWh";
tooltip4Z2 = tooltip4Z2 =
"(" + "(" +
ausweis.verbrauch_4 + ausweis.verbrauch_4 +
@@ -249,7 +249,7 @@
" kWh/" + " kWh/" +
ausweis.einheit_2 + ausweis.einheit_2 +
" >> Verbrauch 2 " + " >> Verbrauch 2 " +
aufnahme.brennstoff_2 + ausweis.brennstoff_2 +
" in kWh"; " in kWh";
table4Z1 = calculations?.energieVerbrauchGesamt_1; table4Z1 = calculations?.energieVerbrauchGesamt_1;
table4Z2 = calculations?.energieVerbrauchGesamt_2; table4Z2 = calculations?.energieVerbrauchGesamt_2;
@@ -764,7 +764,7 @@
<div slot="tooltip"> <div slot="tooltip">
<span>{aufnahme.prueftext}</span> <span>{aufnahme.prueftext}</span>
</div> </div>
{#if aufnahme.boxpruefung} {#if ausweis.boxpruefung}
<CheckCircled size={22}></CheckCircled> <CheckCircled size={22}></CheckCircled>
{:else} {:else}
<CrossCircled size={22}></CrossCircled> <CrossCircled size={22}></CrossCircled>
@@ -880,7 +880,7 @@
</tr> </tr>
<tr> <tr>
<td>Informationen des Nutzers</td> <td>Informationen des Nutzers</td>
<td>{aufnahme.boxpruefung}</td> <td>{ausweis.boxpruefung}</td>
</tr> </tr>
<tr> <tr>
<td>UID</td> <td>UID</td>

View File

@@ -1,11 +1,9 @@
<script> <script>
import { PRICES } from "#lib/constants"; import { PRICES } from "#lib/constants";
import { Enums } from "#lib/client/prisma"; import { Enums } from "#lib/client/prisma";
export let bullets;
export let title;
export let ref = ""; export let ref = "";
bullets = [ const bullets = [
["Prüfung durch Dipl.&nbsp;Ing.<br>Registrierung beim DiBt<br>rechtssicher nach&nbsp;GEG",true, true, true], ["Prüfung durch Dipl.&nbsp;Ing.<br>Registrierung beim DiBt<br>rechtssicher nach&nbsp;GEG",true, true, true],
["Originalausweis als&nbsp;PDF per&nbsp;<span class='text-nowrap'>E-Mail</span><br>Originalausweis per&nbsp;Post (zubuchbar)",true, true, true], ["Originalausweis als&nbsp;PDF per&nbsp;<span class='text-nowrap'>E-Mail</span><br>Originalausweis per&nbsp;Post (zubuchbar)",true, true, true],
["Bearbeitung innerhalb 24&nbsp;Stunden<br>Selbsteingabe",true, true, false], ["Bearbeitung innerhalb 24&nbsp;Stunden<br>Selbsteingabe",true, true, false],
@@ -17,7 +15,6 @@
["telefonische&nbsp;Beratung<br>persönlicher&nbsp;Energieberater",false, true, true], ["telefonische&nbsp;Beratung<br>persönlicher&nbsp;Energieberater",false, true, true],
["Dokumentenupload (Verbrauchsabrechnungen)",false, false, true], ["Dokumentenupload (Verbrauchsabrechnungen)",false, false, true],
["Eingabe durch Dipl.&nbsp;Ing.",false, false, true], ["Eingabe durch Dipl.&nbsp;Ing.",false, false, true],
] ]

View File

@@ -1,23 +1,24 @@
<script lang="ts"> <script lang="ts">
import { VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "#lib/server/prisma.js";
import moment from "moment"; import moment from "moment";
export let addYear: number; export let addYear: number;
export let heizquelle: number; export let heizquelle: number;
export let aufnahme; export let aufnahme;
export let ausweis; export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe;
</script> </script>
{#if ausweis.startdatum} {#if ausweis.startdatum}
Bitte geben Sie Ihren Bitte geben Sie Ihren
{#if heizquelle == 1} {#if heizquelle == 1}
{#if aufnahme.brennstoff_1}<b> {#if ausweis.brennstoff_1}<b>
{aufnahme.brennstoff_1} {ausweis.brennstoff_1}
</b>{/if} </b>{/if}
Verbrauch {#if ausweis.einheit_1} Verbrauch {#if ausweis.einheit_1}
in <b>{ausweis.einheit_1} </b>{/if} in <b>{ausweis.einheit_1} </b>{/if}
{:else if heizquelle == 2} {:else if heizquelle == 2}
{#if aufnahme.brennstoff_2}<b> {#if ausweis.brennstoff_2}<b>
{aufnahme.brennstoff_2} {ausweis.brennstoff_2}
</b>{/if} </b>{/if}
Verbräuche {#if ausweis.einheit_2} Verbräuche {#if ausweis.einheit_2}
in <b>{ausweis.einheit_2} </b>{/if} in <b>{ausweis.einheit_2} </b>{/if}

View File

@@ -2,14 +2,17 @@ import fuelList from "#components/Ausweis/brennstoffListe.js";
import { faker } from "@faker-js/faker"; import { faker } from "@faker-js/faker";
import "cypress-file-upload" import "cypress-file-upload"
import moment from "moment"; import moment from "moment";
import { Aufnahme, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/client/prisma.js"; import { Aufnahme, Benutzer, Enums, Objekt, Rechnung, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => { describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => {
it("bearbeitet einen bereits existierenden Verbrauchsausweis für Wohngebäude", () => { it("bearbeitet einen bereits existierenden Verbrauchsausweis für Wohngebäude", () => {
cy.task("verbrauchsausweisWohnen", { cy.task("verbrauchsausweisWohnen", {
where: { where: {
ausgestellt: false, ausgestellt: false,
bestellt: false bestellt: false,
benutzer: {
email: "user@ib-cornelsen.de"
}
}, },
include: { include: {
aufnahme: { aufnahme: {
@@ -17,261 +20,171 @@ describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => {
objekt: true objekt: true
} }
}, },
benutzer: true benutzer: true,
rechnung: true
} }
}).then((ausweis: VerbrauchsausweisWohnen & { aufnahme: Aufnahme & { objekt: Objekt } }) => { }).then((ausweis: VerbrauchsausweisWohnen & { benutzer: Benutzer, aufnahme: Aufnahme & { objekt: Objekt }, rechnung: Rechnung | null }) => {
cy.login("user@ib-cornelsen.de", "passwort");
cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id=${ausweis.id}`); cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id=${ausweis.id}`);
cy.wait(2000); cy.wait(2000);
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind. // Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
cy.get("select[data-cy='ausstellgrund']") cy.get("select[data-cy='ausstellgrund']")
.find("option:selected").should("have.value", ausweis.ausstellgrund) .find("option:selected").should("have.value", ausweis.ausstellgrund)
// Jetzt Füllen wir das Baujahr vom Gebäude aus. // // Jetzt Füllen wir das Baujahr vom Gebäude aus.
cy.get("input[name='baujahr_gebaeude']") // cy.get("input[name='baujahr_gebaeude']")
.should("have.value", ausweis.aufnahme.baujahr_gebaeude[0]) // .should("have.value", ausweis.aufnahme.baujahr_gebaeude[0])
// Jetzt Füllen wir das Baujahr der Heizung aus. // // Jetzt Füllen wir das Baujahr der Heizung aus.
cy.get("input[name='baujahr_heizung']") // cy.get("input[name='baujahr_heizung']")
.should("have.value", ausweis.aufnahme.baujahr_heizung[0]) // .should("have.value", ausweis.aufnahme.baujahr_heizung[0])
// Anzahl Einheiten // Anzahl Einheiten
cy.get("input[name='einheiten']") cy.get("input[name='einheiten']")
.should("have.value", ausweis.aufnahme.einheiten) .should("have.value", ausweis.aufnahme.einheiten)
// Sanierungsstatus // Sanierungsstatus
cy.get("select[name='saniert']").find("option:selected").should("have.value", ausweis.aufnahme.saniert) cy.get("select[name='saniert']").find("option:selected").should("have.value", (ausweis.aufnahme.saniert || false).toString())
// Adresse // Adresse
cy.get("input[name='adresse']").should("have.value", ausweis.aufnahme.objekt.adresse); cy.get("input[name='adresse']").should("have.value", ausweis.aufnahme.objekt.adresse);
// Postleitzahl // Postleitzahl
cy.get("input[name='plz']").type( cy.get("input[name='plz']").should("have.value", ausweis.aufnahme.objekt.plz);
faker.location.zipCode({ cy.get("input[name='ort']").should("have.value", ausweis.aufnahme.objekt.ort);
format: "#####",
})
);
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
cy.get("[data-cy='plz-container']").find("button").first().click()
// Flaeche // Flaeche
cy.get("input[name='flaeche']") cy.get("input[name='flaeche']")
.should("have.attr", "type", "number") .should("have.value", ausweis.aufnahme.flaeche)
.type(faker.number.int({ min: 50, max: 1000 }).toString());
// Nutzflaeche // Nutzflaeche
cy.get("input[name='nutzflaeche']") cy.get("input[name='nutzflaeche']")
.should("have.attr", "type", "number") .should("have.value", ausweis.aufnahme.nutzflaeche)
.type(faker.number.int({ min: 50, max: 1000 }).toString());
// Keller // Keller
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({ cy.get("select[name='keller']").find("option:selected").should("have.value", ausweis.aufnahme.keller)
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
min: 1
}));
// Dachgeschoss // Dachgeschoss
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({ cy.get("select[name='dachgeschoss']").find("option:selected").should("have.value", ausweis.aufnahme.dachgeschoss)
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
min: 1
}));
// Brennstoff und Einheit 1 cy.get("select[name='brennstoff_1']").should("have.value", ausweis.brennstoff_1)
const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })]; cy.get("select[name='einheit_1']").should("have.value", ausweis.einheit_1)
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
let availableDates = [];
const startDate = moment()
.subtract(4, "years")
.subtract(6, "months");
const endDate = moment().subtract(3, "years");
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
availableDates.push({
year: m.year(),
month: m.month(),
});
}
// Verbrauchszeitraum // Verbrauchszeitraum
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString()); cy.get("select[name='energieverbrauch_zeitraum_jahr']").find("option:selected").should("have.value", moment(ausweis.startdatum).get("year"))
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString()); cy.get("select[name='energieverbrauch_zeitraum_monat']").find("option:selected").should("have.value", moment(ausweis.startdatum).get("m") + 1)
// Verbrauch // Verbrauch
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true }); cy.get("input[name='verbrauch_1']").should("have.value", ausweis.verbrauch_1);
cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true }); cy.get("input[name='verbrauch_2']").should("have.value", ausweis.verbrauch_2);
cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true }); cy.get("input[name='verbrauch_3']").should("have.value", ausweis.verbrauch_3);
const zusaetzlicheHeizquelle = Math.random() > 0.5;
if (zusaetzlicheHeizquelle) { if (ausweis.zusaetzliche_heizquelle) {
cy.get("[data-cy='zusaetzliche_heizquelle']").check(); cy.get("[data-cy='zusaetzliche_heizquelle']").should("be.checked");
// Brennstoff und Einheit 2 cy.get("[data-cy='brennstoff_2']").find("option:selected").should("have.value", ausweis.brennstoff_2);
const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })]; cy.get("[data-cy='einheit_2']").find("option:selected").should("have.value", ausweis.einheit_2);
cy.get("[data-cy='brennstoff_2']").select(brennstoffKombo2[0], { force: true });
cy.get("[data-cy='einheit_2']").select(brennstoffKombo2[1], { force: true });
// Verbrauch // Verbrauch
cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true }); cy.get("input[name='verbrauch_4']").should("have.value", ausweis.verbrauch_4);
cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true }); cy.get("input[name='verbrauch_5']").should("have.value", ausweis.verbrauch_5);
cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true }); cy.get("input[name='verbrauch_6']").should("have.value", ausweis.verbrauch_6);
} }
// Warmwasser enthalten und bekannt if (ausweis.warmwasser_enthalten) {
const warmwasserEnthalten = Math.random() > 0.5; cy.get("input[name='warmwasser_enthalten']").should("be.checked");
const anteilBekannt = Math.random() > 0.5;
if (warmwasserEnthalten) { if (ausweis.warmwasser_anteil_bekannt) {
cy.get("input[name='warmwasser_enthalten']").check();
if (anteilBekannt) {
// Der Anteil ist bekannt, wir müssen ihn also angeben. // Der Anteil ist bekannt, wir müssen ihn also angeben.
cy.get("input[name='warmwasser_anteil_bekannt']").check(); cy.get("input[name='warmwasser_anteil_bekannt']").should("be.checked");
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString()); cy.get("input[name='anteil_warmwasser_1']").should("have.value", ausweis.anteil_warmwasser_1);
if (zusaetzlicheHeizquelle) { if (ausweis.zusaetzliche_heizquelle) {
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben. // Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
cy.get("input[name='anteil_warmwasser_2']").type(faker.number.int({ min: 0, max: 50 }).toString(), {force: true}); cy.get("input[name='anteil_warmwasser_2']").should('have.value', ausweis.anteil_warmwasser_2);
} }
} }
} }
// Alternative Energieversorgungssysteme // Alternative Energieversorgungssysteme
if (Math.random() > 0.5) cy.get("input[name='alternative_heizung']").check(); if (ausweis.alternative_heizung) cy.get("input[name='alternative_heizung']").should("be.checked");
if (Math.random() > 0.5) cy.get("input[name='alternative_warmwasser']").check(); if (ausweis.alternative_warmwasser) cy.get("input[name='alternative_warmwasser']").should("be.checked");
if (Math.random() > 0.5) cy.get("input[name='alternative_lueftung']").check(); if (ausweis.alternative_lueftung) cy.get("input[name='alternative_lueftung']").should("be.checked");
if (Math.random() > 0.5) cy.get("input[name='alternative_kuehlung']").check(); if (ausweis.alternative_kuehlung) cy.get("input[name='alternative_kuehlung']").should("be.checked");
// Gebäudetyp // Gebäudetyp
cy.get("select[name='gebaeudetyp']").then(($dropdown) => { cy.get("select[name='gebaeudetyp']").find("option:selected").should("have.value", ausweis.aufnahme.gebaeudetyp)
const options = $dropdown.find('option');
// Select the option at the random index
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
});
// Gebäudeteil // Gebäudeteil
cy.get("select[name='gebaeudeteil']").then(($dropdown) => { cy.get("select[name='gebaeudeteil']").find("option:selected").should("have.value", ausweis.aufnahme.gebaeudeteil)
const options = $dropdown.find('option');
// Select the option at the random index
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
});
// Lüftung // Lüftung
cy.get("select[name='lueftung']").then(($dropdown) => { cy.get("select[name='lueftung']").find("option:selected").should("have.value", ausweis.aufnahme.lueftung)
const options = $dropdown.find('option');
// Select the option at the random index
cy.get("select[name='lueftung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
});
// Kühlung // Kühlung
cy.get("select[name='kuehlung']").then(($dropdown) => { cy.get("select[name='kuehlung']").find("option:selected").should("have.value", ausweis.aufnahme.kuehlung)
const options = $dropdown.find('option');
// Select the option at the random index
cy.get("select[name='kuehlung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string, { force: true });
});
// Leerstand // Leerstand
cy.get("input[name='leerstand']").should("have.attr", "type", "number").type(faker.number.int({ min: 0, max: 30 }).toString()); cy.get("input[name='leerstand']").should("have.value", ausweis.aufnahme.leerstand || "");
// Heizungsanlage Daten // Heizungsanlage Daten
if (Math.random() > 0.5) cy.get("[data-cy='zentralheizung']").check(); if (ausweis.aufnahme.zentralheizung) cy.get("[data-cy='zentralheizung']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='einzelofen']").check(); if (ausweis.aufnahme.einzelofen) cy.get("[data-cy='einzelofen']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='durchlauf_erhitzer']").check(); if (ausweis.aufnahme.durchlauf_erhitzer) cy.get("[data-cy='durchlauf_erhitzer']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='standard_kessel']").check(); if (ausweis.aufnahme.standard_kessel) cy.get("[data-cy='standard_kessel']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='solarsystem_warmwasser']").check(); if (ausweis.aufnahme.solarsystem_warmwasser) cy.get("[data-cy='solarsystem_warmwasser']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='waermepumpe']").check(); if (ausweis.aufnahme.waermepumpe) cy.get("[data-cy='waermepumpe']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='niedertemperatur_kessel']").check(); if (ausweis.aufnahme.niedertemperatur_kessel) cy.get("[data-cy='niedertemperatur_kessel']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='brennwert_kessel']").check(); if (ausweis.aufnahme.brennwert_kessel) cy.get("[data-cy='brennwert_kessel']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").check(); if (ausweis.aufnahme.warmwasser_rohre_gedaemmt) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='heizungsrohre_gedaemmt']").check(); if (ausweis.aufnahme.heizungsrohre_gedaemmt) cy.get("[data-cy='heizungsrohre_gedaemmt']").should("be.checked");
if (Math.random() > 0.5) cy.get("[data-cy='zirkulation']").check(); if (ausweis.aufnahme.zirkulation) cy.get("[data-cy='zirkulation']").should("be.checked");
// if (Math.random() > 0.5) cy.get("[data-cy='raum_temperatur_regler']").check();
// Heizungsanlage Bilder
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/1.jpeg", { subjectType: "input" });
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/2.jpeg", { subjectType: "input" });
// Fenster Daten // Fenster Daten
if (Math.random() > 0.5) cy.get("input[name='einfach_verglasung']").check(); if (ausweis.aufnahme.einfach_verglasung) cy.get("input[name='einfach_verglasung']").check();
if (Math.random() > 0.5) cy.get("input[name='doppel_verglasung']").check(); if (ausweis.aufnahme.doppel_verglasung) cy.get("input[name='doppel_verglasung']").check();
if (Math.random() > 0.5) cy.get("input[name='isolier_verglasung']").check(); if (ausweis.aufnahme.isolier_verglasung) cy.get("input[name='isolier_verglasung']").check();
if (Math.random() > 0.5) cy.get("input[name='dreifach_verglasung']").check(); if (ausweis.aufnahme.dreifach_verglasung) cy.get("input[name='dreifach_verglasung']").check();
if (Math.random() > 0.5) cy.get("input[name='fenster_dicht']").check(); if (ausweis.aufnahme.fenster_dicht) cy.get("input[name='fenster_dicht']").check();
if (Math.random() > 0.5) cy.get("input[name='fenster_teilweise_undicht']").check(); if (ausweis.aufnahme.fenster_teilweise_undicht) cy.get("input[name='fenster_teilweise_undicht']").check();
if (Math.random() > 0.5) cy.get("input[name='tueren_dicht']").check(); if (ausweis.aufnahme.tueren_dicht) cy.get("input[name='tueren_dicht']").check();
if (Math.random() > 0.5) cy.get("input[name='tueren_undicht']").check(); if (ausweis.aufnahme.tueren_undicht) cy.get("input[name='tueren_undicht']").check();
if (Math.random() > 0.5) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check(); if (ausweis.aufnahme.rolllaeden_kaesten_gedaemmt) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
// Fenster Bilder
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/1.jpeg", { subjectType: "input" });
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/2.jpeg", { subjectType: "input" });
// Wärmedämmung Daten // Wärmedämmung Daten
if (Math.random() > 0.5) cy.get("input[name='aussenwand_gedaemmt']").check(); if (ausweis.aufnahme.aussenwand_gedaemmt) cy.get("input[name='aussenwand_gedaemmt']").check();
if (Math.random() > 0.5) cy.get("input[name='keller_wand_gedaemmt']").check(); if (ausweis.aufnahme.keller_wand_gedaemmt) cy.get("input[name='keller_wand_gedaemmt']").check();
if (Math.random() > 0.5) cy.get("input[name='keller_decke_gedaemmt']").check(); if (ausweis.aufnahme.keller_decke_gedaemmt) cy.get("input[name='keller_decke_gedaemmt']").check();
if (Math.random() > 0.5) cy.get("input[name='dachgeschoss_gedaemmt']").check(); if (ausweis.aufnahme.dachgeschoss_gedaemmt) cy.get("input[name='dachgeschoss_gedaemmt']").check();
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check(); if (ausweis.aufnahme.oberste_geschossdecke_gedaemmt) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check(); if (ausweis.aufnahme.oberste_geschossdecke_min_12cm_gedaemmt) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
// Wärmedämmung Bilder
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" });
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
// Gebäude Bild
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
// Jetzt können wir den Verbrauchsausweis erstellen. // Jetzt können wir den Verbrauchsausweis erstellen.
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true }); cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
cy.url().should("contain", "/kundendaten"); cy.url().should("contain", "/kundendaten");
const email = faker.internet.email(); cy.get("input[name='vorname']").should("have.value", ausweis.benutzer.vorname);
const passwort = "test1234"; cy.get("input[name='name']").should("have.value", ausweis.benutzer.name);
const vorname = faker.person.firstName(); cy.get("input[name='telefon']").should("have.value", ausweis.rechnung?.telefon || ausweis.benutzer.telefon || "");
const nachname = faker.person.lastName();
const telefon = faker.phone.number()
const strasse = faker.location.streetAddress({ useFullAddress: true })
const plz = faker.location.zipCode("#####")
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
// Rechnung // Rechnung
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`); cy.get("input[name='rechnung_empfaenger']").should("have.value", ausweis.rechnung?.empfaenger || `${ausweis.benutzer.vorname} ${ausweis.benutzer.name}`);
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse); cy.get("input[name='rechnung_strasse']").should("have.value", ausweis.rechnung?.strasse || ausweis.benutzer.adresse);
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz); cy.get("input[name='rechnung_plz']").should("have.value", ausweis.rechnung?.plz || ausweis.benutzer.plz);
cy.get("[data-cy='plz-container']").children().first().click() cy.get("input[name='rechnung_email']").should("have.value", ausweis.rechnung?.email || ausweis.benutzer.email);
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
cy.get("[data-cy='paypal']").click() cy.get("[data-cy='paypal']").click()
cy.get("button[data-cy='bestellen']").click(); cy.get("button[data-cy='bestellen']").click();
cy.get("a[data-cy='registrieren']").should("be.visible").click();
// Wir sind jetzt registriert und können uns nun einloggen.
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
cy.get("form[name='signup'] button[type='submit']").click();
cy.wait("@signup")
cy.get("form[name='login'] button[type='submit']").click();
cy.origin('https://www.mollie.com', () => { cy.origin('https://www.mollie.com', () => {
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus // Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
cy.get("input[type='radio'][name='final_state'][value='paid']").check(); cy.get("input[type='radio'][name='final_state'][value='paid']").check();

View File

@@ -1,10 +1,9 @@
import * as z from "zod" import * as z from "zod"
import { Ausweisart, Heizungsstatus, Heizungsstatus, Lueftungskonzept } from "@prisma/client" import { Heizungsstatus, Heizungsstatus, Lueftungskonzept } from "@prisma/client"
export const AufnahmeSchema = z.object({ export const AufnahmeSchema = z.object({
id: z.string(), id: z.string(),
benutzer_id: z.string().nullish(), benutzer_id: z.string().nullish(),
ausweisart: z.nativeEnum(Ausweisart).describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen").nullish(),
gebaeudetyp: z.string().describe("Art des Gebäudes und seiner primären Nutzungsart").nullish(), gebaeudetyp: z.string().describe("Art des Gebäudes und seiner primären Nutzungsart").nullish(),
gebaeudeteil: z.string().describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil").nullish(), gebaeudeteil: z.string().describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil").nullish(),
baujahr_gebaeude: z.number().int().array().describe("Alle Jahre in denen das Gebäude konstruiert oder grundlegend verändert wurde"), baujahr_gebaeude: z.number().int().array().describe("Alle Jahre in denen das Gebäude konstruiert oder grundlegend verändert wurde"),
@@ -23,12 +22,7 @@ export const AufnahmeSchema = z.object({
alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(), alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
alternative_lueftung: z.boolean().describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(), alternative_lueftung: z.boolean().describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
alternative_kuehlung: z.boolean().describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(), alternative_kuehlung: z.boolean().describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(), erstellungsdatum: z.date().describe("Datum an dem der Kunde die Aufnahme erstellt hat").nullish(),
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").nullish(),
boxpruefung: z.boolean().nullish(),
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
erstellungsdatum: z.date().describe("Datum an dem der Kunde den Ausweis erstellt hat").nullish(),
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
zentralheizung: z.boolean().describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen").nullish(), zentralheizung: z.boolean().describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen").nullish(),
solarsystem_warmwasser: z.boolean().describe("Falls das Gebäude über ein Solarsystem für Warmwasser verfügt, sollte dieser Wert auf true stehen").nullish(), solarsystem_warmwasser: z.boolean().describe("Falls das Gebäude über ein Solarsystem für Warmwasser verfügt, sollte dieser Wert auf true stehen").nullish(),
warmwasser_rohre_gedaemmt: z.boolean().describe("Falls die Warmwasserrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(), warmwasser_rohre_gedaemmt: z.boolean().describe("Falls die Warmwasserrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(),

View File

@@ -11,6 +11,9 @@ export const BedarfsausweisWohnenSchema = z.object({
alternative_warmwasser: z.boolean().nullish(), alternative_warmwasser: z.boolean().nullish(),
alternative_lueftung: z.boolean().nullish(), alternative_lueftung: z.boolean().nullish(),
alternative_kuehlung: z.boolean().nullish(), alternative_kuehlung: z.boolean().nullish(),
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
boxpruefung: z.boolean().nullish(),
anzahl_vollgeschosse: z.number().int().nullish(), anzahl_vollgeschosse: z.number().int().nullish(),
geschosshoehe: z.number().nullish(), geschosshoehe: z.number().nullish(),
anzahl_gauben: z.number().int().nullish(), anzahl_gauben: z.number().int().nullish(),

View File

@@ -1,23 +1,23 @@
export * from "./anteilshaber.js" export * from "./anteilshaber"
export * from "./apirequests.js" export * from "./apirequests"
export * from "./aufnahme.js" export * from "./aufnahme"
export * from "./bedarfsausweisgewerbe.js" export * from "./bedarfsausweisgewerbe"
export * from "./bedarfsausweiswohnen.js" export * from "./bedarfsausweiswohnen"
export * from "./benutzer.js" export * from "./benutzer"
export * from "./bild.js" export * from "./bild"
export * from "./event.js" export * from "./event"
export * from "./gegeinpreisung.js" export * from "./gegeinpreisung"
export * from "./gegnachweisgewerbe.js" export * from "./gegnachweisgewerbe"
export * from "./gegnachweiswohnen.js" export * from "./gegnachweiswohnen"
export * from "./klimafaktoren.js" export * from "./klimafaktoren"
export * from "./objekt.js" export * from "./objekt"
export * from "./postleitzahlen.js" export * from "./postleitzahlen"
export * from "./rechnung.js" export * from "./rechnung"
export * from "./refreshtokens.js" export * from "./refreshtokens"
export * from "./tickets.js" export * from "./tickets"
export * from "./unterlage.js" export * from "./unterlage"
export * from "./verbrauchsausweisgewerbe.js" export * from "./verbrauchsausweisgewerbe"
export * from "./verbrauchsausweiswohnen.js" export * from "./verbrauchsausweiswohnen"
export * from "./documenttemplates.js" export * from "./documenttemplates"
export * from "./documenttypes.js" export * from "./documenttypes"
export * from "./tokens.js" export * from "./tokens"

View File

@@ -7,9 +7,7 @@ export const VerbrauchsausweisGewerbeSchema = z.object({
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(), ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
registriernummer: z.string().nullish(), registriernummer: z.string().nullish(),
zusaetzliche_heizquelle: z.boolean().nullish(), zusaetzliche_heizquelle: z.boolean().nullish(),
brennstoff_1: z.string().nullish(),
einheit_1: z.string().nullish(), einheit_1: z.string().nullish(),
brennstoff_2: z.string().nullish(),
einheit_2: z.string().nullish(), einheit_2: z.string().nullish(),
startdatum: z.date().nullish(), startdatum: z.date().nullish(),
verbrauch_1: z.number().int().nullish(), verbrauch_1: z.number().int().nullish(),
@@ -18,6 +16,11 @@ export const VerbrauchsausweisGewerbeSchema = z.object({
verbrauch_4: z.number().int().nullish(), verbrauch_4: z.number().int().nullish(),
verbrauch_5: z.number().int().nullish(), verbrauch_5: z.number().int().nullish(),
verbrauch_6: z.number().int().nullish(), verbrauch_6: z.number().int().nullish(),
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(),
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").nullish(),
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
boxpruefung: z.boolean().nullish(),
strom_1: z.number().int().nullish(), strom_1: z.number().int().nullish(),
strom_2: z.number().int().nullish(), strom_2: z.number().int().nullish(),
strom_3: z.number().int().nullish(), strom_3: z.number().int().nullish(),

View File

@@ -9,6 +9,11 @@ export const VerbrauchsausweisWohnenSchema = z.object({
zusaetzliche_heizquelle: z.boolean().describe("Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen").nullish(), zusaetzliche_heizquelle: z.boolean().describe("Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen").nullish(),
einheit_1: z.string().describe("Einheit des Energieträgers der primären Heizquelle").nullish(), einheit_1: z.string().describe("Einheit des Energieträgers der primären Heizquelle").nullish(),
einheit_2: z.string().describe("Einheit des Energieträgers der sekundären Heizquelle").nullish(), einheit_2: z.string().describe("Einheit des Energieträgers der sekundären Heizquelle").nullish(),
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(),
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").nullish(),
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
boxpruefung: z.boolean().nullish(),
startdatum: z.date().nullish(), startdatum: z.date().nullish(),
verbrauch_1: z.number().int().describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre").nullish(), verbrauch_1: z.number().int().describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre").nullish(),
verbrauch_2: z.number().int().describe("Energieverbrauch der primären Heizquelle im zweiten der drei Verbrauchsjahre").nullish(), verbrauch_2: z.number().int().describe("Energieverbrauch der primären Heizquelle im zweiten der drei Verbrauchsjahre").nullish(),
@@ -18,7 +23,6 @@ export const VerbrauchsausweisWohnenSchema = z.object({
verbrauch_6: z.number().int().describe("Energieverbrauch der sekund̈́ären Heizquelle im letzten der drei Verbrauchsjahre").nullish(), verbrauch_6: z.number().int().describe("Energieverbrauch der sekund̈́ären Heizquelle im letzten der drei Verbrauchsjahre").nullish(),
warmwasser_enthalten: z.boolean().describe("Falls Warmwasser im Verbrauchswert enthalten ist, sollte dieser Wert auf true stehen").nullish(), warmwasser_enthalten: z.boolean().describe("Falls Warmwasser im Verbrauchswert enthalten ist, sollte dieser Wert auf true stehen").nullish(),
warmwasser_anteil_bekannt: z.boolean().describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen").nullish(), warmwasser_anteil_bekannt: z.boolean().describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen").nullish(),
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
faktorKeller: z.number().describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.").nullish(), faktorKeller: z.number().describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.").nullish(),
alternative_heizung: z.boolean().describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet, sollte dieser Wert auf true stehen.").nullish(), alternative_heizung: z.boolean().describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet, sollte dieser Wert auf true stehen.").nullish(),
alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme (z.B. Solarsystem, Wärmepumpe, etc.) beinhaltet, sollte dieser Wert auf true stehen.").nullish(), alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme (z.B. Solarsystem, Wärmepumpe, etc.) beinhaltet, sollte dieser Wert auf true stehen.").nullish(),

View File

@@ -99,13 +99,13 @@ export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis:
// Endenergieverbrauch // Endenergieverbrauch
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden. // Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
let brennstoff_1 = { coe: 0, energietraeger: "", einheit: "", umrechnungsfaktor: 0, primaerenergiefaktor: 0 }, brennstoff_2 = { coe: 0, energietraeger: "", einheit: "", umrechnungsfaktor: 0, primaerenergiefaktor: 0 }; let brennstoff_1 = { coe: 0, energietraeger: "", einheit: "", umrechnungsfaktor: 0, primaerenergiefaktor: 0 }, brennstoff_2 = { coe: 0, energietraeger: "", einheit: "", umrechnungsfaktor: 0, primaerenergiefaktor: 0 };
if (aufnahme.brennstoff_1 && ausweis.einheit_1) { if (ausweis.brennstoff_1 && ausweis.einheit_1) {
brennstoff_1 = getHeizwertfaktor(aufnahme.brennstoff_1, ausweis.einheit_1); brennstoff_1 = getHeizwertfaktor(ausweis.brennstoff_1, ausweis.einheit_1);
} }
if (aufnahme.brennstoff_2 && ausweis.einheit_2) { if (ausweis.brennstoff_2 && ausweis.einheit_2) {
brennstoff_2 = getHeizwertfaktor(aufnahme.brennstoff_2, ausweis.einheit_2); brennstoff_2 = getHeizwertfaktor(ausweis.brennstoff_2, ausweis.einheit_2);
} }
let energieVerbrauchGesamt_1 = ((ausweis.verbrauch_1 || 0) + (ausweis.verbrauch_2 || 0) + (ausweis.verbrauch_3 || 0)) * brennstoff_1?.umrechnungsfaktor; let energieVerbrauchGesamt_1 = ((ausweis.verbrauch_1 || 0) + (ausweis.verbrauch_2 || 0) + (ausweis.verbrauch_3 || 0)) * brennstoff_1?.umrechnungsfaktor;

View File

@@ -64,11 +64,11 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
// Endenergieverbrauch // Endenergieverbrauch
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden. // Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
let brennstoff_1 = getHeizwertfaktor( let brennstoff_1 = getHeizwertfaktor(
aufnahme.brennstoff_1 as string, ausweis.brennstoff_1 as string,
ausweis.einheit_1 as string ausweis.einheit_1 as string
); );
let brennstoff_2 = getHeizwertfaktor( let brennstoff_2 = getHeizwertfaktor(
aufnahme.brennstoff_2 as string, ausweis.brennstoff_2 as string,
ausweis.einheit_2 as string ausweis.einheit_2 as string
); );

View File

@@ -1,38 +0,0 @@
import { Ausweis } from "./Ausweis/Ausweis";
import { Dachgeschoss, Lueftungskonzept } from "./Ausweis/types";
import { BitChecker } from "./BitChecker";
export class Gebaeude {
public typ: string = "";
public plz: string = "";
public ort: string = "";
public strasse: string = "";
public gebaeudeteil: string = "";
public saniert: boolean = false;
public baujahr: number[] = [];
public einheiten: number = 0;
public wohnflaeche: number = 0;
public nutzflaeche: number = 0;
public keller_beheizt: boolean = false;
public dachgeschoss_beheizt: Dachgeschoss = Dachgeschoss.UNBEHEIZT;
public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";
public wird_gekuehlt: boolean = false;
public leerstand: number = 0;
public versorgungssysteme: boolean[] = BitChecker(0);
public fenster_dach: boolean[] = BitChecker(0);
public energiequelle_2_nutzung: boolean[] = BitChecker(0);
public daemmung: boolean[] = BitChecker(0);
public ausweis: Ausweis;
public uid?: string;
public constructor(initializer?: Gebaeude) {
if (initializer) {
this.typ = initializer.typ;
this.plz = initializer.plz;
this.ort = initializer.ort;
}
}
}

View File

@@ -1,8 +1,8 @@
import { AufnahmeClient, BedarfsausweisWohnenClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js"; import { AufnahmeClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { Enums } from "#lib/client/prisma"; import { Enums } from "#lib/client/prisma.js";
import moment from "moment"; import moment from "moment";
export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient): { export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient): {
title: string, title: string,
description: string, description: string,
anlagenteil: string, anlagenteil: string,
@@ -19,7 +19,6 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
let baujahr_anlagesanlage = aufnahme.baujahr_heizung && aufnahme.baujahr_heizung[0]; let baujahr_anlagesanlage = aufnahme.baujahr_heizung && aufnahme.baujahr_heizung[0];
let Zentralheizung = aufnahme.zentralheizung; let Zentralheizung = aufnahme.zentralheizung;
let photovoltaik = aufnahme.photovoltaik; let photovoltaik = aufnahme.photovoltaik;
let Brennstoff = aufnahme.brennstoff_1;
let Aussenwand_gedaemmt = aufnahme.aussenwand_gedaemmt; let Aussenwand_gedaemmt = aufnahme.aussenwand_gedaemmt;
let Dachgeschoss = aufnahme.dachgeschoss; let Dachgeschoss = aufnahme.dachgeschoss;
let Dachgeschoss_gedaemmt = aufnahme.dachgeschoss_gedaemmt; let Dachgeschoss_gedaemmt = aufnahme.dachgeschoss_gedaemmt;
@@ -70,7 +69,7 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
let Relanlagenjahr = moment().year() - 35; let Relanlagenjahr = moment().year() - 35;
if ((!Brennwertkessel && !Waermepumpe) && baujahr_anlagesanlage <= Relanlagenjahr && Brennstoff != 'Fernwärme' && Brennstoff != 'Strommix') { if ((!Brennwertkessel && !Waermepumpe) && baujahr_anlagesanlage <= Relanlagenjahr && ausweis.brennstoff_1 != 'Fernwärme' && ausweis.brennstoff_1 != 'Strommix') {
empfehlungen.push({ empfehlungen.push({
"title" : "Anlagentechnik", "title" : "Anlagentechnik",
"description" : "Prüfen Sie, ob Sie bei einer Umrüstung auf einen regenerativen Anteil von 65% kommen. Bei energetisch sanierten Gebäuden z.B. Wärmepumpe. Bei unsanieten Gebäuden Fernwärmeanschluss.", "description" : "Prüfen Sie, ob Sie bei einer Umrüstung auf einen regenerativen Anteil von 65% kommen. Bei energetisch sanierten Gebäuden z.B. Wärmepumpe. Bei unsanieten Gebäuden Fernwärmeanschluss.",
@@ -126,7 +125,7 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
} }
} }
if ((baujahr_anlagesanlage <= (moment().year() - 30)) && (Brennstoff == "Heizöl" || Brennstoff == "Erdgas") && !Waermepumpe) { if ((baujahr_anlagesanlage <= (moment().year() - 30)) && (ausweis.brennstoff_1 == "Heizöl" || ausweis.brennstoff_1 == "Erdgas") && !Waermepumpe) {
// Wärmepumpe // Wärmepumpe
empfehlungen.push({ empfehlungen.push({
"title" : "Wärmeerzeuger", "title" : "Wärmeerzeuger",
@@ -137,7 +136,7 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
}); });
} }
if (!photovoltaik && Brennstoff == "Strommix") { if (!photovoltaik && ausweis.brennstoff_1 == "Strommix") {
// Wärmepumpe // Wärmepumpe
empfehlungen.push({ empfehlungen.push({
"title" : "Wärmeerzeuger", "title" : "Wärmeerzeuger",

View File

@@ -1,6 +1,6 @@
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js"; import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { faker } from "@faker-js/faker"; import { faker } from "@faker-js/faker";
import { Enums } from "#lib/client/prisma.js"; import { Aufnahme, Enums, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
import moment from "moment"; import moment from "moment";
export async function importVerbrauchsausweisWohnenAltesSystem(count: number = 5) { export async function importVerbrauchsausweisWohnenAltesSystem(count: number = 5) {
@@ -19,7 +19,7 @@ export async function importVerbrauchsausweisWohnenAltesSystem(count: number = 5
} }
export function verbrauchsausweisWohnenImportTranslate(ausweis: Record<string, any>) { export function verbrauchsausweisWohnenImportTranslate(ausweis: Record<string, any>) {
const ausweisTranslated: VerbrauchsausweisWohnenClient = { const ausweisTranslated: VerbrauchsausweisWohnen & { aufnahme: Aufnahme } = {
aufnahme: { aufnahme: {
rechnungen: null, rechnungen: null,
baujahr_gebaeude: [ausweis.baujahr_gebaeude], baujahr_gebaeude: [ausweis.baujahr_gebaeude],
@@ -58,7 +58,6 @@ export function verbrauchsausweisWohnenImportTranslate(ausweis: Record<string, a
aussenwand_gedaemmt: ausweis.aussenwand_gedaemmt, aussenwand_gedaemmt: ausweis.aussenwand_gedaemmt,
aussenwand_min_12cm_gedaemmt: ausweis.aussenwand_min_12cm_gedaemmt, aussenwand_min_12cm_gedaemmt: ausweis.aussenwand_min_12cm_gedaemmt,
bestellt: ausweis.bestellt, bestellt: ausweis.bestellt,
boxpruefung: ausweis.boxpruefung,
brennwert_kessel: ausweis.brennwert_kessel, brennwert_kessel: ausweis.brennwert_kessel,
dachgeschoss_gedaemmt: ausweis.dachgeschoss_gedaemmt, dachgeschoss_gedaemmt: ausweis.dachgeschoss_gedaemmt,
dachgeschoss_min_12cm_gedaemmt: ausweis.dachgeschoss_min_12cm_gedaemmt, dachgeschoss_min_12cm_gedaemmt: ausweis.dachgeschoss_min_12cm_gedaemmt,

View File

@@ -16,7 +16,7 @@ export async function loginClient(email: string, passwort: string): Promise<infe
} }
Cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, response.accessToken, options); Cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, response.accessToken, options);
Cookies.set(API_REFRESH_TOKEN_COOKIE_NAME, response.refreshToken, options); Cookies.set(API_REFRESH_TOKEN_COOKIE_NAME, response.refreshToken, options);
Cookies.set("uid", response.uid, options); Cookies.set("uid", response.id, options);
return response; return response;
} catch (e) { } catch (e) {

View File

@@ -165,14 +165,14 @@ export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: Verbrauchsa
</flex> </flex>
<flex direction="column" gap="4"> <flex direction="column" gap="4">
<text></text> <text></text>
<text size="12" font="bold">${aufnahme.brennstoff_1}</text> <text size="12" font="bold">${ausweis.brennstoff_1}</text>
<text size="12">${ausweis.verbrauch_1} ${ausweis.einheit_1}</text> <text size="12">${ausweis.verbrauch_1} ${ausweis.einheit_1}</text>
<text size="12">${ausweis.verbrauch_2} ${ausweis.einheit_1}</text> <text size="12">${ausweis.verbrauch_2} ${ausweis.einheit_1}</text>
<text size="12">${ausweis.verbrauch_3} ${ausweis.einheit_1}</text> <text size="12">${ausweis.verbrauch_3} ${ausweis.einheit_1}</text>
</flex> </flex>
<flex direction="column" gap="4"> <flex direction="column" gap="4">
<text size="12">zusätzliche Heizquelle</text> <text size="12">zusätzliche Heizquelle</text>
<text size="12" font="bold">${aufnahme.brennstoff_2 || ""}</text> <text size="12" font="bold">${ausweis.brennstoff_2 || ""}</text>
<text size="12">${ausweis.verbrauch_4 || ""} ${ausweis.einheit_2 || ""}</text> <text size="12">${ausweis.verbrauch_4 || ""} ${ausweis.einheit_2 || ""}</text>
<text size="12">${ausweis.verbrauch_5 || ""} ${ausweis.einheit_2 || ""}</text> <text size="12">${ausweis.verbrauch_5 || ""} ${ausweis.einheit_2 || ""}</text>
<text size="12">${ausweis.verbrauch_6 || ""} ${ausweis.einheit_2 || ""}</text> <text size="12">${ausweis.verbrauch_6 || ""} ${ausweis.einheit_2 || ""}</text>

View File

@@ -131,14 +131,14 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
</flex> </flex>
<flex direction="column" gap="4"> <flex direction="column" gap="4">
<text></text> <text></text>
<text size="12" font="bold">${aufnahme.brennstoff_1}</text> <text size="12" font="bold">${ausweis.brennstoff_1}</text>
<text size="12">${ausweis.verbrauch_1} ${ausweis.einheit_1}</text> <text size="12">${ausweis.verbrauch_1} ${ausweis.einheit_1}</text>
<text size="12">${ausweis.verbrauch_2} ${ausweis.einheit_1}</text> <text size="12">${ausweis.verbrauch_2} ${ausweis.einheit_1}</text>
<text size="12">${ausweis.verbrauch_3} ${ausweis.einheit_1}</text> <text size="12">${ausweis.verbrauch_3} ${ausweis.einheit_1}</text>
</flex> </flex>
<flex direction="column" gap="4"> <flex direction="column" gap="4">
<text size="12">zusätzliche Heizquelle</text> <text size="12">zusätzliche Heizquelle</text>
<text size="12" font="bold">${aufnahme.brennstoff_2 || ""}</text> <text size="12" font="bold">${ausweis.brennstoff_2 || ""}</text>
<text size="12">${ausweis.verbrauch_4 || ""} ${ausweis.einheit_2 || ""}</text> <text size="12">${ausweis.verbrauch_4 || ""} ${ausweis.einheit_2 || ""}</text>
<text size="12">${ausweis.verbrauch_5 || ""} ${ausweis.einheit_2 || ""}</text> <text size="12">${ausweis.verbrauch_5 || ""} ${ausweis.einheit_2 || ""}</text>
<text size="12">${ausweis.verbrauch_6 || ""} ${ausweis.einheit_2 || ""}</text> <text size="12">${ausweis.verbrauch_6 || ""} ${ausweis.einheit_2 || ""}</text>

View File

@@ -66,7 +66,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
size: 10 size: 10
}) })
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, { pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
x: 211, x: 211,
y: height - 285, y: height - 285,
size: 10 size: 10
@@ -97,7 +97,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
}) })
if (ausweis.warmwasser_enthalten) { if (ausweis.warmwasser_enthalten) {
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, { pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
x: 211, x: 211,
y: height - 299, y: height - 299,
size: 10 size: 10
@@ -422,7 +422,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
addVerbrauch( addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"), moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1 || "", ausweis.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(), berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(), Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
"0", "0",
@@ -436,7 +436,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
addVerbrauch( addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"), moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1 || "", ausweis.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(), berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(), Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(), Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
@@ -451,7 +451,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
addVerbrauch( addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"), moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_2 || "", ausweis.brennstoff_2 || "",
berechnungen?.brennstoff_2.primaerenergiefaktor.toString(), berechnungen?.brennstoff_2.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_2 || 0).toString(), Math.round(berechnungen?.energieVerbrauchGesamt_2 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_2 || 0).toString(), Math.round(berechnungen?.energieVerbrauchWarmwasser_2 || 0).toString(),

View File

@@ -71,14 +71,14 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
size: 10 size: 10
}) })
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, { pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
x: 211, x: 211,
y: height - 298.5, y: height - 298.5,
size: 10 size: 10
}) })
if (ausweis.warmwasser_enthalten) { if (ausweis.warmwasser_enthalten) {
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, { pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
x: 211, x: 211,
y: height - 312, y: height - 312,
size: 10 size: 10
@@ -111,7 +111,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
}) })
if (ausweis.warmwasser_enthalten) { if (ausweis.warmwasser_enthalten) {
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, { pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
x: 211, x: 211,
y: height - 299, y: height - 299,
size: 10 size: 10
@@ -414,7 +414,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addVerbrauch( addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"), moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1 || "", ausweis.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(), berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(), Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
"0", "0",
@@ -426,7 +426,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addVerbrauch( addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"), moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1 || "", ausweis.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(), berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(), Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(), Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
@@ -439,7 +439,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addVerbrauch( addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"), moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_2 || "", ausweis.brennstoff_2 || "",
berechnungen?.brennstoff_2.primaerenergiefaktor.toString(), berechnungen?.brennstoff_2.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_2 || 0).toString(), Math.round(berechnungen?.energieVerbrauchGesamt_2 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_2 || 0).toString(), Math.round(berechnungen?.energieVerbrauchWarmwasser_2 || 0).toString(),

View File

@@ -41,15 +41,21 @@
export let ausweisart: Enums.Ausweisart; export let ausweisart: Enums.Ausweisart;
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal; export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
let email = localStorage.getItem("kundendaten.email") || user.email || "";
let vorname = localStorage.getItem("kundendaten.vorname") || user.vorname || ""; let email: string, vorname: string, name: string, empfaenger: string, strasse: string, plz: string, ort: string, zusatzzeile: string, telefon: string;
let name = localStorage.getItem("kundendaten.name") || user.name || "";
let empfaenger = localStorage.getItem("kundendaten.empfaenger") || (user.vorname && user.name ? `${user.vorname} ${user.name}` : "") if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
let strasse = localStorage.getItem("kundendaten.strasse") || user.adresse || ""; // Falls der aktuelle Benutzer kein Admin ist können wir die Kundendaten aus den Stammdaten vorausfüllen.
let plz = localStorage.getItem("kundendaten.plz") || user.plz || ""; email = localStorage.getItem("kundendaten.email") || user.email || "";
let ort = localStorage.getItem("kundendaten.ort") || user.ort || ""; vorname = localStorage.getItem("kundendaten.vorname") || user.vorname || "";
let zusatzzeile = localStorage.getItem("kundendaten.zusatzzeile") || "" name = localStorage.getItem("kundendaten.name") || user.name || "";
let telefon = localStorage.getItem("kundendaten.telefon") || user.telefon || ""; empfaenger = localStorage.getItem("kundendaten.empfaenger") || (user.vorname && user.name ? `${user.vorname} ${user.name}` : "")
strasse = localStorage.getItem("kundendaten.strasse") || user.adresse || "";
plz = localStorage.getItem("kundendaten.plz") || user.plz || "";
ort = localStorage.getItem("kundendaten.ort") || user.ort || "";
zusatzzeile = localStorage.getItem("kundendaten.zusatzzeile") || ""
telefon = localStorage.getItem("kundendaten.telefon") || user.telefon || "";
}
let abweichende_versand_adresse = JSON.parse(localStorage.getItem("kundendaten.abweichende_versand_adresse") || "false") let abweichende_versand_adresse = JSON.parse(localStorage.getItem("kundendaten.abweichende_versand_adresse") || "false")
@@ -71,6 +77,7 @@
} }
$: { $: {
// Wir speichern jede Änderung an den Kundendaten im localStorage ab.
localStorage.setItem("kundendaten.email", email) localStorage.setItem("kundendaten.email", email)
localStorage.setItem("kundendaten.vorname", vorname) localStorage.setItem("kundendaten.vorname", vorname)
localStorage.setItem("kundendaten.name", name) localStorage.setItem("kundendaten.name", name)
@@ -187,7 +194,7 @@
versand_plz: versand_plz, versand_plz: versand_plz,
versand_ort: versand_ort, versand_ort: versand_ort,
telefon: telefon, telefon: telefon,
nachweis_uid: result.uid_nachweis, nachweis_id: result.nachweis_id,
}, },
{ {
headers: { headers: {
@@ -199,7 +206,7 @@
// Alle alten Ausweisdateien im localStorage löschen. // Alle alten Ausweisdateien im localStorage löschen.
localStorage.clear(); localStorage.clear();
window.location.href = `/einpreisung/success?e=${uid}&a=${result.uid_nachweis}`; window.location.href = `/einpreisung/success?e=${uid}&a=${result.nachweis_id}`;
} catch (e) { } catch (e) {
addNotification({ addNotification({
dismissable: true, dismissable: true,

View File

@@ -58,7 +58,8 @@
export let id: string | null; export let id: string | null;
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese. // Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
if (!id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) { // Wir schauen auch ob der Benutzer nicht vielleicht ein Admin ist, dann sollten wir nichts aus dem localStorage holen.
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && !id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis"); const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis");
if (localStorageAusweis) { if (localStorageAusweis) {
ausweis = JSON.parse(localStorageAusweis) ausweis = JSON.parse(localStorageAusweis)

View File

@@ -11,34 +11,33 @@ export const PUT = defineApiRoute({
input: GEGEinpreisungSchema.omit({ input: GEGEinpreisungSchema.omit({
benutzer_id: true, benutzer_id: true,
id: true, id: true,
uid: true,
status: true, status: true,
}).merge(z.object({ }).merge(z.object({
nachweis_uid: UUidWithPrefix nachweis_id: UUidWithPrefix
})), })),
headers: authorizationHeaders, headers: authorizationHeaders,
middleware: authorizationMiddleware, middleware: authorizationMiddleware,
async fetch(input, context, user) { async fetch(input, context, user) {
const ausweisart = getAusweisartFromUUID(input.nachweis_uid); const ausweisart = getAusweisartFromUUID(input.nachweis_id);
let einpreisung; let einpreisung;
let nachweis: GEGNachweisWohnen | GEGNachweisGewerbe; let nachweis: GEGNachweisWohnen | GEGNachweisGewerbe;
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) { if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) {
nachweis = await prisma.gEGNachweisWohnen.findUnique({ nachweis = await prisma.gEGNachweisWohnen.findUnique({
where: { where: {
uid: input.nachweis_uid id: input.nachweis_id
} }
}) })
} else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) {
nachweis = await prisma.gEGNachweisGewerbe.findUnique({ nachweis = await prisma.gEGNachweisGewerbe.findUnique({
where: { where: {
uid: input.nachweis_uid id: input.nachweis_id
} }
}) })
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
nachweis = await prisma.bedarfsausweisGewerbe.findUnique({ nachweis = await prisma.bedarfsausweisGewerbe.findUnique({
where: { where: {
uid: input.nachweis_uid id: input.nachweis_id
} }
}) })
} else { } else {
@@ -59,7 +58,7 @@ export const PUT = defineApiRoute({
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) { if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) {
einpreisung = await prisma.gEGEinpreisung.create({ einpreisung = await prisma.gEGEinpreisung.create({
data: { data: {
...omit(input, ["nachweis_uid"]), ...omit(input, ["nachweis_id"]),
status: Enums.Einpreisungsstatus.open, status: Enums.Einpreisungsstatus.open,
benutzer: { benutzer: {
connect: { connect: {
@@ -68,7 +67,7 @@ export const PUT = defineApiRoute({
}, },
geg_nachweis_wohnen: { geg_nachweis_wohnen: {
connect: { connect: {
uid: input.nachweis_uid id: input.nachweis_id
} }
} }
} }
@@ -76,7 +75,7 @@ export const PUT = defineApiRoute({
} else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) {
einpreisung = await prisma.gEGEinpreisung.create({ einpreisung = await prisma.gEGEinpreisung.create({
data: { data: {
...omit(input, ["nachweis_uid"]), ...omit(input, ["nachweis_id"]),
status: Enums.Einpreisungsstatus.open, status: Enums.Einpreisungsstatus.open,
benutzer: { benutzer: {
connect: { connect: {
@@ -85,7 +84,7 @@ export const PUT = defineApiRoute({
}, },
geg_nachweis_gewerbe: { geg_nachweis_gewerbe: {
connect: { connect: {
uid: input.nachweis_uid id: input.nachweis_id
} }
} }
} }
@@ -93,7 +92,7 @@ export const PUT = defineApiRoute({
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
einpreisung = await prisma.gEGEinpreisung.create({ einpreisung = await prisma.gEGEinpreisung.create({
data: { data: {
...omit(input, ["nachweis_uid"]), ...omit(input, ["nachweis_id"]),
status: Enums.Einpreisungsstatus.open, status: Enums.Einpreisungsstatus.open,
benutzer: { benutzer: {
connect: { connect: {
@@ -102,7 +101,7 @@ export const PUT = defineApiRoute({
}, },
bedarfsausweis_gewerbe: { bedarfsausweis_gewerbe: {
connect: { connect: {
uid: input.nachweis_uid id: input.nachweis_id
} }
} }
} }
@@ -112,7 +111,7 @@ export const PUT = defineApiRoute({
await sendGEGAnforderungsMail(nachweis, user) await sendGEGAnforderungsMail(nachweis, user)
return { return {
uid: einpreisung.uid id: einpreisung.id
} }
}, },
}) })

View File

@@ -1,4 +1,5 @@
--- ---
return Astro.redirect("/dashboard/objekte/1", 301); return Astro.redirect("/dashboard/objekte/1", 301);
---
--- <script></script>

View File

@@ -1,5 +1,9 @@
Verbrauchsausweis Wohnen Verbrauchsausweis Wohnen
[Wenn der Kunde über das Dashboard über "Ausweis erstellen" kommt gibt es Daten aus der
letzten aktuellen Vorlage. Die sollten nach klick auf den Button in LocalStorage inkl.
Objekt ID geschrieben werden. Die Verknüpfung zum Gebäude/Objekt sollte dann gewährleistet
sein.]
if Domain hat bereits eine vorhandene ID? if Domain hat bereits eine vorhandene ID?
if LocalStorage hat Daten? if LocalStorage hat Daten?
Wir vergleichen ob der LocalStorage neuer ist als die Datenbank Wir vergleichen ob der LocalStorage neuer ist als die Datenbank
@@ -26,7 +30,11 @@ else
if *Klick auf Weiter || Klick auf Hilfe* if *Klick auf Weiter || Klick auf Hilfe*
Wir leiten weiter auf Kundendaten mit dem entsprechenden Produkt Wir leiten weiter auf Kundendaten mit dem entsprechenden Produkt
[Hier sollte auch geprüft werden ob Daten im LocalStorage vorliegen
(so wie oben). Wenn Kundendaten leer sind sollen die Stammdaten geladen
werden. Aber bitte nicht wenn der Aussteller/Admin eingeloggt ist]
*User gibt Kundendaten ein* *User gibt Kundendaten ein*
[Wir speichern alles im LocalStorage mit dem aktuallen Timestamp]
if *Klick auf Speichern* if *Klick auf Speichern*
if Ausweis hat bereits eine id? if Ausweis hat bereits eine id?
Wir updaten den bereits gespeicherten Ausweis mit den neuen Daten Wir updaten den bereits gespeicherten Ausweis mit den neuen Daten
@@ -43,7 +51,9 @@ if *Klick auf Weiter || Klick auf Hilfe*
Wir erstellen einen neuen Ausweis Wir erstellen einen neuen Ausweis
else else
*User klickt auf Bestellen* [Bei schon bestellten Produkten (Beratung und Offline) kann man nicht nochmal bestellen
sondern nur Freigeben. Statt Bestellbestätigung Freigabebestätigung]
*User klickt auf Bestellen* [bzw. *User klickt auf Freigabe*]
if Ausweis hat bereits eine id? if Ausweis hat bereits eine id?
Wir updaten den bereits gespeicherten Ausweis mit den neuen Daten Wir updaten den bereits gespeicherten Ausweis mit den neuen Daten
else else