diff --git a/prisma/migrations/20250320120721_/migration.sql b/prisma/migrations/20250320120721_/migration.sql new file mode 100644 index 00000000..a2c90f6a --- /dev/null +++ b/prisma/migrations/20250320120721_/migration.sql @@ -0,0 +1,55 @@ +/* + Warnings: + + - Added the required column `updated_at` to the `BedarfsausweisWohnen` table without a default value. This is not possible if the table is not empty. + +*/ +-- 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 "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL, +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" 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(); + +-- AlterTable +ALTER TABLE "benutzer" ALTER COLUMN "uid" SET DEFAULT 'usr-' || gen_random_uuid(); diff --git a/prisma/migrations/20250320120730_/migration.sql b/prisma/migrations/20250320120730_/migration.sql new file mode 100644 index 00000000..d6f2e9e5 --- /dev/null +++ b/prisma/migrations/20250320120730_/migration.sql @@ -0,0 +1,47 @@ +-- 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 '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" 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(); + +-- 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 578466bf..558638eb 100644 --- a/prisma/schema/BedarfsausweisWohnen.prisma +++ b/prisma/schema/BedarfsausweisWohnen.prisma @@ -76,6 +76,10 @@ model BedarfsausweisWohnen { /// @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/client/lib/ausweisSpeichern.ts b/src/client/lib/ausweisSpeichern.ts index 9e7e54d1..c8c2f168 100644 --- a/src/client/lib/ausweisSpeichern.ts +++ b/src/client/lib/ausweisSpeichern.ts @@ -109,8 +109,6 @@ export async function ausweisSpeichern( } }) } else { - console.log(aufnahme); - const { uid } = await api.aufnahme.PUT.fetch({ aufnahme: { baujahr_gebaeude: aufnahme.baujahr_gebaeude, diff --git a/src/generated/zod/bedarfsausweiswohnen.ts b/src/generated/zod/bedarfsausweiswohnen.ts index 64c883c8..ceaf9950 100644 --- a/src/generated/zod/bedarfsausweiswohnen.ts +++ b/src/generated/zod/bedarfsausweiswohnen.ts @@ -67,6 +67,8 @@ export const BedarfsausweisWohnenSchema = z.object({ prueftext: z.string().describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung").nullish(), beschreibung: z.string().nullish(), kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(), + created_at: z.date(), + updated_at: z.date(), rechnung_id: z.number().int().nullish(), aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"), }) diff --git a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte index d6091f88..2f81bd0c 100644 --- a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte +++ b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte @@ -2,8 +2,7 @@ import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte"; import Progressbar from "#components/Ausweis/Progressbar.svelte"; //import Hilfe from "#components/Ausweis/Hilfe.svelte"; - import { PRICES } from "#lib/constants.js"; - + import Bereich from "#components/labels/Bereich.svelte"; import ButtonWeiterHilfe from "#components/Ausweis/ButtonWeiterHilfe.svelte"; @@ -18,15 +17,9 @@ import SanierungszustandWaermedammung from "#components/Ausweis/SanierungszustandWaermedammung.svelte"; import AusweisPreviewContainer from "#components/Ausweis/AusweisPreviewContainer.svelte"; - import Label from "#components/Label.svelte"; - import HelpLabel from "#components/HelpLabel.svelte"; - import ZipSearch from "#components/PlzSuche.svelte"; - - import { hotWaterProductionTypes } from "#modules/BedarfsausweisWohnen/HotWaterProductionTypes.js"; - import BilderZusatzsysteme from "../../components/Ausweis/BilderZusatzsysteme.svelte"; + import moment from "moment"; - import { BitChecker } from "src/lib/BitChecker.js"; - import { Enums } from "#lib/client/prisma"; + import { Enums } from "#lib/client/prisma.js"; import { BedarfsausweisWohnenClient, BenutzerClient, @@ -41,7 +34,38 @@ export let objekt: ObjektClient export let aufnahme: AufnahmeClient export let user: BenutzerClient = {} as BenutzerClient; - export let images: UploadedGebaeudeBild[] = [] + export let bilder: UploadedGebaeudeBild[] = [] + export let uid: string; + + if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) { + const localStorageAusweis = localStorage.getItem("bedarfsausweis-wohnen.ausweis"); + if (localStorageAusweis) { + ausweis = JSON.parse(localStorageAusweis) + } + + const localStorageAufnahme = localStorage.getItem("bedarfsausweis-wohnen.aufnahme"); + if (localStorageAufnahme) { + aufnahme = JSON.parse(localStorageAufnahme) + } + + const localStorageObjekt = localStorage.getItem("bedarfsausweis-wohnen.objekt"); + if (localStorageObjekt) { + objekt = JSON.parse(localStorageObjekt) + } + + const localStorageBilder = localStorage.getItem("bedarfsausweis-wohnen.bilder"); + if (localStorageBilder) { + bilder = JSON.parse(localStorageBilder) + } + } + + $: { + localStorage.setItem("bedarfsausweis-wohnen.ausweis", JSON.stringify(ausweis)) + localStorage.setItem("bedarfsausweis-wohnen.aufnahme", JSON.stringify(aufnahme)) + localStorage.setItem("bedarfsausweis-wohnen.objekt", JSON.stringify(objekt)) + localStorage.setItem("bedarfsausweis-wohnen.bilder", JSON.stringify(bilder)) + localStorage.setItem("bedarfsausweis-wohnen.updated_at", moment().toString()) + } let daemmungsBreiten = [0, 0.02, 0.05, 0.08, 0.12, 0.16, 0.2, 0.3, 0.4]; @@ -92,77 +116,15 @@ (value, index) => start + index * step ); - function automatischAusfüllen() { - ausweis.baujahr_anlage = 1974; - ausweis.baujahr_gebaeude = 1962; - ausweis.anzahl_einheiten = 1; - ausweis.objekt_saniert = true; - ausweis.objekt_strasse = "Mönckebergstraße"; - ausweis.objekt_plz = "22049"; - ausweis.objekt_ort = "Hamburg"; - ausweis.wohnflaeche = 152; - ausweis.keller_beheizt = true; - ausweis.dachgeschoss = Enums.Heizungsstatus.UNBEHEIZT; - ausweis.energieverbrauch_zeitraum = moment("04.01.2018"); - ausweis.energietraeger_1 = "Erdgas"; - ausweis.energietraeger_einheit_heizquelle_1 = "kWh"; - ausweis.versorgungssysteme = BitChecker(1); - ausweis.fenster_dach = BitChecker(1); - ausweis.daemmung = BitChecker(1); - ausweis.objekt_typ = "Einfamilienhaus"; - ausweis.objekt_gebaeudeteil = "Gesamtgebäude"; - ausweis.lueftungskonzept = "Fensterlüftung"; - ausweis.wird_gekuehlt = false; - ausweis.energieverbrauch_1_heizquelle_1 = 40120; - ausweis.energieverbrauch_2_heizquelle_1 = 42120; - ausweis.energieverbrauch_3_heizquelle_1 = 41120; - ausweis.anzahl_vollgeschosse = 2; - ausweis.geschosshoehe = 2.25; - ausweis.anzahl_gauben = 1; - ausweis.breite_gauben = 0.7; - ausweis.masse_a = 4; - ausweis.masse_b = 12; - ausweis.masse_c = 3; - ausweis.masse_d = 6; - ausweis.masse_e = 4; - ausweis.masse_f = 9; - ausweis.fensterflaeche_so_sw = 8; - ausweis.fensterflaeche_nw_no = 8; - ausweis.aussenwandflaeche_unbeheizt = 15; - ausweis.fenster_flaeche_1 = 16; - ausweis.fenster_art_1 = 5; - ausweis.fenster_flaeche_2 = 0; - ausweis.fenster_art_2 = 5; - ausweis.dachfenster_flaeche = 12; - ausweis.dachfenster_art = 5; - ausweis.haustuer_flaeche = 2; - ausweis.haustuer_art = 5; - ausweis.dach_bauart = "Massive Konstruktion"; - ausweis.dach_daemmung = 0; - ausweis.decke_bauart = "Massive Konstruktion"; - ausweis.decke_daemmung = 0.02; - ausweis.aussenwand_bauart = "Massive Konstruktion"; - ausweis.aussenwand_daemmung = 0.05; - ausweis.boden_bauart = "Massive Konstruktion"; - ausweis.boden_daemmung = 0.08; - ausweis.warmwasser_verteilung = "zvmzbis1978"; - ausweis.warmwasser_speicherung = "zwwsath"; - ausweis.warmwasser_erzeugung = "ktkesselbis1986"; - ausweis.heizung_zentral = false; - ausweis.heizung_verteilung = "zv7055bis1978"; - ausweis.waerme_erzeugung_heizung = "ktkesselbis1986h"; - ausweis.heizung_speicherung = "elzs7055bis1994"; - ausweis.energietraeger_2 = "Braunkohle"; - ausweis.anteil_zusatzheizung = 0.7; - ausweis = ausweis; - } - const ausweisart = Enums.Ausweisart.BedarfsausweisWohnen const anliegen = "Energieausweis erstellen"; + + let form: HTMLFormElement; + let skala: HTMLDivElement; -