86 lines
2.7 KiB
Plaintext
86 lines
2.7 KiB
Plaintext
---
|
|
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
|
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
|
import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
|
|
import { getAufnahme, getBilder, getObjekt, getVerbrauchsausweisWohnen } from "#lib/server/db";
|
|
import { getCurrentUser } from "#lib/server/user";
|
|
|
|
const id = Astro.url.searchParams.get("id");
|
|
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
|
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
|
|
|
|
let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
|
|
let aufnahme: Aufnahme = {} as Aufnahme;
|
|
let objekt: Objekt = {} as Objekt;
|
|
let bilder: Bild[] = []
|
|
|
|
const user = await getCurrentUser(Astro)
|
|
|
|
if (id) {
|
|
if (!user) {
|
|
return Astro.redirect(
|
|
`/auth/login?redirect=${Astro.url.toString()}`
|
|
);
|
|
}
|
|
|
|
ausweis = await getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
|
|
ausweistyp = ausweis.ausweistyp;
|
|
|
|
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
|
// Der Ausweis scheint nicht zu existieren.
|
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
|
return Astro.redirect(
|
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
);
|
|
}
|
|
|
|
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
|
|
|
if (!aufnahme) {
|
|
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
return Astro.redirect(
|
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
);
|
|
}
|
|
|
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
|
|
if (!objekt) {
|
|
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
return Astro.redirect(
|
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
);
|
|
}
|
|
|
|
bilder = await getBilder(aufnahme.id);
|
|
} else if (aufnahme_id) {
|
|
if (!user) {
|
|
return Astro.redirect(
|
|
`/auth/login?redirect=${Astro.url.toString()}`
|
|
);
|
|
}
|
|
|
|
aufnahme = await getAufnahme(aufnahme_id) as Aufnahme
|
|
|
|
if (!aufnahme) {
|
|
// Die Aufnahme existiert wohl nicht.
|
|
return Astro.redirect(
|
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
);
|
|
}
|
|
|
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
|
|
if (!objekt) {
|
|
// Das Objekt existiert nicht.
|
|
return Astro.redirect(
|
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
);
|
|
}
|
|
}
|
|
---
|
|
|
|
<AusweisLayout title="Verbrauchsausweis erstellen">
|
|
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} {user} loadFromDatabase={id !== null} partner_code="" />
|
|
</AusweisLayout>
|