Ausweistyp

This commit is contained in:
Moritz Utcke
2025-03-24 16:39:39 -03:00
parent a9c2b5c173
commit 84a3a2dd39
20 changed files with 122 additions and 64 deletions

View File

@@ -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();

View File

@@ -79,6 +79,7 @@ model BedarfsausweisWohnen {
created_at DateTime @default(now()) created_at DateTime @default(now())
updated_at DateTime @updatedAt updated_at DateTime @updatedAt
ausweistyp AusweisTyp @default(Standard)
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)

View File

@@ -46,7 +46,6 @@ model Rechnung {
bezahlmethode Bezahlmethoden bezahlmethode Bezahlmethoden
status Rechnungsstatus status Rechnungsstatus
services Service[] services Service[]
ausweistyp AusweisTyp @default(Standard)
betrag Float betrag Float
erstellt_am DateTime @default(now()) erstellt_am DateTime @default(now())
bezahlt_am DateTime? bezahlt_am DateTime?

View File

@@ -66,6 +66,7 @@ model VerbrauchsausweisGewerbe {
created_at DateTime @default(now()) created_at DateTime @default(now())
updated_at DateTime @updatedAt updated_at DateTime @updatedAt
ausweistyp AusweisTyp @default(Standard)
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)

View File

@@ -67,6 +67,8 @@ model VerbrauchsausweisWohnen {
/// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde") /// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")
kontrolldatei_angefragt Boolean? @default(false) kontrolldatei_angefragt Boolean? @default(false)
ausweistyp AusweisTyp @default(Standard)
created_at DateTime @default(now()) created_at DateTime @default(now())
updated_at DateTime @updatedAt updated_at DateTime @updatedAt

View File

@@ -5,10 +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"),
"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/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"),
@@ -16,9 +12,13 @@ export const createCaller = createCallerFactory({
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"), "admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
"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"),
"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/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.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/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"),
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"), "bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"),

View File

@@ -90,12 +90,11 @@
async function hilfeBestellen() { async function hilfeBestellen() {
openWindowWithPost("/kundendaten", { openWindowWithPost("/kundendaten", {
ausweis, ausweis: { ...ausweis, ausweistyp },
objekt, objekt,
aufnahme, aufnahme,
bilder, bilder,
ausweisart, ausweisart
ausweistyp
}, "") }, "")
} }

View File

@@ -211,9 +211,9 @@
Verbrauchsausweis Gewerbe Verbrauchsausweis Gewerbe
{/if} {/if}
{#if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung} {#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung}
(Beratung) (Beratung)
{:else if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline}
(Offline) (Offline)
{/if} {/if}
</div> </div>
@@ -236,9 +236,9 @@
> >
</div> </div>
{#if ausweis.bestellt} {#if ausweis.bestellt}
{#if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung} {#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung}
<p class="text-sm font-semibold">Sie haben Hilfe zu diesem Ausweis angefordert. Sie werden innerhalb der nächsten 48 Stunden über die hinterlegte Telefonnummer vom IB Cornelsen kontaktiert.</p> <p class="text-sm font-semibold">Sie haben Hilfe zu diesem Ausweis angefordert. Sie werden innerhalb der nächsten 48 Stunden über die hinterlegte Telefonnummer vom IB Cornelsen kontaktiert.</p>
{:else if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline}
<p class="text-sm font-semibold">Sie haben die offline Variant zu diesem Ausweis angefordert. Bitte übermitteln Sie uns die letzten drei Jahre der Energieabrechnungen Ihres Energieversorgers.</p> <p class="text-sm font-semibold">Sie haben die offline Variant zu diesem Ausweis angefordert. Bitte übermitteln Sie uns die letzten drei Jahre der Energieabrechnungen Ihres Energieversorgers.</p>
{:else} {:else}
<p class="text-sm font-semibold">Der Ausweis wurde von Ihnen freigegeben und befindet sich in Prüfung vom IB Cornelsen</p> <p class="text-sm font-semibold">Der Ausweis wurde von Ihnen freigegeben und befindet sich in Prüfung vom IB Cornelsen</p>
@@ -307,7 +307,7 @@
{/if} {/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))}
<!-- TODO --> <!-- TODO -->
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen} {#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
<a <a

View File

@@ -1,5 +1,5 @@
import * as z from "zod" import * as z from "zod"
import { Ausstellgrund } from "@prisma/client" import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const BedarfsausweisWohnenSchema = z.object({ export const BedarfsausweisWohnenSchema = z.object({
id: z.number().int(), id: z.number().int(),
@@ -69,6 +69,7 @@ export const BedarfsausweisWohnenSchema = z.object({
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(), kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
created_at: z.date(), created_at: z.date(),
updated_at: z.date(), updated_at: z.date(),
ausweistyp: z.nativeEnum(AusweisTyp),
rechnung_id: z.number().int().nullish(), rechnung_id: z.number().int().nullish(),
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"), aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
}) })

View File

@@ -1,5 +1,5 @@
import * as z from "zod" import * as z from "zod"
import { Bezahlmethoden, Rechnungsstatus, Service, AusweisTyp } from "@prisma/client" import { Bezahlmethoden, Rechnungsstatus, Service } from "@prisma/client"
export const RechnungSchema = z.object({ export const RechnungSchema = z.object({
id: z.number().int(), id: z.number().int(),
@@ -21,7 +21,6 @@ export const RechnungSchema = z.object({
bezahlmethode: z.nativeEnum(Bezahlmethoden), bezahlmethode: z.nativeEnum(Bezahlmethoden),
status: z.nativeEnum(Rechnungsstatus), status: z.nativeEnum(Rechnungsstatus),
services: z.nativeEnum(Service).array(), services: z.nativeEnum(Service).array(),
ausweistyp: z.nativeEnum(AusweisTyp),
betrag: z.number(), betrag: z.number(),
erstellt_am: z.date(), erstellt_am: z.date(),
bezahlt_am: z.date().nullish(), bezahlt_am: z.date().nullish(),

View File

@@ -1,5 +1,5 @@
import * as z from "zod" import * as z from "zod"
import { Ausstellgrund } from "@prisma/client" import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const VerbrauchsausweisGewerbeSchema = z.object({ export const VerbrauchsausweisGewerbeSchema = z.object({
id: z.number().int(), id: z.number().int(),
@@ -50,6 +50,7 @@ export const VerbrauchsausweisGewerbeSchema = z.object({
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(), kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
created_at: z.date(), created_at: z.date(),
updated_at: z.date(), updated_at: z.date(),
ausweistyp: z.nativeEnum(AusweisTyp),
rechnung_id: z.number().int().nullish(), rechnung_id: z.number().int().nullish(),
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"), aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
}) })

View File

@@ -1,5 +1,5 @@
import * as z from "zod" import * as z from "zod"
import { Ausstellgrund } from "@prisma/client" import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const VerbrauchsausweisWohnenSchema = z.object({ export const VerbrauchsausweisWohnenSchema = z.object({
id: z.number().int(), id: z.number().int(),
@@ -35,6 +35,7 @@ export const VerbrauchsausweisWohnenSchema = z.object({
prueftext: z.string().describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung").nullish(), prueftext: z.string().describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung").nullish(),
beschreibung: z.string().nullish(), beschreibung: z.string().nullish(),
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(), kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
ausweistyp: z.nativeEnum(AusweisTyp),
created_at: z.date(), created_at: z.date(),
updated_at: z.date(), updated_at: z.date(),
rechnung_id: z.number().int().nullish(), rechnung_id: z.number().int().nullish(),

View File

@@ -8,23 +8,23 @@ export function getPaymentSuccessSubject(ausweis: VerbrauchsausweisWohnen | Verb
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen (ID: ${id})`; subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen (ID: ${id})`;
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen mit Beratung (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen mit Beratung (ID: ${id})`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen - offline Service (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen - offline Service (ID: ${id})`
} }
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe (ID: ${id})`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe mit Beratung (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe mit Beratung (ID: ${id})`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe - offline Service (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe - offline Service (ID: ${id})`
} }
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) { } else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen (ID: ${id})`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen mit Beratung (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen mit Beratung (ID: ${id})`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen - offline Service (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen - offline Service (ID: ${id})`
} }
} }
@@ -61,7 +61,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -85,7 +85,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
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.</p> 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.</p>
@@ -134,7 +134,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -158,7 +158,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
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.</p> 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.</p>
@@ -207,7 +207,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -231,7 +231,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
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.</p> 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.</p>
@@ -290,7 +290,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -314,7 +314,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
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.</p> 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.</p>
@@ -363,7 +363,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -387,7 +387,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
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.</p> 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.</p>
@@ -436,7 +436,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -460,7 +460,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
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.</p> 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.</p>

View File

@@ -44,7 +44,7 @@ export async function sendInvoiceMail(
const id = shortenUID(ausweis.uid) 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( const ansichtsausweis = await getAnsichtsausweis(
ausweis, ausweis,
aufnahme, aufnahme,

View File

@@ -43,7 +43,7 @@ export async function sendPaymentSuccessMail(
const id = shortenUID(ausweis.uid) 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( const ansichtsausweis = await getAnsichtsausweis(
ausweis, ausweis,
aufnahme, aufnahme,

View File

@@ -40,7 +40,6 @@
export let rechnung: RechnungClient | null = null; export let rechnung: RechnungClient | null = null;
export let ausweisart: Enums.Ausweisart; export let ausweisart: Enums.Ausweisart;
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal; export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
export let ausweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard;
let email = localStorage.getItem("kundendaten.email") || user.email || ""; let email = localStorage.getItem("kundendaten.email") || user.email || "";
let vorname = localStorage.getItem("kundendaten.vorname") || user.vorname || ""; let vorname = localStorage.getItem("kundendaten.vorname") || user.vorname || "";
@@ -118,7 +117,7 @@
let prices = PRICES[ausweisart]; let prices = PRICES[ausweisart];
let basePrice: number = prices[ausweistyp]; let basePrice: number = prices[ausweis.ausweistyp];
$: price = $: price =
basePrice + basePrice +
@@ -340,8 +339,7 @@
versand_plz: versand_plz, versand_plz: versand_plz,
versand_ort: versand_ort, versand_ort: versand_ort,
telefon: telefon, telefon: telefon,
ausweis_uid: ausweis.uid, ausweis_uid: ausweis.uid
ausweistyp,
}, },
{ {
headers: { headers: {
@@ -431,11 +429,11 @@
active={1} active={1}
steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]} steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]}
{ausweisart} {ausweisart}
{ausweistyp} ausweistyp={ausweis.ausweistyp}
anliegen={"Angebot anfragen"} anliegen={"Angebot anfragen"}
/> />
{:else} {:else}
<Progressbar active={1} {ausweisart} {ausweistyp} anliegen={"Energieausweis erstellen"} /> <Progressbar active={1} {ausweisart} ausweistyp={ausweis.ausweistyp} anliegen={"Energieausweis erstellen"} />
{/if} {/if}
</div> </div>
@@ -846,11 +844,11 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center"
<div class="ProduktKostenTabelle"> <div class="ProduktKostenTabelle">
<div class="zeile betrag"> <div class="zeile betrag">
{#if ausweistyp === Enums.AusweisTyp.Standard} {#if ausweis.ausweistyp === Enums.AusweisTyp.Standard}
<span>Netto-Preis Energieausweis</span> <span>Netto-Preis Energieausweis</span>
{:else if ausweistyp === Enums.AusweisTyp.Beratung} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Beratung}
<span>Energieausweis inkl. Beratung</span> <span>Energieausweis inkl. Beratung</span>
{:else if ausweistyp === Enums.AusweisTyp.Offline} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline}
<span>Energieausweis Offline</span> <span>Energieausweis Offline</span>
{/if} {/if}
<span>:</span> <span>:</span>

View File

@@ -64,6 +64,7 @@
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)
ausweis.ausweistyp = ausweistyp;
} }
const localStorageAufnahme = localStorage.getItem("verbrauchsausweis-wohnen.aufnahme"); const localStorageAufnahme = localStorage.getItem("verbrauchsausweis-wohnen.aufnahme");

View File

@@ -25,7 +25,6 @@ export const PUT = defineApiRoute({
.object({ .object({
ausweisart: z.nativeEnum(Enums.Ausweisart), ausweisart: z.nativeEnum(Enums.Ausweisart),
ausweis_uid: UUidWithPrefix, ausweis_uid: UUidWithPrefix,
ausweistyp: z.nativeEnum(Enums.AusweisTyp)
}) })
.merge( .merge(
RechnungSchema.omit({ 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 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. // wir eine Checkout URL zurück auf die der Nutzer weitergeleitet werden kann.
const { ausweis_uid, ausweisart, bezahlmethode, services, ausweistyp } = input; const { ausweis_uid, ausweisart, bezahlmethode, services } = input;
let betrag = PRICES[ausweisart][ausweistyp]
const servicePriceList = SERVICES[ausweisart]
for (const service of input.services) {
betrag += servicePriceList[service]
}
const adapter = getPrismaAusweisAdapter(ausweis_uid); 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. // Wir erstellen eine neue Rechnung in unserer Datenbank.
let rechnung: Rechnung | null = null; let rechnung: Rechnung | null = null;
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
@@ -102,7 +102,6 @@ export const PUT = defineApiRoute({
} }
}, },
services, services,
ausweistyp
} }
}); });
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
@@ -118,7 +117,6 @@ export const PUT = defineApiRoute({
} }
}, },
services, services,
ausweistyp
} }
}); });
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) { } else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
@@ -134,7 +132,6 @@ export const PUT = defineApiRoute({
} }
}, },
services, services,
ausweistyp
} }
}); });
} }

