From 84a3a2dd39aa6fdb5b41dce56bc35a93c8ee1f60 Mon Sep 17 00:00:00 2001 From: Moritz Utcke Date: Mon, 24 Mar 2025 16:39:39 -0300 Subject: [PATCH] Ausweistyp --- .../20250324191736_ausweistyp/migration.sql | 57 +++++++++++++++++++ prisma/schema/BedarfsausweisWohnen.prisma | 1 + prisma/schema/Rechnung.prisma | 1 - prisma/schema/VerbrauchsausweisGewerbe.prisma | 1 + prisma/schema/VerbrauchsausweisWohnen.prisma | 2 + src/astro-typesafe-api-caller.ts | 10 ++-- .../Ausweis/ButtonWeiterHilfe.svelte | 5 +- .../Dashboard/DashboardAusweis.svelte | 10 ++-- src/generated/zod/bedarfsausweiswohnen.ts | 3 +- src/generated/zod/rechnung.ts | 3 +- src/generated/zod/verbrauchsausweisgewerbe.ts | 3 +- src/generated/zod/verbrauchsausweiswohnen.ts | 3 +- src/lib/server/mail/helpers.ts | 36 ++++++------ src/lib/server/mail/invoice.ts | 2 +- src/lib/server/mail/payment-success.ts | 2 +- src/modules/KundendatenModule.svelte | 16 +++--- .../VerbrauchsausweisWohnenModule.svelte | 1 + src/pages/api/rechnung/index.ts | 19 +++---- .../index.astro | 4 +- src/pages/kundendaten.astro | 7 +-- 20 files changed, 122 insertions(+), 64 deletions(-) create mode 100644 prisma/migrations/20250324191736_ausweistyp/migration.sql diff --git a/prisma/migrations/20250324191736_ausweistyp/migration.sql b/prisma/migrations/20250324191736_ausweistyp/migration.sql new file mode 100644 index 00000000..3e29f2ed --- /dev/null +++ b/prisma/migrations/20250324191736_ausweistyp/migration.sql @@ -0,0 +1,57 @@ +/* + Warnings: + + - You are about to drop the column `ausweistyp` on the `Rechnung` table. All the data in the column will be lost. + +*/ +-- AlterTable +ALTER TABLE "Anteilshaber" ALTER COLUMN "uid" SET DEFAULT 'ant-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Aufnahme" ALTER COLUMN "uid" SET DEFAULT 'auf-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "BedarfsausweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'bag-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard', +ALTER COLUMN "uid" SET DEFAULT 'baw-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Bild" ALTER COLUMN "uid" SET DEFAULT 'img-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Event" ALTER COLUMN "uid" SET DEFAULT 'evt-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "GEGEinpreisung" ALTER COLUMN "uid" SET DEFAULT 'gge-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "GEGNachweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'gng-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "GEGNachweisWohnen" ALTER COLUMN "uid" SET DEFAULT 'gnw-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Objekt" ALTER COLUMN "uid" SET DEFAULT 'obj-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Rechnung" DROP COLUMN "ausweistyp", +ALTER COLUMN "uid" SET DEFAULT 'inv-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Tickets" ALTER COLUMN "uid" SET DEFAULT 'tkt-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Unterlage" ALTER COLUMN "uid" SET DEFAULT 'pln-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "VerbrauchsausweisGewerbe" ADD COLUMN "ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard', +ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "VerbrauchsausweisWohnen" ADD COLUMN "ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard', +ALTER COLUMN "uid" SET DEFAULT 'vaw-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "benutzer" ALTER COLUMN "uid" SET DEFAULT 'usr-' || gen_random_uuid(); diff --git a/prisma/schema/BedarfsausweisWohnen.prisma b/prisma/schema/BedarfsausweisWohnen.prisma index 558638eb..0724094a 100644 --- a/prisma/schema/BedarfsausweisWohnen.prisma +++ b/prisma/schema/BedarfsausweisWohnen.prisma @@ -79,6 +79,7 @@ model BedarfsausweisWohnen { created_at DateTime @default(now()) updated_at DateTime @updatedAt + ausweistyp AusweisTyp @default(Standard) benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) diff --git a/prisma/schema/Rechnung.prisma b/prisma/schema/Rechnung.prisma index b2b21c3a..7b202bf1 100644 --- a/prisma/schema/Rechnung.prisma +++ b/prisma/schema/Rechnung.prisma @@ -46,7 +46,6 @@ model Rechnung { bezahlmethode Bezahlmethoden status Rechnungsstatus services Service[] - ausweistyp AusweisTyp @default(Standard) betrag Float erstellt_am DateTime @default(now()) bezahlt_am DateTime? diff --git a/prisma/schema/VerbrauchsausweisGewerbe.prisma b/prisma/schema/VerbrauchsausweisGewerbe.prisma index 46973729..f894cf80 100644 --- a/prisma/schema/VerbrauchsausweisGewerbe.prisma +++ b/prisma/schema/VerbrauchsausweisGewerbe.prisma @@ -66,6 +66,7 @@ model VerbrauchsausweisGewerbe { created_at DateTime @default(now()) updated_at DateTime @updatedAt + ausweistyp AusweisTyp @default(Standard) benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) diff --git a/prisma/schema/VerbrauchsausweisWohnen.prisma b/prisma/schema/VerbrauchsausweisWohnen.prisma index 2dec2998..2e334f17 100644 --- a/prisma/schema/VerbrauchsausweisWohnen.prisma +++ b/prisma/schema/VerbrauchsausweisWohnen.prisma @@ -67,6 +67,8 @@ model VerbrauchsausweisWohnen { /// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde") kontrolldatei_angefragt Boolean? @default(false) + ausweistyp AusweisTyp @default(Standard) + created_at DateTime @default(now()) updated_at DateTime @updatedAt diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index 11b12809..63e7abf0 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -5,10 +5,6 @@ export const createCaller = createCallerFactory({ "klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"), "postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"), "unterlage": await import("../src/pages/api/unterlage.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"), "admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"), "admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"), "admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"), @@ -16,9 +12,13 @@ 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"), + "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"), "bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"), "bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"), - "ausweise": await import("../src/pages/api/ausweise/index.ts"), "bedarfsausweis-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"), "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), "bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"), diff --git a/src/components/Ausweis/ButtonWeiterHilfe.svelte b/src/components/Ausweis/ButtonWeiterHilfe.svelte index 42dff87e..9c5d67f1 100644 --- a/src/components/Ausweis/ButtonWeiterHilfe.svelte +++ b/src/components/Ausweis/ButtonWeiterHilfe.svelte @@ -90,12 +90,11 @@ async function hilfeBestellen() { openWindowWithPost("/kundendaten", { - ausweis, + ausweis: { ...ausweis, ausweistyp }, objekt, aufnahme, bilder, - ausweisart, - ausweistyp + ausweisart }, "") } diff --git a/src/components/Dashboard/DashboardAusweis.svelte b/src/components/Dashboard/DashboardAusweis.svelte index a0d05884..9aabd5aa 100644 --- a/src/components/Dashboard/DashboardAusweis.svelte +++ b/src/components/Dashboard/DashboardAusweis.svelte @@ -211,9 +211,9 @@ Verbrauchsausweis Gewerbe {/if} - {#if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung} + {#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung} (Beratung) - {:else if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline} + {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline} (Offline) {/if} @@ -236,9 +236,9 @@ > {#if ausweis.bestellt} - {#if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung} + {#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung}

Sie haben Hilfe zu diesem Ausweis angefordert. Sie werden innerhalb der nächsten 48 Stunden über die hinterlegte Telefonnummer vom IB Cornelsen kontaktiert.

- {:else if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline} + {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline}

Sie haben die offline Variant zu diesem Ausweis angefordert. Bitte übermitteln Sie uns die letzten drei Jahre der Energieabrechnungen Ihres Energieversorgers.

{:else}

Der Ausweis wurde von Ihnen freigegeben und befindet sich in Prüfung vom IB Cornelsen

@@ -307,7 +307,7 @@ {/if} - {#if !ausweis.ausgestellt && (!ausweis.bestellt || (rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung || rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline))} + {#if !ausweis.ausgestellt && (!ausweis.bestellt || (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.Offline))} {#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen} fax 040 · 209339859

` - if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { + if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { body = `

vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.

@@ -85,7 +85,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - } else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { + } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { body = `

vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.

@@ -134,7 +134,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { + if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { body = `

vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.

@@ -158,7 +158,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - } else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { + } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { body = `

vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.

@@ -207,7 +207,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { + if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { body = `

vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.

@@ -231,7 +231,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - } else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { + } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { body = `

vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.
Bitte antworten Sie auf diese E-Mail und schicken uns Grundriss- und Ansichtspläne Ihres Gebäudes zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.

@@ -290,7 +290,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { + if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { body = `

vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.

@@ -314,7 +314,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - } else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { + } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { body = `

vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.

@@ -363,7 +363,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { + if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { body = `

vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.

@@ -387,7 +387,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - } else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { + } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { body = `

vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.

@@ -436,7 +436,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { + if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { body = `

vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.

@@ -460,7 +460,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
fax 040 · 209339859

` - } else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { + } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { body = `

vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.
Bitte antworten Sie auf diese E-Mail und schicken uns Grundriss- und Ansichtspläne Ihres Gebäudes zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.

diff --git a/src/lib/server/mail/invoice.ts b/src/lib/server/mail/invoice.ts index 955281ad..60b7d0d9 100644 --- a/src/lib/server/mail/invoice.ts +++ b/src/lib/server/mail/invoice.ts @@ -44,7 +44,7 @@ export async function sendInvoiceMail( const id = shortenUID(ausweis.uid) - if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && rechnung.ausweistyp === Enums.AusweisTyp.Standard) { + if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && ausweis.ausweistyp === Enums.AusweisTyp.Standard) { const ansichtsausweis = await getAnsichtsausweis( ausweis, aufnahme, diff --git a/src/lib/server/mail/payment-success.ts b/src/lib/server/mail/payment-success.ts index a63414da..3668e12c 100644 --- a/src/lib/server/mail/payment-success.ts +++ b/src/lib/server/mail/payment-success.ts @@ -43,7 +43,7 @@ export async function sendPaymentSuccessMail( const id = shortenUID(ausweis.uid) - if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && rechnung.ausweistyp === Enums.AusweisTyp.Standard) { + if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && ausweis.ausweistyp === Enums.AusweisTyp.Standard) { const ansichtsausweis = await getAnsichtsausweis( ausweis, aufnahme, diff --git a/src/modules/KundendatenModule.svelte b/src/modules/KundendatenModule.svelte index 2f7440cf..2a9675ba 100644 --- a/src/modules/KundendatenModule.svelte +++ b/src/modules/KundendatenModule.svelte @@ -40,7 +40,6 @@ export let rechnung: RechnungClient | null = null; export let ausweisart: Enums.Ausweisart; export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal; - export let ausweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard; let email = localStorage.getItem("kundendaten.email") || user.email || ""; let vorname = localStorage.getItem("kundendaten.vorname") || user.vorname || ""; @@ -118,7 +117,7 @@ let prices = PRICES[ausweisart]; - let basePrice: number = prices[ausweistyp]; + let basePrice: number = prices[ausweis.ausweistyp]; $: price = basePrice + @@ -340,8 +339,7 @@ versand_plz: versand_plz, versand_ort: versand_ort, telefon: telefon, - ausweis_uid: ausweis.uid, - ausweistyp, + ausweis_uid: ausweis.uid }, { headers: { @@ -431,11 +429,11 @@ active={1} steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]} {ausweisart} - {ausweistyp} + ausweistyp={ausweis.ausweistyp} anliegen={"Angebot anfragen"} /> {:else} - + {/if} @@ -846,11 +844,11 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center"
- {#if ausweistyp === Enums.AusweisTyp.Standard} + {#if ausweis.ausweistyp === Enums.AusweisTyp.Standard} Netto-Preis Energieausweis - {:else if ausweistyp === Enums.AusweisTyp.Beratung} + {:else if ausweis.ausweistyp === Enums.AusweisTyp.Beratung} Energieausweis inkl. Beratung - {:else if ausweistyp === Enums.AusweisTyp.Offline} + {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline} Energieausweis Offline {/if} : diff --git a/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte b/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte index 737df028..56fd8171 100644 --- a/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte +++ b/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte @@ -64,6 +64,7 @@ const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis"); if (localStorageAusweis) { ausweis = JSON.parse(localStorageAusweis) + ausweis.ausweistyp = ausweistyp; } const localStorageAufnahme = localStorage.getItem("verbrauchsausweis-wohnen.aufnahme"); diff --git a/src/pages/api/rechnung/index.ts b/src/pages/api/rechnung/index.ts index 156a2606..81e4049e 100644 --- a/src/pages/api/rechnung/index.ts +++ b/src/pages/api/rechnung/index.ts @@ -25,7 +25,6 @@ export const PUT = defineApiRoute({ .object({ ausweisart: z.nativeEnum(Enums.Ausweisart), ausweis_uid: UUidWithPrefix, - ausweistyp: z.nativeEnum(Enums.AusweisTyp) }) .merge( RechnungSchema.omit({ @@ -50,13 +49,7 @@ export const PUT = defineApiRoute({ // Wir erstellen eine Mollie Payment Referenz und eine neue Rechnung in unserer Datenbank, daraufhin geben // wir eine Checkout URL zurück auf die der Nutzer weitergeleitet werden kann. - const { ausweis_uid, ausweisart, bezahlmethode, services, ausweistyp } = input; - let betrag = PRICES[ausweisart][ausweistyp] - - const servicePriceList = SERVICES[ausweisart] - for (const service of input.services) { - betrag += servicePriceList[service] - } + const { ausweis_uid, ausweisart, bezahlmethode, services } = input; const adapter = getPrismaAusweisAdapter(ausweis_uid); @@ -87,6 +80,13 @@ export const PUT = defineApiRoute({ }); } + let betrag = PRICES[ausweisart][ausweis.ausweistyp] + + const servicePriceList = SERVICES[ausweisart] + for (const service of input.services) { + betrag += servicePriceList[service] + } + // Wir erstellen eine neue Rechnung in unserer Datenbank. let rechnung: Rechnung | null = null; if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { @@ -102,7 +102,6 @@ export const PUT = defineApiRoute({ } }, services, - ausweistyp } }); } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { @@ -118,7 +117,6 @@ export const PUT = defineApiRoute({ } }, services, - ausweistyp } }); } else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) { @@ -134,7 +132,6 @@ export const PUT = defineApiRoute({ } }, services, - ausweistyp } }); } diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro index 89052740..1f13bb8c 100644 --- a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro +++ b/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro @@ -9,7 +9,7 @@ import { Enums } from "#lib/server/prisma"; const uid = Astro.url.searchParams.get("uid"); const uid_aufnahme = Astro.url.searchParams.get("aufnahme") -const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard; +let ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard; let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient; let aufnahme: AufnahmeClient = {} as AufnahmeClient; @@ -37,6 +37,8 @@ if (uid) { } }); + ausweistyp = ausweis.ausweistyp + aufnahme = await caller.aufnahme._uid.GET.fetch(null, { headers: { authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` diff --git a/src/pages/kundendaten.astro b/src/pages/kundendaten.astro index 8b51f13c..7e0382cc 100644 --- a/src/pages/kundendaten.astro +++ b/src/pages/kundendaten.astro @@ -16,16 +16,15 @@ if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") | return Astro.redirect("/404") } -let ausweis, aufnahme, objekt, ausweisart, bilder, ausweistyp; +let ausweis, aufnahme, objekt, ausweisart, bilder; try { ausweis = JSON.parse(params.get("ausweis") || "") aufnahme = JSON.parse(params.get("aufnahme") || "") objekt = JSON.parse(params.get("objekt") || "") ausweisart = JSON.parse(params.get("ausweisart") || "") as Enums.Ausweisart; bilder = JSON.parse(params.get("bilder") || ""); - ausweistyp = JSON.parse(params.get("ausweistyp") || "") as Enums.AusweisTyp; - if (!ausweisart || !Object.keys(Enums.Ausweisart).includes(ausweisart) || !ausweistyp || !Object.keys(Enums.AusweisTyp).includes(ausweistyp)) { + if (!ausweisart || !Object.keys(Enums.Ausweisart).includes(ausweisart)) { throw new Error() } } catch(e){ @@ -35,6 +34,6 @@ try { --- - +