Partner Code
This commit is contained in:
@@ -227,7 +227,11 @@
|
|||||||
{:else if ausweis.bestellt}
|
{:else if ausweis.bestellt}
|
||||||
<span class="bg-primary px-2 py-0.5 text-sm font-semibold rounded-lg text-white">Bestellt</span>
|
<span class="bg-primary px-2 py-0.5 text-sm font-semibold rounded-lg text-white">Bestellt</span>
|
||||||
{:else}
|
{:else}
|
||||||
<span class="bg-red-600 px-2 py-0.5 text-sm font-semibold rounded-lg text-white">Gespeichert</span>
|
{#if ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe || ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe}
|
||||||
|
<span class="bg-red-600 px-2 py-0.5 text-sm font-semibold rounded-lg text-white">Gespeichert</span>
|
||||||
|
{:else}
|
||||||
|
<span class="bg-red-600 px-2 py-0.5 text-sm font-semibold rounded-lg text-white">Angefordert</span>
|
||||||
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
<div class="badge badge-accent font-semibold text-black text-m">{objekt.adresse}</div>
|
<div class="badge badge-accent font-semibold text-black text-m">{objekt.adresse}</div>
|
||||||
|
|||||||
@@ -47,19 +47,6 @@
|
|||||||
<div class="text-sm text-center">Energieausweis</div>
|
<div class="text-sm text-center">Energieausweis</div>
|
||||||
</a>
|
</a>
|
||||||
{/if}
|
{/if}
|
||||||
{#if objekt.aufnahmen.at(-1)?.bedarfsausweise_wohnen.length}
|
|
||||||
{@const ausweis = objekt.aufnahmen.at(-1)?.bedarfsausweise_wohnen.at(-1)}
|
|
||||||
<a href="/pdf/ansichtsausweis?id={ausweis.id}" target="_blank">
|
|
||||||
<div class="inline-block border rounded-lg bg-white">
|
|
||||||
{#if ausweis?.ausgestellt}
|
|
||||||
<img src="/images/dashboard/AusweisHaken.svg" class="h-auto w-auto max-h-[150px] max-w-full object-contain p-1" alt="Energieausweis ausgestellt">
|
|
||||||
{:else}
|
|
||||||
<img src="/images/dashboard/AusweisKreuz.svg" class="h-auto w-auto max-h-[150px] max-w-full object-contain p-1" alt="Energieausweis ausgestellt">
|
|
||||||
{/if}
|
|
||||||
</div>
|
|
||||||
<div class="text-sm text-center">Energieausweis</div>
|
|
||||||
</a>
|
|
||||||
{/if}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
{#each objekt.aufnahmen as aufnahme}
|
{#each objekt.aufnahmen as aufnahme}
|
||||||
|
|||||||
@@ -36,6 +36,8 @@
|
|||||||
export let unterlagen: Unterlage[] = [];
|
export let unterlagen: Unterlage[] = [];
|
||||||
export let id: string | null;
|
export let id: string | null;
|
||||||
|
|
||||||
|
export let partner_code: string;
|
||||||
|
|
||||||
export let loadFromDatabase: boolean = false;
|
export let loadFromDatabase: boolean = false;
|
||||||
|
|
||||||
// Wir holen die daten aus dem LocalStorage falls
|
// Wir holen die daten aus dem LocalStorage falls
|
||||||
@@ -143,6 +145,7 @@
|
|||||||
bind:unterlagen
|
bind:unterlagen
|
||||||
bind:blockLocalStorageSync
|
bind:blockLocalStorageSync
|
||||||
{ausweisart}
|
{ausweisart}
|
||||||
|
{partner_code}
|
||||||
showWeiter={false}
|
showWeiter={false}
|
||||||
{form}
|
{form}
|
||||||
{skala}
|
{skala}
|
||||||
@@ -277,6 +280,7 @@
|
|||||||
bind:unterlagen
|
bind:unterlagen
|
||||||
bind:blockLocalStorageSync
|
bind:blockLocalStorageSync
|
||||||
{ausweisart}
|
{ausweisart}
|
||||||
|
{partner_code}
|
||||||
showWeiter={true}
|
showWeiter={true}
|
||||||
{form}
|
{form}
|
||||||
{skala}
|
{skala}
|
||||||
|
|||||||
@@ -1,83 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import { BenutzerClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
|
||||||
import DashboardAusweis from "#components/Dashboard/DashboardAusweis.svelte";
|
|
||||||
import DashboardAusweisSkeleton from "#components/Dashboard/DashboardAusweisSkeleton.svelte";
|
|
||||||
import { verbrauchsausweisWohnenCalculateFormProgress } from "#lib/VerbrauchsausweisWohnen/calculateFormProgress";
|
|
||||||
import { onMount } from "svelte";
|
|
||||||
export let user: BenutzerClient;
|
|
||||||
|
|
||||||
let ausweise: VerbrauchsausweisWohnenClient[] | null = null;
|
|
||||||
|
|
||||||
let ausweisUeberpruefung: ReturnType<typeof verbrauchsausweisWohnenCalculateFormProgress>[] = [];
|
|
||||||
let errorCount = 0;
|
|
||||||
|
|
||||||
onMount(async () => {
|
|
||||||
ausweise = await client.v1.verbrauchsausweisWohnen.getMany.query({
|
|
||||||
limit: 10
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(ausweise);
|
|
||||||
|
|
||||||
|
|
||||||
if (!ausweise) return;
|
|
||||||
|
|
||||||
ausweisUeberpruefung = ausweise.map(ausweis => verbrauchsausweisWohnenCalculateFormProgress(ausweis));
|
|
||||||
|
|
||||||
errorCount = ausweisUeberpruefung.reduce((acc, { errors }) => acc + errors.length, 0);
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{#if errorCount > 0}
|
|
||||||
<h1 class="text-4xl font-medium my-8">Wichtiges</h1>
|
|
||||||
|
|
||||||
<div class="flex flex-row gap-4 overflow-x-auto">
|
|
||||||
{#each ausweisUeberpruefung as { errors }}
|
|
||||||
{#if errors.length > 0}
|
|
||||||
<div class="card w-96 card-bordered bg-base-200 border-base-300">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="badge font-semibold" class:badge-warning={errors[0].severity == "warning"} class:badge-error={errors[0].severity == "error"}>{errors[0].severity == "error" ? "Achtung!" : "Wichtig!"}</div>
|
|
||||||
<h2 class="card-title">{errors[0].title}</h2>
|
|
||||||
<p>{errors[0].description}</p>
|
|
||||||
{#if errors[0].resolvehref}
|
|
||||||
<div class="card-actions justify-end">
|
|
||||||
<a class="btn btn-primary" href={errors[0].resolvehref}>Beheben</a>
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<h1 class="text-4xl font-medium my-8">Ihre Ausweise</h1>
|
|
||||||
|
|
||||||
<div class="grid xl:grid-cols-2 grid-cols-1 gap-4">
|
|
||||||
|
|
||||||
{#if ausweise === null}
|
|
||||||
<DashboardAusweisSkeleton></DashboardAusweisSkeleton>
|
|
||||||
{:else}
|
|
||||||
{#if ausweise.length == 0}
|
|
||||||
<div class="">
|
|
||||||
<h1 class="text-2xl">Es konnten keine Ausweise gefunden werden.</h1>
|
|
||||||
<p>Erstellen sie einen Verbrauchsausweis für ihr Wohngebäude <a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude">hier</a></p>
|
|
||||||
</div>
|
|
||||||
{:else}
|
|
||||||
{#each ausweise as ausweis, i}
|
|
||||||
<DashboardAusweis progress={ausweisUeberpruefung[i]?.progress || 0} {ausweis}></DashboardAusweis>
|
|
||||||
{/each}
|
|
||||||
{/if}
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-center justify-center mt-12">
|
|
||||||
<div class="join">
|
|
||||||
<button class="join-item btn btn-ghost shadow-none">1</button>
|
|
||||||
<button class="join-item btn btn-ghost shadow-none">2</button>
|
|
||||||
<button class="join-item btn btn-ghost shadow-none">3</button>
|
|
||||||
<button class="join-item btn btn-ghost shadow-none">4</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
versand_plz: versand_plz,
|
versand_plz: versand_plz,
|
||||||
versand_ort: versand_ort,
|
versand_ort: versand_ort,
|
||||||
telefon: telefon,
|
telefon: telefon,
|
||||||
nachweis_id: result.nachweis_id,
|
nachweis_id: result.nachweis_id
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
@@ -291,7 +291,7 @@
|
|||||||
|
|
||||||
let result: Awaited<ReturnType<typeof ausweisSpeichern>> | Awaited<ReturnType<typeof nachweisSpeichern>> | null = null;
|
let result: Awaited<ReturnType<typeof ausweisSpeichern>> | Awaited<ReturnType<typeof nachweisSpeichern>> | null = null;
|
||||||
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
||||||
result = await nachweisSpeichern(ausweis, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
result = await nachweisSpeichern(ausweis as unknown as GEGNachweisWohnen, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
||||||
} else {
|
} else {
|
||||||
result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
export let bilder: BildClient[];
|
export let bilder: BildClient[];
|
||||||
export let id: string | null;
|
export let id: string | null;
|
||||||
|
|
||||||
|
export let partner_code: string;
|
||||||
export let loadFromDatabase: boolean = false;
|
export let loadFromDatabase: boolean = false;
|
||||||
|
|
||||||
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||||
@@ -128,6 +129,7 @@
|
|||||||
ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
showWeiter={false}
|
showWeiter={false}
|
||||||
{form}
|
{form}
|
||||||
|
{partner_code}
|
||||||
{skala}
|
{skala}
|
||||||
>
|
>
|
||||||
</ButtonWeiterHilfe>
|
</ButtonWeiterHilfe>
|
||||||
@@ -244,6 +246,7 @@
|
|||||||
ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
showWeiter={true}
|
showWeiter={true}
|
||||||
{form}
|
{form}
|
||||||
|
{partner_code}
|
||||||
{skala}
|
{skala}
|
||||||
>
|
>
|
||||||
</ButtonWeiterHilfe>
|
</ButtonWeiterHilfe>
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ let skala: HTMLDivElement;
|
|||||||
bind:aufnahme
|
bind:aufnahme
|
||||||
ausweisart={Enums.Ausweisart.VerbrauchsausweisWohnen}
|
ausweisart={Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
showWeiter={false}
|
showWeiter={false}
|
||||||
|
{partner_code}
|
||||||
{form}
|
{form}
|
||||||
{skala}
|
{skala}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1,84 +1,91 @@
|
|||||||
---
|
---
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
|
||||||
|
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||||
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
||||||
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { Aufnahme, BedarfsausweisWohnen, Bild, Enums, Objekt } from "#lib/server/prisma";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
import { getAufnahme, getObjekt, getBilder, getBedarfsausweisWohnen } from "#lib/server/db";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
|
||||||
import { Enums } from "#lib/server/prisma";
|
|
||||||
|
|
||||||
const id = Astro.url.searchParams.get("uid") || "";
|
const id = Astro.url.searchParams.get("id");
|
||||||
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
||||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
|
||||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
const partner_code = Astro.params.partner as string;
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
|
||||||
let bilder: BildClient[] = []
|
|
||||||
|
|
||||||
const valid = validateAccessTokenServer(Astro);
|
let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
|
||||||
|
let aufnahme: Aufnahme = {} as Aufnahme;
|
||||||
|
let objekt: Objekt = {} as Objekt;
|
||||||
|
let bilder: Bild[] = []
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
const user = await getCurrentUser(Astro)
|
||||||
|
|
||||||
if (id) {
|
if (id) {
|
||||||
if (!valid) {
|
if (!user) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
|
||||||
ausweis = await caller["bedarfsausweis-wohnen"]._id.GET.fetch(null, {
|
ausweistyp = ausweis.ausweistyp;
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._id.GET.fetch(null, {
|
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
||||||
headers: {
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
||||||
},
|
return Astro.redirect(
|
||||||
params: {
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
id: ausweis.aufnahme_id
|
);
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
|
||||||
objekt = await caller.objekt._id.GET.fetch(null, {
|
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
id: ausweis.objekt_id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
bilder = await caller.aufnahme._id.bilder.GET.fetch(null, {
|
if (!aufnahme) {
|
||||||
headers: {
|
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
return Astro.redirect(
|
||||||
},
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
params: {
|
);
|
||||||
id: ausweis.aufnahme_id
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!ausweis) {
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
|
||||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
if (!objekt) {
|
||||||
return Astro.redirect(
|
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
return Astro.redirect(
|
||||||
);
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
}
|
);
|
||||||
} catch(e) {
|
}
|
||||||
|
|
||||||
|
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(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(ausweistyp);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen" tabHover3="glow">
|
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
||||||
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id}></BedarfsausweisWohnenModule>
|
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id} {user} loadFromDatabase={id !== null} {partner_code}></BedarfsausweisWohnenModule>
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
@@ -1,79 +1,80 @@
|
|||||||
---
|
---
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
|
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
|
||||||
import { inferOutput } from "astro-typesafe-api/client";
|
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
|
||||||
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
||||||
import { Enums } from "#lib/server/prisma";
|
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 uid = Astro.url.searchParams.get("uid");
|
const id = Astro.url.searchParams.get("id");
|
||||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
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 ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
let objekt: ObjektClient = {} as ObjektClient;
|
||||||
let bilder: UploadedGebaeudeBild[] = []
|
let bilder: BildClient[] = []
|
||||||
|
|
||||||
const valid = validateAccessTokenServer(Astro);
|
const user = await getCurrentUser(Astro)
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
if (id) {
|
||||||
|
if (!user) {
|
||||||
if (uid) {
|
|
||||||
if (!valid) {
|
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe
|
||||||
let { uid_aufnahme, uid_objekt, uid_benutzer, ...result } = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(null, {
|
ausweistyp = ausweis.ausweistyp;
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
ausweis = result
|
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 caller.aufnahme._uid.GET.fetch(null, {
|
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid: uid_aufnahme
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
if (!aufnahme) {
|
||||||
headers: {
|
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
return Astro.redirect(
|
||||||
},
|
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
||||||
params: {
|
);
|
||||||
uid: uid_objekt
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid: uid_aufnahme
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!ausweis) {
|
if (!objekt) {
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
||||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
return Astro.redirect(
|
||||||
return Astro.redirect(
|
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
);
|
||||||
);
|
}
|
||||||
}
|
|
||||||
} catch(e) {
|
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(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
||||||
);
|
);
|
||||||
@@ -81,6 +82,6 @@ if (uid) {
|
|||||||
}
|
}
|
||||||
---
|
---
|
||||||
|
|
||||||
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen" tabHover2="glow">
|
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen">
|
||||||
<VerbrauchsausweisGewerbeModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp}/>
|
<VerbrauchsausweisGewerbeModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {user} {id} {partner_code} loadFromDatabase={id !== null}/>
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
@@ -1,77 +1,79 @@
|
|||||||
---
|
---
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
|
||||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
import { getVerbrauchsausweisWohnen, getAufnahme, getObjekt, getBilder } from "#lib/server/db";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
|
||||||
import { Enums } from "#lib/server/prisma";
|
|
||||||
|
|
||||||
const uid = Astro.url.searchParams.get("uid");
|
const id = Astro.url.searchParams.get("id");
|
||||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
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[] = []
|
||||||
|
|
||||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
const user = await getCurrentUser(Astro)
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
|
||||||
let bilder: UploadedGebaeudeBild[] = []
|
|
||||||
|
|
||||||
const valid = validateAccessTokenServer(Astro);
|
if (id) {
|
||||||
|
if (!user) {
|
||||||
const caller = createCaller(Astro);
|
|
||||||
|
|
||||||
if (uid) {
|
|
||||||
if (!valid) {
|
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
ausweis = await getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
|
||||||
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(null, {
|
ausweistyp = ausweis.ausweistyp;
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
||||||
headers: {
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
||||||
},
|
return Astro.redirect(
|
||||||
params: {
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
uid: ausweis.uid_aufnahme
|
);
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
||||||
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, {
|
if (!aufnahme) {
|
||||||
headers: {
|
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
return Astro.redirect(
|
||||||
},
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
params: {
|
);
|
||||||
uid: ausweis.uid_aufnahme
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!ausweis) {
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
|
||||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
if (!objekt) {
|
||||||
return Astro.redirect(
|
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
return Astro.redirect(
|
||||||
);
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
}
|
);
|
||||||
} catch(e) {
|
}
|
||||||
|
|
||||||
|
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(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
@@ -81,5 +83,5 @@ if (uid) {
|
|||||||
---
|
---
|
||||||
|
|
||||||
<AusweisLayout title="Verbrauchsausweis erstellen" tabHover1="glow">
|
<AusweisLayout title="Verbrauchsausweis erstellen" tabHover1="glow">
|
||||||
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} />
|
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} {user} {partner_code} loadFromDatabase={id !== null} />
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
|
|||||||
@@ -52,9 +52,6 @@ export const PUT = defineApiRoute({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(nachweis);
|
|
||||||
|
|
||||||
|
|
||||||
if (!nachweis || nachweis.benutzer_id !== user.id) {
|
if (!nachweis || nachweis.benutzer_id !== user.id) {
|
||||||
throw new APIError({
|
throw new APIError({
|
||||||
code: "BAD_REQUEST",
|
code: "BAD_REQUEST",
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
import UserLayout from "#layouts/DashboardLayout.astro";
|
|
||||||
import DashboardAusweiseModule from "#modules/Dashboard/DashboardAusweiseModule.svelte";
|
|
||||||
|
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
|
||||||
|
|
||||||
const accessTokenValid = await validateAccessTokenServer(Astro);
|
|
||||||
|
|
||||||
if (!accessTokenValid) {
|
|
||||||
return Astro.redirect("/auth/login")
|
|
||||||
}
|
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
|
||||||
|
|
||||||
const user = await caller.v1.benutzer.self();
|
|
||||||
---
|
|
||||||
|
|
||||||
<UserLayout title="Dashboard">
|
|
||||||
<DashboardAusweiseModule user={user} client:load></DashboardAusweiseModule>
|
|
||||||
</UserLayout>
|
|
||||||
@@ -27,7 +27,7 @@ if (id) {
|
|||||||
ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
|
ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
|
||||||
ausweistyp = ausweis.ausweistyp;
|
ausweistyp = ausweis.ausweistyp;
|
||||||
|
|
||||||
if (!ausweis || ausweis.benutzer_id !== user.id) {
|
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ if (id) {
|
|||||||
ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe
|
ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe
|
||||||
ausweistyp = ausweis.ausweistyp;
|
ausweistyp = ausweis.ausweistyp;
|
||||||
|
|
||||||
if (!ausweis || ausweis.benutzer_id !== user.id) {
|
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||||
import { AufnahmeClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
|
||||||
import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
|
import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
|
||||||
import { getAufnahme, getBilder, getObjekt, getVerbrauchsausweisWohnen } from "#lib/server/db";
|
import { getAufnahme, getBilder, getObjekt, getVerbrauchsausweisWohnen } from "#lib/server/db";
|
||||||
import { getCurrentUser } from "#lib/server/user";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
@@ -27,7 +26,7 @@ if (id) {
|
|||||||
ausweis = await getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
|
ausweis = await getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
|
||||||
ausweistyp = ausweis.ausweistyp;
|
ausweistyp = ausweis.ausweistyp;
|
||||||
|
|
||||||
if (!ausweis || ausweis.benutzer_id !== user.id) {
|
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
@@ -82,5 +81,5 @@ if (id) {
|
|||||||
---
|
---
|
||||||
|
|
||||||
<AusweisLayout title="Verbrauchsausweis erstellen">
|
<AusweisLayout title="Verbrauchsausweis erstellen">
|
||||||
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} {user} loadFromDatabase={id !== null} />
|
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} {user} loadFromDatabase={id !== null} partner_code="" />
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
|
|||||||
Reference in New Issue
Block a user