View File

@@ -9,7 +9,7 @@ import { Enums } from "#lib/server/prisma";
const uid = Astro.url.searchParams.get("uid"); const uid = Astro.url.searchParams.get("uid");
const uid_aufnahme = Astro.url.searchParams.get("aufnahme") 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 ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
let aufnahme: AufnahmeClient = {} as AufnahmeClient; let aufnahme: AufnahmeClient = {} as AufnahmeClient;
@@ -37,6 +37,8 @@ if (uid) {
} }
}); });
ausweistyp = ausweis.ausweistyp
aufnahme = await caller.aufnahme._uid.GET.fetch(null, { aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
headers: { headers: {
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`

View File

@@ -16,16 +16,15 @@ if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") |
return Astro.redirect("/404") return Astro.redirect("/404")
} }
let ausweis, aufnahme, objekt, ausweisart, bilder, ausweistyp; let ausweis, aufnahme, objekt, ausweisart, bilder;
try { try {
ausweis = JSON.parse(params.get("ausweis") || "") ausweis = JSON.parse(params.get("ausweis") || "")
aufnahme = JSON.parse(params.get("aufnahme") || "") aufnahme = JSON.parse(params.get("aufnahme") || "")
objekt = JSON.parse(params.get("objekt") || "") objekt = JSON.parse(params.get("objekt") || "")
ausweisart = JSON.parse(params.get("ausweisart") || "") as Enums.Ausweisart; ausweisart = JSON.parse(params.get("ausweisart") || "") as Enums.Ausweisart;
bilder = JSON.parse(params.get("bilder") || ""); 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() throw new Error()
} }
} catch(e){ } catch(e){
@@ -35,6 +34,6 @@ try {
--- ---
<AusweisLayout title="Kundendaten Aufnehmen - IBCornelsen"> <AusweisLayout title="Kundendaten Aufnehmen - IBCornelsen">
<KundendatenModule {user} {ausweis} {objekt} {aufnahme} {bilder} {ausweisart} {ausweistyp} unterlagen={[]} aktiveBezahlmethode={Enums.Bezahlmethoden.paypal} client:only="svelte" ></KundendatenModule> <KundendatenModule {user} {ausweis} {objekt} {aufnahme} {bilder} {ausweisart} unterlagen={[]} aktiveBezahlmethode={Enums.Bezahlmethoden.paypal} client:only="svelte" ></KundendatenModule>
</AusweisLayout> </AusweisLayout>