Funktionalität anfänglich überprüft.
This commit is contained in:
BIN
public/placeholder.png
Normal file
BIN
public/placeholder.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
@@ -11,7 +11,7 @@
|
|||||||
GebaeudeClient,
|
GebaeudeClient,
|
||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types";
|
} from "./types.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let gebaeude: GebaeudeClient;
|
export let gebaeude: GebaeudeClient;
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
name={"gebaeude_image"}
|
name={"gebaeude_image"}
|
||||||
kategorie={Enums.BilderKategorie.Gebaeude}
|
kategorie={Enums.BilderKategorie.Gebaeude}
|
||||||
max={1}
|
max={1}
|
||||||
|
min={1}
|
||||||
bind:gebaeude
|
bind:gebaeude
|
||||||
bind:images
|
bind:images
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
class="rounded-e-none"
|
class="rounded-e-none"
|
||||||
name="ausstellgrund"
|
name="ausstellgrund"
|
||||||
placeholder="Anlass"
|
placeholder="Anlass"
|
||||||
|
bind:value={ausweis.ausstellgrund}
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
<option disabled selected value={false}>Bitte auswählen</option>
|
<option disabled selected value={false}>Bitte auswählen</option>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import HelpLabel from "#labels/HelpLabel.svelte";
|
import HelpLabel from "#labels/HelpLabel.svelte";
|
||||||
import Inputlabel from "#labels/InputLabel.svelte";
|
import Inputlabel from "#labels/InputLabel.svelte";
|
||||||
|
|
||||||
import HeizungImage from "./HeizungImage.svelte";
|
import HeizungImage from "./HeizungImage.svelte";
|
||||||
import AusweisPreviewContainer from "./AusweisPreviewContainer.svelte";
|
import AusweisPreviewContainer from "./AusweisPreviewContainer.svelte";
|
||||||
@@ -16,16 +16,17 @@ import Inputlabel from "#labels/InputLabel.svelte";
|
|||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { boolean } from "astro:schema";
|
import { boolean } from "astro:schema";
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte"
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
|
|
||||||
export let gebaeude: GebaeudeClient;
|
export let gebaeude: GebaeudeClient;
|
||||||
export let gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient;
|
export let gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: UploadedGebaeudeBild[];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="sanierungszustand" class="bereich-box grid
|
<div
|
||||||
|
id="sanierungszustand"
|
||||||
|
class="bereich-box grid
|
||||||
grid-cols-1 gap-x-4 gap-y-2
|
grid-cols-1 gap-x-4 gap-y-2
|
||||||
|
|
||||||
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
||||||
@@ -33,28 +34,96 @@ md:grid-cols-2 md:gap-x-6 md:gap-y-8
|
|||||||
|
|
||||||
xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
|
xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
|
||||||
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
||||||
">
|
"
|
||||||
|
>
|
||||||
<SanierungsOption label="Zentral/Etage" name="zentralheizung" help="Bitte anklicken wenn die Heizwärme <strong>zentral erzeugt</strong> und von dort in die Räume verteilt wird. Gasthermen und Etagenheizungen in der Wohnung gehören auch dazu." value="ZH" bind:checked={gebaeude_aufnahme_allgemein.zentralheizung}></SanierungsOption>
|
<SanierungsOption
|
||||||
<SanierungsOption label="Einzelofen" name="einzelofen" help="Bei <strong>dezentraler Erzeugung</strong> in den Räumen wie z.B. Nachtspeicher, Kami- oder Kachelofen. Dezentrale Klimageräte zur Wärmeerzeugung gehören auch dazu." value="EO" bind:checked={gebaeude_aufnahme_allgemein.einzelofen}></SanierungsOption>
|
label="Zentral/Etage"
|
||||||
<SanierungsOption label="Durchlauferhitzer (elektrisch)" name="durchlauf_erhitzer" help="Wenn <strong>dezentrale</strong> elektrische <strong>Warmwassererzeugung</strong> vorhanden ist" value="DH" bind:checked={gebaeude_aufnahme_allgemein.durchlauf_erhitzer}></SanierungsOption>
|
name="zentralheizung"
|
||||||
<SanierungsOption label="Standardkessel" name="standard_kessel" help="Gemeint sind Konstanttemperaturkessel und ältere Gebläse- oder Feststoffkessel" value="SK" bind:checked={gebaeude_aufnahme_allgemein.standard_kessel}></SanierungsOption>
|
help="Bitte anklicken wenn die Heizwärme <strong>zentral erzeugt</strong> und von dort in die Räume verteilt wird. Gasthermen und Etagenheizungen in der Wohnung gehören auch dazu."
|
||||||
<SanierungsOption label="Solarsystem für Warmwasser" name="solarsystem_warmwasser" help="Solarpanele auf dem Dach zur <strong>alternativen Warmwassererzeugung</strong> aus Sonnenenergie. Nicht zu verwechseln mit Photovoltaik." value="SSWW" bind:checked={gebaeude_aufnahme_allgemein.solarsystem_warmwasser}></SanierungsOption>
|
value="ZH"
|
||||||
<SanierungsOption label="Wärmepumpe" name="waermepumpe" help="Elektrisch betriebener Wärmerzeuger der thermische Energie aus natürlichen Wärmequellen wie der <strong>Umgebungsluft, dem Erdreich oder Grundwasser</strong> nutzbar macht." value="WP" bind:checked={gebaeude_aufnahme_allgemein.waermepumpe}></SanierungsOption>
|
bind:checked={gebaeude_aufnahme_allgemein.zentralheizung}
|
||||||
<SanierungsOption label="Niedertemperaturkessel" name="niedertemperatur_kessel" help="Heizkessel der mit <strong>niedrigen Vorlauftemperaturen</strong> (35-75 °C) arbeitet. Im Vergleich zum Brennwertkessel ist er weniger effizient, wird aber noch in älteren Heizsystemen eingesetzt." value="NK" bind:checked={gebaeude_aufnahme_allgemein.niedertemperatur_kessel}></SanierungsOption>
|
></SanierungsOption>
|
||||||
<SanierungsOption label="Brennwertkessel" name="brennwert_kessel" help="Hat einen besonders <strong>hohen Wirkungsgrad</strong> weil er die im Abgas enthaltene Kondensationswärme zurückgewinnt. Auch zu erkennen am doppelwandigem Abgasrohr welches sich nicht erhitzt." value="BWK" bind:checked={gebaeude_aufnahme_allgemein.brennwert_kessel}></SanierungsOption>
|
<SanierungsOption
|
||||||
<SanierungsOption label="Warmwasserrohre gedämmt" name="warmwasser_rohre_gedaemmt" help="Gemeint sind die sichtbaren Rohre des Verteilsystems Warmwasser. Gedämmte Rohre sind an den <strong>dunklen Ummantelungen</strong> (Manschetten) zu erkennen." value="BWK" bind:checked={gebaeude_aufnahme_allgemein.warmwasser_rohre_gedaemmt}></SanierungsOption>
|
label="Einzelofen"
|
||||||
<SanierungsOption label="Heizungsrohre gedämmt" name="heizungsrohre_gedaemmt" help="Gemeint sind die sichtbaren Rohre des Verteilsystems Heizung. Gedämmte Rohre sind an den <strong>dunklen Ummantelungen</strong> (Manschetten) zu erkennen.ext" value="HRGD" bind:checked={gebaeude_aufnahme_allgemein.heizungsrohre_gedaemmt}></SanierungsOption>
|
name="einzelofen"
|
||||||
<SanierungsOption label="Zirkulation" name="zirkulation" help="Kreislauf von Heizungs- oder Warmwasser <strong>innerhalb eines Leitungssystems</strong>, um eine gleichmäßige Wärmeverteilung sicherzustellen." value="ZK" bind:checked={gebaeude_aufnahme_allgemein.zirkulation}></SanierungsOption>
|
help="Bei <strong>dezentraler Erzeugung</strong> in den Räumen wie z.B. Nachtspeicher, Kami- oder Kachelofen. Dezentrale Klimageräte zur Wärmeerzeugung gehören auch dazu."
|
||||||
<SanierungsOption label="Photovoltaik auf dem Dach" name="photovoltaik" help="Direkte Umwandlung von Sonnenlicht in <strong>elektrische Energie</strong> mittels Solarzellen, die den photoelektrischen Effekt nutzen." value="PV" bind:checked={gebaeude_aufnahme_allgemein.photovotaik}></SanierungsOption>
|
value="EO"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.einzelofen}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Durchlauferhitzer (elektrisch)"
|
||||||
|
name="durchlauf_erhitzer"
|
||||||
|
help="Wenn <strong>dezentrale</strong> elektrische <strong>Warmwassererzeugung</strong> vorhanden ist"
|
||||||
|
value="DH"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.durchlauf_erhitzer}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Standardkessel"
|
||||||
|
name="standard_kessel"
|
||||||
|
help="Gemeint sind Konstanttemperaturkessel und ältere Gebläse- oder Feststoffkessel"
|
||||||
|
value="SK"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.standard_kessel}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Solarsystem für Warmwasser"
|
||||||
|
name="solarsystem_warmwasser"
|
||||||
|
help="Solarpanele auf dem Dach zur <strong>alternativen Warmwassererzeugung</strong> aus Sonnenenergie. Nicht zu verwechseln mit Photovoltaik."
|
||||||
|
value="SSWW"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.solarsystem_warmwasser}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Wärmepumpe"
|
||||||
|
name="waermepumpe"
|
||||||
|
help="Elektrisch betriebener Wärmerzeuger der thermische Energie aus natürlichen Wärmequellen wie der <strong>Umgebungsluft, dem Erdreich oder Grundwasser</strong> nutzbar macht."
|
||||||
|
value="WP"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.waermepumpe}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Niedertemperaturkessel"
|
||||||
|
name="niedertemperatur_kessel"
|
||||||
|
help="Heizkessel der mit <strong>niedrigen Vorlauftemperaturen</strong> (35-75 °C) arbeitet. Im Vergleich zum Brennwertkessel ist er weniger effizient, wird aber noch in älteren Heizsystemen eingesetzt."
|
||||||
|
value="NK"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.niedertemperatur_kessel}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Brennwertkessel"
|
||||||
|
name="brennwert_kessel"
|
||||||
|
help="Hat einen besonders <strong>hohen Wirkungsgrad</strong> weil er die im Abgas enthaltene Kondensationswärme zurückgewinnt. Auch zu erkennen am doppelwandigem Abgasrohr welches sich nicht erhitzt."
|
||||||
|
value="BWK"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.brennwert_kessel}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Warmwasserrohre gedämmt"
|
||||||
|
name="warmwasser_rohre_gedaemmt"
|
||||||
|
help="Gemeint sind die sichtbaren Rohre des Verteilsystems Warmwasser. Gedämmte Rohre sind an den <strong>dunklen Ummantelungen</strong> (Manschetten) zu erkennen."
|
||||||
|
value="BWK"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.warmwasser_rohre_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Heizungsrohre gedämmt"
|
||||||
|
name="heizungsrohre_gedaemmt"
|
||||||
|
help="Gemeint sind die sichtbaren Rohre des Verteilsystems Heizung. Gedämmte Rohre sind an den <strong>dunklen Ummantelungen</strong> (Manschetten) zu erkennen.ext"
|
||||||
|
value="HRGD"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.heizungsrohre_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Zirkulation"
|
||||||
|
name="zirkulation"
|
||||||
|
help="Kreislauf von Heizungs- oder Warmwasser <strong>innerhalb eines Leitungssystems</strong>, um eine gleichmäßige Wärmeverteilung sicherzustellen."
|
||||||
|
value="ZK"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.zirkulation}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Photovoltaik auf dem Dach"
|
||||||
|
name="photovoltaik"
|
||||||
|
help="Direkte Umwandlung von Sonnenlicht in <strong>elektrische Energie</strong> mittels Solarzellen, die den photoelektrischen Effekt nutzen."
|
||||||
|
value="PV"
|
||||||
|
bind:checked={gebaeude_aufnahme_allgemein.photovoltaik}
|
||||||
|
></SanierungsOption>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<HeizungImage bind:images bind:ausweis bind:gebaeude />
|
<HeizungImage bind:images bind:ausweis bind:gebaeude />
|
||||||
|
|
||||||
<style lang="postcss">
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<HelpLabel title="Heizungsanlage (bitte immer zutreffendes ankreuzen) *">
|
<HelpLabel title="Heizungsanlage (bitte immer zutreffendes ankreuzen) *">
|
||||||
Wir benötigen diese Angaben um den allgemeinen Modernisierungsstand
|
Wir benötigen diese Angaben um den allgemeinen Modernisierungsstand
|
||||||
@@ -286,3 +355,5 @@ xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<style lang="postcss">
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums, type BedarfsausweisWohnen, type VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import { Enums, type BedarfsausweisWohnen, type VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
||||||
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./types";
|
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
@@ -59,6 +59,6 @@
|
|||||||
Energieausweis!<br />
|
Energieausweis!<br />
|
||||||
<strong>Bitte laden Sie hier mind. 2 Bilder hoch:</strong>
|
<strong>Bitte laden Sie hier mind. 2 Bilder hoch:</strong>
|
||||||
</p>
|
</p>
|
||||||
<ImageGrid max={4} name={"daemmung_image"} kategorie={Enums.BilderKategorie.Daemmung} bind:images bind:ausweis bind:gebaeude></ImageGrid>
|
<ImageGrid max={4} min={2} name={"daemmung_image"} kategorie={Enums.BilderKategorie.Daemmung} bind:images bind:ausweis bind:gebaeude></ImageGrid>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums, type BedarfsausweisWohnen, type VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import { Enums, type BedarfsausweisWohnen, type VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
||||||
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./types";
|
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
@@ -55,6 +55,6 @@
|
|||||||
Energieausweis!<br />
|
Energieausweis!<br />
|
||||||
<strong>Bitte laden Sie hier mind. 1 Bild hoch:</strong>
|
<strong>Bitte laden Sie hier mind. 1 Bild hoch:</strong>
|
||||||
</p>
|
</p>
|
||||||
<ImageGrid max={4} name={"fenster_image"} kategorie={Enums.BilderKategorie.Fenster} bind:images bind:ausweis bind:gebaeude></ImageGrid>
|
<ImageGrid max={4} min={1} name={"fenster_image"} kategorie={Enums.BilderKategorie.Fenster} bind:images bind:ausweis bind:gebaeude></ImageGrid>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -51,6 +51,6 @@
|
|||||||
Ihrem Energieausweis!<br />
|
Ihrem Energieausweis!<br />
|
||||||
<strong>Bitte laden Sie hier mind. 1 Bild hoch:</strong>
|
<strong>Bitte laden Sie hier mind. 1 Bild hoch:</strong>
|
||||||
</p>
|
</p>
|
||||||
<ImageGrid name={"heizung_image"} kategorie={Enums.BilderKategorie.Heizung} max={4} bind:gebaeude bind:images bind:ausweis />
|
<ImageGrid name={"heizung_image"} kategorie={Enums.BilderKategorie.Heizung} max={4} min={1} bind:gebaeude bind:images bind:ausweis />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,11 @@
|
|||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import fuelList from "./brennstoffListe.js";
|
import fuelList from "./brennstoffListe.js";
|
||||||
import { auditVerbrauchAbweichung } from "../Verbrauchsausweis/audits/VerbrauchAbweichung.js";
|
import { auditVerbrauchAbweichung } from "../Verbrauchsausweis/audits/VerbrauchAbweichung.js";
|
||||||
import { GebaeudeAufnahmeClient, GebaeudeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
import {
|
||||||
|
GebaeudeAufnahmeClient,
|
||||||
|
GebaeudeClient,
|
||||||
|
VerbrauchsausweisWohnenClient,
|
||||||
|
} from "./types.js";
|
||||||
|
|
||||||
export let gebaeude: GebaeudeClient;
|
export let gebaeude: GebaeudeClient;
|
||||||
export let gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient;
|
export let gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient;
|
||||||
@@ -38,8 +42,14 @@
|
|||||||
"Dezember",
|
"Dezember",
|
||||||
];
|
];
|
||||||
|
|
||||||
const startDate = moment(ausweis.gebaeude_aufnahme_allgemein.erstellungsdatum || Date.now()).subtract(4, "years").subtract(6, "months");
|
const startDate = moment(
|
||||||
const endDate = moment(ausweis.gebaeude_aufnahme_allgemein.erstellungsdatum || Date.now()).subtract(3, "years");
|
ausweis.gebaeude_aufnahme_allgemein.erstellungsdatum || Date.now()
|
||||||
|
)
|
||||||
|
.subtract(4, "years")
|
||||||
|
.subtract(6, "months");
|
||||||
|
const endDate = moment(
|
||||||
|
ausweis.gebaeude_aufnahme_allgemein.erstellungsdatum || Date.now()
|
||||||
|
).subtract(3, "years");
|
||||||
|
|
||||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||||
availableDates.push({
|
availableDates.push({
|
||||||
@@ -55,7 +65,6 @@
|
|||||||
fuelMap[fuel[0]].push(fuel[1]);
|
fuelMap[fuel[0]].push(fuel[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let month = ausweis.startdatum?.getMonth() || null;
|
let month = ausweis.startdatum?.getMonth() || null;
|
||||||
let year = ausweis.startdatum?.getFullYear() || null;
|
let year = ausweis.startdatum?.getFullYear() || null;
|
||||||
|
|
||||||
@@ -63,45 +72,48 @@
|
|||||||
if (typeof month === "number" && typeof year === "number") {
|
if (typeof month === "number" && typeof year === "number") {
|
||||||
// Wir addieren einfach 2 Tage auf das Datum, falls der Nutzer außerhalb Deutschlands und in einer anderen Zeitzone ist.
|
// Wir addieren einfach 2 Tage auf das Datum, falls der Nutzer außerhalb Deutschlands und in einer anderen Zeitzone ist.
|
||||||
// NOTE: Das ist eine grauenvolle Lösung aber alle anderen funktionieren irgendwie nicht...
|
// NOTE: Das ist eine grauenvolle Lösung aber alle anderen funktionieren irgendwie nicht...
|
||||||
ausweis.startdatum = moment().set("month", month).set("year", year).startOf("month").add(2, "days").toDate();
|
ausweis.startdatum = moment()
|
||||||
|
.set("month", month)
|
||||||
|
.set("year", year)
|
||||||
|
.startOf("month")
|
||||||
|
.add(2, "days")
|
||||||
|
.toDate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$: abweichung = auditVerbrauchAbweichung(ausweis, gebaeude);
|
$: abweichung = auditVerbrauchAbweichung(ausweis, gebaeude);
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<div
|
||||||
|
id="verbrauch"
|
||||||
|
class="bereich-box grid
|
||||||
<div id="verbrauch" class="bereich-box grid
|
|
||||||
grid-cols-1 gap-x-4 gap-y-8
|
grid-cols-1 gap-x-4 gap-y-8
|
||||||
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
||||||
xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||||
">
|
"
|
||||||
|
>
|
||||||
|
<!-- primäre Heizquellen -->
|
||||||
|
|
||||||
<!-- primäre Heizquellen -->
|
<div class="input-standard order-1 md:order-1 xl:order-1">
|
||||||
|
|
||||||
<div class="input-standard order-1 md:order-1 xl:order-1">
|
|
||||||
<Inputlabel title="Heizquellen"></Inputlabel>
|
<Inputlabel title="Heizquellen"></Inputlabel>
|
||||||
|
|
||||||
<div class="input-checkboxen">
|
<div class="input-checkboxen">
|
||||||
|
<div
|
||||||
<div class="grid grid-cols-[40px_max-content] items-center justify-items-start">
|
class="grid grid-cols-[40px_max-content] items-center justify-items-start"
|
||||||
|
>
|
||||||
<input
|
<input
|
||||||
id="primaere_heizquelle"
|
id="primaere_heizquelle"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="checkbox"
|
class="checkbox"
|
||||||
name="primaere_heizquelle"
|
name="primaere_heizquelle"
|
||||||
checked="checked"
|
checked={true}
|
||||||
onclick="return false"
|
|
||||||
/>
|
/>
|
||||||
<label for="primaere_heizquelle" >primäre Heizquelle</label>
|
<label for="primaere_heizquelle">primäre Heizquelle</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
<div class="grid grid-cols-[40px_max-content] items-center justify-items-start">
|
class="grid grid-cols-[40px_max-content] items-center justify-items-start"
|
||||||
|
>
|
||||||
{#if !ausweis.zusaetzliche_heizquelle}
|
{#if !ausweis.zusaetzliche_heizquelle}
|
||||||
<input
|
<input
|
||||||
id="zusaetzliche_heizquelle_1"
|
id="zusaetzliche_heizquelle_1"
|
||||||
@@ -110,24 +122,22 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
name="zusaetzliche_heizquelle_1"
|
name="zusaetzliche_heizquelle_1"
|
||||||
bind:checked={ausweis.zusaetzliche_heizquelle}
|
bind:checked={ausweis.zusaetzliche_heizquelle}
|
||||||
/>
|
/>
|
||||||
<label for="zusaetzliche_heizquelle_1" class="cursor-pointer" on:click={() => labelClick(event)}>zusätzliche Heizquelle</label>
|
<label
|
||||||
|
for="zusaetzliche_heizquelle_1"
|
||||||
|
class="cursor-pointer">zusätzliche Heizquelle</label
|
||||||
|
>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
<div class="help-label">
|
||||||
|
<HelpLabel>TEXT FEHLT</HelpLabel>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<!-- Zeitraum 1 -->
|
||||||
<HelpLabel>
|
|
||||||
TEXT FEHLT
|
|
||||||
</HelpLabel>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Zeitraum 1 -->
|
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-x-4 order-2 md:order-2 xl:order-2">
|
|
||||||
|
|
||||||
|
<div class="grid grid-cols-2 gap-x-4 order-2 md:order-2 xl:order-2">
|
||||||
<div class="input-standard">
|
<div class="input-standard">
|
||||||
<Inputlabel title="Start-Monat *"></Inputlabel>
|
<Inputlabel title="Start-Monat *"></Inputlabel>
|
||||||
|
|
||||||
@@ -139,25 +149,28 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
>
|
>
|
||||||
<option disabled>Monat</option>
|
<option disabled>Monat</option>
|
||||||
{#if year !== null}
|
{#if year !== null}
|
||||||
{#each availableDates.filter(date => date.year == year) as date}
|
{#each availableDates.filter((date) => date.year == year) as date}
|
||||||
<option value={date.month}>{monthNames[date.month]}</option>
|
<option value={date.month}
|
||||||
|
>{monthNames[date.month]}</option
|
||||||
|
>
|
||||||
{/each}
|
{/each}
|
||||||
{:else}
|
{:else}
|
||||||
{#each Array.from(availableDates.reduce((a,c) => {
|
{#each Array.from(availableDates.reduce((a, c) => {
|
||||||
a.add(c.month);
|
a.add(c.month);
|
||||||
return a;
|
return a;
|
||||||
}, new Set())) as month}
|
}, new Set())) as month}
|
||||||
<option value={month}>{monthNames[month]}</option>
|
<option
|
||||||
|
value={month}
|
||||||
|
selected={ausweis.startdatum?.getMonth() === month}
|
||||||
|
>{monthNames[month]}</option
|
||||||
|
>
|
||||||
{/each}
|
{/each}
|
||||||
{/if}
|
{/if}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>TEXT FEHLT</HelpLabel>
|
||||||
TEXT FEHLT
|
|
||||||
</HelpLabel>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="input-standard">
|
<div class="input-standard">
|
||||||
@@ -170,28 +183,27 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
required
|
required
|
||||||
>
|
>
|
||||||
<option disabled>Jahr</option>
|
<option disabled>Jahr</option>
|
||||||
{#each Array.from(availableDates.reduce((a,c) => {
|
{#each Array.from(availableDates.reduce((a, c) => {
|
||||||
a.add(c.year);
|
a.add(c.year);
|
||||||
return a;
|
return a;
|
||||||
}, new Set())) as year}
|
}, new Set())) as year}
|
||||||
<option value={year}>{year}</option>
|
<option
|
||||||
|
value={year}
|
||||||
|
selected={ausweis.startdatum?.getFullYear() === year}
|
||||||
|
>{year}</option
|
||||||
|
>
|
||||||
{/each}
|
{/each}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>TEXT FEHLT</HelpLabel>
|
||||||
TEXT FEHLT
|
</div>
|
||||||
</HelpLabel>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
<!-- primäre Brennstoff und Einheiten * -->
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- primäre Brennstoff und Einheiten * -->
|
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-x-4 order-3 md:order-3 xl:order-3">
|
|
||||||
|
|
||||||
|
<div class="grid grid-cols-2 gap-x-4 order-3 md:order-3 xl:order-3">
|
||||||
<div class="input-standard">
|
<div class="input-standard">
|
||||||
<Inputlabel title="primär Brennstoff *"></Inputlabel>
|
<Inputlabel title="primär Brennstoff *"></Inputlabel>
|
||||||
|
|
||||||
@@ -212,27 +224,30 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
<b>Heizöl:</b> Flüssiger Brennstoff; Heizöl wird aus schwer
|
<b>Heizöl:</b> Flüssiger Brennstoff; Heizöl wird aus schwer
|
||||||
entflammbaren Anteilen des Erdöls hergestellt.<br /><br />
|
entflammbaren Anteilen des Erdöls hergestellt.<br /><br />
|
||||||
<b>Erdgas H, Erdgas L:</b> Brennbares Naturgas das in
|
<b>Erdgas H, Erdgas L:</b> Brennbares Naturgas das in
|
||||||
unterirdischen Lagerstätten vorkommt. Erdgas H hat im Vergleich
|
unterirdischen Lagerstätten vorkommt. Erdgas H hat im
|
||||||
zu Erdgas L einen leicht höheren Methangehalt, und daher einen
|
Vergleich zu Erdgas L einen leicht höheren Methangehalt, und
|
||||||
etwas besseren Brennwert.<br /><br />
|
daher einen etwas besseren Brennwert.<br /><br />
|
||||||
<b>Flüssiggas:</b> Meist Propan, Butan und deren Gemische, die
|
<b>Flüssiggas:</b> Meist Propan, Butan und deren Gemische,
|
||||||
bei Raumtemperatur unter vergleichsweise geringem Druck flüssig
|
die bei Raumtemperatur unter vergleichsweise geringem Druck
|
||||||
bleiben.<br /><br />
|
flüssig bleiben.<br /><br />
|
||||||
<b>Braunkohle:</b> Durch Druck und Luftabschluss von organischen
|
<b>Braunkohle:</b> Durch Druck und Luftabschluss von
|
||||||
Substanzen entstandenes, bräunlich-schwarzes Sedimentgestein.<br
|
organischen Substanzen entstandenes, bräunlich-schwarzes
|
||||||
/><br />
|
Sedimentgestein.<br /><br />
|
||||||
<b>Holz-Pellets:</b> Stäbchenförmige Pellets die vollständig
|
<b>Holz-Pellets:</b> Stäbchenförmige Pellets die vollständig
|
||||||
oder überwiegend aus Holz oder Sägenebenprodukten hergestellt
|
oder überwiegend aus Holz oder Sägenebenprodukten
|
||||||
werden.<br /><br />
|
hergestellt werden.<br /><br />
|
||||||
<b>Holzhackschnitzel:</b> Mit schneidenden Werkzeugen
|
<b>Holzhackschnitzel:</b> Mit schneidenden Werkzeugen
|
||||||
zerkleinertes Holz.<br /><br />
|
zerkleinertes Holz.<br /><br />
|
||||||
<b>Nahwärme, Fernwärme:</b> Versorgung von thermischer Energie
|
<b>Nahwärme, Fernwärme:</b> Versorgung von thermischer
|
||||||
über wärmegedämmte Rohrsysteme. Die Wärme wird dabei örtlich von
|
Energie über wärmegedämmte Rohrsysteme. Die Wärme wird dabei
|
||||||
Heizwerken produziert oder besteht aus Prozesswärme von BHKW's.
|
örtlich von Heizwerken produziert oder besteht aus
|
||||||
Im Unterschied zu Fernwärme wird Nahwärme in kleineren Einheiten
|
Prozesswärme von BHKW's. Im Unterschied zu Fernwärme wird
|
||||||
dezentral realisiert.<br /><br />
|
Nahwärme in kleineren Einheiten dezentral realisiert.<br
|
||||||
<b>Strommix:</b> Heizen mit Strom (Nachtspeicher).<br /><br />
|
/><br />
|
||||||
<b>Koks:</b> Stark kohlenstoffhaltiger Brennstoff.<br /><br />
|
<b>Strommix:</b> Heizen mit Strom (Nachtspeicher).<br /><br
|
||||||
|
/>
|
||||||
|
<b>Koks:</b> Stark kohlenstoffhaltiger Brennstoff.<br /><br
|
||||||
|
/>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -246,11 +261,9 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
bind:value={ausweis.einheit_1}
|
bind:value={ausweis.einheit_1}
|
||||||
disabled={!gebaeude_aufnahme_allgemein.brennstoff_1}
|
disabled={!gebaeude_aufnahme_allgemein.brennstoff_1}
|
||||||
required
|
required
|
||||||
|
|
||||||
>
|
>
|
||||||
|
|
||||||
<option disabled selected value={false}>Bitte auswählen</option>
|
<option disabled selected value={false}>Bitte auswählen</option>
|
||||||
{#each (fuelMap.hasOwnProperty(gebaeude_aufnahme_allgemein.brennstoff_1) ? fuelMap[gebaeude_aufnahme_allgemein.brennstoff_1] : []) as unit}
|
{#each fuelMap.hasOwnProperty(gebaeude_aufnahme_allgemein.brennstoff_1) ? fuelMap[gebaeude_aufnahme_allgemein.brennstoff_1] : [] as unit}
|
||||||
<option value={unit}>{unit}</option>
|
<option value={unit}>{unit}</option>
|
||||||
{/each}
|
{/each}
|
||||||
</select>
|
</select>
|
||||||
@@ -258,18 +271,18 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
Bitte geben Sie die Einheit ein. Erdgas wird meist auf der
|
Bitte geben Sie die Einheit ein. Erdgas wird meist auf der
|
||||||
Abrechnung in kWh ausgewiesen. Heizöl liegt meistens in Litern
|
Abrechnung in kWh ausgewiesen. Heizöl liegt meistens in
|
||||||
vor. Pellets oder Brennholz in SRm (Schüttraummetern).
|
Litern vor. Pellets oder Brennholz in SRm
|
||||||
|
(Schüttraummetern).
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
<!-- Verbrauch 1 -->
|
||||||
|
|
||||||
<!-- Verbrauch 1 -->
|
<div class="input-standard order-4 md:order-4 xl:order-4">
|
||||||
|
<Verbrauchslabel bind:ausweis addYear={1}></Verbrauchslabel>
|
||||||
<div class="input-standard order-4 md:order-4 xl:order-4">
|
|
||||||
<Verbrauchslabel bind:ausweis addYear=1></Verbrauchslabel>
|
|
||||||
|
|
||||||
<input
|
<input
|
||||||
name="verbrauch_1"
|
name="verbrauch_1"
|
||||||
@@ -277,22 +290,28 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
class:linked={abweichung.indexOf(1) > -1}
|
class:linked={abweichung.indexOf(1) > -1}
|
||||||
bind:value={ausweis.verbrauch_1}
|
bind:value={ausweis.verbrauch_1}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="VerbrauchsEinheit">{#if !ausweis.einheit_1}{:else}{ausweis.einheit_1}{/if}</div>
|
|
||||||
|
|
||||||
|
<div class="VerbrauchsEinheit">
|
||||||
|
{#if ausweis.einheit_1}{ausweis.einheit_1}{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<VerbrauchsHelpLabel bind:ausweis bind:gebaeude_aufnahme_allgemein addYear=1 heizquelle=1></VerbrauchsHelpLabel>
|
<VerbrauchsHelpLabel
|
||||||
|
bind:ausweis
|
||||||
|
bind:gebaeude_aufnahme_allgemein
|
||||||
|
addYear={1}
|
||||||
|
heizquelle={1}
|
||||||
|
></VerbrauchsHelpLabel>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Verbrauch 2 -->
|
<!-- Verbrauch 2 -->
|
||||||
|
|
||||||
<div class="input-standard order-5 md:order-5 xl:order-5">
|
<div class="input-standard order-5 md:order-5 xl:order-5">
|
||||||
<Verbrauchslabel bind:ausweis addYear=2></Verbrauchslabel>
|
<Verbrauchslabel bind:ausweis addYear={2}></Verbrauchslabel>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
name="verbrauch_2"
|
name="verbrauch_2"
|
||||||
@@ -300,20 +319,27 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
class:linked={abweichung.indexOf(2) > -1}
|
class:linked={abweichung.indexOf(2) > -1}
|
||||||
bind:value={ausweis.verbrauch_2}
|
bind:value={ausweis.verbrauch_2}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
<div class="VerbrauchsEinheit">{#if !ausweis.einheit_1}{:else}{ausweis.einheit_1}{/if}</div>
|
<div class="VerbrauchsEinheit">
|
||||||
|
{#if ausweis.einheit_1}{ausweis.einheit_1}{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<VerbrauchsHelpLabel bind:ausweis bind:gebaeude_aufnahme_allgemein addYear=2 heizquelle=1></VerbrauchsHelpLabel>
|
<VerbrauchsHelpLabel
|
||||||
|
bind:ausweis
|
||||||
|
bind:gebaeude_aufnahme_allgemein
|
||||||
|
addYear={2}
|
||||||
|
heizquelle={1}
|
||||||
|
></VerbrauchsHelpLabel>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Verbrauch 3 -->
|
<!-- Verbrauch 3 -->
|
||||||
|
|
||||||
<div class="input-standard order-6 md:order-6 xl:order-6">
|
<div class="input-standard order-6 md:order-6 xl:order-6">
|
||||||
<Verbrauchslabel bind:ausweis addYear=3></Verbrauchslabel>
|
<Verbrauchslabel bind:ausweis addYear={3}></Verbrauchslabel>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
name="verbrauch_3"
|
name="verbrauch_3"
|
||||||
@@ -321,56 +347,60 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
class:linked={abweichung.indexOf(3) > -1}
|
class:linked={abweichung.indexOf(3) > -1}
|
||||||
bind:value={ausweis.verbrauch_3}
|
bind:value={ausweis.verbrauch_3}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
<div class="VerbrauchsEinheit">{#if !ausweis.einheit_1}{:else}{ausweis.einheit_1}{/if}</div>
|
<div class="VerbrauchsEinheit">
|
||||||
|
{#if ausweis.einheit_1}{ausweis.einheit_1}{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<VerbrauchsHelpLabel bind:ausweis bind:gebaeude_aufnahme_allgemein addYear=3 heizquelle=1></VerbrauchsHelpLabel>
|
<VerbrauchsHelpLabel
|
||||||
|
bind:ausweis
|
||||||
|
bind:gebaeude_aufnahme_allgemein
|
||||||
|
addYear={3}
|
||||||
|
heizquelle={1}
|
||||||
|
></VerbrauchsHelpLabel>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#if ausweis.zusaetzliche_heizquelle}
|
{#if ausweis.zusaetzliche_heizquelle}
|
||||||
|
<div
|
||||||
|
class="col-span-3 order-7 md:order-7 xl:order-7 h-[4px] bg-white mt-[-10px]"
|
||||||
|
></div>
|
||||||
|
|
||||||
<div class="col-span-3 order-7 md:order-7 xl:order-7 h-[4px] bg-white mt-[-10px]"></div>
|
<!-- zusätzliche Heizquelle -->
|
||||||
|
|
||||||
<!-- zusätzliche Heizquelle -->
|
<div class="input-standard order-7 md:order-7 xl:order-7">
|
||||||
|
|
||||||
<div class="input-standard order-7 md:order-7 xl:order-7">
|
|
||||||
<Inputlabel title="zusätzliche Heizquelle"></Inputlabel>
|
<Inputlabel title="zusätzliche Heizquelle"></Inputlabel>
|
||||||
|
|
||||||
<div class="input-checkboxen">
|
<div class="input-checkboxen">
|
||||||
|
<div
|
||||||
<div class="grid grid-cols-[40px_max-content] items-center justify-items-start">
|
class="grid grid-cols-[40px_max-content] items-center justify-items-start"
|
||||||
|
>
|
||||||
<input
|
<input
|
||||||
id="zusaetzliche_heizquelle"
|
id="zusaetzliche_heizquelle"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="checkbox"
|
class="checkbox"
|
||||||
name="zusaetzliche_heizquelle"
|
name="zusaetzliche_heizquelle"
|
||||||
|
|
||||||
bind:checked={ausweis.zusaetzliche_heizquelle}
|
bind:checked={ausweis.zusaetzliche_heizquelle}
|
||||||
/>
|
/>
|
||||||
<label for="zusaetzliche_heizquelle" class="cursor-pointer" on:click={() => labelClick(event)}>zusätzliche Heizquelle</label>
|
<label for="zusaetzliche_heizquelle" class="cursor-pointer"
|
||||||
|
>zusätzliche Heizquelle</label
|
||||||
|
>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
<div class="help-label">
|
||||||
|
<HelpLabel>TEXT FEHLT</HelpLabel>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="input-standard order-8 md:order-8 xl:order-8"></div>
|
||||||
<HelpLabel>
|
|
||||||
TEXT FEHLT
|
|
||||||
</HelpLabel>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
<!-- zusätzlicher Brennstoff und Einheiten * -->
|
||||||
|
|
||||||
<div class="input-standard order-8 md:order-8 xl:order-8">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- zusätzlicher Brennstoff und Einheiten * -->
|
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-x-4 order-9 md:order-9 xl:order-9">
|
|
||||||
|
|
||||||
|
<div class="grid grid-cols-2 gap-x-4 order-9 md:order-9 xl:order-9">
|
||||||
<div class="input-standard">
|
<div class="input-standard">
|
||||||
<Inputlabel title="zusätzlicher Brennstoff *"></Inputlabel>
|
<Inputlabel title="zusätzlicher Brennstoff *"></Inputlabel>
|
||||||
|
|
||||||
@@ -380,8 +410,9 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
bind:value={gebaeude_aufnahme_allgemein.brennstoff_2}
|
bind:value={gebaeude_aufnahme_allgemein.brennstoff_2}
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
|
<option disabled selected value={false}
|
||||||
<option disabled selected value={false}>Bitte auswählen</option>
|
>Bitte auswählen</option
|
||||||
|
>
|
||||||
{#each Object.keys(fuelMap) as fuel}
|
{#each Object.keys(fuelMap) as fuel}
|
||||||
<option value={fuel}>{fuel}</option>
|
<option value={fuel}>{fuel}</option>
|
||||||
{/each}
|
{/each}
|
||||||
@@ -389,30 +420,34 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<b>Heizöl:</b> Flüssiger Brennstoff; Heizöl wird aus schwer
|
<b>Heizöl:</b> Flüssiger Brennstoff; Heizöl wird aus
|
||||||
entflammbaren Anteilen des Erdöls hergestellt.<br /><br />
|
schwer entflammbaren Anteilen des Erdöls hergestellt.<br
|
||||||
<b>Erdgas H, Erdgas L:</b> Brennbares Naturgas das in
|
|
||||||
unterirdischen Lagerstätten vorkommt. Erdgas H hat im Vergleich
|
|
||||||
zu Erdgas L einen leicht höheren Methangehalt, und daher einen
|
|
||||||
etwas besseren Brennwert.<br /><br />
|
|
||||||
<b>Flüssiggas:</b> Meist Propan, Butan und deren Gemische, die
|
|
||||||
bei Raumtemperatur unter vergleichsweise geringem Druck flüssig
|
|
||||||
bleiben.<br /><br />
|
|
||||||
<b>Braunkohle:</b> Durch Druck und Luftabschluss von organischen
|
|
||||||
Substanzen entstandenes, bräunlich-schwarzes Sedimentgestein.<br
|
|
||||||
/><br />
|
/><br />
|
||||||
<b>Holz-Pellets:</b> Stäbchenförmige Pellets die vollständig
|
<b>Erdgas H, Erdgas L:</b> Brennbares Naturgas das in
|
||||||
oder überwiegend aus Holz oder Sägenebenprodukten hergestellt
|
unterirdischen Lagerstätten vorkommt. Erdgas H hat im
|
||||||
werden.<br /><br />
|
Vergleich zu Erdgas L einen leicht höheren Methangehalt,
|
||||||
|
und daher einen etwas besseren Brennwert.<br /><br />
|
||||||
|
<b>Flüssiggas:</b> Meist Propan, Butan und deren
|
||||||
|
Gemische, die bei Raumtemperatur unter vergleichsweise
|
||||||
|
geringem Druck flüssig bleiben.<br /><br />
|
||||||
|
<b>Braunkohle:</b> Durch Druck und Luftabschluss von
|
||||||
|
organischen Substanzen entstandenes, bräunlich-schwarzes
|
||||||
|
Sedimentgestein.<br /><br />
|
||||||
|
<b>Holz-Pellets:</b> Stäbchenförmige Pellets die
|
||||||
|
vollständig oder überwiegend aus Holz oder
|
||||||
|
Sägenebenprodukten hergestellt werden.<br /><br />
|
||||||
<b>Holzhackschnitzel:</b> Mit schneidenden Werkzeugen
|
<b>Holzhackschnitzel:</b> Mit schneidenden Werkzeugen
|
||||||
zerkleinertes Holz.<br /><br />
|
zerkleinertes Holz.<br /><br />
|
||||||
<b>Nahwärme, Fernwärme:</b> Versorgung von thermischer Energie
|
<b>Nahwärme, Fernwärme:</b> Versorgung von thermischer
|
||||||
über wärmegedämmte Rohrsysteme. Die Wärme wird dabei örtlich von
|
Energie über wärmegedämmte Rohrsysteme. Die Wärme wird
|
||||||
Heizwerken produziert oder besteht aus Prozesswärme von BHKW's.
|
dabei örtlich von Heizwerken produziert oder besteht aus
|
||||||
Im Unterschied zu Fernwärme wird Nahwärme in kleineren Einheiten
|
Prozesswärme von BHKW's. Im Unterschied zu Fernwärme
|
||||||
dezentral realisiert.<br /><br />
|
wird Nahwärme in kleineren Einheiten dezentral
|
||||||
<b>Strommix:</b> Heizen mit Strom (Nachtspeicher).<br /><br />
|
realisiert.<br /><br />
|
||||||
<b>Koks:</b> Stark kohlenstoffhaltiger Brennstoff.<br /><br />
|
<b>Strommix:</b> Heizen mit Strom (Nachtspeicher).<br
|
||||||
|
/><br />
|
||||||
|
<b>Koks:</b> Stark kohlenstoffhaltiger Brennstoff.<br
|
||||||
|
/><br />
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -427,87 +462,110 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
disabled={!gebaeude_aufnahme_allgemein.brennstoff_2}
|
disabled={!gebaeude_aufnahme_allgemein.brennstoff_2}
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
<option disabled selected value={false}>Bitte auswählen</option>
|
<option disabled selected value={false}
|
||||||
{#each (fuelMap.hasOwnProperty(gebaeude_aufnahme_allgemein.brennstoff_2) ? fuelMap[gebaeude_aufnahme_allgemein.brennstoff_2] : []) as unit}
|
>Bitte auswählen</option
|
||||||
|
>
|
||||||
|
{#each fuelMap.hasOwnProperty(gebaeude_aufnahme_allgemein.brennstoff_2) ? fuelMap[gebaeude_aufnahme_allgemein.brennstoff_2] : [] as unit}
|
||||||
<option value={unit}>{unit}</option>
|
<option value={unit}>{unit}</option>
|
||||||
{/each}
|
{/each}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
Bitte geben Sie die Einheit ein. Erdgas wird meist auf der
|
Bitte geben Sie die Einheit ein. Erdgas wird meist auf
|
||||||
Abrechnung in kWh ausgewiesen. Heizöl liegt meistens in Litern
|
der Abrechnung in kWh ausgewiesen. Heizöl liegt meistens
|
||||||
vor. Pellets oder Brennholz in SRm (Schüttraummetern).
|
in Litern vor. Pellets oder Brennholz in SRm
|
||||||
|
(Schüttraummetern).
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
<!-- Verbrauch 4 -->
|
||||||
|
|
||||||
<!-- Verbrauch 4 -->
|
<div class="input-standard order-10 md:order-10 xl:order-10">
|
||||||
|
<Verbrauchslabel bind:ausweis addYear={1}></Verbrauchslabel>
|
||||||
<div class="input-standard order-10 md:order-10 xl:order-10">
|
|
||||||
<Verbrauchslabel bind:ausweis addYear=1></Verbrauchslabel>
|
|
||||||
|
|
||||||
<input
|
<input
|
||||||
name="verbrauch_4"
|
name="verbrauch_4"
|
||||||
type="number"
|
type="number"
|
||||||
bind:value={ausweis.verbrauch_4}
|
bind:value={ausweis.verbrauch_4}
|
||||||
class:linked={abweichung.indexOf(4) > -1}
|
class:linked={abweichung.indexOf(4) > -1}
|
||||||
/>
|
/>
|
||||||
<div class="VerbrauchsEinheit">{#if !ausweis.einheit_2}{:else}{ausweis.einheit_2}{/if}</div>
|
<div class="VerbrauchsEinheit">
|
||||||
|
{#if ausweis.einheit_2}{ausweis.einheit_2}{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<VerbrauchsHelpLabel bind:ausweis bind:gebaeude_aufnahme_allgemein addYear=1 heizquelle=2></VerbrauchsHelpLabel>
|
<VerbrauchsHelpLabel
|
||||||
|
bind:ausweis
|
||||||
|
bind:gebaeude_aufnahme_allgemein
|
||||||
|
addYear={1}
|
||||||
|
heizquelle={2}
|
||||||
|
></VerbrauchsHelpLabel>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Verbrauch 5 -->
|
<!-- Verbrauch 5 -->
|
||||||
|
|
||||||
<div class="input-standard order-11 md:order-11 xl:order-11">
|
<div class="input-standard order-11 md:order-11 xl:order-11">
|
||||||
<Verbrauchslabel bind:ausweis addYear=2></Verbrauchslabel>
|
<Verbrauchslabel bind:ausweis addYear={2}></Verbrauchslabel>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
name="verbrauch_5"
|
name="verbrauch_5"
|
||||||
type="number"
|
type="number"
|
||||||
bind:value={ausweis.verbrauch_5}
|
bind:value={ausweis.verbrauch_5}
|
||||||
class:linked={abweichung.indexOf(5) > -1}
|
class:linked={abweichung.indexOf(5) > -1}
|
||||||
/>
|
/>
|
||||||
<div class="VerbrauchsEinheit">{#if !ausweis.einheit_2}{:else}{ausweis.einheit_2}{/if}</div>
|
<div class="VerbrauchsEinheit">
|
||||||
|
{#if ausweis.einheit_2}{ausweis.einheit_2}{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<VerbrauchsHelpLabel bind:ausweis bind:gebaeude_aufnahme_allgemein addYear=2 heizquelle=2></VerbrauchsHelpLabel>
|
<VerbrauchsHelpLabel
|
||||||
|
bind:ausweis
|
||||||
|
bind:gebaeude_aufnahme_allgemein
|
||||||
|
addYear={2}
|
||||||
|
heizquelle={2}
|
||||||
|
></VerbrauchsHelpLabel>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Verbrauch 6 -->
|
<!-- Verbrauch 6 -->
|
||||||
|
|
||||||
<div class="input-standard order-12 md:order-12 xl:order-12">
|
<div class="input-standard order-12 md:order-12 xl:order-12">
|
||||||
<Verbrauchslabel bind:ausweis addYear=3></Verbrauchslabel>
|
<Verbrauchslabel bind:ausweis addYear={3}></Verbrauchslabel>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
name="verbrauch_6"
|
name="verbrauch_6"
|
||||||
type="number"
|
type="number"
|
||||||
bind:value={ausweis.verbrauch_6}
|
bind:value={ausweis.verbrauch_6}
|
||||||
class:linked={abweichung.indexOf(6) > -1}
|
class:linked={abweichung.indexOf(6) > -1}
|
||||||
/>
|
/>
|
||||||
<div class="VerbrauchsEinheit">{#if !ausweis.einheit_2}{:else}{ausweis.einheit_2}{/if}</div>
|
<div class="VerbrauchsEinheit">
|
||||||
|
{#if ausweis.einheit_2}{ausweis.einheit_2}{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<VerbrauchsHelpLabel bind:ausweis bind:gebaeude_aufnahme_allgemein addYear=3 heizquelle=2></VerbrauchsHelpLabel>
|
<VerbrauchsHelpLabel
|
||||||
|
bind:ausweis
|
||||||
|
bind:gebaeude_aufnahme_allgemein
|
||||||
|
addYear={3}
|
||||||
|
heizquelle={2}
|
||||||
|
></VerbrauchsHelpLabel>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
{/if}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style lang="postcss">
|
<style lang="postcss">
|
||||||
.VerbrauchsEinheit{@apply absolute right-[4rem]}
|
.VerbrauchsEinheit {
|
||||||
|
@apply absolute right-[4rem];
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import UploadImages from "./UploadImages.svelte";
|
import UploadImages from "./UploadImages.svelte";
|
||||||
import type { BedarfsausweisWohnen, Enums, VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import type { BedarfsausweisWohnen, Enums, VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
||||||
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types";
|
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { RotateCounterClockwise, Trash } from "radix-svelte-icons";
|
import { RotateCounterClockwise, Trash, Upload } from "radix-svelte-icons";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let max: number = 4;
|
export let max: number = 4;
|
||||||
|
export let min: number = 1;
|
||||||
export let name: string = "";
|
export let name: string = "";
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
export let gebaeude: GebaeudeClient;
|
export let gebaeude: GebaeudeClient;
|
||||||
@@ -23,16 +24,19 @@
|
|||||||
ctx?.translate(img.height / 2, img.width / 2);
|
ctx?.translate(img.height / 2, img.width / 2);
|
||||||
ctx?.rotate((-90 * Math.PI) / 180);
|
ctx?.rotate((-90 * Math.PI) / 180);
|
||||||
ctx?.drawImage(img, -img.width / 2, -img.height / 2);
|
ctx?.drawImage(img, -img.width / 2, -img.height / 2);
|
||||||
image.base64 = canvas.toDataURL("image/webp");
|
const clone = Object.assign({}, image)
|
||||||
image.update = true;
|
clone.base64 = canvas.toDataURL("image/webp");
|
||||||
resolve(image)
|
clone.update = true;
|
||||||
|
resolve(clone)
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let upload: () => void;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
<UploadImages {name} {kategorie} {max} bind:gebaeude bind:images bind:ausweis />
|
<UploadImages {name} {kategorie} {max} {min} bind:upload bind:gebaeude bind:images bind:ausweis />
|
||||||
<div class="grid grid-cols-2 gap-2">
|
<div class="grid grid-cols-2 gap-2">
|
||||||
{#each images as image, i}
|
{#each images as image, i}
|
||||||
{#if image.kategorie == kategorie}
|
{#if image.kategorie == kategorie}
|
||||||
@@ -68,5 +72,26 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
|
<!-- Wir zeigen Platzhalter an, damit der Nutzer sieht wie viele Bilder er hochladen soll -->
|
||||||
|
{#each { length: max - images.filter(image => image.kategorie === kategorie).length } as _, i}
|
||||||
|
<div class="relative group">
|
||||||
|
<img
|
||||||
|
src="/placeholder.png"
|
||||||
|
alt={kategorie}
|
||||||
|
class="h-full max-h-96 w-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all"
|
||||||
|
class:opacity-35={i >= min}
|
||||||
|
/>
|
||||||
|
<div class="invisible group-hover:visible absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] flex flex-row gap-2">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="rounded-full w-[30px] h-[30px] flex items-center justify-center p-0 bg-[rgba(0,0,0,0.4)]"
|
||||||
|
on:click={upload}
|
||||||
|
>
|
||||||
|
<Upload size={20} color="#fff"></Upload>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2,10 +2,11 @@
|
|||||||
import type { BedarfsausweisWohnen, Enums, VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import type { BedarfsausweisWohnen, Enums, VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
export let max: number = 2;
|
export let max: number = 2;
|
||||||
|
export let min: number = 1;
|
||||||
export let name: string = ""
|
export let name: string = ""
|
||||||
|
|
||||||
// Array of base64 encoded images read into the input.
|
// Array of base64 encoded images read into the input.
|
||||||
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types";
|
import { GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
@@ -77,10 +78,19 @@
|
|||||||
reader.readAsArrayBuffer(file);
|
reader.readAsArrayBuffer(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let fileUpload: HTMLInputElement;
|
||||||
|
|
||||||
|
export const upload = () => {
|
||||||
|
fileUpload.click()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if max > 1}
|
<!-- Falls die maximale Anzahl Bilder erreicht wurde grauen wir den input aus und zeigen einen Hilfstext -->
|
||||||
<input type="file" class="file-input file-input-ghost" {name} multiple on:change={getAllImages} />
|
{#if images.filter((image) => image.kategorie === kategorie).length === max}
|
||||||
|
<span class="bg-base-200 border px-4 py-2">Maximale Anzahl Bilder wurde erreicht.</span>
|
||||||
|
{:else if max > 1}
|
||||||
|
<input type="file" class="file-input file-input-ghost" bind:this={fileUpload} {name} multiple on:change={getAllImages} />
|
||||||
{:else}
|
{:else}
|
||||||
<input type="file" class="file-input file-input-ghost" {name} on:change={getAllImages} />
|
<input type="file" class="file-input file-input-ghost" bind:this={fileUpload} {name} on:change={getAllImages} />
|
||||||
{/if}
|
{/if}
|
||||||
@@ -5,32 +5,37 @@
|
|||||||
export let heizquelle: number;
|
export let heizquelle: number;
|
||||||
export let gebaeude_aufnahme_allgemein;
|
export let gebaeude_aufnahme_allgemein;
|
||||||
export let ausweis;
|
export let ausweis;
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{#if ausweis.startdatum}
|
{#if ausweis.startdatum}
|
||||||
Bitte geben Sie Ihre
|
Bitte geben Sie Ihre
|
||||||
{#if heizquelle==1}
|
{#if heizquelle == 1}
|
||||||
{#if gebaeude_aufnahme_allgemein.brennstoff_1}<b> {gebaeude_aufnahme_allgemein.brennstoff_1} </b>{/if}
|
{#if gebaeude_aufnahme_allgemein.brennstoff_1}<b>
|
||||||
Verbräuche {#if ausweis.einheit_1} in <b>{ausweis.einheit_1} </b>{/if}
|
{gebaeude_aufnahme_allgemein.brennstoff_1}
|
||||||
{:else if heizquelle==2}
|
</b>{/if}
|
||||||
{#if gebaeude_aufnahme_allgemein.brennstoff_2}<b> {gebaeude_aufnahme_allgemein.brennstoff_2} </b>{/if}
|
Verbräuche {#if ausweis.einheit_1}
|
||||||
Verbräuche {#if ausweis.einheit_2} in <b>{ausweis.einheit_2} </b>{/if}
|
in <b>{ausweis.einheit_1} </b>{/if}
|
||||||
{/if}
|
{:else if heizquelle == 2}
|
||||||
|
{#if gebaeude_aufnahme_allgemein.brennstoff_2}<b>
|
||||||
|
{gebaeude_aufnahme_allgemein.brennstoff_2}
|
||||||
von <b>{moment(ausweis.startdatum).add((addYear-1), "year").format("MM.Y")}</b>
|
</b>{/if}
|
||||||
bis <b>{moment(ausweis.startdatum).add((addYear), "year").format("MM.Y")}</b>
|
Verbräuche {#if ausweis.einheit_2}
|
||||||
ein.
|
in <b>{ausweis.einheit_2} </b>{/if}
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
von
|
||||||
|
<b
|
||||||
|
>{moment(ausweis.startdatum)
|
||||||
|
.add(addYear - 1, "year")
|
||||||
|
.format("MM.Y")}</b
|
||||||
|
>
|
||||||
|
bis <b>{moment(ausweis.startdatum).add(addYear, "year").format("MM.Y")}</b>
|
||||||
|
ein.
|
||||||
{:else}
|
{:else}
|
||||||
Bitte geben Sie zuerst einen Starttermin für Ihre Verbräuche, den Brennstoff und die Einheit in die entsprechenden Felder ein. Danach können Sie hier die Verbräuche für den angegebenen Zeitraum eintragen.
|
Bitte geben Sie zuerst einen Starttermin für Ihre Verbräuche, den Brennstoff
|
||||||
|
und die Einheit in die entsprechenden Felder ein. Danach können Sie hier die
|
||||||
|
Verbräuche für den angegebenen Zeitraum eintragen.
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="postcss">
|
<style lang="postcss">
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { loginClient } from "#lib/login";
|
import { loginClient } from "#lib/login.js";
|
||||||
import EmbeddedLoginModule from "./EmbeddedLoginModule.svelte"
|
import EmbeddedLoginModule from "./EmbeddedLoginModule.svelte"
|
||||||
import EmbeddedRegisterModule from "./EmbeddedRegisterModule.svelte"
|
import EmbeddedRegisterModule from "./EmbeddedRegisterModule.svelte"
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ProgressBar from "#components/Ausweis/Progressbar.svelte";
|
import ProgressBar from "#components/Ausweis/Progressbar.svelte";
|
||||||
import type {
|
import type { Bezahlmethoden } from "@ibcornelsen/database/client";
|
||||||
Bezahlmethoden,
|
|
||||||
} from "@ibcornelsen/database/client";
|
|
||||||
import { Enums } from "@ibcornelsen/database/client";
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
import { dialogs } from "svelte-dialogs";
|
import { dialogs } from "svelte-dialogs";
|
||||||
import LoginDialog from "#components/LoginDialog.svelte";
|
import LoginDialog from "#components/LoginDialog.svelte";
|
||||||
|
import { PRICES } from "#lib/constants.js";
|
||||||
|
import {
|
||||||
|
BenutzerClient,
|
||||||
|
VerbrauchsausweisWohnenClient,
|
||||||
|
} from "#components/Ausweis/types.js";
|
||||||
|
import { validateAccessTokenClient } from "src/client/lib/validateAccessToken.js";
|
||||||
|
import { client } from "src/trpc.js";
|
||||||
|
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
@@ -40,15 +45,10 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
export let selectedPaymentType: Bezahlmethoden =
|
export let selectedPaymentType: Bezahlmethoden =
|
||||||
Enums.Bezahlmethoden.paypal;
|
Enums.Bezahlmethoden.paypal;
|
||||||
|
|
||||||
import { PRICES } from "#lib/constants";
|
let prices: number[] = [];
|
||||||
import { BenutzerClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
|
||||||
import { validateAccessTokenClient } from "src/client/lib/validateAccessToken";
|
|
||||||
import { client } from "src/trpc";
|
|
||||||
|
|
||||||
let prices: number[] = []
|
|
||||||
|
|
||||||
if (ausweis.gebaeude_aufnahme_allgemein.ausweisart) {
|
if (ausweis.gebaeude_aufnahme_allgemein.ausweisart) {
|
||||||
prices = PRICES[ausweis.gebaeude_aufnahme_allgemein.ausweisart]
|
prices = PRICES[ausweis.gebaeude_aufnahme_allgemein.ausweisart];
|
||||||
}
|
}
|
||||||
|
|
||||||
let basePrice: number = prices[0];
|
let basePrice: number = prices[0];
|
||||||
@@ -61,7 +61,7 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
);
|
);
|
||||||
|
|
||||||
async function speichern(e: SubmitEvent) {
|
async function speichern(e: SubmitEvent) {
|
||||||
e.preventDefault()
|
e.preventDefault();
|
||||||
|
|
||||||
// Um einen Ausweis zu speichern müssen wir eingeloggt sein, andernfalls wird die API den call ablehnen.
|
// Um einen Ausweis zu speichern müssen wir eingeloggt sein, andernfalls wird die API den call ablehnen.
|
||||||
// Wir prüfen also ob wir eingeloggt sind und leiten den Nutzer ggf. auf die Login Seite weiter.
|
// Wir prüfen also ob wir eingeloggt sind und leiten den Nutzer ggf. auf die Login Seite weiter.
|
||||||
@@ -76,13 +76,11 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
|
|
||||||
// Falls der Ausweis noch keine benutzer_id hat müssen wir ihn claimen, damit er dem jetzigen Nutzer zugewiesen wird...
|
// Falls der Ausweis noch keine benutzer_id hat müssen wir ihn claimen, damit er dem jetzigen Nutzer zugewiesen wird...
|
||||||
await client.v1.verbrauchsausweisWohnen.claim.mutate({
|
await client.v1.verbrauchsausweisWohnen.claim.mutate({
|
||||||
uid: ausweis.uid
|
uid: ausweis.uid,
|
||||||
})
|
});
|
||||||
|
|
||||||
window.location.href = `/kaufabschluss?uid=${ausweis.uid}`;
|
window.location.href = `/kaufabschluss?uid=${ausweis.uid}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="w-full px-8">
|
<div class="w-full px-8">
|
||||||
@@ -95,7 +93,9 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
|
|
||||||
<form on:submit={speichern}>
|
<form on:submit={speichern}>
|
||||||
<div class="grid grid-cols-[1.5fr_2fr] gap-4">
|
<div class="grid grid-cols-[1.5fr_2fr] gap-4">
|
||||||
<div class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col gap-4">
|
<div
|
||||||
|
class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col gap-4"
|
||||||
|
>
|
||||||
<div class="flex flex-col gap-2 test-box">
|
<div class="flex flex-col gap-2 test-box">
|
||||||
<strong>A - Prüfung der Ausweisart</strong>
|
<strong>A - Prüfung der Ausweisart</strong>
|
||||||
<div>
|
<div>
|
||||||
@@ -160,15 +160,13 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col">
|
<div
|
||||||
|
class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col"
|
||||||
|
>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><strong>Produkt:</strong></td>
|
<td><strong>Produkt:</strong></td>
|
||||||
<td
|
<td><div class="py-2">Verbrauchsausweis</div></td>
|
||||||
><div class="py-2">
|
|
||||||
Verbrauchsausweis
|
|
||||||
</div></td
|
|
||||||
>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><strong>Beschreibung:</strong></td>
|
<td><strong>Beschreibung:</strong></td>
|
||||||
@@ -196,7 +194,7 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
</div></td
|
</div></td
|
||||||
>
|
>
|
||||||
</tr>
|
</tr>
|
||||||
<hr>
|
<hr />
|
||||||
<tr>
|
<tr>
|
||||||
<td>Preis inkl. MwSt.</td>
|
<td>Preis inkl. MwSt.</td>
|
||||||
<td
|
<td
|
||||||
@@ -207,13 +205,17 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<h3 class="font-semibold mt-8">Hiermit bestelle ich folgende Version des Energieausweises:</h3>
|
<h3 class="font-semibold mt-8">
|
||||||
<div class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col">
|
Hiermit bestelle ich folgende Version des Energieausweises:
|
||||||
|
</h3>
|
||||||
|
<div
|
||||||
|
class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col"
|
||||||
|
>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td
|
<td
|
||||||
>Verbrauchsausweis online für {prices[0]} € inkl. MwSt.
|
>Verbrauchsausweis online für {prices[0]} € inkl.
|
||||||
als PDF per E-Mail</td
|
MwSt. als PDF per E-Mail</td
|
||||||
>
|
>
|
||||||
<td
|
<td
|
||||||
><input
|
><input
|
||||||
@@ -242,8 +244,8 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td
|
<td
|
||||||
>Verbrauchsausweis offline für {prices[2]} € inkl. MwSt.
|
>Verbrauchsausweis offline für {prices[2]} € inkl.
|
||||||
als PDF per E-Mail (Sie schicken uns 3 Verbrauchsabrechnungen)</td
|
MwSt. als PDF per E-Mail (Sie schicken uns 3 Verbrauchsabrechnungen)</td
|
||||||
>
|
>
|
||||||
<td
|
<td
|
||||||
><input
|
><input
|
||||||
@@ -259,7 +261,9 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="font-semibold mt-8">Zusatzleistungen</h3>
|
<h3 class="font-semibold mt-8">Zusatzleistungen</h3>
|
||||||
<div class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col">
|
<div
|
||||||
|
class="rounded-lg border p-4 border-base-300 bg-base-100 flex flex-col"
|
||||||
|
>
|
||||||
<table>
|
<table>
|
||||||
{#each services as service}
|
{#each services as service}
|
||||||
<tr>
|
<tr>
|
||||||
@@ -276,7 +280,6 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row justify-between">
|
<div class="flex flex-row justify-between">
|
||||||
<!-- TODO: Zurück implementieren -->
|
<!-- TODO: Zurück implementieren -->
|
||||||
@@ -284,7 +287,8 @@ import LoginDialog from "#components/LoginDialog.svelte";
|
|||||||
<div class="flex flex-row gap-4">
|
<div class="flex flex-row gap-4">
|
||||||
<!-- TODO: Speichern implementieren -->
|
<!-- TODO: Speichern implementieren -->
|
||||||
<button class="btn btn-secondary mt-4">Speichern</button>
|
<button class="btn btn-secondary mt-4">Speichern</button>
|
||||||
<button class="btn btn-secondary mt-4">Zum Kaufabschluss</button>
|
<button class="btn btn-secondary mt-4">Zum Kaufabschluss</button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { BenutzerClient, GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { BenutzerClient, GebaeudeAufnahmeClient, GebaeudeClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import { addNotification, updateNotification } from "@ibcornelsen/ui";
|
import { addNotification, updateNotification } from "@ibcornelsen/ui";
|
||||||
import { validateAccessTokenClient } from "../../client/lib/validateAccessToken";
|
import { validateAccessTokenClient } from "../../client/lib/validateAccessToken.js";
|
||||||
import { client } from "src/trpc";
|
import { client } from "src/trpc.js";
|
||||||
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
|
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
|
||||||
import Overlay from "#components/Overlay.svelte";
|
import Overlay from "#components/Overlay.svelte";
|
||||||
|
import { verbrauchsausweisWohnenSpeichern } from "#client/lib/verbrauchsausweisWohnenSpeichern.js";
|
||||||
|
|
||||||
export let gebaeude: GebaeudeClient;
|
export let gebaeude: GebaeudeClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: UploadedGebaeudeBild[];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient;
|
||||||
|
export let gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient;
|
||||||
|
|
||||||
async function bilderHochladen() {
|
async function bilderHochladen() {
|
||||||
// Alle Bilder hochladen
|
// Alle Bilder hochladen
|
||||||
@@ -82,16 +84,24 @@
|
|||||||
} else {
|
} else {
|
||||||
// Wir speichern den Ausweis ab und leiten auf die "ausweis-gespeichert" Seite weiter.
|
// Wir speichern den Ausweis ab und leiten auf die "ausweis-gespeichert" Seite weiter.
|
||||||
try {
|
try {
|
||||||
const response = await client.v1.verbrauchsausweisWohnen[2016].erstellen.mutate({
|
const response = await verbrauchsausweisWohnenSpeichern(ausweis,
|
||||||
ausweis,
|
gebaeude,
|
||||||
gebaeude
|
gebaeude_aufnahme_allgemein,
|
||||||
})
|
images,
|
||||||
|
user)
|
||||||
|
|
||||||
|
if (response !== null) {
|
||||||
|
await bilderHochladen();
|
||||||
|
// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
|
||||||
|
// Sonst müsste er alles neu eingeben...
|
||||||
ausweis.uid = response.uid;
|
ausweis.uid = response.uid;
|
||||||
gebaeude.uid = response.gebaeude_uid;
|
gebaeude.uid = response.gebaeude_uid;
|
||||||
|
gebaeude_aufnahme_allgemein.uid = response.gebaeude_aufnahme_uid;
|
||||||
|
|
||||||
await bilderHochladen();
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
await client.v1.tickets.erstellen.mutate({
|
await client.v1.tickets.erstellen.mutate({
|
||||||
titel: "Ausweis konnte nicht gespeichert werden",
|
titel: "Ausweis konnte nicht gespeichert werden",
|
||||||
@@ -121,6 +131,11 @@
|
|||||||
const result = await ausweisSpeichern();
|
const result = await ausweisSpeichern();
|
||||||
|
|
||||||
if (result === true) {
|
if (result === true) {
|
||||||
|
window.history.pushState(
|
||||||
|
{},
|
||||||
|
"",
|
||||||
|
`${location.pathname}?uid=${ausweis.uid}`
|
||||||
|
);
|
||||||
window.location.href = `/kundendaten?uid=${ausweis.uid}`;
|
window.location.href = `/kundendaten?uid=${ausweis.uid}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -134,4 +149,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
|
|
||||||
<button type="submit" class="button">Weiter</button>
|
<button on:click={ausweisAbschicken} class="button">Weiter</button>
|
||||||
@@ -55,6 +55,8 @@
|
|||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
import { verbrauchsausweisWohnenSpeichern } from "src/client/lib/verbrauchsausweisWohnenSpeichern.js";
|
import { verbrauchsausweisWohnenSpeichern } from "src/client/lib/verbrauchsausweisWohnenSpeichern.js";
|
||||||
|
import AusweisWeiter from "./AusweisWeiter.svelte";
|
||||||
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
// 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 gebaeude_aufnahme_allgemein oder gebaeude_stammdaten nicht existiert...
|
// wenn gebaeude_aufnahme_allgemein oder gebaeude_stammdaten nicht existiert...
|
||||||
@@ -99,6 +101,11 @@
|
|||||||
gebaeude_aufnahme_allgemein.baujahr_heizung = [1952];
|
gebaeude_aufnahme_allgemein.baujahr_heizung = [1952];
|
||||||
gebaeude_aufnahme_allgemein.saniert = true;
|
gebaeude_aufnahme_allgemein.saniert = true;
|
||||||
gebaeude_aufnahme_allgemein.einheiten = 1;
|
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"
|
||||||
ausweis.ausstellgrund = "Vermietung";
|
ausweis.ausstellgrund = "Vermietung";
|
||||||
ausweis.verbrauch_1 = 15000;
|
ausweis.verbrauch_1 = 15000;
|
||||||
ausweis.verbrauch_2 = 14000;
|
ausweis.verbrauch_2 = 14000;
|
||||||
@@ -106,10 +113,11 @@
|
|||||||
gebaeude_aufnahme_allgemein.flaeche = 152;
|
gebaeude_aufnahme_allgemein.flaeche = 152;
|
||||||
gebaeude_aufnahme_allgemein.nutzflaeche = 172;
|
gebaeude_aufnahme_allgemein.nutzflaeche = 172;
|
||||||
ausweis.keller_beheizt = true;
|
ausweis.keller_beheizt = true;
|
||||||
|
|
||||||
gebaeude_aufnahme_allgemein.brennstoff_1 = "Erdgas H";
|
gebaeude_aufnahme_allgemein.brennstoff_1 = "Erdgas H";
|
||||||
ausweis.einheit_1 = "kWh";
|
ausweis.einheit_1 = "kWh";
|
||||||
ausweis.anteil_warmwasser_1 = 18;
|
ausweis.anteil_warmwasser_1 = 18;
|
||||||
ausweis.startdatum = moment("01.01.2019").toDate();
|
ausweis.startdatum = moment("01.01.2021").toDate();
|
||||||
gebaeude_aufnahme_allgemein.plz = "21039";
|
gebaeude_aufnahme_allgemein.plz = "21039";
|
||||||
gebaeude_aufnahme_allgemein.ort = "Hamburg";
|
gebaeude_aufnahme_allgemein.ort = "Hamburg";
|
||||||
gebaeude_aufnahme_allgemein.adresse = "Curslacker Deich 170";
|
gebaeude_aufnahme_allgemein.adresse = "Curslacker Deich 170";
|
||||||
@@ -197,7 +205,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<form on:submit={ausweisAbschicken} name="ausweis" data-test="ausweis">
|
<form data-test="ausweis">
|
||||||
<div id="formular-box" class="formular-boxen ring-0">
|
<div id="formular-box" class="formular-boxen ring-0">
|
||||||
|
|
||||||
|
|
||||||
@@ -313,28 +321,274 @@
|
|||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
<div
|
||||||
|
|
||||||
<div
|
|
||||||
class="w-full px-4 mt-5 grid gap-x-4 gap-y-2
|
class="w-full px-4 mt-5 grid gap-x-4 gap-y-2
|
||||||
grid-cols-1
|
grid-cols-1
|
||||||
xs:grid-cols-2"
|
xs:grid-cols-2"
|
||||||
>
|
>
|
||||||
|
|
||||||
<div class="md:justify-self-start">
|
<div class="md:justify-self-start">
|
||||||
<button
|
<AusweisWeiter bind:ausweis bind:images bind:user bind:gebaeude bind:gebaeude_aufnahme_allgemein></AusweisWeiter>
|
||||||
type="submit"
|
|
||||||
class="button"
|
|
||||||
>
|
|
||||||
Weiter
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="md:justify-self-end"><Hilfe />
|
<div class="md:justify-self-end"><Hilfe />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<RawNotificationWrapper>
|
||||||
|
{#each Object.entries($notifications) as [uid, notification] (uid)}
|
||||||
|
<RawNotification notification={{ ...notification, uid }}>
|
||||||
|
{@html notification.subtext}
|
||||||
|
</RawNotification>
|
||||||
|
{/each}
|
||||||
|
|
||||||
|
{#if auditBedarfsausweisBenoetigt(ausweis, gebaeude_aufnahme_allgemein)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Bedarfsausweis benötigt!",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "BEDARFSAUSWEIS",
|
||||||
|
dismissable: false,
|
||||||
|
type: "info",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Sie benötigen einen Bedarfsausweis. <a href="/bedarfsausweis"
|
||||||
|
>Bitte führen Sie hier Ihre Eingabe für den Bedarfsausweis fort</a
|
||||||
|
>.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#await auditPlzNichtErkannt(gebaeude_aufnahme_allgemein) then result}
|
||||||
|
{#if result}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "PLZ_NICHT_ERKANNT",
|
||||||
|
dismissable: false,
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Die Postleitzahl konnte nicht zugeordnet werden. Bitte prüfen
|
||||||
|
Sie die Eingabe. Sollte die Postleitzahl korrekt eingegeben
|
||||||
|
sein, werden wir den Ort händisch zuordnen.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
{/await}
|
||||||
|
|
||||||
|
{#if auditHeizungGebaeudeBaujahr(gebaeude_aufnahme_allgemein)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "HEIZUNG_GEBAEUDE_BAUJAHR",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.HEIZUNG_GEBAEUDE_BAUJAHR);
|
||||||
|
gebaeude_aufnahme_allgemein = gebaeude_aufnahme_allgemein;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Sie haben angegeben, dass ihre Heizung vor ihrem Gebäude konstruiert
|
||||||
|
wurde. Sind sie sich sicher, dass das stimmt?
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if auditHeizungJuengerDreiJahre(gebaeude_aufnahme_allgemein)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "HEIZUNG_JUENGER_DREI_JAHRE",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.HEIZUNG_JUENGER_DREI_JAHRE);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Ihre Heizungsanlage ist jünger als 3 Jahre. Für den
|
||||||
|
Verbrauchsausweis müssen Sie mindestens 3 Verbrauchsjahre eingeben
|
||||||
|
die den aktuellen Stand des Gebäudes abbilden. Ein Verbrauchsausweis
|
||||||
|
ist daher nicht möglich. Bitte klicken Sie
|
||||||
|
<a href="/bedarfsausweis">hier</a> um zum Eingabeformular für den Bedarfsausweis
|
||||||
|
zu gelangen.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if auditZeitraumAktuell(ausweis, gebaeude)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "ZEITRAUM_AKTUELL",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.ZEITRAUM_AKTUELL);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Die Verbrauchszeiträume sind nicht aktuell genug. Das Ende des
|
||||||
|
letzten Verbrauchszeitraumes darf nicht mehr als 18 Monate
|
||||||
|
zurückliegen. Ein Verbrauchsausweis ist mit diesen Zeiträumen daher
|
||||||
|
nicht möglich. Bitte klicken Sie <a href="/bedarfsausweis">hier</a> um
|
||||||
|
zum Eingabeformular für den Bedarfsausweis zu gelangen.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#await auditKlimaFaktoren(ausweis, gebaeude) then result}
|
||||||
|
{#if result}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "KLIMA_FAKTOREN",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.KLIMA_FAKTOREN);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Die Verbrauchszeiträume sind zu aktuell und es liegen noch keine
|
||||||
|
Klimafaktoren dazu vor. Bitte verschieben Sie die
|
||||||
|
Verbrauchszeiträume 1 Jahr nach hinten. Wenn das nicht möglich
|
||||||
|
ist, klicken Sie
|
||||||
|
<a href="/bedarfsausweis">hier</a> um zum Eingabeformular für den
|
||||||
|
Bedarfsausweis zu gelangen.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
{/await}
|
||||||
|
|
||||||
|
{#if auditWohnFlaeche(gebaeude_aufnahme_allgemein)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "WOHN_FLAECHE",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.WOHN_FLAECHE);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Die Wohnfläche ist viel zu klein. Bitte überprüfen Sie Ihre Eingabe
|
||||||
|
nochmal und stellen sicher, daß sich Ihre Angaben auf das gesamte
|
||||||
|
Gebäude beziehen.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if auditWarmWasser(ausweis)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "WARM_WASSER",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.WARM_WASSER);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Bitte überprüfen Sie nochmal die Höhe des Warmwasseranteils. Dieser
|
||||||
|
scheint nicht ganz im Rahmen zu liegen.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if auditLeerStand(gebaeude_aufnahme_allgemein)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "LEER_STAND",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.LEER_STAND);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Bei Leerstand größer als 30% darf kein Verbrauchsausweis ausgestellt
|
||||||
|
werden. Bitte klicken Sie <a href="/bedarfsausweis">hier</a> um zum Eingabeformular
|
||||||
|
für den Bedarfsausweis zu gelangen.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if auditVerbrauchAbweichung(ausweis, gebaeude_aufnahme_allgemein).length > 0}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "VERBRAUCH_ABWEICHUNG",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.VERBRAUCH_ABWEICHUNG);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
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?
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#await auditEndEnergie(ausweis, gebaeude, gebaeude_aufnahme_allgemein) then result}
|
||||||
|
{#if result}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "END_ENERGIE",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.END_ENERGIE);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Die Endenergie liegt außerhalb des normalen Rahmens. Bitte
|
||||||
|
nochmal überprüfen. Bei Passivhäusern oder ganz alten
|
||||||
|
unsanierten Gebäuden ist so eine Abweichung durchaus möglich.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
{/await}
|
||||||
|
|
||||||
|
{#if auditWohnflaecheGroesserGesamtflaeche(gebaeude_aufnahme_allgemein)}
|
||||||
|
<RawNotification
|
||||||
|
notification={{
|
||||||
|
message: "Plausibilitätsprüfung",
|
||||||
|
timeout: 0,
|
||||||
|
uid: "WOHNFLAECHE_GROESSER_GESAMTFLAECHE",
|
||||||
|
dismissable: true,
|
||||||
|
onUserDismiss: () => {
|
||||||
|
hidden.add(AuditType.WOHNFLAECHE_GROESSER_GESAMTFLAECHE);
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
},
|
||||||
|
type: "warning",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Die Wohnfläche darf nicht größer als die Nutzfläche sein.
|
||||||
|
</RawNotification>
|
||||||
|
{/if}
|
||||||
|
</RawNotificationWrapper>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user