Ausweis Erstellen Button
This commit is contained in:
@@ -14,13 +14,13 @@ export const createCaller = createCallerFactory({
|
||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"auth/access-token": await import("../src/pages/api/auth/access-token.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-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"auth/access-token": await import("../src/pages/api/auth/access-token.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"),
|
||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
---
|
||||
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;
|
||||
const partner_code = Astro.params.partner 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()}`);
|
||||
}
|
||||
|
||||
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) && user.rolle !== Enums.BenutzerRolle.ADMIN)
|
||||
) {
|
||||
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()}`);
|
||||
}
|
||||
|
||||
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) && user.rolle !== Enums.BenutzerRolle.ADMIN)
|
||||
) {
|
||||
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()}`);
|
||||
}
|
||||
|
||||
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) && user.rolle !== Enums.BenutzerRolle.ADMIN)
|
||||
) {
|
||||
return Astro.redirect("/405");
|
||||
}
|
||||
|
||||
ausweis.id = null;
|
||||
aufnahme.erstellungsdatum = null
|
||||
ausweis.created_at = new Date()
|
||||
ausweis.updated_at = new Date();
|
||||
ausweis.alte_ausweis_id = null;
|
||||
ausweis.ausgestellt = false;
|
||||
ausweis.bestellt = false;
|
||||
ausweis.kontrolldatei_angefragt = false;
|
||||
ausweis.energieeffizienzklasse = null;
|
||||
ausweis.ausstellungsdatum = null;
|
||||
ausweis.ausweistyp = Enums.AusweisTyp.Standard;
|
||||
ausweis.zurueckgestellt = false;
|
||||
ausweis.storniert = false;
|
||||
// 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}
|
||||
{partner_code}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{
|
||||
ausweisart === "bedarfsausweis-wohngebaeude" && (
|
||||
<BedarfsausweisWohnenModule
|
||||
client:only
|
||||
{ausweis}
|
||||
{objekt}
|
||||
{aufnahme}
|
||||
{bilder}
|
||||
{ausweistyp}
|
||||
{ausweis_id}
|
||||
{user}
|
||||
{loadFromDatabase}
|
||||
{partner_code}
|
||||
/>
|
||||
)
|
||||
}
|
||||
</AusweisLayout>
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
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;
|
||||
const partner = Astro.params.partner;
|
||||
|
||||
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 ref={`/${partner}`} />}
|
||||
{ausweisart === "verbrauchsausweis-gewerbe" && <ProduktUebersichtVerbrauchsausweisGewerbe ref={`/${partner}`} />}
|
||||
{ausweisart === "bedarfsausweis-wohngebaeude" && <ProduktUebersichtBedarfsausweisWohnen ref={`/${partner}`} />}
|
||||
</Layout>
|
||||
@@ -1,91 +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;
|
||||
const partner_code = Astro.params.partner as string;
|
||||
|
||||
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(ausweis.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} {partner_code}></BedarfsausweisWohnenModule>
|
||||
</AusweisLayout>
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
||||
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
|
||||
---
|
||||
|
||||
<AusweisLayout title="Bedarfsausweis Wohngebäude Produktübersicht">
|
||||
|
||||
<div class="mx-auto my-8" style="width:85%">
|
||||
<ProduktUebersichtBedarfsausweisWohnen ref="/immowelt"></ProduktUebersichtBedarfsausweisWohnen>
|
||||
|
||||
</div>
|
||||
|
||||
</AusweisLayout>
|
||||
@@ -1,87 +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;
|
||||
const partner_code = Astro.params.partner as string;
|
||||
|
||||
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(ausweis.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} {partner_code} loadFromDatabase={id !== null}/>
|
||||
</AusweisLayout>
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
||||
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
|
||||
---
|
||||
|
||||
<AusweisLayout title="Verbrauchsausweis Gewerbe Produktübersicht">
|
||||
|
||||
<div class="mx-auto my-8" style="width:85%">
|
||||
<ProduktUebersichtVerbrauchsausweisGewerbe ref="/immowelt">
|
||||
|
||||
</ProduktUebersichtVerbrauchsausweisGewerbe>
|
||||
</div>
|
||||
|
||||
</AusweisLayout>
|
||||
@@ -1,87 +0,0 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||
import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
|
||||
import { getVerbrauchsausweisWohnen, getAufnahme, getObjekt, getBilder } 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;
|
||||
const partner_code = Astro.params.partner as string;
|
||||
|
||||
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(ausweis.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" tabHover1="glow">
|
||||
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} {user} {partner_code} loadFromDatabase={id !== null} />
|
||||
</AusweisLayout>
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
||||
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
|
||||
---
|
||||
|
||||
<AusweisLayout title="Verbrauchsausweis Wohngebäude Produktübersicht">
|
||||
|
||||
<div class="mx-auto my-8" style="width:85%">
|
||||
<ProduktUebersichtVerbrauchsausweisWohnen ref="/immowelt">
|
||||
</ProduktUebersichtVerbrauchsausweisWohnen>
|
||||
</div>
|
||||
|
||||
</AusweisLayout>
|
||||
@@ -87,15 +87,27 @@ if (typ === AusstellungsTyp.Neuausstellung) {
|
||||
!ausweis ||
|
||||
!aufnahme ||
|
||||
!objekt ||
|
||||
ausweis.benutzer_id !== user.id ||
|
||||
((ausweis.benutzer_id !== user.id ||
|
||||
aufnahme.benutzer_id !== user.id ||
|
||||
objekt.benutzer_id !== user.id
|
||||
objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
|
||||
) {
|
||||
return Astro.redirect("/405");
|
||||
}
|
||||
|
||||
ausweis.id = null;
|
||||
aufnahme.id = null;
|
||||
aufnahme.erstellungsdatum = null
|
||||
ausweis.created_at = new Date()
|
||||
ausweis.updated_at = new Date();
|
||||
ausweis.alte_ausweis_id = null;
|
||||
ausweis.ausgestellt = false;
|
||||
ausweis.bestellt = false;
|
||||
ausweis.kontrolldatei_angefragt = false;
|
||||
ausweis.energieeffizienzklasse = null;
|
||||
ausweis.ausstellungsdatum = null;
|
||||
ausweis.ausweistyp = Enums.AusweisTyp.Standard;
|
||||
ausweis.zurueckgestellt = false;
|
||||
ausweis.storniert = false;
|
||||
// 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) {
|
||||
@@ -125,9 +137,9 @@ if (typ === AusstellungsTyp.Neuausstellung) {
|
||||
!ausweis ||
|
||||
!aufnahme ||
|
||||
!objekt ||
|
||||
ausweis.benutzer_id !== user.id ||
|
||||
((ausweis.benutzer_id !== user.id ||
|
||||
aufnahme.benutzer_id !== user.id ||
|
||||
objekt.benutzer_id !== user.id
|
||||
objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
|
||||
) {
|
||||
return Astro.redirect("/405");
|
||||
}
|
||||
@@ -167,14 +179,26 @@ if (typ === AusstellungsTyp.Neuausstellung) {
|
||||
!ausweis ||
|
||||
!aufnahme ||
|
||||
!objekt ||
|
||||
ausweis.benutzer_id !== user.id ||
|
||||
((ausweis.benutzer_id !== user.id ||
|
||||
aufnahme.benutzer_id !== user.id ||
|
||||
objekt.benutzer_id !== user.id
|
||||
objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
|
||||
) {
|
||||
return Astro.redirect("/405");
|
||||
}
|
||||
|
||||
ausweis.id = null;
|
||||
aufnahme.erstellungsdatum = null
|
||||
ausweis.created_at = new Date()
|
||||
ausweis.updated_at = new Date();
|
||||
ausweis.alte_ausweis_id = null;
|
||||
ausweis.ausgestellt = false;
|
||||
ausweis.bestellt = false;
|
||||
ausweis.kontrolldatei_angefragt = false;
|
||||
ausweis.energieeffizienzklasse = null;
|
||||
ausweis.ausstellungsdatum = null;
|
||||
ausweis.ausweistyp = Enums.AusweisTyp.Standard;
|
||||
ausweis.zurueckgestellt = false;
|
||||
ausweis.storniert = false;
|
||||
// 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user