diff --git a/dbml/schema.dbml b/dbml/schema.dbml index bbc8bfac..dfafbfd6 100644 --- a/dbml/schema.dbml +++ b/dbml/schema.dbml @@ -463,6 +463,8 @@ Table VerbrauchsausweisGewerbe { prueftext String [note: '@zod.describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung")'] beschreibung String kontrolldatei_angefragt Boolean [default: false, note: '@zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")'] + created_at DateTime [default: `now()`, not null] + updated_at DateTime [not null] benutzer benutzer rechnung_id Int [unique] rechnung Rechnung @@ -503,6 +505,8 @@ Table VerbrauchsausweisWohnen { prueftext String [note: '@zod.describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung")'] beschreibung String kontrolldatei_angefragt Boolean [default: false, note: '@zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")'] + created_at DateTime [default: `now()`, not null] + updated_at DateTime [not null] benutzer benutzer rechnung_id Int [unique] rechnung Rechnung diff --git a/prisma/migrations/20250310094927_updated/migration.sql b/prisma/migrations/20250310094927_updated/migration.sql new file mode 100644 index 00000000..a51eb6eb --- /dev/null +++ b/prisma/migrations/20250310094927_updated/migration.sql @@ -0,0 +1,49 @@ +-- 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" 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 'gnw-' || 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" 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" ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "VerbrauchsausweisWohnen" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +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/migrations/20250310095844_remove_default/migration.sql b/prisma/migrations/20250310095844_remove_default/migration.sql new file mode 100644 index 00000000..25058c47 --- /dev/null +++ b/prisma/migrations/20250310095844_remove_default/migration.sql @@ -0,0 +1,48 @@ +-- 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" 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 'gnw-' || 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" 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" ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "VerbrauchsausweisWohnen" ALTER COLUMN "uid" SET DEFAULT 'vaw-' || gen_random_uuid(), +ALTER COLUMN "updated_at" DROP DEFAULT; + +-- AlterTable +ALTER TABLE "benutzer" ALTER COLUMN "uid" SET DEFAULT 'usr-' || gen_random_uuid(); diff --git a/prisma/migrations/20250310230139_uodated/migration.sql b/prisma/migrations/20250310230139_uodated/migration.sql new file mode 100644 index 00000000..de317f1b --- /dev/null +++ b/prisma/migrations/20250310230139_uodated/migration.sql @@ -0,0 +1,49 @@ +-- 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" 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 'gnw-' || 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" 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 "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "VerbrauchsausweisWohnen" 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/migrations/20250310230150_default_gone/migration.sql b/prisma/migrations/20250310230150_default_gone/migration.sql new file mode 100644 index 00000000..5859bde1 --- /dev/null +++ b/prisma/migrations/20250310230150_default_gone/migration.sql @@ -0,0 +1,48 @@ +-- 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" 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 'gnw-' || 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" 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" ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid(), +ALTER COLUMN "updated_at" DROP DEFAULT; + +-- AlterTable +ALTER TABLE "VerbrauchsausweisWohnen" 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/VerbrauchsausweisGewerbe.prisma b/prisma/schema/VerbrauchsausweisGewerbe.prisma index d8b292e7..c4902cb5 100644 --- a/prisma/schema/VerbrauchsausweisGewerbe.prisma +++ b/prisma/schema/VerbrauchsausweisGewerbe.prisma @@ -62,6 +62,9 @@ model VerbrauchsausweisGewerbe { /// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde") kontrolldatei_angefragt Boolean? @default(false) + created_at DateTime @default(now()) + updated_at DateTime @updatedAt + 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 32091630..8492a280 100644 --- a/prisma/schema/VerbrauchsausweisWohnen.prisma +++ b/prisma/schema/VerbrauchsausweisWohnen.prisma @@ -66,6 +66,9 @@ model VerbrauchsausweisWohnen { /// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde") kontrolldatei_angefragt Boolean? @default(false) + created_at DateTime @default(now()) + updated_at DateTime @updatedAt + benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) rechnung_id Int? @unique diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index 01c6a1a1..cf94b56b 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -13,18 +13,19 @@ export const createCaller = createCallerFactory({ "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/forgot-password": await import("../src/pages/api/auth/forgot-password.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-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"), "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), + "ausweise": await import("../src/pages/api/ausweise/index.ts"), "bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"), "geg-nachweis-gewerbe/[uid]": await import("../src/pages/api/geg-nachweis-gewerbe/[uid].ts"), "geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"), "geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"), "geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"), "objekt": await import("../src/pages/api/objekt/index.ts"), + "rechnung/[uid]": await import("../src/pages/api/rechnung/[uid].ts"), "rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"), "rechnung": await import("../src/pages/api/rechnung/index.ts"), "ticket": await import("../src/pages/api/ticket/index.ts"), diff --git a/src/client/lib/ausweisSpeichern.ts b/src/client/lib/ausweisSpeichern.ts index f01f3315..9e7e54d1 100644 --- a/src/client/lib/ausweisSpeichern.ts +++ b/src/client/lib/ausweisSpeichern.ts @@ -48,7 +48,58 @@ export async function ausweisSpeichern( if (aufnahme.uid) { await api.aufnahme._uid.PATCH.fetch({ - ...exclude(aufnahme, ["uid"]) + baujahr_gebaeude: aufnahme.baujahr_gebaeude, + baujahr_heizung: aufnahme.baujahr_heizung, + baujahr_klima: aufnahme.baujahr_klima, + alternative_heizung: aufnahme.alternative_heizung, + alternative_kuehlung: aufnahme.alternative_kuehlung, + alternative_lueftung: aufnahme.alternative_lueftung, + alternative_warmwasser: aufnahme.alternative_warmwasser, + aussenwand_gedaemmt: aufnahme.aussenwand_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, + dachgeschoss: aufnahme.dachgeschoss, + dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt, + dachgeschoss_min_12cm_gedaemmt: aufnahme.dachgeschoss_min_12cm_gedaemmt, + doppel_verglasung: aufnahme.doppel_verglasung, + dreifach_verglasung: aufnahme.dreifach_verglasung, + durchlauf_erhitzer: aufnahme.durchlauf_erhitzer, + einfach_verglasung: aufnahme.einfach_verglasung, + einheiten: aufnahme.einheiten, + einzelofen: aufnahme.einzelofen, + energieeffizienzklasse: aufnahme.energieeffizienzklasse, + fenster_dicht: aufnahme.fenster_dicht, + fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht, + flaeche: aufnahme.flaeche, + gebaeudeteil: aufnahme.gebaeudeteil, + gebaeudetyp: aufnahme.gebaeudetyp, + heizungsrohre_gedaemmt: aufnahme.heizungsrohre_gedaemmt, + isolier_verglasung: aufnahme.isolier_verglasung, + keller: aufnahme.keller, + keller_decke_gedaemmt: aufnahme.keller_decke_gedaemmt, + keller_wand_gedaemmt: aufnahme.keller_wand_gedaemmt, + kuehlung: aufnahme.kuehlung, + leerstand: aufnahme.leerstand, + lueftung: aufnahme.lueftung, + niedertemperatur_kessel: aufnahme.niedertemperatur_kessel, + nutzflaeche: aufnahme.nutzflaeche, + oberste_geschossdecke_gedaemmt: aufnahme.oberste_geschossdecke_gedaemmt, + oberste_geschossdecke_min_12cm_gedaemmt: aufnahme.oberste_geschossdecke_min_12cm_gedaemmt, + photovoltaik: aufnahme.photovoltaik, + raum_temperatur_regler: aufnahme.raum_temperatur_regler, + rolllaeden_kaesten_gedaemmt: aufnahme.rolllaeden_kaesten_gedaemmt, + saniert: aufnahme.saniert, + solarsystem_warmwasser: aufnahme.solarsystem_warmwasser, + standard_kessel: aufnahme.standard_kessel, + tueren_dicht: aufnahme.tueren_dicht, + tueren_undicht: aufnahme.tueren_undicht, + waermepumpe: aufnahme.waermepumpe, + warmwasser_rohre_gedaemmt: aufnahme.warmwasser_rohre_gedaemmt, + zentralheizung: aufnahme.zentralheizung, + zirkulation: aufnahme.zirkulation }, { params: { uid: aufnahme.uid diff --git a/src/components/Ausweis/types.ts b/src/components/Ausweis/types.ts index 0694ac6d..cae1a6b1 100644 --- a/src/components/Ausweis/types.ts +++ b/src/components/Ausweis/types.ts @@ -138,21 +138,22 @@ export function getAusweisartFromUUID(uid: string): Enums.Ausweisart | null { return null } - if (uid.startsWith("vaw")) { - return Enums.Ausweisart.VerbrauchsausweisWohnen - } else if (uid.startsWith("vag")) { - return Enums.Ausweisart.VerbrauchsausweisGewerbe - } else if (uid.startsWith("baw")) { - return Enums.Ausweisart.BedarfsausweisWohnen - } else if (uid.startsWith("bag")) { - return Enums.Ausweisart.BedarfsausweisGewerbe - } else if (uid.startsWith("gnw")) { - return Enums.Ausweisart.GEGNachweisWohnen - } else if (uid.startsWith("gng")) { - return Enums.Ausweisart.GEGNachweisGewerbe + switch(uid.split("-")[0]) { + case "vaw": + return Enums.Ausweisart.VerbrauchsausweisWohnen + case "vag": + return Enums.Ausweisart.VerbrauchsausweisGewerbe + case "baw": + return Enums.Ausweisart.BedarfsausweisWohnen + case "bag": + return Enums.Ausweisart.BedarfsausweisGewerbe + case "gnw": + return Enums.Ausweisart.GEGNachweisWohnen + case "gng": + return Enums.Ausweisart.GEGNachweisGewerbe + default: + return null } - - return null; } export type UnterlageClient = Omit @@ -165,10 +166,10 @@ export type ObjektKomplettClient = ObjektClient & { export type AufnahmeKomplettClient = AufnahmeClient & { bilder: BildClient[], unterlagen: UnterlageClient[], - bedarfsausweise_wohnen: BedarfsausweisWohnenClient[], - verbrauchsausweise_wohnen: VerbrauchsausweisWohnenClient[], - verbrauchsausweise_gewerbe: VerbrauchsausweisGewerbeClient[], - geg_nachweise_wohnen: GEGNachweisWohnenClient[] + bedarfsausweise_wohnen: (BedarfsausweisWohnenClient & { rechnung: RechnungClient })[], + verbrauchsausweise_wohnen: (VerbrauchsausweisWohnenClient & { rechnung: RechnungClient })[], + verbrauchsausweise_gewerbe: (VerbrauchsausweisGewerbeClient & { rechnung: RechnungClient })[], + geg_nachweise_wohnen: (GEGNachweisWohnenClient & { rechnung: RechnungClient })[] } export type GEGNachweisWohnenClient = Omit & { diff --git a/src/components/Dashboard/DashboardAusweis.svelte b/src/components/Dashboard/DashboardAusweis.svelte index 506f7da6..cac40e37 100644 --- a/src/components/Dashboard/DashboardAusweis.svelte +++ b/src/components/Dashboard/DashboardAusweis.svelte @@ -1,5 +1,5 @@ +
-
-
+
+ +
Anlass
> @@ -122,12 +85,12 @@ else{
- {#if twoBoxReason.includes(anlass)} + {#if isTwoBoxReason}
Sanierungsstand
@@ -159,7 +122,7 @@ else{
Heizungsalter