Neuausstellung + Verschlankung
This commit is contained in:
230
src/pages/energieausweis-erstellen/[ausweisart]/index.astro
Normal file
230
src/pages/energieausweis-erstellen/[ausweisart]/index.astro
Normal file
@@ -0,0 +1,230 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||
import {
|
||||
Aufnahme,
|
||||
BedarfsausweisWohnen,
|
||||
Bild,
|
||||
Enums,
|
||||
Objekt,
|
||||
prisma,
|
||||
VerbrauchsausweisGewerbe,
|
||||
VerbrauchsausweisWohnen,
|
||||
} from "#lib/server/prisma";
|
||||
import {
|
||||
getAufnahme,
|
||||
getBedarfsausweisWohnen,
|
||||
getBilder,
|
||||
getObjekt,
|
||||
getVerbrauchsausweisGewerbe,
|
||||
getVerbrauchsausweisWohnen,
|
||||
} from "#lib/server/db";
|
||||
import { getCurrentUser } from "#lib/server/user";
|
||||
import { AusstellungsTyp } from "#lib/constants";
|
||||
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
||||
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
||||
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
|
||||
|
||||
const ausweisart = Astro.params.ausweisart as string;
|
||||
|
||||
if (
|
||||
ausweisart !== "verbrauchsausweis-wohngebaeude" &&
|
||||
ausweisart !== "verbrauchsausweis-gewerbe" &&
|
||||
ausweisart !== "bedarfsausweis-wohngebaeude"
|
||||
) {
|
||||
return Astro.redirect("/404");
|
||||
}
|
||||
|
||||
const user = await getCurrentUser(Astro);
|
||||
|
||||
const ausweis_id = Astro.url.searchParams.get("ausweis_id");
|
||||
const typ = Astro.url.searchParams.get("typ") as AusstellungsTyp;
|
||||
|
||||
let ausweistyp =
|
||||
(Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp) ||
|
||||
Enums.AusweisTyp.Standard;
|
||||
|
||||
let ausweis:
|
||||
| VerbrauchsausweisWohnen
|
||||
| VerbrauchsausweisGewerbe
|
||||
| BedarfsausweisWohnen
|
||||
| null = {} as VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||
let aufnahme: Aufnahme | null = {} as Aufnahme;
|
||||
let objekt: Objekt | null = {} as Objekt;
|
||||
let bilder: Bild[] = [];
|
||||
let loadFromDatabase = false;
|
||||
|
||||
if (typ === AusstellungsTyp.Neuausstellung) {
|
||||
if (!user) {
|
||||
return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
|
||||
}AusstellungsTyp
|
||||
|
||||
if (!ausweis_id) {
|
||||
return Astro.redirect("/400");
|
||||
}
|
||||
|
||||
const adapter = getPrismaAusweisAdapter(ausweis_id)
|
||||
|
||||
ausweis = await adapter?.findUnique({
|
||||
where: {
|
||||
id: ausweis_id
|
||||
}
|
||||
})
|
||||
|
||||
aufnahme = await prisma.aufnahme.findUnique({
|
||||
where: {
|
||||
id: ausweis?.aufnahme_id,
|
||||
},
|
||||
});
|
||||
|
||||
objekt = await prisma.objekt.findUnique({
|
||||
where: {
|
||||
id: aufnahme?.objekt_id,
|
||||
},
|
||||
});
|
||||
|
||||
if (
|
||||
!ausweis ||
|
||||
!aufnahme ||
|
||||
!objekt ||
|
||||
ausweis.benutzer_id !== user.id ||
|
||||
aufnahme.benutzer_id !== user.id ||
|
||||
objekt.benutzer_id !== user.id
|
||||
) {
|
||||
return Astro.redirect("/405");
|
||||
}
|
||||
|
||||
ausweis.id = null;
|
||||
aufnahme.id = null;
|
||||
// Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
|
||||
loadFromDatabase = true;
|
||||
} else if (typ === AusstellungsTyp.Speichern) {
|
||||
if (!user) {
|
||||
return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
|
||||
}AusstellungsTyp
|
||||
|
||||
if (!ausweis_id) {
|
||||
return Astro.redirect("/400");
|
||||
}
|
||||
|
||||
if (ausweisart === "verbrauchsausweis-wohngebaeude") {
|
||||
ausweis = await getVerbrauchsausweisWohnen(ausweis_id);
|
||||
} else if (ausweisart === "verbrauchsausweis-gewerbe") {
|
||||
ausweis = await getVerbrauchsausweisGewerbe(ausweis_id);
|
||||
} else {
|
||||
ausweis = await getBedarfsausweisWohnen(ausweis_id);
|
||||
}
|
||||
|
||||
ausweistyp = ausweis.ausweistyp;
|
||||
|
||||
aufnahme = (await getAufnahme(ausweis.aufnahme_id)) as Aufnahme;
|
||||
|
||||
objekt = (await getObjekt(aufnahme.objekt_id)) as Objekt;
|
||||
|
||||
if (
|
||||
!ausweis ||
|
||||
!aufnahme ||
|
||||
!objekt ||
|
||||
ausweis.benutzer_id !== user.id ||
|
||||
aufnahme.benutzer_id !== user.id ||
|
||||
objekt.benutzer_id !== user.id
|
||||
) {
|
||||
return Astro.redirect("/405");
|
||||
}
|
||||
|
||||
bilder = await getBilder(aufnahme.id);
|
||||
loadFromDatabase = true;
|
||||
} else if (typ === AusstellungsTyp.Alternativdokument) {
|
||||
if (!user) {
|
||||
return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
|
||||
}AusstellungsTyp
|
||||
|
||||
if (!ausweis_id) {
|
||||
return Astro.redirect("/400");
|
||||
}
|
||||
|
||||
const adapter = getPrismaAusweisAdapter(ausweis_id)
|
||||
|
||||
ausweis = await adapter?.findUnique({
|
||||
where: {
|
||||
id: ausweis_id
|
||||
}
|
||||
})
|
||||
|
||||
aufnahme = await prisma.aufnahme.findUnique({
|
||||
where: {
|
||||
id: ausweis?.aufnahme_id,
|
||||
},
|
||||
});
|
||||
|
||||
objekt = await prisma.objekt.findUnique({
|
||||
where: {
|
||||
id: aufnahme?.objekt_id,
|
||||
},
|
||||
});
|
||||
|
||||
if (
|
||||
!ausweis ||
|
||||
!aufnahme ||
|
||||
!objekt ||
|
||||
ausweis.benutzer_id !== user.id ||
|
||||
aufnahme.benutzer_id !== user.id ||
|
||||
objekt.benutzer_id !== user.id
|
||||
) {
|
||||
return Astro.redirect("/405");
|
||||
}
|
||||
|
||||
ausweis.id = null;
|
||||
// Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
|
||||
loadFromDatabase = true;
|
||||
}
|
||||
---
|
||||
|
||||
<AusweisLayout title="Verbrauchsausweis erstellen">
|
||||
{
|
||||
ausweisart === "verbrauchsausweis-wohngebaeude" && (
|
||||
<VerbrauchsausweisWohnenModule
|
||||
client:only
|
||||
{ausweis}
|
||||
{objekt}
|
||||
{aufnahme}
|
||||
{bilder}
|
||||
{ausweis_id}
|
||||
{ausweistyp}
|
||||
{user}
|
||||
{loadFromDatabase}
|
||||
partner_code=""
|
||||
/>
|
||||
)
|
||||
}
|
||||
{
|
||||
ausweisart === "verbrauchsausweis-gewerbe" && (
|
||||
<VerbrauchsausweisGewerbeModule
|
||||
client:only
|
||||
{ausweis}
|
||||
{objekt}
|
||||
{aufnahme}
|
||||
{bilder}
|
||||
{ausweistyp}
|
||||
{user}
|
||||
{ausweis_id}
|
||||
{loadFromDatabase}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{
|
||||
ausweisart === "bedarfsausweis-wohngebaeude" && (
|
||||
<BedarfsausweisWohnenModule
|
||||
client:only
|
||||
{ausweis}
|
||||
{objekt}
|
||||
{aufnahme}
|
||||
{bilder}
|
||||
{ausweistyp}
|
||||
{ausweis_id}
|
||||
{user}
|
||||
{loadFromDatabase}
|
||||
/>
|
||||
)
|
||||
}
|
||||
</AusweisLayout>
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
|
||||
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
|
||||
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
|
||||
|
||||
const ausweisart = Astro.params.ausweisart;
|
||||
|
||||
if (ausweisart !== "verbrauchsausweis-wohngebaeude" && ausweisart !== "verbrauchsausweis-gewerbe" && ausweisart !== "bedarfsausweis-wohngebaeude") {
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
|
||||
let title: string = "";
|
||||
if (ausweisart === "verbrauchsausweis-wohngebaeude") title = "Verbrauchsausweis Wohngebäude Produktübersicht";
|
||||
if (ausweisart === "verbrauchsausweis-gewerbe") title = "Verbrauchsausweis Gewerbe Produktübersicht";
|
||||
if (ausweisart === "bedarfsausweis-wohngebaeude") title = "Bedarfsausweis Wohngebäude Produktübersicht";
|
||||
---
|
||||
|
||||
<Layout {title}>
|
||||
{ausweisart === "verbrauchsausweis-wohngebaeude" && <ProduktUebersichtVerbrauchsausweisWohnen />}
|
||||
{ausweisart === "verbrauchsausweis-gewerbe" && <ProduktUebersichtVerbrauchsausweisGewerbe />}
|
||||
{ausweisart === "bedarfsausweis-wohngebaeude" && <ProduktUebersichtBedarfsausweisWohnen />}
|
||||
</Layout>
|
||||
@@ -1,90 +0,0 @@
|
||||
---
|
||||
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
||||
import { Aufnahme, BedarfsausweisWohnen, Bild, Enums, Objekt } from "#lib/server/prisma";
|
||||
import { getAufnahme, getObjekt, getBilder, getBedarfsausweisWohnen } 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: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
|
||||
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 getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
|
||||
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/bedarfsausweis-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/bedarfsausweis-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/bedarfsausweis-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/bedarfsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
|
||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||
|
||||
if (!objekt) {
|
||||
// Das Objekt existiert nicht.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
console.log(ausweistyp);
|
||||
|
||||
|
||||
|
||||
---
|
||||
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
||||
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id} {user} loadFromDatabase={id !== null}></BedarfsausweisWohnenModule>
|
||||
</AusweisLayout>
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
|
||||
---
|
||||
|
||||
<Layout title="Bedarfsausweis Wohngebäude Produktübersicht">
|
||||
|
||||
<ProduktUebersichtBedarfsausweisWohnen>
|
||||
|
||||
</ProduktUebersichtBedarfsausweisWohnen>
|
||||
|
||||
|
||||
</Layout>
|
||||
@@ -1,86 +0,0 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
|
||||
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
||||
import { Aufnahme, Enums, Objekt, VerbrauchsausweisGewerbe } from "#lib/server/prisma";
|
||||
import { getAufnahme, getObjekt, getBilder, getVerbrauchsausweisGewerbe } 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: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
|
||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||
let objekt: ObjektClient = {} as ObjektClient;
|
||||
let bilder: BildClient[] = []
|
||||
|
||||
const user = await getCurrentUser(Astro)
|
||||
|
||||
if (id) {
|
||||
if (!user) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe
|
||||
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-gewerbe"
|
||||
);
|
||||
}
|
||||
|
||||
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-gewerbe"
|
||||
);
|
||||
}
|
||||
|
||||
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-gewerbe"
|
||||
);
|
||||
}
|
||||
|
||||
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-gewerbe"
|
||||
);
|
||||
}
|
||||
|
||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||
|
||||
if (!objekt) {
|
||||
// Das Objekt existiert nicht.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
||||
);
|
||||
}
|
||||
}
|
||||
---
|
||||
|
||||
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen">
|
||||
<VerbrauchsausweisGewerbeModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {user} {id} loadFromDatabase={id !== null}/>
|
||||
</AusweisLayout>
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
|
||||
---
|
||||
|
||||
<Layout title="Verbrauchsausweis Gewerbe Produktübersicht">
|
||||
|
||||
<ProduktUebersichtVerbrauchsausweisGewerbe>
|
||||
|
||||
</ProduktUebersichtVerbrauchsausweisGewerbe>
|
||||
|
||||
|
||||
</Layout>
|
||||
@@ -1,111 +0,0 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||
import DatenblattVerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte";
|
||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||
import { Enums } from "#lib/server/prisma";
|
||||
|
||||
const uid = Astro.url.searchParams.get("uid");
|
||||
const uid_aufnahme = Astro.url.searchParams.get("aufnahme")
|
||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
||||
|
||||
|
||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||
let objekt: ObjektClient = {} as ObjektClient;
|
||||
let bilder: UploadedGebaeudeBild[] = []
|
||||
|
||||
const valid = validateAccessTokenServer(Astro);
|
||||
|
||||
const caller = createCaller(Astro);
|
||||
|
||||
if (uid) {
|
||||
if (!valid) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid
|
||||
}
|
||||
});
|
||||
|
||||
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_aufnahme
|
||||
}
|
||||
})
|
||||
|
||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_objekt
|
||||
}
|
||||
})
|
||||
|
||||
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_aufnahme
|
||||
}
|
||||
})
|
||||
|
||||
if (!ausweis) {
|
||||
// Der Ausweis scheint nicht zu existieren.
|
||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
} catch(e) {
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
} else if (uid_aufnahme) {
|
||||
if (!valid) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
let { uid_objekt, ...result} = await caller.aufnahme._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: uid_aufnahme
|
||||
}
|
||||
})
|
||||
|
||||
aufnahme = result;
|
||||
|
||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: uid_objekt
|
||||
}
|
||||
})
|
||||
}
|
||||
---
|
||||
|
||||
<AusweisLayout title="Datenblatt Verbrauchsausweis Wohngebäude">
|
||||
<DatenblattVerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} />
|
||||
</AusweisLayout>
|
||||
@@ -1,85 +0,0 @@
|
||||
---
|
||||
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>
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
|
||||
---
|
||||
|
||||
<Layout title="Verbrauchsausweis Wohngebäude Produktübersicht">
|
||||
|
||||
<ProduktUebersichtVerbrauchsausweisWohnen>
|
||||
|
||||
</ProduktUebersichtVerbrauchsausweisWohnen>
|
||||
|
||||
|
||||
</Layout>
|
||||
Reference in New Issue
Block a user