37 lines
1.5 KiB
Plaintext
37 lines
1.5 KiB
Plaintext
---
|
|
|
|
import AusweisLayout from "#layouts/AusweisLayout.astro";
|
|
import VerbrauchsausweisWohnenModule from "#modules/Ausweise/VerbrauchsausweisWohnenModule.svelte";
|
|
import { GebaeudeStammdaten, VerbrauchsausweisWohnen, prisma } from "@ibcornelsen/database/server";
|
|
import { exclude } from "#lib/exclude";
|
|
|
|
// TODO: In eigene Datei auslagern und in den Frontend Dateien verwenden.
|
|
type VerbrauchsausweisWohnenIDStripped = Omit<VerbrauchsausweisWohnen, "id" | "gebaeude_stammdaten_id" | "ausweisart" | "benutzer_id" | "rechnungen_id">;
|
|
|
|
const uid = Astro.url.searchParams.get("uid");
|
|
let ausweis: VerbrauchsausweisWohnenIDStripped = {} as VerbrauchsausweisWohnen;
|
|
// TODO: Hiervon auch eine ID Stripped Version erstellen.
|
|
let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
|
|
|
if (uid) {
|
|
const request = await prisma.verbrauchsausweisWohnen.findUnique({
|
|
where: { uid },
|
|
include: {
|
|
gebaeude_stammdaten: true
|
|
}
|
|
})
|
|
|
|
if (request) {
|
|
const { gebaeude_stammdaten, ...rest } = request;
|
|
// TODO: `uid` kann als Key wieder hinzugefügt werden, dadurch können wir es uns sparen, `uid` nochmal extra mitzugeben.
|
|
ausweis = exclude(rest, ["id", "uid", "gebaeude_stammdaten_id", "ausweisart", "benutzer_id", "rechnungen_id"]);
|
|
gebaeude = exclude(request.gebaeude_stammdaten, ["id", "uid", "benutzer_id"]) as GebaeudeStammdaten;
|
|
}
|
|
}
|
|
|
|
---
|
|
|
|
<AusweisLayout title="Verbrauchsausweis erstellen">
|
|
<VerbrauchsausweisWohnenModule client:load uid={uid} ausweis={ausweis} gebaeude={gebaeude} />
|
|
</AusweisLayout>
|