Bugfixes
This commit is contained in:
4
bun.lock
4
bun.lock
@@ -86,7 +86,7 @@
|
|||||||
"prisma-dbml-generator": "^0.12.0",
|
"prisma-dbml-generator": "^0.12.0",
|
||||||
"prisma-generator-fake-data": "^0.14.3",
|
"prisma-generator-fake-data": "^0.14.3",
|
||||||
"tsx": "^4.19.3",
|
"tsx": "^4.19.3",
|
||||||
"typescript": "^4.9.5",
|
"typescript": "^5",
|
||||||
"zod-prisma": "^0.5.4",
|
"zod-prisma": "^0.5.4",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -2539,7 +2539,7 @@
|
|||||||
|
|
||||||
"type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="],
|
"type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="],
|
||||||
|
|
||||||
"typescript": ["typescript@4.9.5", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="],
|
"typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
|
||||||
|
|
||||||
"ufo": ["ufo@1.5.4", "", {}, "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="],
|
"ufo": ["ufo@1.5.4", "", {}, "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="],
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
"prisma-dbml-generator": "^0.12.0",
|
"prisma-dbml-generator": "^0.12.0",
|
||||||
"prisma-generator-fake-data": "^0.14.3",
|
"prisma-generator-fake-data": "^0.14.3",
|
||||||
"tsx": "^4.19.3",
|
"tsx": "^4.19.3",
|
||||||
"typescript": "^4.9.5",
|
"typescript": "^5.8.3",
|
||||||
"zod-prisma": "^0.5.4"
|
"zod-prisma": "^0.5.4"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
|||||||
@@ -5,10 +5,6 @@ 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"),
|
||||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
|
||||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
|
||||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
|
||||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
|
||||||
"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"),
|
||||||
@@ -16,11 +12,15 @@ 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"),
|
||||||
|
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||||
|
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||||
|
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||||
|
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||||
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/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"),
|
||||||
|
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||||
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
||||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { Aufnahme, Objekt } from "#lib/server/prisma.js";
|
import { Aufnahme, Objekt } from "#lib/client/prisma.js";
|
||||||
import { api } from "astro-typesafe-api/client";
|
import { api } from "astro-typesafe-api/client";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
|
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ xl:grid-cols-4 xl:gap-x-8 xl:gap-y-8
|
|||||||
>
|
>
|
||||||
<option>Bitte auswählen</option>
|
<option>Bitte auswählen</option>
|
||||||
{#each hotWaterProductionTypes as type, i}
|
{#each hotWaterProductionTypes as type, i}
|
||||||
<option value={i}>{type}</option>
|
<option value={type}>{type}</option>
|
||||||
{/each}
|
{/each}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
export let ausweistyp: AusweisTyp = Enums.AusweisTyp.Standard;
|
export let ausweistyp: AusweisTyp = Enums.AusweisTyp.Standard;
|
||||||
|
|
||||||
async function ausweisAbschicken() {
|
async function ausweisAbschicken() {
|
||||||
|
// Wir müssen überprüfen, dass mindestens ein Baujahr eingegeben wurde.
|
||||||
if (aufnahme.baujahr_gebaeude.length === 0) {
|
if (aufnahme.baujahr_gebaeude.length === 0) {
|
||||||
(form.querySelector("input[name='baujahr_gebaeude']") as HTMLInputElement).setCustomValidity("Die Eingabe von mindestens einem Baujahr ist verpflichtend.")
|
(form.querySelector("input[name='baujahr_gebaeude']") as HTMLInputElement).setCustomValidity("Die Eingabe von mindestens einem Baujahr ist verpflichtend.")
|
||||||
} else {
|
} else {
|
||||||
@@ -39,12 +40,12 @@
|
|||||||
(form.querySelector("input[name='baujahr_heizung']") as HTMLInputElement).setCustomValidity("")
|
(form.querySelector("input[name='baujahr_heizung']") as HTMLInputElement).setCustomValidity("")
|
||||||
}
|
}
|
||||||
|
|
||||||
new FormData(form).forEach((value, key) => {
|
// Wir holen uns die Daten aus dem Formular
|
||||||
if (key === "baujahr_heizung" || key === "baujahr_gebaeude" || key === "baujahr_klima") {
|
const data = new FormData(form);
|
||||||
return
|
// Und gleichen diese mit allen Feldern ab die "required" sind, damit stellen wir sicher, dass alles richtig ausgefüllt wurde.
|
||||||
}
|
(form.querySelectorAll("select[name][required],input[name][required]") as NodeListOf<HTMLInputElement | HTMLSelectElement>).forEach((element) => {
|
||||||
|
const value = data.get(element.getAttribute("name") as string)
|
||||||
|
|
||||||
const element = (form.querySelector(`[name='${key}']`) as HTMLSelectElement);
|
|
||||||
if (!value && element.required) {
|
if (!value && element.required) {
|
||||||
element.setCustomValidity("Eine Auswahl ist verpflichtend.")
|
element.setCustomValidity("Eine Auswahl ist verpflichtend.")
|
||||||
} else {
|
} else {
|
||||||
@@ -52,6 +53,7 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Falls das Formular nicht valid ist markieren wir die fehlenden Felder.
|
||||||
if (!form.checkValidity()) {
|
if (!form.checkValidity()) {
|
||||||
// Entferne die Klasse "2xl:mt-[370px]" falls vorhanden
|
// Entferne die Klasse "2xl:mt-[370px]" falls vorhanden
|
||||||
form.classList.remove("2xl:mt-[370px]");
|
form.classList.remove("2xl:mt-[370px]");
|
||||||
@@ -98,8 +100,8 @@
|
|||||||
|
|
||||||
let loginAction: () => any = ausweisAbschicken;
|
let loginAction: () => any = ausweisAbschicken;
|
||||||
|
|
||||||
async function spaeterWeitermachen() {
|
async function speichern() {
|
||||||
loginAction = spaeterWeitermachen;
|
loginAction = speichern;
|
||||||
if (!(await validateAccessTokenClient())) {
|
if (!(await validateAccessTokenClient())) {
|
||||||
loginOverlayHidden = false;
|
loginOverlayHidden = false;
|
||||||
return
|
return
|
||||||
@@ -161,7 +163,7 @@ sm:grid-cols-[1fr_min-content_min-content_min-content] sm:justify-self-end">
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<button class="button" type="button" on:click={spaeterWeitermachen}
|
<button class="button" type="button" on:click={speichern}
|
||||||
>Später Weitermachen
|
>Später Weitermachen
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
|||||||
@@ -154,21 +154,21 @@ xl:grid-cols-4 xl:gap-x-8 xl:gap-y-8
|
|||||||
required
|
required
|
||||||
>
|
>
|
||||||
<option>bitte auswählen</option>
|
<option>bitte auswählen</option>
|
||||||
<option value="1.8">Standard (U-Wert 1,8)</option>
|
<option value={1.8}>Standard (U-Wert 1,8)</option>
|
||||||
<option value="5">Ganz alte Tür (U-Wert 5,0)</option>
|
<option value={5}>Ganz alte Tür (U-Wert 5,0)</option>
|
||||||
<option value="2.7">U-Wert 2,7</option>
|
<option value={2.7}>U-Wert 2,7</option>
|
||||||
<option value="3">U-Wert 3,0</option>
|
<option value={3}>U-Wert 3,0</option>
|
||||||
<option value="4.3">U-Wert 4,3</option>
|
<option value={4.3}>U-Wert 4,3</option>
|
||||||
<option value="1.1">U-Wert 1,1</option>
|
<option value={1.1}>U-Wert 1,1</option>
|
||||||
<option value="0.9">U-Wert 0,9</option>
|
<option value={0.9}>U-Wert 0,9</option>
|
||||||
<option value="0.85">U-Wert 0,85</option>
|
<option value={0.85}>U-Wert 0,85</option>
|
||||||
<option value="0.7">Passivhaustür (U-Wert 0,7)</option>
|
<option value={0.7}>Passivhaustür (U-Wert 0,7)</option>
|
||||||
<option value="0.6">Passivhaustür (U-Wert 0,6)</option>
|
<option value={0.6}>Passivhaustür (U-Wert 0,6)</option>
|
||||||
<option value="2.3">U-Wert 2,3</option>
|
<option value={2.3}>U-Wert 2,3</option>
|
||||||
<option value="1.6">U-Wert 1,6</option>
|
<option value={1.6}>U-Wert 1,6</option>
|
||||||
<option value="1.7">U-Wert 1,7</option>
|
<option value={1.7}>U-Wert 1,7</option>
|
||||||
<option value="1.3">U-Wert 1,3</option>
|
<option value={1.3}>U-Wert 1,3</option>
|
||||||
<option value="1">U-Wert 1,0</option>
|
<option value={1}>U-Wert 1,0</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
|
|||||||
@@ -318,6 +318,11 @@
|
|||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
|
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
||||||
|
<a
|
||||||
|
class="button text-sm"
|
||||||
|
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?id={ausweis.id}"
|
||||||
|
>Bearbeiten</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
|
import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
|
||||||
import Progressbar from "#components/Ausweis/Progressbar.svelte";
|
import Progressbar from "#components/Ausweis/Progressbar.svelte";
|
||||||
//import Hilfe from "#components/Ausweis/Hilfe.svelte";
|
|
||||||
|
|
||||||
import Bereich from "#components/labels/Bereich.svelte";
|
import Bereich from "#components/labels/Bereich.svelte";
|
||||||
|
|
||||||
@@ -19,10 +18,9 @@
|
|||||||
|
|
||||||
|
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Benutzer, Enums } from "#lib/client/prisma.js";
|
||||||
import {
|
import {
|
||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
BenutzerClient,
|
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
BildClient,
|
BildClient,
|
||||||
AufnahmeClient
|
AufnahmeClient
|
||||||
@@ -32,12 +30,16 @@
|
|||||||
export let ausweis: BedarfsausweisWohnenClient;
|
export let ausweis: BedarfsausweisWohnenClient;
|
||||||
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: Benutzer | null;
|
||||||
export let ausweistyp: Enums.AusweisTyp
|
export let ausweistyp: Enums.AusweisTyp
|
||||||
export let bilder: BildClient[] = []
|
export let bilder: BildClient[] = []
|
||||||
export let id: string;
|
export let id: string | null;
|
||||||
|
|
||||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && !id && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
// Wir holen die daten aus dem LocalStorage falls
|
||||||
|
// Der Nutzer kein Admin ist
|
||||||
|
// Der Ausweis noch nicht gespeichert wurde
|
||||||
|
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||||
|
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||||
const localStorageAusweis = localStorage.getItem("bedarfsausweis-wohnen.ausweis");
|
const localStorageAusweis = localStorage.getItem("bedarfsausweis-wohnen.ausweis");
|
||||||
if (localStorageAusweis) {
|
if (localStorageAusweis) {
|
||||||
ausweis = JSON.parse(localStorageAusweis)
|
ausweis = JSON.parse(localStorageAusweis)
|
||||||
|
|||||||
@@ -139,7 +139,7 @@
|
|||||||
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
|
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
|
||||||
new URL("/energieausweis-erstellen/verbrauchsausweis-gewerbe", window.location.origin),
|
new URL("/energieausweis-erstellen/verbrauchsausweis-gewerbe", window.location.origin),
|
||||||
[Enums.Ausweisart.BedarfsausweisWohnen]:
|
[Enums.Ausweisart.BedarfsausweisWohnen]:
|
||||||
new URL("/energieausweis-erstellen/bedarfsausweis-wohnen", window.location.origin),
|
new URL("/energieausweis-erstellen/bedarfsausweis-wohngebaeude", window.location.origin),
|
||||||
[Enums.Ausweisart.GEGNachweisWohnen]:
|
[Enums.Ausweisart.GEGNachweisWohnen]:
|
||||||
new URL("/angebot-anfragen/geg-nachweis-wohnen-anfragen", window.location.origin),
|
new URL("/angebot-anfragen/geg-nachweis-wohnen-anfragen", window.location.origin),
|
||||||
[Enums.Ausweisart.GEGNachweisGewerbe]:
|
[Enums.Ausweisart.GEGNachweisGewerbe]:
|
||||||
|
|||||||
@@ -52,7 +52,11 @@
|
|||||||
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||||
const anliegen = "Energieausweis erstellen";
|
const anliegen = "Energieausweis erstellen";
|
||||||
|
|
||||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && !id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-gewerbe.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
// Wir holen die daten aus dem LocalStorage falls
|
||||||
|
// Der Nutzer kein Admin ist
|
||||||
|
// Der Ausweis noch nicht gespeichert wurde
|
||||||
|
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||||
|
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-gewerbe.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||||
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-gewerbe.ausweis");
|
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-gewerbe.ausweis");
|
||||||
if (localStorageAusweis) {
|
if (localStorageAusweis) {
|
||||||
ausweis = JSON.parse(localStorageAusweis)
|
ausweis = JSON.parse(localStorageAusweis)
|
||||||
|
|||||||
@@ -57,9 +57,11 @@
|
|||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let id: string | null;
|
export let id: string | null;
|
||||||
|
|
||||||
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
|
// Wir holen die daten aus dem LocalStorage falls
|
||||||
// Wir schauen auch ob der Benutzer nicht vielleicht ein Admin ist, dann sollten wir nichts aus dem localStorage holen.
|
// Der Nutzer kein Admin ist
|
||||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && !id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
// Der Ausweis noch nicht gespeichert wurde
|
||||||
|
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||||
|
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && (!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)
|
||||||
|
|||||||
@@ -29,9 +29,11 @@
|
|||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let id: string | null;
|
export let id: string | null;
|
||||||
|
|
||||||
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
|
// Wir holen die daten aus dem LocalStorage falls
|
||||||
// Wir schauen auch ob der Benutzer nicht vielleicht ein Admin ist, dann sollten wir nichts aus dem localStorage holen.
|
// Der Nutzer kein Admin ist
|
||||||
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && !id && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
// Der Ausweis noch nicht gespeichert wurde
|
||||||
|
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||||
|
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
||||||
const localStorageAusweis = localStorage.getItem("geg-nachweis-wohnen.ausweis");
|
const localStorageAusweis = localStorage.getItem("geg-nachweis-wohnen.ausweis");
|
||||||
if (localStorageAusweis) {
|
if (localStorageAusweis) {
|
||||||
nachweis = JSON.parse(localStorageAusweis)
|
nachweis = JSON.parse(localStorageAusweis)
|
||||||
|
|||||||
@@ -28,7 +28,11 @@
|
|||||||
export let nachweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard;
|
export let nachweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard;
|
||||||
export let id: string | null;
|
export let id: string | null;
|
||||||
|
|
||||||
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && !id && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
// Wir holen die daten aus dem LocalStorage falls
|
||||||
|
// Der Nutzer kein Admin ist
|
||||||
|
// Der Ausweis noch nicht gespeichert wurde
|
||||||
|
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||||
|
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
||||||
const localStorageNachweis = localStorage.getItem("geg-nachweis-wohnen.ausweis");
|
const localStorageNachweis = localStorage.getItem("geg-nachweis-wohnen.ausweis");
|
||||||
if (localStorageNachweis) {
|
if (localStorageNachweis) {
|
||||||
nachweis = JSON.parse(localStorageNachweis)
|
nachweis = JSON.parse(localStorageNachweis)
|
||||||
|
|||||||
@@ -67,12 +67,12 @@ if (id) {
|
|||||||
// Der Ausweis scheint nicht zu existieren.
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
|||||||
export const GET = defineApiRoute({
|
export const GET = defineApiRoute({
|
||||||
input: z.object({
|
input: z.object({
|
||||||
plz: z.string().min(4).max(5),
|
plz: z.string().min(4).max(5),
|
||||||
startdatum: z.coerce.date(),
|
startdatum: z.coerce.date().nullable(),
|
||||||
enddatum: z.coerce.date(),
|
enddatum: z.coerce.date(),
|
||||||
genauigkeit: z.enum(["months", "years"]),
|
genauigkeit: z.enum(["months", "years"]),
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export const PATCH = defineApiRoute({
|
|||||||
updated_at: true,
|
updated_at: true,
|
||||||
created_at: true
|
created_at: true
|
||||||
}).merge(z.object({
|
}).merge(z.object({
|
||||||
startdatum: z.coerce.date()
|
startdatum: z.coerce.date().nullable(),
|
||||||
})),
|
})),
|
||||||
output: z.void(),
|
output: z.void(),
|
||||||
headers: {
|
headers: {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export const PUT = defineApiRoute({
|
|||||||
updated_at: true,
|
updated_at: true,
|
||||||
created_at: true
|
created_at: true
|
||||||
}).merge(z.object({
|
}).merge(z.object({
|
||||||
startdatum: z.coerce.date()
|
startdatum: z.coerce.date().nullable()
|
||||||
})),
|
})),
|
||||||
aufnahme_id: UUidWithPrefix
|
aufnahme_id: UUidWithPrefix
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export const PATCH = defineApiRoute({
|
|||||||
created_at: true,
|
created_at: true,
|
||||||
updated_at: true
|
updated_at: true
|
||||||
}).merge(z.object({
|
}).merge(z.object({
|
||||||
startdatum: z.coerce.date()
|
startdatum: z.coerce.date().nullable()
|
||||||
})),
|
})),
|
||||||
output: z.void(),
|
output: z.void(),
|
||||||
headers: {
|
headers: {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export const PUT = defineApiRoute({
|
|||||||
},
|
},
|
||||||
input: z.object({
|
input: z.object({
|
||||||
ausweis: VerbrauchsausweisWohnenSchema.merge(z.object({
|
ausweis: VerbrauchsausweisWohnenSchema.merge(z.object({
|
||||||
startdatum: z.coerce.date()
|
startdatum: z.coerce.date().nullable()
|
||||||
})).omit({
|
})).omit({
|
||||||
id: true,
|
id: true,
|
||||||
benutzer_id: true,
|
benutzer_id: true,
|
||||||
|
|||||||
@@ -2,78 +2,79 @@
|
|||||||
|
|
||||||
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, ObjektClient, BildClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { Aufnahme, BedarfsausweisWohnen, Bild, Enums, Objekt } from "#lib/server/prisma";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
import { getAufnahme, getObjekt, getBilder, getBedarfsausweisWohnen } from "#lib/server/db";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
|
||||||
import { Enums } from "#lib/server/prisma";
|
|
||||||
|
|
||||||
const id = Astro.url.searchParams.get("uid") || "";
|
const id = Astro.url.searchParams.get("id");
|
||||||
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
||||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
|
||||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
|
||||||
let bilder: BildClient[] = []
|
|
||||||
|
|
||||||
const valid = validateAccessTokenServer(Astro);
|
let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
|
||||||
|
let aufnahme: Aufnahme = {} as Aufnahme;
|
||||||
|
let objekt: Objekt = {} as Objekt;
|
||||||
|
let bilder: Bild[] = []
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
const user = await getCurrentUser(Astro)
|
||||||
|
|
||||||
if (id) {
|
if (id) {
|
||||||
if (!valid) {
|
if (!user) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
|
||||||
ausweis = await caller["bedarfsausweis-wohnen"]._id.GET.fetch(null, {
|
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._id.GET.fetch(null, {
|
if (!ausweis || ausweis.benutzer_id !== user.id) {
|
||||||
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.
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch(e) {
|
|
||||||
|
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(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||||
|
|
||||||
|
if (!objekt) {
|
||||||
|
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
||||||
|
return Astro.redirect(
|
||||||
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
bilder = await getBilder(aufnahme.id);
|
||||||
|
} else if (aufnahme_id) {
|
||||||
|
if (!user) {
|
||||||
|
return Astro.redirect(
|
||||||
|
`/auth/login?redirect=${Astro.url.toString()}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
||||||
|
|
||||||
|
if (!aufnahme) {
|
||||||
|
// Die Aufnahme existiert wohl nicht.
|
||||||
|
return Astro.redirect(
|
||||||
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||||
|
|
||||||
|
if (!objekt) {
|
||||||
|
// Das Objekt existiert nicht.
|
||||||
|
return Astro.redirect(
|
||||||
|
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -81,5 +82,5 @@ if (id) {
|
|||||||
|
|
||||||
---
|
---
|
||||||
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
||||||
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id}></BedarfsausweisWohnenModule>
|
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id} {user}></BedarfsausweisWohnenModule>
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
@@ -64,12 +64,12 @@ if (uid) {
|
|||||||
// Der Ausweis scheint nicht zu existieren.
|
// Der Ausweis scheint nicht zu existieren.
|
||||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return Astro.redirect(
|
return Astro.redirect(
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user