Merge pull request #490 from IBCornelsen/main

get main
This commit is contained in:
Jens Cornelsen
2025-04-06 00:42:28 +02:00
committed by GitHub
34 changed files with 204 additions and 218 deletions

View File

@@ -6,7 +6,8 @@
import DashboardNachweis from "#components/Dashboard/DashboardNachweis.svelte";
import NotificationProvider from "#components/NotificationProvider/NotificationProvider.svelte";
import { Objekt } from "#lib/client/prisma.js";
import { ChevronLeft, ChevronRight } from "radix-svelte-icons";
import mime from "mime"
import { ChevronLeft, ChevronRight, FileText } from "radix-svelte-icons";
export let user: BenutzerClient;
export let aufnahme: AufnahmeKomplettClient;
@@ -32,9 +33,9 @@
{#if dropdownOpen}
<div class="absolut mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5" on:click|stopPropagation on:keydown|stopPropagation on:keyup|stopPropagation>
<div class="py-1" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
<a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?aufnahme={aufnahme.uid}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis Wohnen Erstellen</a>
<a href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?aufnahme={aufnahme.uid}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis Gewerbe Erstellen</a>
<a href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?aufnahme={aufnahme.uid}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Bedarfsausweis Erstellen</a>
<a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?aufnahme={aufnahme.id}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis Wohnen Erstellen</a>
<a href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?aufnahme={aufnahme.id}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis Gewerbe Erstellen</a>
<a href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?aufnahme={aufnahme.id}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Bedarfsausweis Erstellen</a>
</div>
</div>
{/if}
@@ -44,15 +45,24 @@
<div class="relative bg-gray-100 rounded-md flex justify-center items-center">
{#if aufnahme.bilder.length > 0}
<h3 class="font-semibold">Bilder</h3>
<Carousel perPage={3}>
{#each aufnahme.bilder as bild, i (i)}
<img src="/bilder/{bild.uid}.jpg" alt={bild.kategorie} class="max-h-[25vh] h-full w-full object-contain">
<img src="/bilder/{bild.id}.jpg" alt={bild.kategorie} class="max-h-[25vh] h-full w-full object-contain">
{/each}
<span slot="left-control" class="p-2.5 bg-opacity-50 bg-white block rounded-full"><ChevronLeft size={24}></ChevronLeft></span>
<span slot="right-control" class="p-2.5 bg-opacity-50 bg-white block rounded-full"><ChevronRight size={24}></ChevronRight></span>
</Carousel>
{/if}
</div>
{#if aufnahme.unterlagen.length > 0}
<h3 class="font-semibold">Unterlagen</h3>
<div class="grid grid-flow-col gap-4">
{#each aufnahme.unterlagen as unterlage}
<a href="/unterlagen/{unterlage.id}.{mime.getExtension(unterlage.mime)}" target="_blank" class="text-black flex flex-row items-center gap-2 bg-base-200 p-2 rounded-lg"><FileText size={32}></FileText> {unterlage.name}</a>
{/each}
</div>
{/if}
</div>

View File

@@ -2,7 +2,7 @@
import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
import Progressbar from "#components/Ausweis/Progressbar.svelte";
import Bereich from "#components/labels/Bereich.svelte";
import type { Bezahlmethoden } from "#lib/client/prisma.js";
import type { Bezahlmethoden, Unterlage } from "#lib/client/prisma.js";
import { Enums } from "#lib/client/prisma.js";
import {
API_ACCESS_TOKEN_COOKIE_NAME,
@@ -36,7 +36,7 @@
export let aufnahme: AufnahmeClient;
export let objekt: ObjektClient;
export let bilder: BildClient[];
export let unterlagen: UnterlageClient[];
export let unterlagen: Unterlage[];
export let rechnung: RechnungClient | null = null;
export let ausweisart: Enums.Ausweisart;
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
@@ -134,20 +134,24 @@
);
const zurueck = {
[Enums.Ausweisart.VerbrauchsausweisWohnen]:
`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.id}`,
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
`/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid=${ausweis.id}`,
[Enums.Ausweisart.BedarfsausweisWohnen]:
`/energieausweis-erstellen/bedarfsausweis-wohnen?uid=${ausweis.id}`,
[Enums.Ausweisart.GEGNachweisWohnen]:
`/angebot-anfragen/geg-nachweis-wohnen-anfragen?uid=${ausweis.id}`,
[Enums.Ausweisart.GEGNachweisGewerbe]:
`/angebot-anfragen/geg-nachweis-gewerbe-anfragen?uid=${ausweis.id}`,
[Enums.Ausweisart.BedarfsausweisGewerbe]:
`/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?uid=${ausweis.id}`,
[Enums.Ausweisart.VerbrauchsausweisWohnen]:
new URL("/energieausweis-erstellen/verbrauchsausweis-wohngebaeude", window.location.origin),
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
new URL("/energieausweis-erstellen/verbrauchsausweis-gewerbe", window.location.origin),
[Enums.Ausweisart.BedarfsausweisWohnen]:
new URL("/energieausweis-erstellen/bedarfsausweis-wohnen", window.location.origin),
[Enums.Ausweisart.GEGNachweisWohnen]:
new URL("/angebot-anfragen/geg-nachweis-wohnen-anfragen", window.location.origin),
[Enums.Ausweisart.GEGNachweisGewerbe]:
new URL("/angebot-anfragen/geg-nachweis-gewerbe-anfragen", window.location.origin),
[Enums.Ausweisart.BedarfsausweisGewerbe]:
new URL("/angebot-anfragen/bedarfsausweis-gewerbe-anfragen", window.location.origin),
}[ausweisart];
if (ausweis.id) {
zurueck.searchParams.append("id", ausweis.id)
}
async function anfordern() {
if (!form.checkValidity()) {
addNotification({
@@ -182,7 +186,7 @@
}
try {
const { uid } = await api.rechnung.anfordern.PUT.fetch(
const { id } = await api.rechnung.anfordern.PUT.fetch(
{
email: email,
empfaenger: empfaenger,
@@ -206,7 +210,7 @@
// Alle alten Ausweisdateien im localStorage löschen.
localStorage.clear();
window.location.href = `/einpreisung/success?e=${uid}&a=${result.nachweis_id}`;
window.location.href = `/einpreisung/success?e=${id}&a=${result.nachweis_id}`;
} catch (e) {
addNotification({
dismissable: true,
@@ -436,7 +440,7 @@
active={1}
steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]}
{ausweisart}
ausweistyp={ausweis.ausweistyp}
ausweistyp={"ausweistyp" in ausweis ? ausweis.ausweistyp : ausweis.nachweistyp}
anliegen={"Angebot anfragen"}
/>
{:else}
@@ -1026,7 +1030,7 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center"
class="grid grid-cols-1 gap-x-2 gap-y-1 self-start mt-0
sm:grid-cols-[min-content_min-content_min-content] sm:justify-self-end sm:mt-8"
>
<a class="order-3 sm:order-1 button cursor-pointer text-center sm:text-start" href={zurueck}>Zurück</a>
<a class="order-3 sm:order-1 button cursor-pointer text-center sm:text-start" href={zurueck.toString()}>Zurück</a>

View File

@@ -59,7 +59,7 @@
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
// Wir schauen auch ob der Benutzer nicht vielleicht ein Admin ist, dann sollten wir nichts aus dem localStorage holen.
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && !id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
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))) {
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis");
if (localStorageAusweis) {
ausweis = JSON.parse(localStorageAusweis)

View File

@@ -214,6 +214,7 @@
bind:user
bind:objekt
bind:aufnahme
showHelpButton={false}
ausweisart={Enums.Ausweisart.BedarfsausweisGewerbe}
{form}
{skala}

View File

@@ -231,6 +231,7 @@
bind:user
bind:objekt
bind:aufnahme
showHelpButton={false}
ausweisart={Enums.Ausweisart.GEGNachweisGewerbe}
{form}
{skala}

View File

@@ -147,35 +147,6 @@
</Bereich>
<Bereich bereich="D" title="Gebäudepläne & Unterlagen">
<div
class="bereich-box grid grid-cols-1 lg:grid-cols-2 gap-x-6 mt-6"
>
<div class="md:box md:card mb-0">
<div class="font-bold mb-2">Pläne</div>
<div>
Hier können sie Grundrisspläne, Ansichtspläne und
Schnitte hochladen. Die Dateien können entweder im PDF
Format oder als Bild hochgeladen werden.
</div>
</div>
<div class="md:box md:card mb-0 mt-6 md:mt-0">
<div>
<strong
>Bitte laden Sie hier mind. 1 Dokument hoch:</strong
>
</div>
<FileGrid
max={Infinity}
min={1}
name={"plaene"}
bind:files={plaene}
bind:ausweis={nachweis}
bind:objekt
></FileGrid>
</div>
</div>
<div
class="bereich-box grid grid-cols-1 lg:grid-cols-2 gap-x-6 mt-6"
>
@@ -189,6 +160,14 @@
können entweder im PDF Format oder als Bild hochgeladen
werden.
</div>
<div class="font-bold mb-2">Pläne</div>
<div>
Hier können sie Grundrisspläne, Ansichtspläne und
Schnitte hochladen. Die Dateien können entweder im PDF
Format oder als Bild hochgeladen werden.
</div>
</div>
<div class="md:box md:card mb-0 mt-6 md:mt-0">
@@ -212,6 +191,7 @@
bind:user
bind:objekt
bind:aufnahme
showHelpButton={false}
ausweisart={Enums.Ausweisart.GEGNachweisWohnen}
{form}
{skala}