diff --git a/src/components/Ausweis/Verbrauch.svelte b/src/components/Ausweis/Verbrauch.svelte index 117eea0b..ee0c8b66 100644 --- a/src/components/Ausweis/Verbrauch.svelte +++ b/src/components/Ausweis/Verbrauch.svelte @@ -14,6 +14,7 @@ GebaeudeClient, VerbrauchsausweisWohnenClient, } from "./types.js"; + import { addNotification } from "#components/Notifications/shared.js"; export let gebaeude: GebaeudeClient; export let gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient; @@ -81,6 +82,22 @@ } } + $: { + console.log(month, year); + + if ((availableDates.filter(date => date.month === month && date.year === year).length === 0) && typeof month === "number" && typeof year === "number") { + addNotification({ + message: "Monat nicht verfügbar.", + subtext: "Der ausgewählte Monat ist in diesem Jahr nicht verfügbar, bitte wählen sie einen neuen Start Monat.", + dismissable: true, + type: "warning", + timeout: 0, + uid: "monat_nicht_verfuegbar", + selector: "select[name='energieverbrauch_zeitraum_monat']" + }) + } + } + $: abweichung = auditVerbrauchAbweichung(ausweis, gebaeude); @@ -147,7 +164,6 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 bind:value={month} required > - {#if year !== null} {#each availableDates.filter((date) => date.year == year) as date} {#each Array.from(availableDates.reduce((a, c) => { a.add(c.year); return a; diff --git a/src/components/Notifications/RawNotificationWrapper.svelte b/src/components/Notifications/RawNotificationWrapper.svelte index 4a77163c..3ced0a61 100644 --- a/src/components/Notifications/RawNotificationWrapper.svelte +++ b/src/components/Notifications/RawNotificationWrapper.svelte @@ -1,3 +1,5 @@ + +
\ No newline at end of file diff --git a/src/components/Notifications/shared.ts b/src/components/Notifications/shared.ts index b59dce81..fcba5b92 100644 --- a/src/components/Notifications/shared.ts +++ b/src/components/Notifications/shared.ts @@ -20,6 +20,7 @@ export interface Notification { type: "error" | "success" | "info" | "warning"; onUserDismiss: () => any; uid?: string; + selector?: string; } export function updateNotification(uid: string, updater: Partial) { diff --git a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte index 2412c431..8b9bc038 100644 --- a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte +++ b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte @@ -11,16 +11,17 @@ import moment from "moment"; import { BitChecker } from "src/lib/BitChecker.js"; import { Enums } from "@ibcornelsen/database/client"; - import { BedarfsausweisWohnenClient, BenutzerClient, UploadedGebaeudeBild } from "#components/Ausweis/types.js"; + import { + BedarfsausweisWohnenClient, + BenutzerClient, + UploadedGebaeudeBild, + } from "#components/Ausweis/types.js"; import Bereich from "#components/labels/Bereich.svelte"; import ButtonSpaeterHilfe from "#components/Ausweis/ButtonSpaeterHilfe.svelte"; - export let ausweis: BedarfsausweisWohnenClient; export let user: BenutzerClient = {} as BenutzerClient; - - let gebaeude_aufnahme_allgemein = ausweis.gebaeude_aufnahme_allgemein || {}; let gebaeude = ausweis.gebaeude_aufnahme_allgemein?.gebaeude_stammdaten || {}; @@ -56,7 +57,6 @@ // images, // user // ); - // if (result !== null) { // // Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen. // // Sonst müsste er alles neu eingeben... @@ -150,32 +150,36 @@
- +
- +
- + - -
- +
+
Bitte geben Sie hier die Straße und Hausnummer des Gebäudes - ein.Bitte geben Sie hier die Straße und Hausnummer des + Gebäudes ein.
- + - +
Ort des Gebäudes wird automatisch ermittelt.
- +
Bitte geben Sie hier die beheizte Wohnfläche in m² ein. @@ -223,7 +227,7 @@ />
- +
Bitte wählen Sie hier den Gebäudetyp aus. @@ -247,7 +251,9 @@ - + @@ -260,19 +266,21 @@ - +
- +
Bitte geben Sie hier den Gebäudeteil ein. In den meisten - Fällen handelt es sich um das Gesamtgebäude. Sollte es sich - allerdings um ein Gebäude mit mehr als 10% Gewerbeanteil - handeln, so sollten 2 Ausweise erstellt werden. In diesem - Fall wählen Sie Gebäudeteil 'Wohnen' bzw. Gebäudeteil - 'Gewerbe'.Bitte geben Sie hier den Gebäudeteil ein. In den + meisten Fällen handelt es sich um das Gesamtgebäude. + Sollte es sich allerdings um ein Gebäude mit mehr als + 10% Gewerbeanteil handeln, so sollten 2 Ausweise + erstellt werden. In diesem Fall wählen Sie Gebäudeteil + 'Wohnen' bzw. Gebäudeteil 'Gewerbe'.
- -
- +
- + diff --git a/src/modules/VerbrauchsausweisWohnen/AusweisWeiter.svelte b/src/modules/VerbrauchsausweisWohnen/AusweisWeiter.svelte index 37d9250c..423642a3 100644 --- a/src/modules/VerbrauchsausweisWohnen/AusweisWeiter.svelte +++ b/src/modules/VerbrauchsausweisWohnen/AusweisWeiter.svelte @@ -98,7 +98,6 @@ gebaeude }) }) - // TODO: Ticket mit Fehldermeldung abschicken. } addNotification({ diff --git a/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte b/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte index 2358a5c6..cc213f68 100644 --- a/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte +++ b/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte @@ -3,13 +3,11 @@ import Progressbar from "#components/Ausweis/Progressbar.svelte"; import Hilfe from "#components/Ausweis/Hilfe.svelte"; - import BereichLabel from "#labels/BereichLabel.svelte"; import Bereich from "#labels/Bereich.svelte"; //import HelpLabel from "#labels/HelpLabel.svelte"; //import Inputlabel from "#labels/InputLabel.svelte"; //import Label from "#components/Label.svelte"; - import ButtonSpaeterHilfe from "#components/Ausweis/ButtonSpaeterHilfe.svelte"; import Ausweisart from "#components/Ausweis/Ausweisart.svelte"; import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte"; @@ -25,11 +23,12 @@ import AusweisPreviewContainer from "#components/Ausweis/AusweisPreviewContainer.svelte"; //import ZipSearch from "#components/PlzSuche.svelte"; - + import { RawNotificationWrapper, RawNotification, notifications, + deleteNotification, } from "#components/Notifications/index.js"; import { auditHeizungGebaeudeBaujahr } from "#components/Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js"; import { auditHeizungJuengerDreiJahre } from "#components/Verbrauchsausweis/audits/HeizungJuengerDreiJahre.js"; @@ -58,14 +57,13 @@ import { verbrauchsausweisWohnenSpeichern } from "src/client/lib/verbrauchsausweisWohnenSpeichern.js"; import AusweisWeiter from "./AusweisWeiter.svelte"; import { Enums } from "@ibcornelsen/database/client"; + import { OpenInNewWindow } from "radix-svelte-icons"; // TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann // wenn gebaeude_aufnahme_allgemein oder gebaeude_stammdaten nicht existiert... export let ausweis: VerbrauchsausweisWohnenClient; export let user: BenutzerClient = {} as BenutzerClient; - - let gebaeude_aufnahme_allgemein = ausweis.gebaeude_aufnahme_allgemein || {}; let gebaeude = ausweis.gebaeude_aufnahme_allgemein?.gebaeude_stammdaten || {}; @@ -102,11 +100,13 @@ gebaeude_aufnahme_allgemein.baujahr_heizung = [1952]; gebaeude_aufnahme_allgemein.saniert = true; gebaeude_aufnahme_allgemein.einheiten = 1; - gebaeude_aufnahme_allgemein.gebaeudetyp = "Einfamilienhaus" - gebaeude_aufnahme_allgemein.keller = Enums.Heizungsstatus.NICHT_VORHANDEN - gebaeude_aufnahme_allgemein.dachgeschoss = Enums.Heizungsstatus.NICHT_VORHANDEN - gebaeude_aufnahme_allgemein.lueftung = "Fensterlüftung" - gebaeude_aufnahme_allgemein.kuehlung = "1" + gebaeude_aufnahme_allgemein.gebaeudetyp = "Einfamilienhaus"; + gebaeude_aufnahme_allgemein.keller = + Enums.Heizungsstatus.NICHT_VORHANDEN; + gebaeude_aufnahme_allgemein.dachgeschoss = + Enums.Heizungsstatus.NICHT_VORHANDEN; + gebaeude_aufnahme_allgemein.lueftung = "Fensterlüftung"; + gebaeude_aufnahme_allgemein.kuehlung = "1"; ausweis.ausstellgrund = "Vermietung"; ausweis.verbrauch_1 = 15000; ausweis.verbrauch_2 = 14000; @@ -114,7 +114,7 @@ gebaeude_aufnahme_allgemein.flaeche = 152; gebaeude_aufnahme_allgemein.nutzflaeche = 172; ausweis.keller_beheizt = true; - + gebaeude_aufnahme_allgemein.brennstoff_1 = "Erdgas H"; ausweis.einheit_1 = "kWh"; ausweis.anteil_warmwasser_1 = 18; @@ -169,8 +169,6 @@ } - -
@@ -185,27 +183,24 @@

