Verbesserungen im Prozess
This commit is contained in:
@@ -5,6 +5,7 @@ export const createCaller = createCallerFactory({
|
|||||||
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
||||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||||
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
||||||
|
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||||
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
||||||
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
||||||
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
|
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
|
||||||
@@ -12,13 +13,12 @@ export const createCaller = createCallerFactory({
|
|||||||
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
||||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||||
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
|
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
|
||||||
"auth/access-token": await import("../src/pages/api/auth/access-token.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/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.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/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { api } from "astro-typesafe-api/client"
|
|||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
|
|
||||||
export async function ausweisSpeichern(
|
export async function ausweisSpeichern(
|
||||||
|
|||||||
@@ -1,95 +0,0 @@
|
|||||||
import {
|
|
||||||
ObjektClient,
|
|
||||||
UploadedGebaeudeBild,
|
|
||||||
VerbrauchsausweisWohnenClient,
|
|
||||||
} from "#components/Ausweis/types.js";
|
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
|
||||||
import { Enums } from "#lib/client/prisma";
|
|
||||||
import { addNotification, updateNotification } from "@ibcornelsen/ui";
|
|
||||||
import { api } from "astro-typesafe-api/client";
|
|
||||||
import Cookies from "js-cookie";
|
|
||||||
|
|
||||||
export async function bilderHochladen(
|
|
||||||
images: (UploadedGebaeudeBild & { base64?: string, update?: boolean })[],
|
|
||||||
aufnahme_uid: string
|
|
||||||
) {
|
|
||||||
if (images.length == 0) {
|
|
||||||
return images;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wenn Bilder hochgeladen werden konvertieren wir sie zu base64, das heißt, dass die base64 Eigenschaft bei diesen Bildern
|
|
||||||
// existiert. Das müssen wir TypeScript nur wissen lassen, damit es uns in Ruhe lässt.
|
|
||||||
const imagesToUpload = images.filter(
|
|
||||||
(image) => !image.uid || image.update
|
|
||||||
) as unknown as {
|
|
||||||
data: string;
|
|
||||||
kategorie: string;
|
|
||||||
uid?: string;
|
|
||||||
update: boolean;
|
|
||||||
}[];
|
|
||||||
|
|
||||||
if (imagesToUpload.length == 0) {
|
|
||||||
return images;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Alle Bilder hochladen
|
|
||||||
const notification = addNotification({
|
|
||||||
dismissable: false,
|
|
||||||
message: "Bilder hochladen.",
|
|
||||||
subtext: `${imagesToUpload.length} Bilder werden hochgeladen, bitte haben sie Geduld.`,
|
|
||||||
timeout: 0,
|
|
||||||
type: "info",
|
|
||||||
});
|
|
||||||
for (let i = 0; i < imagesToUpload.length; i++) {
|
|
||||||
const image = imagesToUpload[i];
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (image.update) {
|
|
||||||
await api.bilder._uid.PATCH.fetch({
|
|
||||||
data: image.data,
|
|
||||||
kategorie: image.kategorie as Enums.BilderKategorie,
|
|
||||||
}, {
|
|
||||||
params: {
|
|
||||||
uid: image.uid as string,
|
|
||||||
},
|
|
||||||
headers: {
|
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const response = await api.aufnahme._uid.bilder.PUT.fetch({
|
|
||||||
data: image.data,
|
|
||||||
kategorie: image.kategorie as Enums.BilderKategorie
|
|
||||||
}, {
|
|
||||||
params: {
|
|
||||||
uid: aufnahme_uid
|
|
||||||
},
|
|
||||||
headers: {
|
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
image.uid = response.uid;
|
|
||||||
}
|
|
||||||
|
|
||||||
updateNotification(notification, {
|
|
||||||
dismissable: true,
|
|
||||||
message: "Bild hochgeladen.",
|
|
||||||
subtext: `${i + 1}/${
|
|
||||||
imagesToUpload.length
|
|
||||||
} Bildern wurden erfolgreich hochgeladen.`,
|
|
||||||
timeout: 3000,
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
updateNotification(notification, {
|
|
||||||
dismissable: true,
|
|
||||||
message: "Bild konnte nicht hochgeladen werden.",
|
|
||||||
subtext: `Eines ihrer Bilder konnte nicht hochgeladen werden. Wir haben bereits ein Ticket erstellt und melden uns so schnell wie möglich bei ihnen.`,
|
|
||||||
timeout: 15000,
|
|
||||||
type: "error",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return images;
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,7 @@ import { api } from "astro-typesafe-api/client"
|
|||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UnterlageClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
|
|
||||||
export async function nachweisSpeichern(
|
export async function nachweisSpeichern(
|
||||||
@@ -14,8 +14,8 @@ export async function nachweisSpeichern(
|
|||||||
unterlagen: UnterlageClient[],
|
unterlagen: UnterlageClient[],
|
||||||
ausweisart: Enums.Ausweisart
|
ausweisart: Enums.Ausweisart
|
||||||
) {
|
) {
|
||||||
if (objekt.uid) {
|
if (objekt.id) {
|
||||||
await api.objekt._uid.PATCH.fetch({
|
await api.objekt._id.PATCH.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
@@ -23,14 +23,14 @@ export async function nachweisSpeichern(
|
|||||||
plz: objekt.plz
|
plz: objekt.plz
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: objekt.uid
|
id: objekt.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await api.objekt.PUT.fetch({
|
const { id } = await api.objekt.PUT.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
@@ -42,13 +42,13 @@ export async function nachweisSpeichern(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
objekt.uid = uid;
|
objekt.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (aufnahme.uid) {
|
if (aufnahme.id) {
|
||||||
await api.aufnahme._uid.PATCH.fetch({
|
await api.aufnahme._id.PATCH.fetch({
|
||||||
baujahr_gebaeude: aufnahme.baujahr_gebaeude || [],
|
baujahr_gebaeude: aufnahme.baujahr_gebaeude || [],
|
||||||
baujahr_heizung: aufnahme.baujahr_heizung || [],
|
baujahr_heizung: aufnahme.baujahr_heizung || [],
|
||||||
baujahr_klima: aufnahme.baujahr_klima || [],
|
baujahr_klima: aufnahme.baujahr_klima || [],
|
||||||
@@ -103,14 +103,14 @@ export async function nachweisSpeichern(
|
|||||||
zirkulation: aufnahme.zirkulation
|
zirkulation: aufnahme.zirkulation
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: aufnahme.uid
|
id: aufnahme.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await api.aufnahme.PUT.fetch({
|
const { id } = await api.aufnahme.PUT.fetch({
|
||||||
aufnahme: {
|
aufnahme: {
|
||||||
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
||||||
baujahr_heizung: aufnahme.baujahr_heizung,
|
baujahr_heizung: aufnahme.baujahr_heizung,
|
||||||
@@ -166,56 +166,56 @@ export async function nachweisSpeichern(
|
|||||||
zentralheizung: aufnahme.zentralheizung,
|
zentralheizung: aufnahme.zentralheizung,
|
||||||
zirkulation: aufnahme.zirkulation
|
zirkulation: aufnahme.zirkulation
|
||||||
},
|
},
|
||||||
uid_objekt: objekt.uid
|
objekt_id: objekt.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
aufnahme.uid = uid
|
aufnahme.id = id
|
||||||
}
|
}
|
||||||
|
|
||||||
let patchRoute: any;
|
let patchRoute: any;
|
||||||
let putRoute: any;
|
let putRoute: any;
|
||||||
if (ausweisart == Enums.Ausweisart.GEGNachweisWohnen) {
|
if (ausweisart == Enums.Ausweisart.GEGNachweisWohnen) {
|
||||||
patchRoute = api["geg-nachweis-wohnen"]._uid.PATCH
|
patchRoute = api["geg-nachweis-wohnen"]._id.PATCH
|
||||||
putRoute = api["geg-nachweis-wohnen"].PUT
|
putRoute = api["geg-nachweis-wohnen"].PUT
|
||||||
} else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) {
|
||||||
patchRoute = api["geg-nachweis-gewerbe"]._uid.PATCH
|
patchRoute = api["geg-nachweis-gewerbe"]._id.PATCH
|
||||||
putRoute = api["geg-nachweis-gewerbe"].PUT
|
putRoute = api["geg-nachweis-gewerbe"].PUT
|
||||||
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
||||||
patchRoute = api["bedarfsausweis-gewerbe"]._uid.PATCH
|
patchRoute = api["bedarfsausweis-gewerbe"]._id.PATCH
|
||||||
putRoute = api["bedarfsausweis-gewerbe"].PUT
|
putRoute = api["bedarfsausweis-gewerbe"].PUT
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nachweis.uid) {
|
if (nachweis.id) {
|
||||||
await patchRoute.fetch({
|
await patchRoute.fetch({
|
||||||
...exclude(nachweis, ["uid"])
|
...exclude(nachweis, ["id"])
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: nachweis.uid
|
id: nachweis.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await putRoute.fetch({
|
const { id } = await putRoute.fetch({
|
||||||
nachweis,
|
nachweis,
|
||||||
uid_aufnahme: aufnahme.uid
|
uid_aufnahme: aufnahme.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
nachweis.uid = uid;
|
nachweis.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
await api.aufnahme._uid.bilder.PUT.fetch(bilder.map(bild => bild.uid), {
|
await api.aufnahme._id.bilder.PUT.fetch(bilder.map(bild => bild.id), {
|
||||||
params: {
|
params: {
|
||||||
uid: aufnahme.uid
|
id: aufnahme.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -223,8 +223,8 @@ export async function nachweisSpeichern(
|
|||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
uid_nachweis: nachweis.uid,
|
nachweis_id: nachweis.id,
|
||||||
uid_aufnahme: aufnahme.uid,
|
aufnahme_id: aufnahme.id,
|
||||||
uid_objekt: objekt.uid
|
objekt_id: objekt.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Buffer } from "buffer";
|
import { AufnahmeClient, BildClient, ObjektClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { Enums } from "#lib/client/prisma";
|
|
||||||
import { openWindowWithPost } from "#lib/helpers/window.js";
|
import { openWindowWithPost } from "#lib/helpers/window.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let ausweisart: Enums.Ausweisart
|
export let ausweisart: Enums.Ausweisart
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
import AnlagenTechnikImage from "./AnlagenTechnikImage.svelte";
|
import AnlagenTechnikImage from "./AnlagenTechnikImage.svelte";
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: BedarfsausweisGewerbe;
|
export let ausweis: BedarfsausweisGewerbe;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -6,13 +6,13 @@
|
|||||||
import ImageGrid from "#components/ImageGrid.svelte";
|
import ImageGrid from "#components/ImageGrid.svelte";
|
||||||
import {
|
import {
|
||||||
Enums,
|
Enums,
|
||||||
} from "#lib/client/prisma";
|
} from "#lib/client/prisma.js";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
|
BildClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweisart: Enums.Ausweisart;
|
export let ausweisart: Enums.Ausweisart;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { boolean } from "astro:schema";
|
import { boolean } from "astro:schema";
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
export let gebaeude: ObjektClient;
|
export let gebaeude: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { ausweisSpeichern } from "#client/lib/ausweisSpeichern.js";
|
import { ausweisSpeichern } from "#client/lib/ausweisSpeichern.js";
|
||||||
import { validateAccessTokenClient } from "#client/lib/validateAccessToken.js";
|
import { validateAccessTokenClient } from "#client/lib/validateAccessToken.js";
|
||||||
import { AufnahmeClient, BedarfsausweisWohnenClient, BenutzerClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BedarfsausweisWohnenClient, BenutzerClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, BildClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import Overlay from "#components/Overlay.svelte";
|
import Overlay from "#components/Overlay.svelte";
|
||||||
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
|
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
|
||||||
|
|
||||||
@@ -11,9 +11,9 @@
|
|||||||
import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js";
|
import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let unterlagen: UnterlageClient[] = [];
|
export let unterlagen: UnterlageClient[] = [];
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient | null;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweisart: Enums.Ausweisart
|
export let ausweisart: Enums.Ausweisart
|
||||||
@@ -71,20 +71,22 @@
|
|||||||
|
|
||||||
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, ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
||||||
|
ausweis.id = result.nachweis_id;
|
||||||
} else {
|
} else {
|
||||||
result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, ausweisart)
|
result = await ausweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, ausweisart)
|
||||||
|
ausweis.id = result.ausweis_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result !== null) {
|
if (result !== null) {
|
||||||
window.history.pushState(
|
window.history.pushState(
|
||||||
{},
|
{},
|
||||||
"",
|
"",
|
||||||
`${location.pathname}?uid=${ausweis.id}`
|
`${location.pathname}?id=${ausweis.id}`
|
||||||
);
|
);
|
||||||
|
|
||||||
localStorage.clear()
|
localStorage.clear()
|
||||||
window.location.href = `/speichern-erfolgreich?uid=${ausweis.id}`
|
window.location.href = `/speichern-erfolgreich?id=${ausweis.id}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let gebaeude: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -1,24 +1,21 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import Inputlabel from "#components/labels/InputLabel.svelte";
|
|
||||||
|
|
||||||
import HeizungImage from "./HeizungImage.svelte";
|
import HeizungImage from "./HeizungImage.svelte";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { boolean } from "astro:schema";
|
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
import AngabenZurHeizunganlage from "#components/Ausweis/AngabenZurHeizunganlage.svelte";
|
import AngabenZurHeizunganlage from "#components/Ausweis/AngabenZurHeizunganlage.svelte";
|
||||||
|
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
|
|
||||||
export let ausweisart: Enums.Ausweisart;
|
export let ausweisart: Enums.Ausweisart;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
| VerbrauchsausweisWohnenClient
|
| VerbrauchsausweisWohnenClient
|
||||||
| VerbrauchsausweisGewerbeClient
|
| VerbrauchsausweisGewerbeClient
|
||||||
| BedarfsausweisWohnenClient;
|
| BedarfsausweisWohnenClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -31,9 +31,7 @@ export type UploadedGebaeudeBild = OmitKeys<Bild, "id" | "aufnahme_id"> & {
|
|||||||
* @export
|
* @export
|
||||||
* @typedef {VerbrauchsausweisWohnenClient}
|
* @typedef {VerbrauchsausweisWohnenClient}
|
||||||
*/
|
*/
|
||||||
export type VerbrauchsausweisWohnenClient = VerbrauchsausweisWohnen & {
|
export type VerbrauchsausweisWohnenClient = VerbrauchsausweisWohnen
|
||||||
objekt_id: string
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
||||||
@@ -45,9 +43,7 @@ export type VerbrauchsausweisWohnenClient = VerbrauchsausweisWohnen & {
|
|||||||
* @export
|
* @export
|
||||||
* @typedef {VerbrauchsausweisWohnenClient}
|
* @typedef {VerbrauchsausweisWohnenClient}
|
||||||
*/
|
*/
|
||||||
export type VerbrauchsausweisGewerbeClient = VerbrauchsausweisGewerbe & {
|
export type VerbrauchsausweisGewerbeClient = VerbrauchsausweisGewerbe
|
||||||
objekt_id: string
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
||||||
@@ -59,9 +55,7 @@ export type VerbrauchsausweisGewerbeClient = VerbrauchsausweisGewerbe & {
|
|||||||
* @export
|
* @export
|
||||||
* @typedef {VerbrauchsausweisWohnenClient}
|
* @typedef {VerbrauchsausweisWohnenClient}
|
||||||
*/
|
*/
|
||||||
export type BedarfsausweisWohnenClient = BedarfsausweisWohnen & {
|
export type BedarfsausweisWohnenClient = BedarfsausweisWohnen
|
||||||
objekt_id: string
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für die Gebäude Stammdaten mit allen Feldern die
|
* Das ist der Typescript Type für die Gebäude Stammdaten mit allen Feldern die
|
||||||
@@ -152,8 +146,4 @@ export type AufnahmeKomplettClient = AufnahmeClient & {
|
|||||||
geg_nachweise_wohnen: (GEGNachweisWohnenClient & { rechnung: RechnungClient })[]
|
geg_nachweise_wohnen: (GEGNachweisWohnenClient & { rechnung: RechnungClient })[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export type GEGNachweisWohnenClient = Omit<GEGNachweisWohnen, "id" | "aufnahme_id" | "benutzer_id"> & {
|
export type GEGNachweisWohnenClient = GEGNachweisWohnen
|
||||||
uid_objekt: string,
|
|
||||||
uid_aufnahme: string,
|
|
||||||
uid_benutzer?: string
|
|
||||||
}
|
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
getAusweisartFromUUID,
|
getAusweisartFromUUID,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./Ausweis/types.js";
|
} from "./Ausweis/types.js";
|
||||||
import AusweisPruefenTooltip from "./AusweisPruefenTooltip.svelte";
|
import AusweisPruefenTooltip from "./AusweisPruefenTooltip.svelte";
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let bilder: UploadedGebaeudeBild[]
|
export let bilder: BildClient[]
|
||||||
export let events: Event[]
|
export let events: Event[]
|
||||||
export let calculations: Awaited<
|
export let calculations: Awaited<
|
||||||
ReturnType<typeof endEnergieVerbrauchVerbrauchsausweis_2016>
|
ReturnType<typeof endEnergieVerbrauchVerbrauchsausweis_2016>
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
const ausweisArt = getAusweisartFromUUID(ausweis.uid)
|
const ausweisArt = getAusweisartFromUUID(ausweis.id)
|
||||||
|
|
||||||
let verbrauchWWGesamt_1 = "";
|
let verbrauchWWGesamt_1 = "";
|
||||||
let verbrauchWWGesamt_2 = "";
|
let verbrauchWWGesamt_2 = "";
|
||||||
@@ -458,7 +458,7 @@
|
|||||||
async function stornieren(ausweis: VerbrauchsausweisWohnenClient) {
|
async function stornieren(ausweis: VerbrauchsausweisWohnenClient) {
|
||||||
try {
|
try {
|
||||||
const response = await api.admin.stornieren.PUT.fetch({
|
const response = await api.admin.stornieren.PUT.fetch({
|
||||||
uid_ausweis: ausweis.uid
|
uid_ausweis: ausweis.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -748,7 +748,7 @@
|
|||||||
{#each bilder as image}
|
{#each bilder as image}
|
||||||
<div>
|
<div>
|
||||||
<h2 class="text-lg mb-4 font-bold">{image.kategorie}</h2>
|
<h2 class="text-lg mb-4 font-bold">{image.kategorie}</h2>
|
||||||
<img src="/bilder/{image.uid}.jpg">
|
<img src="/bilder/{image.id}.jpg">
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -774,7 +774,7 @@
|
|||||||
<td title="Ausweis anzeigen" class="w-[50px]"
|
<td title="Ausweis anzeigen" class="w-[50px]"
|
||||||
><a
|
><a
|
||||||
class="energieausweis-img"
|
class="energieausweis-img"
|
||||||
href="/pdf/ansichtsausweis?uid={ausweis.uid}"
|
href="/pdf/ansichtsausweis?uid={ausweis.id}"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
><img
|
><img
|
||||||
src="/images/dashboard/ausweis.jpg"
|
src="/images/dashboard/ausweis.jpg"
|
||||||
@@ -786,7 +786,7 @@
|
|||||||
<td title="Datenblatt anzeigen" width="50px"
|
<td title="Datenblatt anzeigen" width="50px"
|
||||||
><a
|
><a
|
||||||
class="energieausweis-img"
|
class="energieausweis-img"
|
||||||
href="/pdf/datenblatt?uid={ausweis.uid}"
|
href="/pdf/datenblatt?uid={ausweis.id}"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
><img
|
><img
|
||||||
src="/images/dashboard/datenblatt.jpg"
|
src="/images/dashboard/datenblatt.jpg"
|
||||||
@@ -857,7 +857,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{#if !ausweis.registriernummer}
|
{#if !ausweis.registriernummer}
|
||||||
<td title="Registriernummer vom DiBT anfordern." class="w-4 p-1"><button class="btn btn-xs btn-ghost" on:click={() => {
|
<td title="Registriernummer vom DiBT anfordern." class="w-4 p-1"><button class="btn btn-xs btn-ghost" on:click={() => {
|
||||||
registriernummerAnfordern(ausweis.uid)
|
registriernummerAnfordern(ausweis.id)
|
||||||
}}>R</button></td>
|
}}>R</button></td>
|
||||||
{/if}
|
{/if}
|
||||||
</tr>
|
</tr>
|
||||||
@@ -884,7 +884,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>UID</td>
|
<td>UID</td>
|
||||||
<td><strong><pre>{ausweis.uid}</pre></strong></td>
|
<td><strong><pre>{ausweis.id}</pre></strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -311,12 +311,12 @@
|
|||||||
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id={ausweis.id}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -326,12 +326,12 @@
|
|||||||
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id={ausweis.id}"
|
||||||
>Formular</a>
|
>Formular</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
||||||
>Formular</a>
|
>Formular</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
class="p-2 rounded-lg hover:bg-gray-200"
|
class="p-2 rounded-lg hover:bg-gray-200"
|
||||||
title="PDF Herunterladen"
|
title="PDF Herunterladen"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href="/pdf/ansichtsausweis?uid={ausweis.id}"
|
href="/pdf/ansichtsausweis?id={ausweis.id}"
|
||||||
>
|
>
|
||||||
<img src="/images/ausweis.webp" width="32" alt="Energieausweis">
|
<img src="/images/ausweis.webp" width="32" alt="Energieausweis">
|
||||||
</a>
|
</a>
|
||||||
@@ -354,7 +354,7 @@
|
|||||||
class="p-2 rounded-lg hover:bg-gray-200"
|
class="p-2 rounded-lg hover:bg-gray-200"
|
||||||
title="PDF Herunterladen"
|
title="PDF Herunterladen"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href="/pdf/datenblatt?uid={ausweis.id}"
|
href="/pdf/datenblatt?id={ausweis.id}"
|
||||||
>
|
>
|
||||||
<img src="/images/datenblatt.webp" width="32" alt="Datenblatt">
|
<img src="/images/datenblatt.webp" width="32" alt="Datenblatt">
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
{@const bild = objekt.aufnahmen[0].bilder.find(bild => bild.kategorie === Enums.BilderKategorie.Gebaeude)}
|
{@const bild = objekt.aufnahmen[0].bilder.find(bild => bild.kategorie === Enums.BilderKategorie.Gebaeude)}
|
||||||
|
|
||||||
{#if bild}
|
{#if bild}
|
||||||
<img src="/bilder/{bild.uid}.jpg" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
<img src="/bilder/{bild.id}.jpg" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
||||||
{:else}
|
{:else}
|
||||||
<img src="/placeholder.png" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
<img src="/placeholder.png" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
||||||
{/if}
|
{/if}
|
||||||
@@ -29,14 +29,14 @@
|
|||||||
<div class="border rounded-lg px-4 py-2">
|
<div class="border rounded-lg px-4 py-2">
|
||||||
<div class="flex flex-row justify-between items-center">
|
<div class="flex flex-row justify-between items-center">
|
||||||
<span>Stand vom {moment(aufnahme.erstellungsdatum).format("DD.MM.YYYY")}</span>
|
<span>Stand vom {moment(aufnahme.erstellungsdatum).format("DD.MM.YYYY")}</span>
|
||||||
<a href="/dashboard/aufnahme/{aufnahme.uid}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><OpenInNewWindow size={20}></OpenInNewWindow></a>
|
<a href="/dashboard/aufnahme/{aufnahme.id}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><OpenInNewWindow size={20}></OpenInNewWindow></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row gap-2">
|
<div class="flex flex-row gap-2">
|
||||||
{#if aufnahme.verbrauchsausweise_wohnen.length > 0}
|
{#if aufnahme.verbrauchsausweise_wohnen.length > 0}
|
||||||
<a href="/dashboard/aufnahme/{aufnahme.uid}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
<a href="/dashboard/aufnahme/{aufnahme.id}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
||||||
{/if}
|
{/if}
|
||||||
{#if aufnahme.verbrauchsausweise_gewerbe.length > 0}
|
{#if aufnahme.verbrauchsausweise_gewerbe.length > 0}
|
||||||
<a href="/dashboard/aufnahme/{aufnahme.uid}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
<a href="/dashboard/aufnahme/{aufnahme.id}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { AufnahmeClient, BildClient, ObjektClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { openWindowWithPost } from "#lib/helpers/window.js";
|
import { openWindowWithPost } from "#lib/helpers/window.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let ausweisart: Enums.Ausweisart
|
export let ausweisart: Enums.Ausweisart
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import UploadImages from "./UploadImages.svelte";
|
import UploadImages from "./UploadImages.svelte";
|
||||||
import type { Enums } from "#lib/client/prisma.js";
|
import type { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { RotateCounterClockwise, Trash, Upload } from "radix-svelte-icons";
|
import { Trash, Upload } from "radix-svelte-icons";
|
||||||
import { api } from "astro-typesafe-api/client";
|
import { api } from "astro-typesafe-api/client";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
@@ -17,14 +17,14 @@
|
|||||||
|
|
||||||
async function deleteImage(image: BildClient) {
|
async function deleteImage(image: BildClient) {
|
||||||
await api.bild.DELETE.fetch({
|
await api.bild.DELETE.fetch({
|
||||||
uid: image.uid
|
id: image.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
images = images.filter((x) => x.uid !== image.uid);
|
images = images.filter((x) => x.id !== image.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
let upload: () => void;
|
let upload: () => void;
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
{#if image.kategorie == kategorie}
|
{#if image.kategorie == kategorie}
|
||||||
<div class="relative group">
|
<div class="relative group">
|
||||||
<img
|
<img
|
||||||
src="/bilder/{image.uid}.jpg"
|
src="/bilder/{image.id}.jpg"
|
||||||
alt={kategorie}
|
alt={kategorie}
|
||||||
class="h-full max-h-96 w-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all"
|
class="h-full max-h-96 w-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
BildClient,
|
BildClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./Ausweis/types.js";
|
} from "./Ausweis/types.js";
|
||||||
@@ -80,13 +79,13 @@
|
|||||||
// Get the scaled-down data from the canvas in the desired output format and quality
|
// Get the scaled-down data from the canvas in the desired output format and quality
|
||||||
const dataURL = canvas.toDataURL("image/jpeg", 0.8);
|
const dataURL = canvas.toDataURL("image/jpeg", 0.8);
|
||||||
|
|
||||||
const { uid } = await api.bild.PUT.fetch({
|
const { id } = await api.bild.PUT.fetch({
|
||||||
data: dataURL,
|
data: dataURL,
|
||||||
kategorie,
|
kategorie,
|
||||||
name: file.name
|
name: file.name
|
||||||
})
|
})
|
||||||
|
|
||||||
images.push({ uid, kategorie });
|
images.push({ id, kategorie });
|
||||||
images = images;
|
images = images;
|
||||||
|
|
||||||
if (i == Math.min(files.length, max) - 1) {
|
if (i == Math.min(files.length, max) - 1) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const { title, user } = Astro.props;
|
|||||||
const objekte = await prisma.objekt.findMany({
|
const objekte = await prisma.objekt.findMany({
|
||||||
where: {
|
where: {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
take: 10,
|
take: 10,
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
|
||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
import { PDFDocument, rgb, StandardFonts, TextAlignment } from "pdf-lib";
|
import { PDFDocument, StandardFonts } from "pdf-lib";
|
||||||
import { xml2pdf } from "./elements/xml2pdf.js";
|
import { xml2pdf } from "./elements/xml2pdf.js";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
import { Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||||
import { fileURLToPath } from "url";
|
|
||||||
import { copyPage } from "./utils/copyPage.js";
|
import { copyPage } from "./utils/copyPage.js";
|
||||||
import { PERSISTENT_DIR } from "#lib/server/constants.js";
|
|
||||||
|
|
||||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||||
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen.js";
|
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen.js";
|
||||||
import { Enums } from "#lib/server/prisma.js";
|
import { Enums } from "#lib/server/prisma.js";
|
||||||
@@ -8,8 +8,6 @@ import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib"
|
|||||||
import { addCheckMark } from "./utils/checkbox.js";
|
import { addCheckMark } from "./utils/checkbox.js";
|
||||||
import { addText } from "./utils/text.js";
|
import { addText } from "./utils/text.js";
|
||||||
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js";
|
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js";
|
||||||
import { PERSISTENT_DIR } from "#lib/server/constants.js";
|
|
||||||
import { fileURLToPath } from "url";
|
|
||||||
import { getS3File } from "#lib/s3.js";
|
import { getS3File } from "#lib/s3.js";
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
33
src/lib/server/db.ts
Normal file
33
src/lib/server/db.ts
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import { Aufnahme, Bild, Objekt, prisma, VerbrauchsausweisWohnen } from "./prisma.js";
|
||||||
|
|
||||||
|
export async function getVerbrauchsausweisWohnen(id: string): Promise<VerbrauchsausweisWohnen | null> {
|
||||||
|
return await prisma.verbrauchsausweisWohnen.findUnique({
|
||||||
|
where: {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getAufnahme(id: string): Promise<Aufnahme | null> {
|
||||||
|
return await prisma.aufnahme.findUnique({
|
||||||
|
where: {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getObjekt(id: string): Promise<Objekt | null> {
|
||||||
|
return await prisma.objekt.findUnique({
|
||||||
|
where: {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getBilder(aufnahme_id: string): Promise<Bild[]> {
|
||||||
|
return await prisma.bild.findMany({
|
||||||
|
where: {
|
||||||
|
aufnahme_id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
18
src/lib/tryCatch.ts
Normal file
18
src/lib/tryCatch.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Types for the result object with discriminated union
|
||||||
|
type Success<T> = [T, null]
|
||||||
|
|
||||||
|
type Failure<E> = [null, E];
|
||||||
|
|
||||||
|
type Result<T, E = Error> = Success<T> | Failure<E>;
|
||||||
|
|
||||||
|
// Main wrapper function
|
||||||
|
export async function tryCatch<T, E = Error>(
|
||||||
|
promise: Promise<T>,
|
||||||
|
): Promise<Result<T, E>> {
|
||||||
|
try {
|
||||||
|
const data = await promise;
|
||||||
|
return [data, null];
|
||||||
|
} catch (error) {
|
||||||
|
return [null, error as E];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
AufnahmeClient
|
AufnahmeClient
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
export let aufnahme: AufnahmeClient
|
export let aufnahme: AufnahmeClient
|
||||||
export let user: BenutzerClient = {} as BenutzerClient;
|
export let user: BenutzerClient = {} as BenutzerClient;
|
||||||
export let ausweistyp: Enums.AusweisTyp
|
export let ausweistyp: Enums.AusweisTyp
|
||||||
export let bilder: UploadedGebaeudeBild[] = []
|
export let bilder: BildClient[] = []
|
||||||
export let uid: string;
|
export let uid: string;
|
||||||
|
|
||||||
if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
|
|
||||||
const result = await api.objekt.PUT.fetch({
|
const result = await api.objekt.PUT.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
erstellungsdatum: new Date(),
|
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
ort: objekt.ort,
|
ort: objekt.ort,
|
||||||
@@ -78,7 +77,7 @@
|
|||||||
objekte.push({
|
objekte.push({
|
||||||
...objekt,
|
...objekt,
|
||||||
aufnahmen: [],
|
aufnahmen: [],
|
||||||
uid: result.uid
|
id: result.id
|
||||||
})
|
})
|
||||||
|
|
||||||
objekt = {
|
objekt = {
|
||||||
|
|||||||
@@ -241,7 +241,7 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
window.location.href = `/speichern-erfolgreich?uid=${ausweis.id}`
|
window.location.href = `/speichern-erfolgreich?id=${ausweis.id}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
import Bereich from "#components/labels/Bereich.svelte";
|
import Bereich from "#components/labels/Bereich.svelte";
|
||||||
import StromVerbrauch from "#components/Ausweis/StromVerbrauch.svelte";
|
import StromVerbrauch from "#components/Ausweis/StromVerbrauch.svelte";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
||||||
import { BenutzerClient } from "#components/Ausweis/types.js";
|
import { BenutzerClient } from "#components/Ausweis/types.js";
|
||||||
import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
|
import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
|
|
||||||
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||||
const anliegen = "Energieausweis erstellen";
|
const anliegen = "Energieausweis erstellen";
|
||||||
|
|||||||
@@ -41,26 +41,24 @@
|
|||||||
import Overlay from "#components/Overlay.svelte";
|
import Overlay from "#components/Overlay.svelte";
|
||||||
import AusweisGespeichertModule from "#modules/VerbrauchsausweisWohnen/AusweisGespeichertModule.svelte";
|
import AusweisGespeichertModule from "#modules/VerbrauchsausweisWohnen/AusweisGespeichertModule.svelte";
|
||||||
import type {
|
import type {
|
||||||
VerbrauchsausweisWohnenClient,
|
|
||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
ObjektClient,
|
|
||||||
AufnahmeClient,
|
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Aufnahme, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
|
||||||
// TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann
|
// TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann
|
||||||
// wenn aufnahme oder objekt nicht existiert...
|
// wenn aufnahme oder objekt nicht existiert...
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnen;
|
||||||
export let objekt: ObjektClient
|
export let objekt: Objekt
|
||||||
export let aufnahme: AufnahmeClient
|
export let aufnahme: Aufnahme
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient | null;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let uid: string | null;
|
export let id: string | null;
|
||||||
|
|
||||||
if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
|
||||||
|
if (!id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||||
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis");
|
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis");
|
||||||
if (localStorageAusweis) {
|
if (localStorageAusweis) {
|
||||||
ausweis = JSON.parse(localStorageAusweis)
|
ausweis = JSON.parse(localStorageAusweis)
|
||||||
@@ -116,7 +114,7 @@ let skala: HTMLDivElement;
|
|||||||
|
|
||||||
<Overlay bind:hidden={speichernOverlayHidden}>
|
<Overlay bind:hidden={speichernOverlayHidden}>
|
||||||
<div class="bg-white w-full max-w-screen-sm py-8 px-8">
|
<div class="bg-white w-full max-w-screen-sm py-8 px-8">
|
||||||
<AusweisGespeichertModule uid={ausweis.uid}></AusweisGespeichertModule>
|
<AusweisGespeichertModule uid={ausweis.id}></AusweisGespeichertModule>
|
||||||
</div>
|
</div>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
ObjektClient,
|
ObjektClient,
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
UnterlageClient,
|
UnterlageClient,
|
||||||
GEGNachweisWohnenClient,
|
GEGNachweisWohnenClient,
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let user: BenutzerClient = {} as BenutzerClient;
|
export let user: BenutzerClient = {} as BenutzerClient;
|
||||||
export let bilder: UploadedGebaeudeBild[] = [];
|
export let bilder: BildClient[] = [];
|
||||||
export let plaene: UnterlageClient[] = [];
|
export let plaene: UnterlageClient[] = [];
|
||||||
export let unterlagen: UnterlageClient[] = [];
|
export let unterlagen: UnterlageClient[] = [];
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||||
import { AufnahmeClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild } from "#components/Ausweis/types";
|
import { AufnahmeClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, BildClient } from "#components/Ausweis/types";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
import { createCaller } from "src/astro-typesafe-api-caller";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken.js";
|
import { validateAccessTokenServer } from "#server/lib/validateAccessToken.js";
|
||||||
@@ -10,7 +10,7 @@ const uid = Astro.url.searchParams.get("uid");
|
|||||||
let nachweis: GEGNachweisWohnenClient = {} as GEGNachweisWohnenClient;
|
let nachweis: GEGNachweisWohnenClient = {} as GEGNachweisWohnenClient;
|
||||||
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[] = []
|
||||||
let unterlagen: UnterlageClient[] = []
|
let unterlagen: UnterlageClient[] = []
|
||||||
|
|
||||||
const valid = validateAccessTokenServer(Astro);
|
const valid = validateAccessTokenServer(Astro);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, UUidWithPrefix, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, ObjektClient, BildClient, UUidWithPrefix, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import { filterAusweise } from "#lib/filters.js";
|
import { filterAusweise } from "#lib/filters.js";
|
||||||
import { omit } from "#lib/helpers.js";
|
import { omit } from "#lib/helpers.js";
|
||||||
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
|
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
|
||||||
@@ -18,7 +18,7 @@ export const GET = defineApiRoute({
|
|||||||
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
||||||
input.filters = input.filters || {}
|
input.filters = input.filters || {}
|
||||||
input.filters["benutzer"] = {
|
input.filters["benutzer"] = {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ export const GET = defineApiRoute({
|
|||||||
ausweis: omit(ausweis, ["aufnahme"]) as VerbrauchsausweisWohnenClient,
|
ausweis: omit(ausweis, ["aufnahme"]) as VerbrauchsausweisWohnenClient,
|
||||||
aufnahme: omit(omit(ausweis.aufnahme, ["events"]), ["objekt"]) as AufnahmeClient,
|
aufnahme: omit(omit(ausweis.aufnahme, ["events"]), ["objekt"]) as AufnahmeClient,
|
||||||
objekt: omit(ausweis.aufnahme.objekt, ["bilder"]) as ObjektClient,
|
objekt: omit(ausweis.aufnahme.objekt, ["bilder"]) as ObjektClient,
|
||||||
bilder: ausweis.aufnahme.bilder as unknown as UploadedGebaeudeBild[],
|
bilder: ausweis.aufnahme.bilder as unknown as BildClient[],
|
||||||
events: ausweis.aufnahme.events
|
events: ausweis.aufnahme.events
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
import { AufnahmeClient, BenutzerClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { AufnahmeClient, BenutzerClient, ObjektClient, BildClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||||
import UserLayout from "#layouts/DashboardLayout.astro";
|
import UserLayout from "#layouts/DashboardLayout.astro";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||||
import { omit } from "#lib/helpers";
|
import { omit } from "#lib/helpers";
|
||||||
@@ -31,7 +31,7 @@ if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
|||||||
const ausweise = await prisma.verbrauchsausweisWohnen.findMany({
|
const ausweise = await prisma.verbrauchsausweisWohnen.findMany({
|
||||||
where: {
|
where: {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
@@ -50,7 +50,7 @@ const ausweise = await prisma.verbrauchsausweisWohnen.findMany({
|
|||||||
const totalPages = await prisma.verbrauchsausweisWohnen.count({
|
const totalPages = await prisma.verbrauchsausweisWohnen.count({
|
||||||
where: {
|
where: {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -59,7 +59,7 @@ const reformedAusweise = ausweise.map(ausweis => ({
|
|||||||
ausweis: omit(ausweis, ["aufnahme"]) as VerbrauchsausweisWohnenClient,
|
ausweis: omit(ausweis, ["aufnahme"]) as VerbrauchsausweisWohnenClient,
|
||||||
aufnahme: omit(omit(ausweis.aufnahme, ["events"]), ["objekt"]) as AufnahmeClient,
|
aufnahme: omit(omit(ausweis.aufnahme, ["events"]), ["objekt"]) as AufnahmeClient,
|
||||||
objekt: omit(ausweis.aufnahme.objekt, ["bilder"]) as ObjektClient,
|
objekt: omit(ausweis.aufnahme.objekt, ["bilder"]) as ObjektClient,
|
||||||
bilder: ausweis.aufnahme.bilder as unknown as UploadedGebaeudeBild[],
|
bilder: ausweis.aufnahme.bilder as unknown as BildClient[],
|
||||||
events: ausweis.aufnahme.events
|
events: ausweis.aufnahme.events
|
||||||
}))
|
}))
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { Enums, prisma } from "#lib/server/prisma";
|
|||||||
import UserLayout from "#layouts/DashboardLayout.astro";
|
import UserLayout from "#layouts/DashboardLayout.astro";
|
||||||
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";
|
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";
|
||||||
|
|
||||||
const { uid } = Astro.params;
|
const { id } = Astro.params;
|
||||||
|
|
||||||
const accessTokenValid = await validateAccessTokenServer(Astro);
|
const accessTokenValid = await validateAccessTokenServer(Astro);
|
||||||
|
|
||||||
@@ -30,10 +30,10 @@ if (!user) {
|
|||||||
const aufnahme = await prisma.aufnahme.findUnique({
|
const aufnahme = await prisma.aufnahme.findUnique({
|
||||||
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
},
|
},
|
||||||
uid
|
id
|
||||||
} : { uid },
|
} : { id },
|
||||||
include: {
|
include: {
|
||||||
objekt: true,
|
objekt: true,
|
||||||
bilder: true,
|
bilder: true,
|
||||||
@@ -26,7 +26,7 @@ if (!user) {
|
|||||||
const totalPages = await prisma.objekt.count({
|
const totalPages = await prisma.objekt.count({
|
||||||
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
}
|
}
|
||||||
} : {}
|
} : {}
|
||||||
})
|
})
|
||||||
@@ -34,7 +34,7 @@ const totalPages = await prisma.objekt.count({
|
|||||||
const objekte = await prisma.objekt.findMany({
|
const objekte = await prisma.objekt.findMany({
|
||||||
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
},
|
},
|
||||||
} : {
|
} : {
|
||||||
...(id ? {OR: [
|
...(id ? {OR: [
|
||||||
|
|||||||
@@ -2,25 +2,25 @@
|
|||||||
|
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||||
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
||||||
import { AufnahmeClient, BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
import { createCaller } from "src/astro-typesafe-api-caller";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||||
import { Enums } from "#lib/server/prisma";
|
import { Enums } from "#lib/server/prisma";
|
||||||
|
|
||||||
const uid = Astro.url.searchParams.get("uid") || "";
|
const id = Astro.url.searchParams.get("uid") || "";
|
||||||
const uid_aufnahme = Astro.url.searchParams.get("aufnahme")
|
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
||||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
||||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
||||||
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 valid = validateAccessTokenServer(Astro);
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
const caller = createCaller(Astro);
|
||||||
|
|
||||||
if (uid) {
|
if (id) {
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
@@ -28,39 +28,39 @@ if (uid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ausweis = await caller["bedarfsausweis-wohnen"]._uid.GET.fetch(null, {
|
ausweis = await caller["bedarfsausweis-wohnen"]._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid
|
id
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
aufnahme = await caller.aufnahme._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid_aufnahme
|
id: ausweis.aufnahme_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
objekt = await caller.objekt._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid_objekt
|
id: ausweis.objekt_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
|
bilder = await caller.aufnahme._id.bilder.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid_aufnahme
|
id: ausweis.aufnahme_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -81,5 +81,5 @@ if (uid) {
|
|||||||
|
|
||||||
---
|
---
|
||||||
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
||||||
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {uid}></BedarfsausweisWohnenModule>
|
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id}></BedarfsausweisWohnenModule>
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
---
|
---
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.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 { createCaller } from "src/astro-typesafe-api-caller";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
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 { Enums } from "#lib/server/prisma";
|
||||||
|
|
||||||
const uid = Astro.url.searchParams.get("uid");
|
const id = Astro.url.searchParams.get("uid");
|
||||||
const uid_aufnahme = Astro.url.searchParams.get("aufnahme")
|
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
||||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
||||||
|
|
||||||
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 valid = validateAccessTokenServer(Astro);
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
const caller = createCaller(Astro);
|
||||||
|
|
||||||
if (uid) {
|
if (id) {
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
@@ -28,41 +28,41 @@ if (uid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let { uid_aufnahme, uid_objekt, uid_benutzer, ...result } = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(null, {
|
let { aufnahme_id, objekt_id, benutzer_id, ...result } = await caller["verbrauchsausweis-gewerbe"]._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid
|
id
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ausweis = result
|
ausweis = result
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
aufnahme = await caller.aufnahme._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: uid_aufnahme
|
id: aufnahme_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
objekt = await caller.objekt._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: uid_objekt
|
id: objekt_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
|
bilder = await caller.aufnahme._id.bilder.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: uid_aufnahme
|
id: aufnahme_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -78,30 +78,30 @@ if (uid) {
|
|||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else if (uid_aufnahme) {
|
} else if (aufnahme_id) {
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let { uid_objekt, ...result} = await caller.aufnahme._uid.GET.fetch(null, {
|
let { objekt_id, ...result} = await caller.aufnahme._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: uid_aufnahme
|
id: aufnahme_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
aufnahme = result;
|
aufnahme = result;
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
objekt = await caller.objekt._id.GET.fetch(null, {
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
},
|
},
|
||||||
params: {
|
params: {
|
||||||
uid: uid_objekt
|
id: objekt_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,112 +1,85 @@
|
|||||||
---
|
---
|
||||||
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, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { AufnahmeClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { getAufnahme, getBilder, getObjekt, getVerbrauchsausweisWohnen } from "#lib/server/db";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
import { Enums } from "#lib/server/prisma";
|
|
||||||
|
|
||||||
const id = Astro.url.searchParams.get("id");
|
const id = Astro.url.searchParams.get("id");
|
||||||
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
||||||
let 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;
|
let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
let aufnahme: Aufnahme = {} as Aufnahme;
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
let objekt: Objekt = {} as Objekt;
|
||||||
let bilder: UploadedGebaeudeBild[] = []
|
let bilder: Bild[] = []
|
||||||
|
|
||||||
const valid = validateAccessTokenServer(Astro);
|
const user = await getCurrentUser(Astro)
|
||||||
|
|
||||||
const caller = createCaller(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 getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
|
||||||
ausweis = await caller["verbrauchsausweis-wohnen"]._id.GET.fetch(null, {
|
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
ausweistyp = ausweis.ausweistyp
|
if (!ausweis || ausweis.benutzer_id !== user.id) {
|
||||||
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
aufnahme = await caller.aufnahme._id.GET.fetch(null, {
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
id: ausweis.aufnahme_id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
objekt = await caller.objekt._id.GET.fetch(null, {
|
|
||||||
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, {
|
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
id: ausweis.aufnahme_id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
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(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
"/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) {
|
} else if (aufnahme_id) {
|
||||||
if (!valid) {
|
if (!user) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let { objekt_id, ...result} = await caller.aufnahme._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: aufnahme_id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
aufnahme = result;
|
if (!aufnahme) {
|
||||||
|
// Die Aufnahme existiert wohl nicht.
|
||||||
|
return Astro.redirect(
|
||||||
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
objekt = await caller.objekt._id.GET.fetch(null, {
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
if (!objekt) {
|
||||||
},
|
// Das Objekt existiert nicht.
|
||||||
params: {
|
return Astro.redirect(
|
||||||
id: objekt_id
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
}
|
);
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
---
|
---
|
||||||
|
|
||||||
<AusweisLayout title="Verbrauchsausweis erstellen">
|
<AusweisLayout title="Verbrauchsausweis erstellen">
|
||||||
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} />
|
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} {user} />
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ import { createCaller } from "src/astro-typesafe-api-caller.js";
|
|||||||
import { getS3File } from "#lib/s3.js";
|
import { getS3File } from "#lib/s3.js";
|
||||||
|
|
||||||
export const GET: APIRoute = async (Astro) => {
|
export const GET: APIRoute = async (Astro) => {
|
||||||
const uidAusweis = Astro.url.searchParams.get("uid");
|
const ausweis_id = Astro.url.searchParams.get("uid");
|
||||||
|
|
||||||
if (!uidAusweis) {
|
if (!ausweis_id) {
|
||||||
return new Response(null, { status: 404 });
|
return new Response(null, { status: 404 });
|
||||||
}
|
}
|
||||||
|
|
||||||
const ausweisart = getAusweisartFromUUID(uidAusweis)
|
const ausweisart = getAusweisartFromUUID(ausweis_id)
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
const caller = createCaller(Astro);
|
||||||
|
|
||||||
@@ -25,18 +25,18 @@ export const GET: APIRoute = async (Astro) => {
|
|||||||
let bilder: UploadedGebaeudeBild[] = []
|
let bilder: UploadedGebaeudeBild[] = []
|
||||||
|
|
||||||
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(undefined, {
|
ausweis = await caller["verbrauchsausweis-wohnen"]._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: uidAusweis
|
id: ausweis_id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
ausweis = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(undefined, {
|
ausweis = await caller["verbrauchsausweis-gewerbe"]._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: uidAusweis
|
id: ausweis_id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
@@ -49,18 +49,18 @@ export const GET: APIRoute = async (Astro) => {
|
|||||||
return new Response(null, { status: 404 });
|
return new Response(null, { status: 404 });
|
||||||
}
|
}
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._uid.GET.fetch(undefined, {
|
aufnahme = await caller.aufnahme._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid_aufnahme
|
id: ausweis.aufnahme_id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(undefined, {
|
objekt = await caller.objekt._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid_objekt
|
id: ausweis.objekt_id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
|
|||||||
@@ -27,18 +27,18 @@ export const GET: APIRoute = async (Astro) => {
|
|||||||
let bilder: UploadedGebaeudeBild[] = []
|
let bilder: UploadedGebaeudeBild[] = []
|
||||||
|
|
||||||
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(undefined, {
|
ausweis = await caller["verbrauchsausweis-wohnen"]._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: uidAusweis
|
id: uidAusweis
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
ausweis = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(undefined, {
|
ausweis = await caller["verbrauchsausweis-gewerbe"]._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: uidAusweis
|
id: uidAusweis
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
@@ -51,18 +51,18 @@ export const GET: APIRoute = async (Astro) => {
|
|||||||
return new Response(null, { status: 404 });
|
return new Response(null, { status: 404 });
|
||||||
}
|
}
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._uid.GET.fetch(undefined, {
|
aufnahme = await caller.aufnahme._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid_aufnahme
|
id: ausweis.aufnahme_id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(undefined, {
|
objekt = await caller.objekt._id.GET.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid_objekt
|
id: ausweis.objekt_id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
@@ -80,9 +80,9 @@ export const GET: APIRoute = async (Astro) => {
|
|||||||
// Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren.
|
// Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren.
|
||||||
pdf = await getS3File("ibc-pdfs", `ID_${ausweis.alte_ausweis_id}_Datenblatt.pdf`)
|
pdf = await getS3File("ibc-pdfs", `ID_${ausweis.alte_ausweis_id}_Datenblatt.pdf`)
|
||||||
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user);
|
pdf = await pdfDatenblattVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, user, bilder);
|
||||||
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user);
|
pdf = await pdfDatenblattVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, user, bilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Response(pdf, {
|
return new Response(pdf, {
|
||||||
|
|||||||
@@ -6,24 +6,19 @@ import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
|
|||||||
import { getCurrentUser } from "#lib/server/user";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
|
|
||||||
const user = await getCurrentUser(Astro)
|
const user = await getCurrentUser(Astro)
|
||||||
const uid = Astro.url.searchParams.get("uid");
|
const id = Astro.url.searchParams.get("id");
|
||||||
const adapter = getPrismaAusweisAdapter(uid || "")
|
const adapter = getPrismaAusweisAdapter(id || "")
|
||||||
|
|
||||||
console.log(user, uid);
|
if (!user || !id || !adapter) {
|
||||||
|
|
||||||
|
|
||||||
if (!user || !uid || !adapter) {
|
|
||||||
return Astro.redirect("/")
|
return Astro.redirect("/")
|
||||||
}
|
}
|
||||||
|
|
||||||
const ausweis = await adapter.findUnique({
|
const ausweis = await adapter.findUnique({
|
||||||
where: {
|
where: {
|
||||||
uid
|
id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const id = ausweis.id;
|
|
||||||
|
|
||||||
if (!ausweis) {
|
if (!ausweis) {
|
||||||
return Astro.redirect("/")
|
return Astro.redirect("/")
|
||||||
}
|
}
|
||||||
|
|||||||
85
user-flow-verbrauchsausweis-wohnen.tefcha
Normal file
85
user-flow-verbrauchsausweis-wohnen.tefcha
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
Verbrauchsausweis Wohnen
|
||||||
|
|
||||||
|
if Domain hat bereits eine vorhandene ID?
|
||||||
|
if LocalStorage hat Daten?
|
||||||
|
Wir vergleichen ob der LocalStorage neuer ist als die Datenbank
|
||||||
|
if LocalStorage is neuer?
|
||||||
|
Wir benutzen LocalStorage
|
||||||
|
else
|
||||||
|
Wir benutzen Daten aus der Datenbank.
|
||||||
|
else
|
||||||
|
Daten werden aus der Datenbank geladen.
|
||||||
|
else
|
||||||
|
if LocalStorage hat Daten?
|
||||||
|
Daten werden aus dem LocalStorage geladen.
|
||||||
|
else
|
||||||
|
Formular wird leer geliefert
|
||||||
|
|
||||||
|
Benutzer gibt Daten ein.
|
||||||
|
Wir speichern alles im LocalStorage mit dem aktuallen Timestamp
|
||||||
|
*User lädt ein Bild hoch*
|
||||||
|
|
||||||
|
if Ausweis hat bereits eine id
|
||||||
|
Wir verknüpfen das Bild sofort mit dem Ausweis
|
||||||
|
else
|
||||||
|
Wir laden das Bild hoch ohne es mit dem Ausweis zu verknüpfen
|
||||||
|
|
||||||
|
if *Klick auf Weiter || Klick auf Hilfe*
|
||||||
|
Wir leiten weiter auf Kundendaten mit dem entsprechenden Produkt
|
||||||
|
*User gibt Kundendaten ein*
|
||||||
|
if *Klick auf Speichern*
|
||||||
|
if Ausweis hat bereits eine id?
|
||||||
|
Wir updaten den bereits gespeicherten Ausweis mit den neuen Daten
|
||||||
|
else
|
||||||
|
if URL hat ein Objekt gegeben?
|
||||||
|
Wir updaten das Objekt
|
||||||
|
else
|
||||||
|
Wir erstellen ein neues Objekt
|
||||||
|
|
||||||
|
if URL hat eine Aufnahme gegeben?
|
||||||
|
Wir updaten die bestehende Aufnahme
|
||||||
|
else
|
||||||
|
Wir erstellen eine neue Aufnahme
|
||||||
|
|
||||||
|
Wir erstellen einen neuen Ausweis
|
||||||
|
else
|
||||||
|
*User klickt auf Bestellen*
|
||||||
|
if Ausweis hat bereits eine id?
|
||||||
|
Wir updaten den bereits gespeicherten Ausweis mit den neuen Daten
|
||||||
|
else
|
||||||
|
if URL hat ein Objekt gegeben?
|
||||||
|
Wir updaten das Objekt
|
||||||
|
else
|
||||||
|
Wir erstellen ein neues Objekt
|
||||||
|
|
||||||
|
if URL hat eine Aufnahme gegeben?
|
||||||
|
Wir updaten die bestehende Aufnahme
|
||||||
|
else
|
||||||
|
Wir erstellen eine neue Aufnahme
|
||||||
|
|
||||||
|
Wir erstellen einen neuen Ausweis
|
||||||
|
|
||||||
|
if Bezahlart === "Rechnung"
|
||||||
|
Wir erstellen eine Rechnung für den Ausweis und leiten auf die Payment Success Seite weiter.
|
||||||
|
else
|
||||||
|
Wir erstellen eine Rechnung für den Ausweis und holen uns die Checkout URL
|
||||||
|
while Bezahlung ist nicht erfolgreich
|
||||||
|
Wir leiten zurück auf die Kundendaten Seite zurück und fordern eine andere Bezahlart an.
|
||||||
|
|
||||||
|
Wir leiten auf die Payment Success Seite weiter und senden eine Email
|
||||||
|
|
||||||
|
elif *Klick auf Speichern*
|
||||||
|
if Ausweis hat bereits eine id?
|
||||||
|
Wir updaten den bereits gespeicherten Ausweis mit den neuen Daten
|
||||||
|
else
|
||||||
|
if URL hat ein Objekt gegeben?
|
||||||
|
Wir updaten das Objekt
|
||||||
|
else
|
||||||
|
Wir erstellen ein neues Objekt
|
||||||
|
|
||||||
|
if URL hat eine Aufnahme gegeben?
|
||||||
|
Wir updaten die bestehende Aufnahme
|
||||||
|
else
|
||||||
|
Wir erstellen eine neue Aufnahme
|
||||||
|
|
||||||
|
Wir erstellen einen neuen Ausweis
|
||||||
Reference in New Issue
Block a user