Dashboard

This commit is contained in:
Jens Cornelsen
2025-04-24 13:39:28 +02:00
parent b64282a7ca
commit 7ba5c9de92
3 changed files with 71 additions and 61 deletions

View File

@@ -30,14 +30,14 @@ export const createCaller = createCallerFactory({
"rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"), "rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"),
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"), "rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
"rechnung": await import("../src/pages/api/rechnung/index.ts"), "rechnung": await import("../src/pages/api/rechnung/index.ts"),
"ticket": await import("../src/pages/api/ticket/index.ts"),
"user": await import("../src/pages/api/user/index.ts"), "user": await import("../src/pages/api/user/index.ts"),
"user/self": await import("../src/pages/api/user/self.ts"), "user/self": await import("../src/pages/api/user/self.ts"),
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"), "verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"), "verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
"ticket": await import("../src/pages/api/ticket/index.ts"),
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"), "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
"aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"), "aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"),
"aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"), "aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"),
"aufnahme/[id]/unterlagen": await import("../src/pages/api/aufnahme/[id]/unterlagen.ts"), "aufnahme/[id]/unterlagen": await import("../src/pages/api/aufnahme/[id]/unterlagen.ts"),

View File

@@ -259,7 +259,7 @@
let bedarfsausweisAdditionalInput: HTMLInputElement; let bedarfsausweisAdditionalInput: HTMLInputElement;
</script> </script>
<div class="relative bg-base-200 border border-base-300 rounded-lg p-4 m-2"> <div class="relative bg-base-200 border border-base-300 rounded-lg p-4 mx-2">
{#if ausweis.storniert} {#if ausweis.storniert}
<div <div
class="absolute top-0 left-0 w-full h-full bg-[rgba(0,0,0,0.7)] z-[5] rounded-lg select-none" class="absolute top-0 left-0 w-full h-full bg-[rgba(0,0,0,0.7)] z-[5] rounded-lg select-none"
@@ -390,6 +390,7 @@
{/if} {/if}
<div class="flex flex-row justify-start items-center mb-4"> <div class="flex flex-row justify-start items-center mb-4">
<a <a
class="p-1 rounded-lg hover:bg-gray-200 mr-2 border-2 border-gray-300" class="p-1 rounded-lg hover:bg-gray-200 mr-2 border-2 border-gray-300"
title="PDF Herunterladen" title="PDF Herunterladen"
@@ -414,8 +415,53 @@
<img src="../../images/dashboard/DatenblattKreuz.svg" width="65" alt="Energieausweis"> <img src="../../images/dashboard/DatenblattKreuz.svg" width="65" alt="Energieausweis">
{/if} {/if}
</a> </a>
<div class="w-1/2 ml-4 text-sm">
<div class="flex flex-col gap-2 justify-end items-center ml-4"> {#if ausweis.bestellt}
{#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL}
Sie haben Hilfe zu diesem Ausweis angefordert. Sie werden <span class="font-bold">innerhalb der nächsten 48 Stunden</span> über die hinterlegte Telefonnummer vom IB Cornelsen kontaktiert.
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL}
Sie haben die offline Variant zu diesem Ausweis angefordert. Bitte <span class="font-bold">übermitteln Sie uns die letzten drei Jahre der Energieabrechnungen</span> Ihres Energieversorgers.
{:else if !ausweis.ausgestellt}
Der Ausweis wurde von Ihnen freigegeben und befindet sich <span class="font-bold">in Prüfung durch IB Cornelsen</span>
{/if}
{:else}
Der Ausweis wurde von Ihnen gespeichert <span class="font-bold">und muss noch bestellt werden.</span>
{/if}
</div>
</div>
<div class="text-sm mb-2">
<span class="font-bold">Rechnungsadresse</span><br>
{#if ausweisart == Enums.Ausweisart.GEGNachweisWohnen || ausweisart == Enums.Ausweisart.GEGNachweisGewerbe || ausweisart == Enums.Ausweisart.BedarfsausweisGewerbe}
{einpreisung?.empfaenger},
{#if einpreisung?.zusatzzeile !== null}
{einpreisung?.zusatzzeile},
{/if}
{einpreisung?.strasse}, {einpreisung?.plz} {einpreisung?.ort}
{:else}
{rechnung?.empfaenger},
{#if rechnung?.zusatzzeile !== null}
{rechnung?.zusatzzeile},
{/if}
{rechnung?.strasse}, {rechnung?.plz} {rechnung?.ort}
{/if}
</div>
<div class="text-sm mb-2">
<span class="font-bold">Versandadresse</span><br>
{#if ausweisart == Enums.Ausweisart.GEGNachweisWohnen || ausweisart == Enums.Ausweisart.GEGNachweisGewerbe || ausweisart == Enums.Ausweisart.BedarfsausweisGewerbe}
{einpreisung?.versand_empfaenger},
{#if einpreisung?.versand_zusatzzeile !== null}
{einpreisung?.versand_zusatzzeile},
{/if}
{einpreisung?.versand_strasse}, {einpreisung?.versand_plz} {einpreisung?.versand_ort}
{:else}
{rechnung?.versand_empfaenger},
{#if rechnung?.versand_zusatzzeile !== null}
{rechnung?.versand_zusatzzeile},
{/if}
{rechnung?.versand_strasse}, {rechnung?.versand_plz} {rechnung?.versand_ort}
{/if}
</div>
<div class="flex flex-row gap-2 justify-end items-center mt-4">
{#if !ausweis.storniert && !ausweis.ausgestellt} {#if !ausweis.storniert && !ausweis.ausgestellt}
<!-- <!--
<a <a
@@ -491,20 +537,7 @@
<button class="button text-sm" title="Registriernummer anfordern" on:click={registriernummer}>R</button> <button class="button text-sm" title="Registriernummer anfordern" on:click={registriernummer}>R</button>
{/if} {/if}
</div> </div>
</div>
<div class="mt-8">
{#if ausweis.bestellt}
{#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL}
<p class="text-sm">Sie haben Hilfe zu diesem Ausweis angefordert. Sie werden <span class="font-bold">innerhalb der nächsten 48 Stunden</span> über die hinterlegte Telefonnummer vom IB Cornelsen kontaktiert.</p>
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL}
<p class="text-sm">Sie haben die offline Variant zu diesem Ausweis angefordert. Bitte <span class="font-bold">übermitteln Sie uns die letzten drei Jahre der Energieabrechnungen</span> Ihres Energieversorgers.</p>
{:else if !ausweis.ausgestellt}
<p class="text-sm">Der Ausweis wurde von Ihnen freigegeben und befindet sich <span class="font-bold">in Prüfung durch IB Cornelsen</span></p>
{/if}
{:else}
<p class="text-sm">Der Ausweis wurde von Ihnen gespeichert <span class="font-bold">und muss noch bestellt werden.</span></p>
{/if}
</div>
</div> </div>
</div> </div>
@@ -680,39 +713,8 @@
<div class="relative bg-base-200 border border-base-300 rounded-lg p-4 mx-2"> <div class="relative bg-base-200 border border-base-300 rounded-lg p-4 mx-2">
<div class="card-body"> <div class="card-body">
<div class="flex flex-row flex-wrap items-center gap-2"> <div class="flex flex-col flex-wrap items-left gap-2">
<div class="text-sm">
<span class="font-bold">Rechnungsadresse</span><br>
{#if ausweisart == Enums.Ausweisart.GEGNachweisWohnen || ausweisart == Enums.Ausweisart.GEGNachweisGewerbe || ausweisart == Enums.Ausweisart.BedarfsausweisGewerbe}
{einpreisung?.empfaenger},
{#if einpreisung?.zusatzzeile !== null}
{einpreisung?.zusatzzeile},
{/if}
{einpreisung?.strasse}, {einpreisung?.plz} {einpreisung?.ort}
{:else}
{rechnung?.empfaenger},
{#if rechnung?.zusatzzeile !== null}
{rechnung?.zusatzzeile},
{/if}
{rechnung?.strasse}, {rechnung?.plz} {rechnung?.ort}
{/if}
</div>
<div class="text-sm mb-2">
<span class="font-bold">Versandadresse</span><br>
{#if ausweisart == Enums.Ausweisart.GEGNachweisWohnen || ausweisart == Enums.Ausweisart.GEGNachweisGewerbe || ausweisart == Enums.Ausweisart.BedarfsausweisGewerbe}
{einpreisung?.versand_empfaenger},
{#if einpreisung?.versand_zusatzzeile !== null}
{einpreisung?.versand_zusatzzeile},
{/if}
{einpreisung?.versand_strasse}, {einpreisung?.versand_plz} {einpreisung?.versand_ort}
{:else}
{rechnung?.versand_empfaenger},
{#if rechnung?.versand_zusatzzeile !== null}
{rechnung?.versand_zusatzzeile},
{/if}
{rechnung?.versand_strasse}, {rechnung?.versand_plz} {rechnung?.versand_ort}
{/if}
</div>
<h3 class="font-semibold text-lg">Unterlagen</h3> <h3 class="font-semibold text-lg">Unterlagen</h3>
<div class="text-sm"> <div class="text-sm">
{#if aufnahme.unterlagen.length > 0} {#if aufnahme.unterlagen.length > 0}
@@ -721,6 +723,14 @@
{/each} {/each}
{/if} {/if}
</div> </div>
<h3 class="font-semibold text-lg">Bilder</h3>
<div class="text-sm">
{#each aufnahme.bilder as bild, i (i)}
<img src="/bilder/{bild.id}.jpg" alt={bild.kategorie} loading="lazy" class="max-h-[10vh] h-full w-full object-contain">
{/each}
</div>
</div> </div>
<div class="dropdown dropdown-top items-end absolute bottom-4 right-4 z-50"> <div class="dropdown dropdown-top items-end absolute bottom-4 right-4 z-50">

View File

@@ -38,19 +38,19 @@ export const BedarfsausweisWohnenSchema = z.object({
volumen: z.number().nullish(), volumen: z.number().nullish(),
dicht: z.boolean().nullish(), dicht: z.boolean().nullish(),
fenster_flaeche_1: z.number().nullish(), fenster_flaeche_1: z.number().nullish(),
fenster_art_1: z.number().nullish(), fenster_art_1: z.string().nullish(),
fenster_flaeche_2: z.number().nullish(), fenster_flaeche_2: z.number().nullish(),
fenster_art_2: z.number().nullish(), fenster_art_2: z.string().nullish(),
dachfenster_flaeche: z.number().nullish(), dachfenster_flaeche: z.number().nullish(),
dachfenster_art: z.number().nullish(), dachfenster_art: z.string().nullish(),
haustuer_flaeche: z.number().nullish(), haustuer_flaeche: z.number().nullish(),
haustuer_art: z.number().nullish(), haustuer_art: z.string().nullish(),
dach_bauart: z.string().nullish(), dach_bauart: z.string().nullish(),
decke_bauart: z.string().nullish(), decke_bauart: z.string().nullish(),
dach_daemmung: z.number().nullish(), dach_daemmung: z.string().nullish(),
decke_daemmung: z.number().nullish(), decke_daemmung: z.string().nullish(),
aussenwand_daemmung: z.number().nullish(), aussenwand_daemmung: z.string().nullish(),
boden_daemmung: z.number().nullish(), boden_daemmung: z.string().nullish(),
aussenwand_bauart: z.string().nullish(), aussenwand_bauart: z.string().nullish(),
boden_bauart: z.string().nullish(), boden_bauart: z.string().nullish(),
warmwasser_verteilung: z.string().nullish(), warmwasser_verteilung: z.string().nullish(),