Verbrauchsausweis erstellen - 45€

- -
- +
- +
- @@ -218,29 +213,37 @@ - - + bind:gebaeude + bind:gebaeude_aufnahme_allgemein + bind:ausweis + /> - - @@ -248,63 +251,87 @@
+ > +
+ +
-
- - -
- -
-
-
+
+
{#each Object.entries($notifications) as [uid, notification] (uid)} {@html notification.subtext} + {#if notification.selector} + + {/if} {/each} @@ -489,7 +516,7 @@ xs:grid-cols-2" für den Bedarfsausweis zu gelangen. {/if} - + {#if auditVerbrauchAbweichung(ausweis, gebaeude_aufnahme_allgemein).length > 0} Die Abweichung der Verbräuche zwischen Zeitraum {auditVerbrauchAbweichung( ausweis, - gebaeude_aufnahme_allgemein, - )[0]} und {auditVerbrauchAbweichung(ausweis, gebaeude_aufnahme_allgemein)[1]} beträgt mehr - als 30% und sie haben keinen Leerstand angegeben. Sind sie sich sicher, - dass das stimmt? + gebaeude_aufnahme_allgemein + )[0]} und {auditVerbrauchAbweichung( + ausweis, + gebaeude_aufnahme_allgemein + )[1]} beträgt mehr als 30% und sie haben keinen Leerstand angegeben. + Sind sie sich sicher, dass das stimmt? {/if}