Berechnung Bedarfsausweis

This commit is contained in:
Moritz Utcke
2023-05-08 22:03:27 +04:00
parent 2c2c69f2d3
commit e2d742e069
19 changed files with 2587 additions and 1414 deletions

View File

@@ -6,7 +6,7 @@
export let ausweis: Verbrauchsausweis; export let ausweis: Verbrauchsausweis;
import UploadImages from "../UploadImages.svelte"; import ImageGrid from "../ImageGrid.svelte";
let images: (File & { data: string })[] = []; let images: (File & { data: string })[] = [];
</script> </script>
@@ -25,22 +25,7 @@
<hr class="trenner_form_100" /> <hr class="trenner_form_100" />
</div> </div>
<div class="flex flex-col gap-4"> <ImageGrid max={1} bind:images></ImageGrid>
<UploadImages max={1} bind:images></UploadImages>
<div class="grid grid-cols-2 gap-2">
{#each images as image, i}
<div class="relative group">
<img src={image.data} alt={image.name} class="h-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all">
<button type="button" class="invisible group-hover:visible absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] rounded-full w-[30px] h-[30px] p-2 bg-[rgba(0,0,0,0.4)]" on:click={() => {
delete images[i]
images = images.filter(x => x);
}}>
R
</button>
</div>
{/each}
</div>
</div>
</div> </div>
</div> </div>

View File

@@ -1,19 +1,18 @@
<script lang="ts"> <script lang="ts">
import { Bedarfsausweis } from "src/lib/Ausweis/Bedarfsausweis";
import { Verbrauchsausweis } from "src/lib/Ausweis/Verbrauchsausweis";
import { VerbrauchsausweisGewerbe } from "src/lib/Ausweis/VerbrauchsausweisGewerbe";
import HelpLabel from "~/components/HelpLabel.svelte"; import HelpLabel from "~/components/HelpLabel.svelte";
export let baujahrGebaeude: number; export let ausweis: Verbrauchsausweis | Bedarfsausweis | VerbrauchsausweisGewerbe;
export let apartmentCount: number;
export let certificateReason: "Vermietung" | "Neubau" | "Verkauf" | "Modernisierung" | "Sonstiges";
export let sanitationStatus: boolean;
export let baujahrHeizungsAnlage: number;
</script> </script>
<div class="GRB"> <div class="GRB">
<!-- Anlass für Energieausweis --> <!-- Anlass für Energieausweis -->
<div class="flex flex-col"> <div class="flex flex-col">
<label class="control-label CHECK" <span
>Anlass für Energieausweis * >Anlass für Energieausweis *
</label> </span>
<div <div
class="grid grid-cols-2 gap-x-2 items-center lg:grid-cols-3" class="grid grid-cols-2 gap-x-2 items-center lg:grid-cols-3"
> >
@@ -22,7 +21,7 @@
type="radio" type="radio"
value="Neubau" value="Neubau"
name="IGanlass" name="IGanlass"
bind:group={certificateReason} bind:group={ausweis.ausstellgrund}
/>Neubau</label />Neubau</label
> >
<label class="radio-inline" <label class="radio-inline"
@@ -31,7 +30,7 @@
value="Vermietung" value="Vermietung"
checked checked
name="IGanlass" name="IGanlass"
bind:group={certificateReason} bind:group={ausweis.ausstellgrund}
/>Vermietung</label />Vermietung</label
> >
<label class="radio-inline" <label class="radio-inline"
@@ -39,7 +38,7 @@
type="radio" type="radio"
value="Verkauf" value="Verkauf"
name="IGanlass" name="IGanlass"
bind:group={certificateReason} bind:group={ausweis.ausstellgrund}
/>Verkauf</label />Verkauf</label
> >
<label class="radio-inline" <label class="radio-inline"
@@ -47,7 +46,7 @@
type="radio" type="radio"
value="Modernisierung" value="Modernisierung"
name="IGanlass" name="IGanlass"
bind:group={certificateReason} bind:group={ausweis.ausstellgrund}
/>Modernisierung</label />Modernisierung</label
> >
<label class="radio-inline" <label class="radio-inline"
@@ -55,7 +54,7 @@
type="radio" type="radio"
value="Sonstiges" value="Sonstiges"
name="IGanlass" name="IGanlass"
bind:group={certificateReason} bind:group={ausweis.ausstellgrund}
/>Sonstiges</label />Sonstiges</label
> >
</div> </div>
@@ -75,7 +74,7 @@
name="IGheizung" name="IGheizung"
type="number" type="number"
required required
bind:value={baujahrHeizungsAnlage} bind:value={ausweis.baujahr_anlage}
/> />
</div> </div>
</div> </div>
@@ -97,7 +96,7 @@
type="number" type="number"
required required
autocomplete="off" autocomplete="off"
bind:value={baujahrGebaeude} bind:value={ausweis.baujahr_gebaeude}
/> />
</div> </div>
</div> </div>
@@ -118,7 +117,7 @@
required required
autocomplete="off" autocomplete="off"
data-msg="Pflichtfeld" data-msg="Pflichtfeld"
bind:value={apartmentCount} bind:value={ausweis.anzahl_einheiten}
maxlength="3" maxlength="3"
/> />
</div> </div>
@@ -140,7 +139,7 @@
name="IGsan" name="IGsan"
class="form-control" class="form-control"
required required
bind:value={sanitationStatus} bind:value={ausweis.objekt_saniert}
> >
<option disabled>Bitte auswählen</option> <option disabled>Bitte auswählen</option>
<option value={true} <option value={true}

View File

@@ -0,0 +1,352 @@
<script lang="ts">
import { Bedarfsausweis } from "src/lib/Ausweis/Bedarfsausweis";
import { Verbrauchsausweis } from "src/lib/Ausweis/Verbrauchsausweis";
import HelpLabel from "../HelpLabel.svelte";
import HeizungImage from "./HeizungImage.svelte";
import AusweisPreviewContainer from "./AusweisPreviewContainer.svelte";
import DaemmungImage from "./DaemmungImage.svelte";
import FensterImage from "./FensterImage.svelte";
import Label from "../Label.svelte";
import { VerbrauchsausweisGewerbe } from "src/lib/Ausweis/VerbrauchsausweisGewerbe";
export let ausweis: Verbrauchsausweis | Bedarfsausweis | VerbrauchsausweisGewerbe;
</script>
<div class="GRB3">
<HelpLabel title="Heizungsanlage (bitte zutreffendes ankreuzen) *">
Wir benötigen diese Angaben um den allgemeinen Modernisierungsstand
einschätzen zu können. Bitte setzen Sie den Haken wenn zutreffend. Das
seit Mai 2021 gültige GEG erfordert eine genauere Prüfung anhand von
Fotos. Bitte laden Sie ein oder mehrere Fotos der Heizungsanlage bzw.
des Heizungsraums hoch.
</HelpLabel>
<hr />
<div class="grid grid-cols-4">
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage1"
bind:checked={ausweis.versorgungssysteme[0]}
value="ZH"
/>Zentral/Etage</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage2"
bind:checked={ausweis.versorgungssysteme[1]}
value="EO"
/>Einzelöfen</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage3"
bind:checked={ausweis.versorgungssysteme[2]}
value="DH"
/>Durchlauferhitzer</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage4"
bind:checked={ausweis.versorgungssysteme[3]}
value="SK"
/>Standardkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage5"
bind:checked={ausweis.versorgungssysteme[4]}
value="SSWW"
/>Solarsystem für Warmwasser</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage6"
bind:checked={ausweis.versorgungssysteme[5]}
value="WP"
/>Wärmepumpe</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage7"
bind:checked={ausweis.versorgungssysteme[6]}
value="NK"
/>Niedertemperaturkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage8"
bind:checked={ausweis.versorgungssysteme[7]}
value="BWK"
/>Brennwertkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage9"
bind:checked={ausweis.versorgungssysteme[8]}
value="WRGD"
/>Warmwasserrohre gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage10"
bind:checked={ausweis.versorgungssysteme[9]}
value="HRGD"
/>Heizungsrohre gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage11"
bind:checked={ausweis.versorgungssysteme[10]}
value="ZK"
/>Zirkulation</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage12"
bind:checked={ausweis.versorgungssysteme[11]}
value="RTR"
/>Raumtemperaturregler</label
>
</div>
</div>
</div>
<hr />
<HeizungImage />
<hr />
<div class="GRB3">
<HelpLabel
title="Fenster/Dachfenster/Türen (bitte zutreffendes ankreuzen):*"
>
Wir benötigen diese Angaben um den allgemeinen Modernisierungsstand
einschätzen zu können. Bitte setzen Sie den Haken wenn zutreffend.
</HelpLabel>
<hr />
<div class="grid grid-cols-4">
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach1"
bind:checked={ausweis.fenster_dach[0]}
value="EG"
/>Einfachglas</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach2"
bind:checked={ausweis.fenster_dach[1]}
value="DF"
/>Doppelverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach3"
bind:checked={ausweis.fenster_dach[2]}
value="IVG"
/>Isolierverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach4"
bind:checked={ausweis.fenster_dach[3]}
value="PHF"
/>Dreifachverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach5"
bind:checked={ausweis.fenster_dach[4]}
value="FD"
/>Alle Fenster dicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach6"
bind:checked={ausweis.fenster_dach[5]}
value="FTUD"
/>Fenster teilweise undicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach7"
bind:checked={ausweis.fenster_dach[6]}
value="TD"
/>Alle Türen dicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach8"
bind:checked={ausweis.fenster_dach[7]}
value="TUD"
/>Türen teilweise undicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach9"
bind:checked={ausweis.fenster_dach[8]}
value="RKD"
/>Rollladenkästen gedämmt, luftdicht</label
>
</div>
</div>
</div>
<hr />
<FensterImage />
<hr />
<div class="GRB3">
<div class="form-group col-md-12">
<HelpLabel title="Wärmedämmung (bitte zutreffendes ankreuzen) *">
Wir benötigen diese Angaben um den allgemeinen Modernisierungsstand
einschätzen zu können. Bitte setzen Sie den Haken wenn zutreffend.
Das seit Mai 2021 gültige GEG erfordert eine genauere Prüfung anhand
von Fotos. Bitte laden Sie ein oder mehrere Fotos der Außenwand und
des Dachbereiches hoch.
</HelpLabel>
<hr />
</div>
<div class="grid grid-cols-4">
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung1"
bind:checked={ausweis.daemmung[0]}
value="AWD"
/>Außenwand gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung2"
bind:checked={ausweis.daemmung[1]}
value="KWD"
/>Kelleraußenwand gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung3"
bind:checked={ausweis.daemmung[2]}
value="KDD"
/>Kellerdecke gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung4"
bind:checked={ausweis.daemmung[3]}
value="DGD"
/>Dachgeschoss gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung5"
bind:checked={ausweis.daemmung[4]}
value="OGDDW"
/>Oberste Geschossdecke gedämmt</label
>
</div>
<div class="form-group col-md-6 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung6"
bind:checked={ausweis.daemmung[5]}
value="OGDD"
/>Oberste Geschossdecke min. 12cm gedämmt</label
>
</div>
</div>
</div>
<hr />
<DaemmungImage />
<hr />
<Label
>H - Hier können Sie ein Gebäudebild hochladen und sich Ihren Energieausweis
als PDF anschauen</Label
>
<AusweisPreviewContainer {ausweis} />

View File

@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import UploadImages from "../UploadImages.svelte"; import ImageGrid from "../ImageGrid.svelte";;
let images: (File & { data: string })[] = []; let images: (File & { data: string })[] = [];
</script> </script>
@@ -54,21 +54,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>
<div class="flex flex-col gap-4"> <ImageGrid max={4} bind:images></ImageGrid>
<UploadImages max={4} bind:images></UploadImages>
<div class="grid grid-cols-2 gap-2">
{#each images as image, i}
<div class="relative group">
<img src={image.data} alt={image.name} class="h-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all">
<button type="button" class="invisible group-hover:visible absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] rounded-full w-[30px] h-[30px] p-2 bg-[rgba(0,0,0,0.4)]" on:click={() => {
delete images[i]
images = images.filter(x => x);
}}>
R
</button>
</div>
{/each}
</div>
</div>
</div> </div>
</div> </div>

View File

@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import UploadImages from "../UploadImages.svelte"; import ImageGrid from "../ImageGrid.svelte";
let images: (File & { data: string })[] = []; let images: (File & { data: string })[] = [];
</script> </script>
@@ -51,21 +51,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>
<div class="flex flex-col gap-4"> <ImageGrid max={4} bind:images></ImageGrid>
<UploadImages max={4} bind:images></UploadImages>
<div class="grid grid-cols-2 gap-2">
{#each images as image, i}
<div class="relative group">
<img src={image.data} alt={image.name} class="h-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all">
<button type="button" class="invisible group-hover:visible absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] rounded-full w-[30px] h-[30px] p-2 bg-[rgba(0,0,0,0.4)]" on:click={() => {
delete images[i]
images = images.filter(x => x);
}}>
R
</button>
</div>
{/each}
</div>
</div>
</div> </div>
</div> </div>

View File

@@ -1,8 +1,8 @@
<script lang="ts"> <script lang="ts">
import UploadImages from "../UploadImages.svelte"; import ImageGrid from "../ImageGrid.svelte";
let images: (File & { data: string })[] = []; let images: (File & { data: string })[] = [];
</script> </script>
<div class="grid grid-cols-2 gap-4"> <div class="grid grid-cols-2 gap-4">
<div class="rounded-lg border-4 p-4 bg-white"> <div class="rounded-lg border-4 p-4 bg-white">
<input type="file" class="image_upload" multiple /> <input type="file" class="image_upload" multiple />
@@ -53,25 +53,10 @@
<div class="rounded-lg border-4 p-4 bg-white"> <div class="rounded-lg border-4 p-4 bg-white">
<p> <p>
Diese Bilder erscheinen <span class="text-red-500">nicht</span> auf Ihrem Diese Bilder erscheinen <span class="text-red-500">nicht</span> auf
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>
<div class="flex flex-col gap-4"> <ImageGrid max={4} bind:images />
<UploadImages max={4} bind:images></UploadImages>
<div class="grid grid-cols-2 gap-2">
{#each images as image, i}
<div class="relative group">
<img src={image.data} alt={image.name} class="h-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all">
<button type="button" class="invisible group-hover:visible absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] rounded-full w-[30px] h-[30px] p-2 bg-[rgba(0,0,0,0.4)]" on:click={() => {
delete images[i]
images = images.filter(x => x);
}}>
R
</button>
</div>
{/each}
</div>
</div>
</div> </div>
</div> </div>

View File

@@ -1,7 +1,9 @@
<script lang="ts"> <script lang="ts">
import { Bedarfsausweis } from "src/lib/Ausweis/Bedarfsausweis";
import { Verbrauchsausweis } from "src/lib/Ausweis/Verbrauchsausweis"; import { Verbrauchsausweis } from "src/lib/Ausweis/Verbrauchsausweis";
import { VerbrauchsausweisGewerbe } from "src/lib/Ausweis/VerbrauchsausweisGewerbe";
export let ausweis: Verbrauchsausweis; export let ausweis: Verbrauchsausweis | VerbrauchsausweisGewerbe | Bedarfsausweis;
let maxPerformance = 250; let maxPerformance = 250;
@@ -40,8 +42,8 @@
(async () => { (async () => {
const endEnergieVerbrauch = (await ausweis.end_energie_verbrauch); const endEnergieVerbrauch = (await ausweis.end_energie_verbrauch);
const primaerEnergieVerbrauch = (await ausweis.primaer_energie_verbrauch); const primaerEnergieVerbrauch = (await ausweis.primaer_energie_verbrauch);
translation_1 = Math.min(100, endEnergieVerbrauch / maxPerformance * 100) translation_1 = Math.max(0, Math.min(100, endEnergieVerbrauch / maxPerformance * 100))
translation_2 = Math.min(100, primaerEnergieVerbrauch / maxPerformance * 100) translation_2 = Math.max(0, Math.min(100, primaerEnergieVerbrauch / maxPerformance * 100))
})() })()
} }

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,31 @@
<script lang="ts">
import UploadImages from "./UploadImages.svelte";
export let images: (File & { data: string })[] = [];
export let max: number = 4;
</script>
<div class="flex flex-col gap-4">
<UploadImages {max} bind:images />
<div class="grid grid-cols-2 gap-2">
{#each images as image, i}
<div class="relative group">
<img
src={image.data}
alt={image.name}
class="h-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all"
/>
<button
type="button"
class="invisible group-hover:visible absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] rounded-full w-[30px] h-[30px] p-2 bg-[rgba(0,0,0,0.4)]"
on:click={() => {
delete images[i];
images = images.filter((x) => x);
}}
>
R
</button>
</div>
{/each}
</div>
</div>

View File

@@ -37,16 +37,38 @@
if (!reader.result) { if (!reader.result) {
return; return;
} }
images.push({ ...file, data: reader.result as string } as (File & { data: string }));
images = images;
if (i == (Math.min(files.length, max) - 1)) { let blob = new Blob([reader.result as ArrayBuffer]);
this.value = ""; let url = URL.createObjectURL(blob);
let image = new Image();
image.onload = () => {
// Create a new canvas with the desired output size
const canvas = document.createElement("canvas");
canvas.width = image.naturalWidth;
canvas.height = image.naturalHeight;
// Scale down the image and draw it onto the canvas
const ctx = canvas.getContext("2d");
if (!ctx) {
return;
}
ctx.drawImage(image, 0, 0, image.naturalWidth, image.naturalHeight);
// Get the scaled-down data from the canvas in the desired output format and quality
const dataURL = canvas.toDataURL("image/jpeg", 0.75);
images.push({ ...file, data: dataURL as string } as (File & { data: string }));
images = images;
if (i == (Math.min(files.length, max) - 1)) {
this.value = "";
}
} }
image.src = url;
} }
reader.readAsDataURL(file); reader.readAsArrayBuffer(file);
} }
} }
</script> </script>
@@ -55,4 +77,4 @@
<input type="file" multiple on:change={getAllImages} /> <input type="file" multiple on:change={getAllImages} />
{:else} {:else}
<input type="file" on:change={getAllImages} /> <input type="file" on:change={getAllImages} />
{/if} {/if}

View File

@@ -6,19 +6,13 @@
import Verbrauch from "~/components/Ausweis/Verbrauch.svelte"; import Verbrauch from "~/components/Ausweis/Verbrauch.svelte";
import Label from "~/components/Label.svelte"; import Label from "~/components/Label.svelte";
import Ausweisart from "~/components/Ausweis/Ausweisart.svelte"; import Ausweisart from "~/components/Ausweis/Ausweisart.svelte";
import HeizungImage from "~/components/Ausweis/HeizungImage.svelte";
import FensterImage from "~/components/Ausweis/FensterImage.svelte";
import DaemmungImage from "~/components/Ausweis/DaemmungImage.svelte";
import AusweisPreviewContainer from "~/components/Ausweis/AusweisPreviewContainer.svelte";
import ZipSearch from "../ZIPSearch.svelte"; import ZipSearch from "../ZIPSearch.svelte";
import { Verbrauchsausweis } from "src/lib/Ausweis/Verbrauchsausweis"; import { Verbrauchsausweis } from "src/lib/Ausweis/Verbrauchsausweis";
import moment from "moment"; import moment from "moment";
import BilderZusatzsysteme from "../Ausweis/BilderZusatzsysteme.svelte";
let ausweis = new Verbrauchsausweis(); let ausweis = new Verbrauchsausweis();
console.log(ausweis);
let needsRequirementCertificate: boolean = false; let needsRequirementCertificate: boolean = false;
$: needsRequirementCertificate = $: needsRequirementCertificate =
@@ -42,8 +36,8 @@
ausweis.energieverbrauch_3_heizquelle_1 = 16000; ausweis.energieverbrauch_3_heizquelle_1 = 16000;
ausweis.wohnflaeche = 152; ausweis.wohnflaeche = 152;
ausweis.keller_beheizt = true; ausweis.keller_beheizt = true;
ausweis.energietraeger_1 = "Erdgas H" ausweis.energietraeger_1 = "Erdgas H";
ausweis.energietraeger_einheit_heizquelle_1 = "kWh" ausweis.energietraeger_einheit_heizquelle_1 = "kWh";
ausweis.warmwasser_enthalten = true; ausweis.warmwasser_enthalten = true;
ausweis.anteil_warmwasser_1 = 18; ausweis.anteil_warmwasser_1 = 18;
ausweis.energieverbrauch_zeitraum = moment("12.01.2019"); ausweis.energieverbrauch_zeitraum = moment("12.01.2019");
@@ -59,9 +53,7 @@
<Progressbar progress={0} /> <Progressbar progress={0} />
</div> </div>
<PerformanceScore <PerformanceScore bind:ausweis />
bind:ausweis={ausweis}
/>
</div> </div>
<form method="post" action="/verbrauchsausweis/erstellen"> <form method="post" action="/verbrauchsausweis/erstellen">
@@ -72,25 +64,19 @@
<a class="button" href="/speichern">Später Weitermachen</a> <a class="button" href="/speichern">Später Weitermachen</a>
<div class="flex gap-4"> <div class="flex gap-4">
<Hilfe /> <Hilfe />
<button on:click={automatischAusfüllen} type="button" class="button" <button
>Automatisch Ausfüllen</button on:click={automatischAusfüllen}
type="button"
class="button">Automatisch Ausfüllen</button
> >
</div> </div>
</div> </div>
<hr /> <hr />
<div class="form-group col-md-12"> <Label>A - Prüfung der Ausweisart</Label>
<Label>A - Prüfung der Ausweisart</Label>
</div>
<Ausweisart <Ausweisart bind:ausweis />
bind:baujahrGebaeude={ausweis.baujahr_gebaeude}
bind:apartmentCount={ausweis.anzahl_einheiten}
bind:certificateReason={ausweis.ausstellgrund}
bind:sanitationStatus={ausweis.objekt_saniert}
bind:baujahrHeizungsAnlage={ausweis.baujahr_anlage}
/>
<div <div
class="flex flex-col p-4" class="flex flex-col p-4"
@@ -116,12 +102,10 @@
<hr /> <hr />
<div class="form-group col-md-12"> <Label
<Label >B - Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Kellerund
>B - Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Dachgeschoss</Label
Kellerund Dachgeschoss</Label >
>
</div>
<div class="GRB"> <div class="GRB">
<!-- Strasse --> <!-- Strasse -->
@@ -223,24 +207,18 @@
<hr /> <hr />
<div class="form-group col-md-12"> <Label>C - Eingabe von 3 zusammenhängenden Verbrauchsjahren</Label>
<Label>C - Eingabe von 3 zusammenhängenden Verbrauchsjahren</Label>
</div>
<div class="GRB"> <div class="GRB">
<Verbrauch <Verbrauch bind:ausweis />
bind:ausweis={ausweis}
/>
</div> </div>
<hr /> <hr />
<div class="form-group col-md-12"> <Label
<Label >D - Eingabe Warmwasseranteil und Verwendung von alternativen
>D - Eingabe Warmwasseranteil und Verwendung von alternativen Energieversorgungssystemen</Label
Energieversorgungssystemen</Label >
>
</div>
<div class="GRB"> <div class="GRB">
<!-- Anteil WW enthalten --> <!-- Anteil WW enthalten -->
@@ -286,7 +264,8 @@
type="number" type="number"
autocomplete="off" autocomplete="off"
bind:value={ausweis.anteil_warmwasser_2} bind:value={ausweis.anteil_warmwasser_2}
disabled={!ausweis.zusaetzliche_heizquelle || !ausweis.warmwasser_enthalten} disabled={!ausweis.zusaetzliche_heizquelle ||
!ausweis.warmwasser_enthalten}
/> />
</div> </div>
@@ -338,12 +317,10 @@
<hr /> <hr />
<div class="form-group col-md-12"> <Label
<Label >E - Eingabe von Gebäudetyp, Gebäudeteil, Lüftung, Kühlung und
>E - Eingabe von Gebäudetyp, Gebäudeteil, Lüftung, Kühlung und Leerstand</Label
Leerstand</Label >
>
</div>
<div class="GRB"> <div class="GRB">
<!-- Gebäudetyp --> <!-- Gebäudetyp -->
@@ -475,355 +452,12 @@
<hr /> <hr />
<div class="form-group col-md-12">
<Label
>F - Bitte prüfen Sie hier die Angaben zum Sanierungszustand des
Gebäudes</Label
>
</div>
<div class="GRB3">
<HelpLabel title="Heizungsanlage (bitte zutreffendes ankreuzen) *">
Wir benötigen diese Angaben um den allgemeinen
Modernisierungsstand einschätzen zu können. Bitte setzen Sie den
Haken wenn zutreffend. Das seit Mai 2021 gültige GEG erfordert
eine genauere Prüfung anhand von Fotos. Bitte laden Sie ein oder
mehrere Fotos der Heizungsanlage bzw. des Heizungsraums hoch.
</HelpLabel>
<hr />
<div class="grid grid-cols-4">
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage1"
bind:checked={ausweis.versorgungssysteme[0]}
value="ZH"
/>Zentral/Etage</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage2"
bind:checked={ausweis.versorgungssysteme[1]}
value="EO"
/>Einzelöfen</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage3"
bind:checked={ausweis.versorgungssysteme[2]}
value="DH"
/>Durchlauferhitzer</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage4"
bind:checked={ausweis.versorgungssysteme[3]}
value="SK"
/>Standardkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage5"
bind:checked={ausweis.versorgungssysteme[4]}
value="SSWW"
/>Solarsystem für Warmwasser</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage6"
bind:checked={ausweis.versorgungssysteme[5]}
value="WP"
/>Wärmepumpe</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage7"
bind:checked={ausweis.versorgungssysteme[6]}
value="NK"
/>Niedertemperaturkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage8"
bind:checked={ausweis.versorgungssysteme[7]}
value="BWK"
/>Brennwertkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage9"
bind:checked={ausweis.versorgungssysteme[8]}
value="WRGD"
/>Warmwasserrohre gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage10"
bind:checked={ausweis.versorgungssysteme[9]}
value="HRGD"
/>Heizungsrohre gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage11"
bind:checked={ausweis.versorgungssysteme[10]}
value="ZK"
/>Zirkulation</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage12"
bind:checked={ausweis.versorgungssysteme[11]}
value="RTR"
/>Raumtemperaturregler</label
>
</div>
</div>
</div>
<hr />
<HeizungImage />
<hr />
<div class="GRB3">
<HelpLabel
title="Fenster/Dachfenster/Türen (bitte zutreffendes ankreuzen):*"
>
Wir benötigen diese Angaben um den allgemeinen
Modernisierungsstand einschätzen zu können. Bitte setzen Sie den
Haken wenn zutreffend.
</HelpLabel>
<hr />
<div class="grid grid-cols-4">
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach1"
bind:checked={ausweis.fenster_dach[0]}
value="EG"
/>Einfachglas</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach2"
bind:checked={ausweis.fenster_dach[1]}
value="DF"
/>Doppelverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach3"
bind:checked={ausweis.fenster_dach[2]}
value="IVG"
/>Isolierverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach4"
bind:checked={ausweis.fenster_dach[3]}
value="PHF"
/>Dreifachverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach5"
bind:checked={ausweis.fenster_dach[4]}
value="FD"
/>Alle Fenster dicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach6"
bind:checked={ausweis.fenster_dach[5]}
value="FTUD"
/>Fenster teilweise undicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach7"
bind:checked={ausweis.fenster_dach[6]}
value="TD"
/>Alle Türen dicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach8"
bind:checked={ausweis.fenster_dach[7]}
value="TUD"
/>Türen teilweise undicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach9"
bind:checked={ausweis.fenster_dach[8]}
value="RKD"
/>Rollladenkästen gedämmt, luftdicht</label
>
</div>
</div>
</div>
<hr />
<FensterImage />
<hr />
<div class="GRB3">
<div class="form-group col-md-12">
<HelpLabel
title="Wärmedämmung (bitte zutreffendes ankreuzen) *"
>
Wir benötigen diese Angaben um den allgemeinen
Modernisierungsstand einschätzen zu können. Bitte setzen Sie
den Haken wenn zutreffend. Das seit Mai 2021 gültige GEG
erfordert eine genauere Prüfung anhand von Fotos. Bitte
laden Sie ein oder mehrere Fotos der Außenwand und des
Dachbereiches hoch.
</HelpLabel>
<hr />
</div>
<div class="grid grid-cols-4">
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung1"
bind:checked={ausweis.daemmung[0]}
value="AWD"
/>Außenwand gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung2"
bind:checked={ausweis.daemmung[1]}
value="KWD"
/>Kelleraußenwand gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung3"
bind:checked={ausweis.daemmung[2]}
value="KDD"
/>Kellerdecke gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung4"
bind:checked={ausweis.daemmung[3]}
value="DGD"
/>Dachgeschoss gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung5"
bind:checked={ausweis.daemmung[4]}
value="OGDDW"
/>Oberste Geschossdecke gedämmt</label
>
</div>
<div class="form-group col-md-6 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung6"
bind:checked={ausweis.daemmung[5]}
value="OGDD"
/>Oberste Geschossdecke min. 12cm gedämmt</label
>
</div>
</div>
</div>
<hr />
<DaemmungImage />
<hr />
<Label <Label
>G - Hier können Sie ein Gebäudebild hochladen und sich Ihren >F - Bitte prüfen Sie hier die Angaben zum Sanierungszustand des
Energieausweis als PDF anschauen</Label Gebäudes</Label
> >
<BilderZusatzsysteme {ausweis} />
<AusweisPreviewContainer {ausweis} /> <hr />
<div class="flex flex-row justify-between"> <div class="flex flex-row justify-between">
<Hilfe /> <Hilfe />
<button class="button">Weiter</button> <button class="button">Weiter</button>

View File

@@ -6,26 +6,20 @@
import Verbrauch from "~/components/Ausweis/Verbrauch.svelte"; import Verbrauch from "~/components/Ausweis/Verbrauch.svelte";
import Label from "~/components/Label.svelte"; import Label from "~/components/Label.svelte";
import Ausweisart from "~/components/Ausweis/Ausweisart.svelte"; import Ausweisart from "~/components/Ausweis/Ausweisart.svelte";
import HeizungImage from "~/components/Ausweis/HeizungImage.svelte";
import FensterImage from "~/components/Ausweis/FensterImage.svelte";
import DaemmungImage from "~/components/Ausweis/DaemmungImage.svelte";
import AusweisPreviewContainer from "~/components/Ausweis/AusweisPreviewContainer.svelte";
import ZipSearch from "../ZIPSearch.svelte"; import ZipSearch from "../ZIPSearch.svelte";
import { buildingTypes } from "./BuildingTypes"; import { buildingTypes } from "./BuildingTypes";
import BilderZusatzsysteme from "../Ausweis/BilderZusatzsysteme.svelte";
import { VerbrauchsausweisGewerbe } from "src/lib/Ausweis/VerbrauchsausweisGewerbe";
import moment from "moment";
let ausweis = new VerbrauchsausweisGewerbe();
let additionalHeating: boolean = false; let additionalHeating: boolean = false;
let heatedWaterIncluded: boolean = false; let heatedWaterIncluded: boolean = false;
let heatedWaterPortion: number = 18; let heatedWaterPortion: number = 18;
let hasCellar: boolean = false; let hasCellar: boolean = false;
let conversionFactor: number = 0;
let calorificValueFactor: number = 0;
let energyConsumption = [0, 0, 0];
let additionalEnergyConsumption = [0, 0, 0];
let climateFactors = [0, 0, 0];
let area = 0; let area = 0;
let energyPerformance = 0;
let zip: string = ""; let zip: string = "";
let city: string = ""; let city: string = "";
@@ -43,14 +37,35 @@
let needsRequirementCertificate: boolean = false; let needsRequirementCertificate: boolean = false;
$: needsRequirementCertificate = $: needsRequirementCertificate =
(baujahrGebaeude < 1978 && (ausweis.baujahr_gebaeude < 1978 &&
apartmentCount <= 4 && ausweis.anzahl_einheiten <= 4 &&
sanitationStatus == false && ausweis.objekt_saniert == false &&
(certificateReason == "Vermietung" || (ausweis.ausstellgrund == "Vermietung" ||
certificateReason == "Sonstiges")) || ausweis.ausstellgrund == "Sonstiges")) ||
certificateReason == "Neubau" || ausweis.ausstellgrund == "Neubau" ||
certificateReason == "Modernisierung" || ausweis.ausstellgrund == "Modernisierung" ||
certificateReason == "Verkauf"; ausweis.ausstellgrund == "Verkauf";
function automatischAusfüllen() {
ausweis.baujahr_gebaeude = 1962;
ausweis.baujahr_anlage = 1974;
ausweis.objekt_saniert = true;
ausweis.anzahl_einheiten = 1;
ausweis.ausstellgrund = "Vermietung";
ausweis.energieverbrauch_1_heizquelle_1 = 15000;
ausweis.energieverbrauch_2_heizquelle_1 = 14000;
ausweis.energieverbrauch_3_heizquelle_1 = 16000;
ausweis.wohnflaeche = 152;
ausweis.keller_beheizt = true;
ausweis.energietraeger_1 = "Erdgas H";
ausweis.energietraeger_einheit_heizquelle_1 = "kWh";
ausweis.warmwasser_enthalten = true;
ausweis.anteil_warmwasser_1 = 18;
ausweis.energieverbrauch_zeitraum = moment("12.01.2019");
ausweis.objekt_plz = "21039";
ausweis.objekt_ort = "Hamburg";
ausweis.objekt_strasse = "Curslacker Deich 170";
}
</script> </script>
<div class="flex flex-row gap-8 items-center mb-8"> <div class="flex flex-row gap-8 items-center mb-8">
@@ -59,7 +74,7 @@
<Progressbar progress={0} /> <Progressbar progress={0} />
</div> </div>
<PerformanceScore performance={energyPerformance} /> <PerformanceScore bind:ausweis />
</div> </div>
<form method="post" action="/verbrauchsausweis/erstellen"> <form method="post" action="/verbrauchsausweis/erstellen">
@@ -68,22 +83,22 @@
> >
<div class="flex flex-row justify-between"> <div class="flex flex-row justify-between">
<a class="button" href="/speichern">Später Weitermachen</a> <a class="button" href="/speichern">Später Weitermachen</a>
<Hilfe /> <div class="flex gap-4">
<Hilfe />
<button
on:click={automatischAusfüllen}
type="button"
class="button">Automatisch Ausfüllen</button
>
</div>
</div> </div>
<hr /> <hr />
<div> <Label>A - Prüfung der Ausweisart</Label>
<Label>A - Prüfung der Ausweisart</Label>
</div> <Ausweisart bind:ausweis />
<Ausweisart
bind:baujahrGebaeude
bind:apartmentCount
bind:certificateReason
bind:sanitationStatus
bind:baujahrHeizungsAnlage
/>
<div <div
class="flex flex-col p-4" class="flex flex-col p-4"
class:hidden={!needsRequirementCertificate} class:hidden={!needsRequirementCertificate}
@@ -99,7 +114,7 @@
</HelpLabel> </HelpLabel>
</div> </div>
<div> <div class="form-group col-md-3">
<a class="button" href="/bedarfsausweis" <a class="button" href="/bedarfsausweis"
>Bedarfsausweis erstellen</a >Bedarfsausweis erstellen</a
> >
@@ -129,13 +144,18 @@
required required
data-msg-minlength="min. 5 Zeichen" data-msg-minlength="min. 5 Zeichen"
data-msg-maxlength="max. 40 Zeichen" data-msg-maxlength="max. 40 Zeichen"
bind:value={ausweis.objekt_strasse}
/> />
</div> </div>
</div> </div>
<!-- PLZ --> <!-- PLZ -->
<div class="form-group col-md-4 PLZ"> <div class="form-group col-md-4 PLZ">
<ZipSearch bind:zip bind:city name="zip" /> <ZipSearch
bind:zip={ausweis.objekt_plz}
bind:city={ausweis.objekt_ort}
name="zip"
/>
</div> </div>
<!-- IGort: readonly entfernt - Nelson --> <!-- IGort: readonly entfernt - Nelson -->
@@ -148,7 +168,7 @@
name="IGort" name="IGort"
class="input-md buchstaben" class="input-md buchstaben"
readonly={true} readonly={true}
bind:value={city} bind:value={ausweis.objekt_ort}
type="text" type="text"
/> />
</div> </div>
@@ -170,7 +190,7 @@
autocomplete="off" autocomplete="off"
data-rule-minlength="2" data-rule-minlength="2"
data-msg-minlength="min. 2 Zeichen" data-msg-minlength="min. 2 Zeichen"
bind:value={area} bind:value={ausweis.wohnflaeche}
/> />
</div> </div>
</div> </div>
@@ -179,7 +199,11 @@
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<Label>Keller *</Label> <Label>Keller *</Label>
<div> <div>
<select name="IGkeller" required bind:value={hasCellar}> <select
name="IGkeller"
required
bind:value={ausweis.keller_beheizt}
>
<option>Bitte auswählen</option> <option>Bitte auswählen</option>
<option value={false}>nicht vorhanden</option> <option value={false}>nicht vorhanden</option>
<option value={false}>unbeheizt</option> <option value={false}>unbeheizt</option>
@@ -201,21 +225,14 @@
</div> </div>
</div> </div>
</div> </div>
<hr /> <hr />
<div> <div>
<Label>C - Eingabe von 3 zusammenhängenden Verbrauchsjahren</Label> <Label>C - Eingabe von 3 zusammenhängenden Verbrauchsjahren</Label>
</div> </div>
<div class="GRB"> <div class="GRB">
<Verbrauch <Verbrauch bind:ausweis />
bind:additionalHeating
bind:energyConsumption
bind:additionalEnergyConsumption
bind:climateFactors
bind:conversionFactor
bind:calorificValueFactor
/>
</div> </div>
<hr /> <hr />
<div> <div>
@@ -311,7 +328,7 @@
</div> </div>
</div> </div>
</div> </div>
<hr /> <hr />
<div> <div>
<Label <Label
@@ -320,95 +337,95 @@
> >
</div> </div>
<div class="GRB grid grid-cols-5 gap-4"> <div class="GRB grid grid-cols-5 gap-4">
<!-- Gebäudetyp --> <!-- Gebäudetyp -->
<div>
<HelpLabel title="Gebäudetyp *"
>Bitte wählen Sie hier den Gebäudetyp aus.
</HelpLabel>
<div> <div>
<HelpLabel title="Gebäudetyp *">Bitte wählen Sie hier den Gebäudetyp aus. </HelpLabel> <select name="objekt_typ" required>
<div> {#each buildingTypes as type}
<select <option value={type}>{type}</option>
name="objekt_typ" {/each}
required </select>
>
{#each buildingTypes as type}
<option value={type}>{type}</option>
{/each}
</select>
</div>
</div> </div>
<!-- Gebäudeteil --> </div>
<!-- Gebäudeteil -->
<div>
<HelpLabel title="Gebäudeteil *"
>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'.</HelpLabel
>
<div> <div>
<HelpLabel title="Gebäudeteil *">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'.</HelpLabel> <select name="objekt_gebaeudeteil" required>
<div>
<select
name="objekt_gebaeudeteil"
required
>
<option>Bitte auswählen</option>
<option value="Gesamtgebäude">
Gesamtgebäude</option
>
<option value="Wohnen"> Wohnen</option>
</select>
</div>
</div>
<!-- Lüftung -->
<div class="form-group col-md-2">
<HelpLabel title="Lüftung durch *">Bitte geben Sie hier ein ob über die Fenster natürlich belüftet wird oder über eine Lüftungsanlage.</HelpLabel>
<div>
<select
name="lueftungskonzept"
required
>
<option> Bitte auswählen</option>
<option value="Fensterlüftung">
Fensterlüftung</option
>
<option value="Schachtlüftung">
Schachtlüftung</option
>
<option
value="Lüftungsanlage ohne Wärmerückgewinnung"
>
Lüftungsanlage ohne
Wärmerückgewinnung</option
>
<option
value="Lüftungsanlage mit Wärmerückgewinnung"
>
Lüftungsanlage mit
Wärmerückgewinnung</option
>
</select>
</div>
</div>
<!-- Lüftung -->
<div class="form-group col-md-2">
<HelpLabel title="Anlage Kühlung *">Bitte geben Sie an ob das Gebäude im Sommer zusätzlich gekühlt wird.</HelpLabel>
<div>
<select
name="wird_gekuehlt"
required
>
<option>Bitte auswählen</option> <option>Bitte auswählen</option>
<option value="1"> vorhanden</option> <option value="Gesamtgebäude">
<option value="0"> Gesamtgebäude</option
nicht vorhanden</option >
> <option value="Wohnen"> Wohnen</option>
</select> </select>
</div>
</div> </div>
<!-- Leerstand --> </div>
<div class="form-group col-md-2"> <!-- Lüftung -->
<HelpLabel title="Leerstand in %">Bitte geben Sie hier den Leerstand in % des Gesamtzeitraumes (3 Jahre) ein. Zum Beispiel 4 Monate Leerstand in 36 Monaten wären dann ca. 11%.</HelpLabel> <div class="form-group col-md-2">
<div> <HelpLabel title="Lüftung durch *"
<input >Bitte geben Sie hier ein ob über die Fenster
name="leerstand" natürlich belüftet wird oder über eine
maxlength="2" Lüftungsanlage.</HelpLabel
type="text" >
/> <div>
</div> <select name="lueftungskonzept" required>
<option> Bitte auswählen</option>
<option value="Fensterlüftung">
Fensterlüftung</option
>
<option value="Schachtlüftung">
Schachtlüftung</option
>
<option
value="Lüftungsanlage ohne Wärmerückgewinnung"
>
Lüftungsanlage ohne Wärmerückgewinnung</option
>
<option
value="Lüftungsanlage mit Wärmerückgewinnung"
>
Lüftungsanlage mit Wärmerückgewinnung</option
>
</select>
</div> </div>
</div>
<!-- Lüftung -->
<div class="form-group col-md-2">
<HelpLabel title="Anlage Kühlung *"
>Bitte geben Sie an ob das Gebäude im Sommer
zusätzlich gekühlt wird.</HelpLabel
>
<div>
<select name="wird_gekuehlt" required>
<option>Bitte auswählen</option>
<option value="1"> vorhanden</option>
<option value="0"> nicht vorhanden</option>
</select>
</div>
</div>
<!-- Leerstand -->
<div class="form-group col-md-2">
<HelpLabel title="Leerstand in %"
>Bitte geben Sie hier den Leerstand in % des
Gesamtzeitraumes (3 Jahre) ein. Zum Beispiel 4
Monate Leerstand in 36 Monaten wären dann ca. 11%.</HelpLabel
>
<div>
<input name="leerstand" maxlength="2" type="text" />
</div>
</div>
</div> </div>
<hr /> <hr />
<div class="form-group col-md-12"> <div class="form-group col-md-12">
<Label <Label
@@ -417,323 +434,7 @@
> >
</div> </div>
<div class="GRB3"> <BilderZusatzsysteme {ausweis} />
<HelpLabel
title="Heizungsanlage (bitte zutreffendes ankreuzen) *"
>
Wir benötigen diese Angaben um den allgemeinen
Modernisierungsstand einschätzen zu können. Bitte setzen
Sie den Haken wenn zutreffend. Das seit Mai 2021 gültige
GEG erfordert eine genauere Prüfung anhand von Fotos.
Bitte laden Sie ein oder mehrere Fotos der
Heizungsanlage bzw. des Heizungsraums hoch.
</HelpLabel>
<hr />
<div class="grid grid-cols-4">
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage1"
value="ZH"
/>Zentral/Etage</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage2"
value="EO"
/>Einzelöfen</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage3"
value="DH"
/>Durchlauferhitzer</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage4"
value="SK"
/>Standardkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage5"
value="SSWW"
/>Solarsystem für Warmwasser</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage6"
value="WP"
/>Wärmepumpe</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage7"
value="NK"
/>Niedertemperaturkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage8"
value="BWK"
/>Brennwertkessel</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage9"
value="WRGD"
/>Warmwasserrohre gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage10"
value="HRGD"
/>Heizungsrohre gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage11"
value="ZK"
/>Zirkulation</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGheizungsanlage12"
value="RTR"
/>Raumtemperaturregler</label
>
</div>
</div>
</div>
<hr />
<HeizungImage />
<hr />
<div class="GRB3">
<HelpLabel
title="Fenster/Dachfenster/Türen (bitte zutreffendes ankreuzen):*"
>
Wir benötigen diese Angaben um den allgemeinen
Modernisierungsstand einschätzen zu können. Bitte setzen
Sie den Haken wenn zutreffend.
</HelpLabel>
<hr />
<div class="grid grid-cols-4">
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach1"
value="EG"
/>Einfachglas</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach2"
value="DF"
/>Doppelverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach3"
value="IVG"
/>Isolierverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach4"
value="PHF"
/>Dreifachverglasung</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach5"
value="FD"
/>Alle Fenster dicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach6"
value="FTUD"
/>Fenster teilweise undicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach7"
value="TD"
/>Alle Türen dicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach8"
value="TUD"
/>Türen teilweise undicht</label
>
</div>
<div class="form-group col-md-3">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGfensterdach9"
value="RKD"
/>Rollladenkästen gedämmt, luftdicht</label
>
</div>
</div>
</div>
<hr />
<FensterImage />
<hr />
<div class="GRB3">
<div class="form-group col-md-12">
<HelpLabel
title="Wärmedämmung (bitte zutreffendes ankreuzen) *"
>
Wir benötigen diese Angaben um den allgemeinen
Modernisierungsstand einschätzen zu können. Bitte
setzen Sie den Haken wenn zutreffend. Das seit Mai
2021 gültige GEG erfordert eine genauere Prüfung
anhand von Fotos. Bitte laden Sie ein oder mehrere
Fotos der Außenwand und des Dachbereiches hoch.
</HelpLabel>
<hr />
</div>
<div class="grid grid-cols-4">
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung1"
value="AWD"
/>Außenwand gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung2"
value="KWD"
/>Kelleraußenwand gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung3"
value="KDD"
/>Kellerdecke gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung4"
value="DGD"
/>Dachgeschoss gedämmt</label
>
</div>
<div class="form-group col-md-3 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung5"
value="OGDDW"
/>Oberste Geschossdecke gedämmt</label
>
</div>
<div class="form-group col-md-6 mw1">
<label class="checkbox-inline"
><input
type="checkbox"
name="IGwaermedaemmung6"
value="OGDD"
/>Oberste Geschossdecke min. 12cm gedämmt</label
>
</div>
</div>
</div>
<hr />
<DaemmungImage />
<hr />
<Label
>G - Hier können Sie ein Gebäudebild hochladen und sich
Ihren Energieausweis als PDF anschauen</Label
>
<AusweisPreviewContainer />
<div class="flex flex-row justify-between"> <div class="flex flex-row justify-between">
<Hilfe /> <Hilfe />
@@ -742,4 +443,4 @@
</div> </div>
</div> </div>
</fieldset> </fieldset>
</form> </form>

140
src/lib/Ausweis/Ausweis.ts Normal file
View File

@@ -0,0 +1,140 @@
import { Moment } from "moment";
import { BitChecker } from "../BitChecker";
export enum AusweisType {
VERBRAUCHSAUSWEIS,
VERBRAUCHSAUSWEIS_NICHT_WOHNGEBAEUDE,
BEDARFSAUSWEIS,
}
export type Ausweisart = "VA" | "BA" | "VANW";
export type Ausstellgrund =
| "Vermietung"
| "Neubau"
| "Verkauf"
| "Modernisierung"
| "Sonstiges";
export type Lueftungskonzept = "Fensterlüftung" | "Schachtlüftung" | "Lüftungsanlage ohne Wärmerückgewinnung" | "Lüftungsanlage mit Wärmerückgewinnung"
export interface Ausweis {
ausweisart: Ausweisart;
id: number;
user_id: number;
rechnung_adresse: number;
versand_adresse: number;
objekt_typ: string;
objekt_plz: string;
objekt_ort: string;
objekt_strasse: string;
objekt_gebaeudeteil: string;
objekt_saniert: boolean;
baujahr_gebaeude: number;
baujahr_anlage: number;
anzahl_einheiten: number;
erstellungsdatum: Date;
ausstellgrund: Ausstellgrund;
energieverbrauch_zeitraum: Moment;
energieverbrauch_1_heizquelle_1: number;
energieverbrauch_2_heizquelle_1: number;
energieverbrauch_3_heizquelle_1: number;
energieverbrauch_1_heizquelle_2: number;
energieverbrauch_2_heizquelle_2: number;
energieverbrauch_3_heizquelle_2: number;
energietraeger_einheit_heizquelle_1: string;
energietraeger_einheit_heizquelle_2: string;
energietraeger_1: string;
energietraeger_2: string;
anteil_warmwasser_1: number;
anteil_warmwasser_2: number;
uid: string;
wohnflaeche: number;
keller_beheizt: boolean;
dachgeschoss: string;
zusaetzliche_heizquelle: boolean;
warmwasser_enthalten: boolean;
lueftungskonzept: Lueftungskonzept;
wird_gekuehlt: boolean;
leerstand: number;
images: string[];
versorgungssysteme: boolean[];
fenster_dach: boolean[];
energiequelle_2_nutzung: boolean[];
daemmung: boolean[];
/**
* Bedarfsausweis spezifische Eigenschaften
*/
anzahl_vollgeschosse: number;
geschosshoehe: number;
anzahl_gauben: number;
breite_gauben: number;
masse_a: number;
masse_b: number;
masse_c: number;
masse_d: number;
masse_e: number;
masse_f: number;
fensterflaeche_so_sw: number;
fensterflaeche_nw_no: number;
aussenwandflaeche_unbeheizt: number;
dachflaeche: number;
dach_u_wert: number;
deckenflaeche: number;
decke_u_wert: number;
aussenwand_flaeche: number;
aussenwand_u_wert: number;
fussboden_flaeche: number;
fussboden_u_wert: number;
volumen: number;
dicht: boolean;
fenster_flaeche_1: number;
fenster_art_1: string;
fenster_flaeche_2: number;
fenster_art_2: string;
dachfenster_flaeche: number;
dachfenster_art: string;
haustuer_flaeche: number;
haustuer_art: string;
dach_bauart: string;
dach_daemmung: number;
decke_bauart: string;
decke_daemmung: number;
aussenwand_bauart: string;
aussenwand_daemmung: number;
boden_bauart: string;
boden_daemmung: number;
warmwasser_verteilung: string;
warmwasser_speicherung: string;
warmwasser_erzeugung: string;
heizung_zentral: boolean;
heizung_verteilung: string;
heizung_speicherung: string;
waerme_erzeugung_heizung: string;
anteil_zusatzheizung: number;
kollektor_flaeche: number;
// VANW
vanw_stromverbrauch_enthalten: number;
vanw_stromverbrauch_sonstige: string;
vanw_strom_1: number;
vanw_strom_2: number;
vanw_strom_3: number;
regnummer: string;
erledigt: boolean;
anrede: string;
name: string;
vorname: string;
email: string;
telefonnummer: string;
}

View File

@@ -0,0 +1,455 @@
import { Moment } from "moment";
import { getHeizwertfaktorClient } from "../server/Heizwertfaktor";
import moment from "moment";
import { BitChecker } from "../BitChecker";
import { getHeizungswerte } from "../Heizungswerte";
export enum AusweisType {
VERBRAUCHSAUSWEIS,
VERBRAUCHSAUSWEIS_NICHT_WOHNGEBAEUDE,
BEDARFSAUSWEIS,
}
export type Lueftungskonzept =
| "Fensterlüftung"
| "Schachtlüftung"
| "Lüftungsanlage ohne Wärmerückgewinnung"
| "Lüftungsanlage mit Wärmerückgewinnung";
export type Ausweisart = "VA" | "BA" | "VANW";
export type Ausstellgrund =
| "Vermietung"
| "Neubau"
| "Verkauf"
| "Modernisierung"
| "Sonstiges";
export class Bedarfsausweis {
public ausweisart: Ausweisart = "VA";
public id: number = 0;
public user_id: number = 0;
public rechnung_adresse: number = 0;
public versand_adresse: number = 0;
public objekt_typ: string = "";
public objekt_plz: string = "";
public objekt_ort: string = "";
public objekt_strasse: string = "";
public objekt_gebaeudeteil: string = "";
public objekt_saniert: boolean = false;
public baujahr_gebaeude: number = 0;
public baujahr_anlage: number = 0;
public anzahl_einheiten: number = 0;
public erstellungsdatum: Date = new Date();
public ausstellgrund: Ausstellgrund = "Vermietung";
public energieverbrauch_zeitraum: Moment = moment();
public energieverbrauch_1_heizquelle_1: number = 0;
public energieverbrauch_2_heizquelle_1: number = 0;
public energieverbrauch_3_heizquelle_1: number = 0;
public energieverbrauch_1_heizquelle_2: number = 0;
public energieverbrauch_2_heizquelle_2: number = 0;
public energieverbrauch_3_heizquelle_2: number = 0;
public energietraeger_einheit_heizquelle_1: string = "";
public energietraeger_einheit_heizquelle_2: string = "";
public energietraeger_1: string = "";
public energietraeger_2: string = "";
public anteil_warmwasser_1: number = 0;
public anteil_warmwasser_2: number = 0;
public uid: string = "";
public wohnflaeche: number = 0;
public keller_beheizt: boolean = false;
public dachgeschoss: string = "";
public zusaetzliche_heizquelle: boolean = false;
public warmwasser_enthalten: boolean = false;
public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";
public wird_gekuehlt: boolean = false;
public leerstand: number = 0;
public images: string[] = [];
public versorgungssysteme: boolean[] = BitChecker(0);
public fenster_dach: boolean[] = BitChecker(0);
public energiequelle_2_nutzung: boolean[] = BitChecker(0);
public daemmung: boolean[] = BitChecker(0);
public get energetische_nutzfläche(): number {
if (this.geschosshoehe < 2.5 || this.geschosshoehe > 3) {
return (1 / this.geschosshoehe - 0.04) * this.volumen;
} else {
return 0.32 * this.volumen;
}
}
/**
* Bedarfsausweis spezifische Eigenschaften
*/
public anzahl_vollgeschosse: number = 0;
public geschosshoehe: number = 0;
public anzahl_gauben: number = 0;
public breite_gauben: number = 0;
public masse_a: number = 0;
public masse_b: number = 0;
public masse_c: number = 0;
public masse_d: number = 0;
public masse_e: number = 0;
public masse_f: number = 0;
public fensterflaeche_so_sw: number = 0;
public fensterflaeche_nw_no: number = 0;
public aussenwandflaeche_unbeheizt: number = 0;
public dachflaeche: number = 0;
public dach_u_wert: number = 0;
public deckenflaeche: number = 0;
public decke_u_wert: number = 0;
public aussenwand_flaeche: number = 0;
public aussenwand_u_wert: number = 0;
public fussboden_flaeche: number = 0;
public fussboden_u_wert: number = 0;
public volumen: number = 0;
public dicht: boolean = false;
public fenster_flaeche_1: number = 0;
public fenster_art_1: number = 0;
public fenster_flaeche_2: number = 0;
public fenster_art_2: number = 0;
public dachfenster_flaeche: number = 0;
public dachfenster_art: number = 0;
public haustuer_flaeche: number = 0;
public haustuer_art: number = 0;
public dach_bauart: string = "";
public dach_daemmung: number = 0;
public decke_bauart: string = "";
public decke_daemmung: number = 0;
public aussenwand_bauart: string = "";
public aussenwand_daemmung: number = 0;
public boden_bauart: string = "";
public boden_daemmung: number = 0;
public warmwasser_verteilung: string = "";
public warmwasser_speicherung: string = "";
public warmwasser_erzeugung: string = "";
public heizung_zentral: boolean = false;
public heizung_verteilung: string = "";
public heizung_speicherung: string = "";
public waerme_erzeugung_heizung: string = "";
public anteil_zusatzheizung: number = 0;
public kollektor_flaeche: number = 0;
// VANW
public vanw_stromverbrauch_enthalten: number = 0;
public vanw_stromverbrauch_sonstige: string = "";
public vanw_strom_1: number = 0;
public vanw_strom_2: number = 0;
public vanw_strom_3: number = 0;
public regnummer: string = "";
public erledigt: boolean = false;
public anrede: string = "";
public name: string = "";
public vorname: string = "";
public email: string = "";
public telefonnummer: string = "";
// Temporär
public tabellenwerte_aendern: boolean = false;
public constructor() {}
public static fromBase64(base64: string): Bedarfsausweis | null {
try {
const text = Buffer.from(base64, "base64");
const json = JSON.parse(text.toString());
return json;
} catch (e) {
return null;
}
}
public get primaer_energie_verbrauch(): Promise<number> {
return (async () => {
const Endenergieverbrauch = await this.end_energie_verbrauch;
const brennstoff_1 = getHeizwertfaktorClient(
this.energietraeger_1,
this.energietraeger_einheit_heizquelle_1
);
return Endenergieverbrauch * brennstoff_1.primärenergiefaktor;
})();
}
public get end_energie_verbrauch(): number {
let Uawd = 1 / (1 / this.dach_daemmung / 0.04);
let Uawa = 1 / (1 / this.aussenwand_daemmung / 0.04);
let Uawb = 1 / (1 / this.boden_daemmung / 0.04);
let Uawogd =1 / (1 / this.decke_daemmung / 0.04);
if (!this.tabellenwerte_aendern) {
this.dach_u_wert = Math.round(Uawd);
this.decke_u_wert = Math.round(Uawogd);
this.aussenwand_u_wert = Math.round(Uawa);
this.fussboden_u_wert = Math.round(Uawb);
}
if (this.dachgeschoss) {
var IOGdeckef = 0;
var dachgeschossf = 0.5;
var dachgeschossf2 = 1;
} else if (!this.dachgeschoss) {
var IOGdeckef = 0.8;
var dachgeschossf = 0;
var dachgeschossf2 = 0;
// TODO: Dachgeschoss braucht 3 optionen
} else {
var IOGdeckef = 1;
var dachgeschossf = 0;
var dachgeschossf2 = 0;
}
if (this.keller_beheizt) {
var keller_beheiztf = 1;
} else {
var keller_beheiztf = 0;
}
var gaubenfl =
this.breite_gauben * 2 * 0.3 + this.anzahl_gauben * 2 * 1.5;
var gaubenvol = this.breite_gauben * 1.5;
var Fawa = 1;
if (
this.objekt_typ === "Doppelhaushälfte" ||
this.objekt_typ === "Reihenendhaus"
) {
var Fawa = 0.7;
} else if (this.objekt_typ === "Reihenmittelhaus") {
var Fawa = 0.4;
}
// Außenwand
var awa1 =
((2 * this.masse_a +
2 * this.masse_b +
2 * this.masse_d +
2 * this.masse_e +
2 * this.masse_f) *
this.geschosshoehe *
this.anzahl_vollgeschosse +
2 * this.masse_a * this.geschosshoehe * dachgeschossf +
(2 * this.masse_a +
2 * this.masse_b +
2 * this.masse_d +
2 * this.masse_e +
2 * this.masse_f) *
2.2 *
keller_beheiztf) *
Fawa -
this.fenster_flaeche_1 -
this.fenster_flaeche_2 -
this.haustuer_flaeche +
gaubenfl;
if (!this.tabellenwerte_aendern) {
this.aussenwand_flaeche = awa1;
}
var awd1 =
((this.masse_a * this.masse_b +
this.masse_c * this.masse_d +
(+this.masse_f + +this.masse_c) * this.masse_e) *
1.2 -
this.dachfenster_flaeche) *
dachgeschossf2;
if (!this.tabellenwerte_aendern) {
this.dachflaeche = awd1;
}
var awogd1 =
(this.masse_a * this.masse_b +
this.masse_c * this.masse_d +
(+this.masse_f + +this.masse_c) * this.masse_e -
this.dachfenster_flaeche) *
IOGdeckef;
if (!this.tabellenwerte_aendern) {
this.deckenflaeche = awogd1;
}
var awb1 =
this.masse_a * this.masse_b +
this.masse_c * this.masse_d +
(+this.masse_f + +this.masse_c) * this.masse_e;
if (!this.tabellenwerte_aendern) {
this.fussboden_flaeche = awb1;
}
var behgv =
awb1 * this.geschosshoehe * this.anzahl_vollgeschosse +
awb1 * 2.2 * keller_beheiztf +
awb1 * this.geschosshoehe * dachgeschossf +
gaubenvol;
if (!this.tabellenwerte_aendern) {
this.volumen = behgv;
}
if (this.dicht) {
var Hv = 0.163 * behgv;
} else {
var Hv = 0.19 * behgv;
}
var AHF =
this.aussenwand_flaeche +
this.fussboden_flaeche +
this.dachflaeche +
this.deckenflaeche +
this.fenster_flaeche_2 +
this.haustuer_flaeche +
this.dachfenster_flaeche +
this.fenster_flaeche_1;
let AN = this.energetische_nutzfläche;
var Qi = 22 * AN;
// NOTE: Irgendwie sowas wie Gesamtwärmestrom der entweicht.
var Qs =
270 * this.fensterflaeche_so_sw * 0.567 * 0.75 +
100 * this.fensterflaeche_nw_no * 0.567 * 0.75 +
225 * this.dachfenster_flaeche * 0.567 * 0.75 +
155 *
(this.fenster_flaeche_2 +
this.dachfenster_flaeche +
this.fenster_flaeche_1 -
this.fensterflaeche_so_sw -
this.fensterflaeche_nw_no) *
0.567 *
0.75;
var Ht =
this.aussenwand_u_wert *
(this.aussenwand_flaeche - this.aussenwandflaeche_unbeheizt) +
this.aussenwand_u_wert * this.aussenwandflaeche_unbeheizt * 0.5 +
this.decke_u_wert * this.deckenflaeche * IOGdeckef +
this.fussboden_u_wert * this.fussboden_flaeche * 0.6 +
this.dach_u_wert * this.dachflaeche +
this.fenster_art_1 * this.fenster_flaeche_1 +
this.fenster_art_2 * this.fenster_flaeche_2 +
this.dachfenster_art * this.dachfenster_flaeche +
AHF * 0.05 +
this.haustuer_flaeche * this.haustuer_art;
var Qh = (66 * (Ht + Hv) - 0.95 * (Qs + Qi)) / AN;
var Solarsystem_WWbw = 0;
var Solarsystem_WWhb = 0;
if (AN < 500) {
if (this.versorgungssysteme[4]) {
var Solarsystem_WWbw = 11.3 - (3.3 / 350) * (AN - 150);
var Solarsystem_WWhb = 0.8 - (0.4 / 350) * (AN - 150);
}
if (this.kollektor_flaeche != 0) {
var Solarsystem_WWbw = (this.kollektor_flaeche * 280) / AN;
var Solarsystem_WWhb = 0.8 - (0.4 / 350) * (AN - 150);
}
} else if (AN > 500 && AN < 7000) {
if (this.versorgungssysteme[4]) {
var Solarsystem_WWbw = 8 - (2 / 2000) * (AN - 500);
var Solarsystem_WWhb = 0.4 - (0.1 / 2000) * (AN - 500);
}
if (this.kollektor_flaeche != 0) {
var Solarsystem_WWbw = (this.kollektor_flaeche * 280) / AN;
var Solarsystem_WWhb = 0.4 - (0.1 / 2000) * (AN - 500);
}
}
let hilfsenergiel = 0;
let wgewinnel = 0;
if (this.lueftungskonzept == "Lüftungsanlage mit Wärmerückgewinnung") {
hilfsenergiel = 0;
wgewinnel = 13.5;
}
if (this.lueftungskonzept == "Lüftungsanlage ohne Wärmerückgewinnung") {
if (this.baujahr_gebaeude < 1996) {
hilfsenergiel = 4;
wgewinnel = 3.5;
}
if (this.baujahr_gebaeude > 1996) {
hilfsenergiel = 2.6;
wgewinnel = 3.2;
}
}
let [
heizung_zentralwv,
verteilunghwv,
spheizungwv,
werzeugungheaz,
verteilungwwwv,
verteilungwwhg,
warmwasser_speicherungwv,
warmwasser_speicherunghg,
werzeugungwweaz,
verteilunghhb,
spheizunghb,
werzeugunghhb,
verteilungwwhb,
warmwasser_speicherunghb,
werzeugungwwhb,
BRSPrimärenergiefaktor,
BRSPrimärenergiefaktor1,
Coeffizienz,
] = getHeizungswerte(
this.energietraeger_1,
this.energietraeger_2,
AN,
this.warmwasser_verteilung,
this.warmwasser_speicherung,
this.warmwasser_erzeugung,
this.heizung_zentral,
this.heizung_verteilung,
this.heizung_speicherung,
this.waerme_erzeugung_heizung
);
var endenergieh =
(Qh + heizung_zentralwv + verteilunghwv + spheizungwv) *
werzeugungheaz -
wgewinnel;
var endenergiew =
(12 +
verteilungwwwv -
verteilungwwhg +
warmwasser_speicherungwv -
warmwasser_speicherunghg) *
werzeugungwweaz;
var hilfsenergie =
verteilunghhb +
spheizunghb +
werzeugunghhb +
verteilungwwhb +
warmwasser_speicherunghb +
werzeugungwwhb +
Solarsystem_WWhb +
hilfsenergiel;
var endenergiegesamt = endenergieh + endenergiew + hilfsenergie;
var primheizung =
endenergieh *
(1 - this.anteil_zusatzheizung) *
BRSPrimärenergiefaktor +
endenergieh * this.anteil_zusatzheizung * BRSPrimärenergiefaktor1;
var primaerenergiebedarf =
primheizung +
(endenergiew - Solarsystem_WWbw) * BRSPrimärenergiefaktor +
hilfsenergie * 1.8;
return endenergiegesamt;
}
}

View File

@@ -11,12 +11,7 @@ export enum AusweisType {
BEDARFSAUSWEIS, BEDARFSAUSWEIS,
} }
export enum Lueftungskonzept { export type Lueftungskonzept = "Fensterlüftung" | "Schachtlüftung" | "Lüftungsanlage ohne Wärmerückgewinnung" | "Lüftungsanlage mit Wärmerückgewinnung"
"Fensterlüftung",
"Schachtlüftung",
"Lüftungsanlage ohne Wärmerückgewinnung",
"Lüftungsanlage mit Wärmerückgewinnung",
}
export type Ausweisart = "VA" | "BA" | "VANW"; export type Ausweisart = "VA" | "BA" | "VANW";
export type Ausstellgrund = export type Ausstellgrund =
@@ -70,7 +65,7 @@ export class Verbrauchsausweis {
public dachgeschoss: string = ""; public dachgeschoss: string = "";
public zusaetzliche_heizquelle: boolean = false; public zusaetzliche_heizquelle: boolean = false;
public warmwasser_enthalten: boolean = false; public warmwasser_enthalten: boolean = false;
public lueftungskonzept: Lueftungskonzept = Lueftungskonzept.Fensterlüftung; public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";
public wird_gekuehlt: boolean = false; public wird_gekuehlt: boolean = false;
public leerstand: number = 0; public leerstand: number = 0;
public images: string[] = []; public images: string[] = [];

View File

@@ -0,0 +1,251 @@
import { Moment } from "moment";
import { getKlimafaktorenClient } from "../Klimafaktoren";
import { getHeizwertfaktorClient } from "../server/Heizwertfaktor";
import moment from "moment";
import { BitChecker } from "../BitChecker";
export enum AusweisType {
VERBRAUCHSAUSWEIS,
VERBRAUCHSAUSWEIS_NICHT_WOHNGEBAEUDE,
BEDARFSAUSWEIS,
}
export type Lueftungskonzept = "Fensterlüftung" | "Schachtlüftung" | "Lüftungsanlage ohne Wärmerückgewinnung" | "Lüftungsanlage mit Wärmerückgewinnung"
export type Ausweisart = "VA" | "BA" | "VANW";
export type Ausstellgrund =
| "Vermietung"
| "Neubau"
| "Verkauf"
| "Modernisierung"
| "Sonstiges";
export class VerbrauchsausweisGewerbe {
public ausweisart: Ausweisart = "VA";
public id: number = 0;
public user_id: number = 0;
public rechnung_adresse: number = 0;
public versand_adresse: number = 0;
public objekt_typ: string = "";
public objekt_plz: string = "";
public objekt_ort: string = "";
public objekt_strasse: string = "";
public objekt_gebaeudeteil: string = "";
public objekt_saniert: boolean = false;
public baujahr_gebaeude: number = 0;
public baujahr_anlage: number = 0;
public anzahl_einheiten: number = 0;
public erstellungsdatum: Date = new Date();
public ausstellgrund: Ausstellgrund = "Vermietung";
public energieverbrauch_zeitraum: Moment = moment();
public energieverbrauch_1_heizquelle_1: number = 0;
public energieverbrauch_2_heizquelle_1: number = 0;
public energieverbrauch_3_heizquelle_1: number = 0;
public energieverbrauch_1_heizquelle_2: number = 0;
public energieverbrauch_2_heizquelle_2: number = 0;
public energieverbrauch_3_heizquelle_2: number = 0;
public energietraeger_einheit_heizquelle_1: string = "";
public energietraeger_einheit_heizquelle_2: string = "";
public energietraeger_1: string = "";
public energietraeger_2: string = "";
public anteil_warmwasser_1: number = 0;
public anteil_warmwasser_2: number = 0;
public uid: string = "";
public wohnflaeche: number = 0;
public keller_beheizt: boolean = false;
public dachgeschoss: string = "";
public zusaetzliche_heizquelle: boolean = false;
public warmwasser_enthalten: boolean = false;
public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";
public wird_gekuehlt: boolean = false;
public leerstand: number = 0;
public images: string[] = [];
public versorgungssysteme: boolean[] = BitChecker(0);
public fenster_dach: boolean[] = BitChecker(0);
public energiequelle_2_nutzung: boolean[] = BitChecker(0);
public daemmung: boolean[] = BitChecker(0);
public get energetische_nutzfläche(): number {
return this.wohnflaeche * (this.keller_beheizt ? 1.35 : 1.2);
};
/**
* Bedarfsausweis spezifische Eigenschaften
*/
public anzahl_vollgeschosse: number = 0;
public geschosshoehe: number = 0;
public anzahl_gauben: number = 0;
public breite_gauben: number = 0;
public masse_a: number = 0;
public masse_b: number = 0;
public masse_c: number = 0;
public masse_d: number = 0;
public masse_e: number = 0;
public masse_f: number = 0;
public fensterflaeche_so_sw: number = 0;
public fensterflaeche_nw_no: number = 0;
public aussenwandflaeche_unbeheizt: number = 0;
public dachflaeche: number = 0;
public dach_u_wert: number = 0;
public deckenflaeche: number = 0;
public decke_u_wert: number = 0;
public aussenwand_flaeche: number = 0;
public aussenwand_u_wert: number = 0;
public fussboden_flaeche: number = 0;
public fussboden_u_wert: number = 0;
public volumen: number = 0;
public dicht: boolean = false;
public fenster_flaeche_1: number = 0;
public fenster_art_1: string = "";
public fenster_flaeche_2: number = 0;
public fenster_art_2: string = "";
public dachfenster_flaeche: number = 0;
public dachfenster_art: string = "";
public haustuer_flaeche: number = 0;
public haustuer_art: string = "";
public dach_bauart: string = "";
public dach_daemmung: number = 0;
public decke_bauart: string = "";
public decke_daemmung: number = 0;
public aussenwand_bauart: string = "";
public aussenwand_daemmung: number = 0;
public boden_bauart: string = "";
public boden_daemmung: number = 0;
public warmwasser_verteilung: string = "";
public warmwasser_speicherung: string = "";
public warmwasser_erzeugung: string = "";
public heizung_zentral: boolean = false;
public heizung_verteilung: string = "";
public heizung_speicherung: string = "";
public waerme_erzeugung_heizung: string = "";
public anteil_zusatzheizung: number = 0;
public kollektor_flaeche: number = 0;
// VANW
public vanw_stromverbrauch_enthalten: number = 0;
public vanw_stromverbrauch_sonstige: string = "";
public vanw_strom_1: number = 0;
public vanw_strom_2: number = 0;
public vanw_strom_3: number = 0;
public regnummer: string = "";
public erledigt: boolean = false;
public anrede: string = "";
public name: string = "";
public vorname: string = "";
public email: string = "";
public telefonnummer: string = "";
public constructor() {}
public static fromBase64(base64: string): VerbrauchsausweisGewerbe | null {
try {
const text = Buffer.from(base64, "base64");
const json = JSON.parse(text.toString());
return json;
} catch (e) {
return null;
}
}
public get primaer_energie_verbrauch(): Promise<number> {
return (async () => {
const Endenergieverbrauch = await this.end_energie_verbrauch;
const brennstoff_1 = getHeizwertfaktorClient(this.energietraeger_1, this.energietraeger_einheit_heizquelle_1);
return Endenergieverbrauch * brennstoff_1.primärenergiefaktor;
})();
}
public get end_energie_verbrauch(): Promise<number> {
return (async () => {
const date = this.energieverbrauch_zeitraum;
const klimafaktoren = await getKlimafaktorenClient(
date,
this.objekt_plz
);
// Endenergieverbrauch
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
let brennstoff_1 = getHeizwertfaktorClient(this.energietraeger_1, this.energietraeger_einheit_heizquelle_1);
let brennstoff_2 = getHeizwertfaktorClient(this.energietraeger_2, this.energietraeger_einheit_heizquelle_2);
let verbrauch_1_kwh =
(this.energieverbrauch_1_heizquelle_1 * brennstoff_1.umrechnungsfaktor)
let verbrauch_2_kwh =
(this.energieverbrauch_2_heizquelle_1 * brennstoff_1.umrechnungsfaktor)
let verbrauch_3_kwh =
(this.energieverbrauch_3_heizquelle_1 * brennstoff_1.umrechnungsfaktor)
let verbrauch_4_kwh =
(this.energieverbrauch_1_heizquelle_2 * brennstoff_2.umrechnungsfaktor)
let verbrauch_5_kwh =
(this.energieverbrauch_2_heizquelle_2 * brennstoff_2.umrechnungsfaktor)
let verbrauch_6_kwh =
(this.energieverbrauch_3_heizquelle_2 * brennstoff_2.umrechnungsfaktor)
let warmwasserZuschlag = 0;
let leerstandsZuschlag = 0;
let kuehlungsZuschlag = 0;
if (this.anteil_warmwasser_1 == 0) {
warmwasserZuschlag = 20 * this.energetische_nutzfläche * 3;
}
if (this.leerstand > 0) {
let durchschnittsKlimafaktor =
klimafaktoren.reduce((a, b) => a + b, 0) / 3;
leerstandsZuschlag =
((verbrauch_1_kwh +
verbrauch_2_kwh +
verbrauch_3_kwh +
verbrauch_4_kwh +
verbrauch_5_kwh +
verbrauch_6_kwh) *
(this.leerstand / 100)) /
durchschnittsKlimafaktor;
}
if (this.energiequelle_2_nutzung[3]) {
kuehlungsZuschlag = 6 * this.energetische_nutzfläche * 3;
}
let anteil_heizung = 1 - this.anteil_warmwasser_1 / 100;
let anteil_warmwasser = this.anteil_warmwasser_1 / 100;
let Energieverbrauchskennwert =
(anteil_heizung *
(verbrauch_1_kwh + verbrauch_4_kwh) *
klimafaktoren[0] +
anteil_warmwasser * (verbrauch_1_kwh + verbrauch_4_kwh) +
anteil_heizung *
(verbrauch_2_kwh + verbrauch_5_kwh) *
klimafaktoren[1] +
anteil_warmwasser * (verbrauch_2_kwh + verbrauch_5_kwh) +
anteil_heizung *
(verbrauch_3_kwh + verbrauch_6_kwh) *
klimafaktoren[2] +
anteil_warmwasser * (verbrauch_3_kwh + verbrauch_6_kwh) +
warmwasserZuschlag +
leerstandsZuschlag +
kuehlungsZuschlag) /
3 /
this.energetische_nutzfläche;
return Energieverbrauchskennwert;
})();
}
}

741
src/lib/Heizungswerte.ts Normal file
View File

@@ -0,0 +1,741 @@
import fuelList from "~/components/Ausweis/fuelList";
export function getHeizungswerte(
energietraeger: string,
energietraeger2: string,
AN: number,
verteilungww: string,
warmwasser_speicherung: string,
werzeugungww: string,
heizung_zentral: boolean,
verteilungh: string,
spheizung: string,
werzeugungh: string
) {
let energietraegerfa = 1.1;
let energietraegerfa2 = 1.1;
let werzeugungwweaz = 1.31 - (0.08 / 350) * (AN - 150);
let werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
let werzeugungheaz = 1.19 - (0.04 / 350) * (AN - 150);
let werzeugunghhb = 0.8 - (0.4 / 350) * (AN - 150);
if (
energietraeger == "Heizöl" ||
energietraeger == "Erdgas" ||
energietraeger == "Flüssiggas" ||
energietraeger == "Koks"
) {
energietraegerfa = 1.1;
} else if (
energietraeger == "Brennholz" ||
energietraeger == "Holz-Pellets" ||
energietraeger == "Holzhackschnitzel"
) {
energietraegerfa = 0.2;
} else if (energietraeger == "Strommix") {
energietraegerfa = 1.8;
} else if (
energietraeger == "Nahwärme KWK FB" ||
energietraeger == "Fernwärme KWK FB"
) {
energietraegerfa = 0.7;
} else if (
energietraeger == "Nahwärme KWK EB" ||
energietraeger == "Fernwärme KWK EB"
) {
energietraegerfa = 0;
} else if (
energietraeger == "Nahwärme HKW FB" ||
energietraeger == "Fernwärme HKW FB"
) {
energietraegerfa = 1.3;
} else if (
energietraeger == "Nahwärme HKW EB" ||
energietraeger == "Fernwärme HKW EB"
) {
energietraegerfa = 0.1;
} else if (energietraeger == "Braunkohle") {
energietraegerfa = 1.2;
}
if (
energietraeger2 == "Heizöl" ||
energietraeger2 == "Erdgas" ||
energietraeger2 == "Flüssiggas" ||
energietraeger2 == "Koks"
) {
energietraegerfa2 = 1.1;
} else if (
energietraeger2 == "Holz-Pellets" ||
energietraeger2 == "Holzhackschnitzel" ||
energietraeger2 == "Brennholz"
) {
energietraegerfa2 = 0.2;
} else if (energietraeger2 == "Strommix") {
energietraegerfa2 = 1.8;
} else if (energietraeger2 == "Braunkohle") {
energietraegerfa2 = 1.2;
}
let verteilungwwwv = 0;
let verteilungwwhg = 0;
let verteilungwwhb = 0;
let warmwasser_speicherungwv = 0;
let warmwasser_speicherunghg = 0;
let warmwasser_speicherunghb = 0;
let verteilunghwv = 0;
let verteilunghhb = 0;
let spheizungwv = 0;
let spheizunghb = 0;
let heizung_zentralwv = 0;
if (AN <= 500) {
if (verteilungww == "zvmzbis1978") {
verteilungwwwv = 68.6 - (21.2 / 350) * (AN - 150);
verteilungwwhg = 12.4 + (2.2 / 350) * (AN - 150);
verteilungwwhb = 1.4 - (0.6 / 350) * (AN - 150);
} else if (verteilungww == "zvmzngbis1978") {
verteilungwwwv = 41.9 - (6.5 / 350) * (AN - 150);
verteilungwwhg = 12.4 + (2.2 / 350) * (AN - 150);
verteilungwwhb = 1.4 - (0.6 / 350) * (AN - 150);
} else if (verteilungww == "zvmzvon1979bis1994") {
verteilungwwwv = 27.3 - (4.7 / 350) * (AN - 150);
verteilungwwhg = 8.2 + (1.1 / 350) * (AN - 150);
verteilungwwhb = 1.4 - (0.6 / 350) * (AN - 150);
} else if (verteilungww == "zvmzab1995") {
verteilungwwwv = 11.6 - (4 / 350) * (AN - 150);
verteilungwwhg = 1.7 + (0.2 / 350) * (AN - 150);
verteilungwwhb = 0.8 - (0.5 / 350) * (AN - 150);
} else if (verteilungww == "zvozbis1978") {
verteilungwwwv = 17 - (6.6 / 350) * (AN - 150);
verteilungwwhg = 3.5;
verteilungwwhb = 0;
} else if (verteilungww == "zvozngbis1978") {
verteilungwwwv = 12.6 - (3.8 / 350) * (AN - 150);
verteilungwwhg = 3.5;
verteilungwwhb = 0;
} else if (verteilungww == "zvozvon1979bis1994") {
verteilungwwwv = 10.8 - (2.5 / 350) * (AN - 150);
verteilungwwhg = 3.7;
verteilungwwhb = 0;
} else if (verteilungww == "zvozab1995") {
verteilungwwwv = 5.4 - (2 / 350) * (AN - 150);
verteilungwwhg = 1;
verteilungwwhb = 0;
} else if (verteilungww == "dzsbis1994") {
verteilungwwwv = 3.8;
verteilungwwhg = 2;
verteilungwwhb = 0;
} else if (verteilungww == "dzsab1995") {
verteilungwwwv = 1.5;
verteilungwwhg = 0.7;
verteilungwwhb = 0;
}
if (warmwasser_speicherung == "zwwsath") {
warmwasser_speicherungwv = 5.1 - (3.3 / 350) * (AN - 150);
warmwasser_speicherunghg = 0;
warmwasser_speicherunghb = 0.2;
} else if (warmwasser_speicherung == "zwwsith") {
warmwasser_speicherungwv = 4.2 - (2.8 / 350) * (AN - 150);
warmwasser_speicherunghg = 2.2 - (1.4 / 350) * (AN - 150);
warmwasser_speicherunghb = 0.2;
} else if (warmwasser_speicherung == "gasbs") {
warmwasser_speicherungwv = 18 - (6.1 / 350) * (AN - 150);
warmwasser_speicherunghg = 0;
warmwasser_speicherunghb = 0;
} else if (warmwasser_speicherung == "elks") {
warmwasser_speicherungwv = 1.5;
warmwasser_speicherunghg = 0.8;
warmwasser_speicherunghb = 0;
}
if (werzeugungww == "ktkesselbis1986") {
werzeugungwweaz = 2.05 - (0.41 / 350) * (AN - 150);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ktkesselvon1987bis1994") {
werzeugungwweaz = 1.9 - (0.33 / 350) * (AN - 150);
werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "ktkesselab1995") {
werzeugungwweaz = 1.71 - (0.25 / 350) * (AN - 150);
werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "ntkesselbis1986") {
werzeugungwweaz = 1.3 - (0.07 / 350) * (AN - 150);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ntkesselvon1987bis1994") {
werzeugungwweaz = 1.31 - (0.08 / 350) * (AN - 150);
werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "ntkesselab1995") {
werzeugungwweaz = 1.19 - (0.04 / 350) * (AN - 150);
werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "bwkesselbis1986") {
werzeugungwweaz = 1.24 - (0.07 / 350) * (AN - 150);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "bwkesselvon1987bis1994") {
werzeugungwweaz = 1.25 - (0.08 / 350) * (AN - 150);
werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "bwkesselab1995") {
werzeugungwweaz = 1.15 - (0.03 / 350) * (AN - 150);
werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "bwkesselab1999") {
werzeugungwweaz = 1.13 - (0.03 / 350) * (AN - 150);
werzeugungwwhb = 0.2 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "ewplhvon1979bis1994") {
werzeugungwweaz = 0.37;
werzeugungwwhb = 0;
} else if (werzeugungww == "ewplhab1995") {
werzeugungwweaz = 0.34;
werzeugungwwhb = 0;
} else if (werzeugungww == "ewpemvon1979bis1994") {
werzeugungwweaz = 0.32;
werzeugungwwhb = 0.3;
} else if (werzeugungww == "ewpemab1995") {
werzeugungwweaz = 0.27;
werzeugungwwhb = 0.3;
} else if (werzeugungww == "ewpgmvon1979bis1994") {
werzeugungwweaz = 0.26;
werzeugungwwhb = 0.5 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "ewpgmab1995") {
werzeugungwweaz = 0.23;
werzeugungwwhb = 0.5 - (0.1 / 350) * (AN - 150);
} else if (werzeugungww == "fwugs") {
werzeugungwweaz = 1.14;
werzeugungwwhb = 0.4;
} else if (werzeugungww == "zes") {
werzeugungwweaz = 1;
werzeugungwwhb = 0;
} else if (werzeugungww == "gbs") {
werzeugungwweaz = 1.22;
werzeugungwwhb = 0;
} else if (werzeugungww == "thermebis1994") {
werzeugungwweaz = 1.32;
werzeugungwwhb = 0.2;
} else if (werzeugungww == "thermeab1995") {
werzeugungwweaz = 1.32;
werzeugungwwhb = 0.2;
} else if (werzeugungww == "bthermeab1995") {
werzeugungwweaz = 1.28;
werzeugungwwhb = 0.2;
} else if (werzeugungww == "dezelks") {
werzeugungwweaz = 1;
werzeugungwwhb = 0;
} else if (werzeugungww == "dezeldh") {
werzeugungwweaz = 1;
werzeugungwwhb = 0;
} else if (werzeugungww == "dezgasdhbis1994") {
werzeugungwweaz = 1.19;
werzeugungwwhb = 0;
} else if (werzeugungww == "dezgasdhab1995") {
werzeugungwweaz = 1.16;
werzeugungwwhb = 0;
}
if (heizung_zentral) {
heizung_zentralwv = 3.3;
} else if (!heizung_zentral) {
heizung_zentralwv = 0;
}
if (verteilungh == "zv7055bis1978") {
verteilunghwv = 75.1 - (31.6 / 350) * (AN - 150);
verteilunghhb = 2.3 - (1.3 / 350) * (AN - 150);
} else if (verteilungh == "zv7055ngbis1978") {
verteilunghwv = 40.9 - (12.7 / 350) * (AN - 150);
verteilunghhb = 2.3 - (1.3 / 350) * (AN - 150);
} else if (verteilungh == "zv7055von1979bis1994") {
verteilunghwv = 20.2 - (6.4 / 350) * (AN - 150);
verteilunghhb = 1.9 - (1.1 / 350) * (AN - 150);
} else if (verteilungh == "zv7055ab1995") {
verteilunghwv = 9.3 - (3.9 / 350) * (AN - 150);
verteilunghhb = 1.6 - (0.9 / 350) * (AN - 150);
} else if (verteilungh == "zv5545bis1978") {
verteilunghwv = 57.4 - (24.5 / 350) * (AN - 150);
verteilunghhb = 2.5 - (1.3 / 350) * (AN - 150);
} else if (verteilungh == "zv5545ngbis1978") {
verteilunghwv = 30.8 - (17.8 / 350) * (AN - 150);
verteilunghhb = 2.5 - (1.3 / 350) * (AN - 150);
} else if (verteilungh == "zv5545von1979bis1994") {
verteilunghwv = 15.3 - (5 / 350) * (AN - 150);
verteilunghhb = 2 - (1.1 / 350) * (AN - 150);
} else if (verteilungh == "zv5545ab1995") {
verteilunghwv = 9.3 - (5.4 / 350) * (AN - 150);
verteilunghhb = 1.7 - (0.9 / 350) * (AN - 150);
} else if (verteilungh == "wwvertbis1978") {
verteilunghwv = 8.4;
verteilunghhb = 3.41;
} else if (verteilungh == "wwvertvon1979bis1994") {
verteilunghwv = 5.4;
verteilunghhb = 2.73;
} else if (verteilungh == "wwvertab1995") {
verteilunghwv = 1.3;
verteilunghhb = 2.3;
} else if (verteilungh == "dezensys") {
verteilunghwv = 0;
verteilunghhb = 0;
}
if (spheizung == "elzs7055bis1994") {
spheizungwv = 3.2 - (1.9 / 350) * (AN - 150);
spheizunghb = 0.5 - (0.3 / 350) * (AN - 150);
} else if (spheizung == "elzs7055ab1995") {
spheizungwv = 2.5 - (1.5 / 350) * (AN - 150);
spheizunghb = 0.4 - (0.2 / 350) * (AN - 150);
} else if (spheizung == "puffs5545bis1994") {
spheizungwv = 2.5 - (1.5 / 350) * (AN - 150);
spheizunghb = 0.5 - (0.3 / 350) * (AN - 150);
} else if (spheizung == "puffs5545ab1995") {
spheizungwv = 1.9 - (1.2 / 350) * (AN - 150);
spheizunghb = 0.4 - (0.2 / 350) * (AN - 150);
} else if (spheizung == "puffshk7055bis1994") {
spheizungwv = 4.4 - (2.6 / 350) * (AN - 150);
spheizunghb = 0.5 - (0.3 / 350) * (AN - 150);
} else if (spheizung == "puffshk7055ab1995") {
spheizungwv = 3.4 - (2 / 350) * (AN - 150);
spheizunghb = 0.4 - (0.2 / 350) * (AN - 150);
}
if (werzeugungh == "ktkesselbis1986h") {
werzeugungheaz = 1.47 - (0.11 / 350) * (AN - 150);
werzeugunghhb = 1.2 - (0.7 / 350) * (AN - 150);
} else if (werzeugungh == "ktkesselvon1987bis1994h") {
werzeugungheaz = 1.34 - (0.08 / 350) * (AN - 150);
werzeugunghhb = 0.8 - (0.4 / 350) * (AN - 150);
} else if (werzeugungh == "ktkesselab1995h") {
werzeugungheaz = 1.33 - (0.1 / 350) * (AN - 150);
werzeugunghhb = 0.7 - (0.3 / 350) * (AN - 150);
} else if (werzeugungh == "ntkesselbis1986h") {
werzeugungheaz = 1.24 - (0.03 / 350) * (AN - 150);
werzeugunghhb = 1.2 - (0.3 / 350) * (AN - 150);
} else if (werzeugungh == "ntkesselvon1987bis1994h") {
werzeugungheaz = 1.19 - (0.04 / 350) * (AN - 150);
werzeugunghhb = 0.8 - (0.4 / 350) * (AN - 150);
} else if (werzeugungh == "ntkesselab1995h") {
werzeugungheaz = 1.14 - (0.03 / 350) * (AN - 150);
werzeugunghhb = 0.7 - (0.3 / 350) * (AN - 150);
} else if (werzeugungh == "bwkesselbis1986h") {
werzeugungheaz = 1.11 - (0.02 / 350) * (AN - 150);
werzeugunghhb = 1.2 - (0.7 / 350) * (AN - 150);
} else if (werzeugungh == "bwkesselvon1987bis1994h") {
werzeugungheaz = 1.09 - (0.03 / 350) * (AN - 150);
werzeugunghhb = 0.8 - (0.4 / 350) * (AN - 150);
} else if (werzeugungh == "bwkesselab1995h") {
werzeugungheaz = 1.07 - (0.02 / 350) * (AN - 150);
werzeugunghhb = 0.7 - (0.3 / 350) * (AN - 150);
} else if (werzeugungh == "bwkesselab1999h") {
werzeugungheaz = 0.99 - (0.01 / 350) * (AN - 150);
werzeugunghhb = 0.7 - (0.3 / 350) * (AN - 150);
} else if (werzeugungh == "fwugsh") {
werzeugungheaz = 1.02;
werzeugunghhb = 0;
} else if (werzeugungh == "ewplhvon1979bis1994h") {
werzeugungheaz = 0.41;
werzeugunghhb = 0;
} else if (werzeugungh == "ewplhab1995h") {
werzeugungheaz = 0.39;
werzeugunghhb = 0;
} else if (werzeugungh == "ewpemvon1979bis1994h") {
werzeugungheaz = 0.33;
werzeugunghhb = 1.2 - (0.2 / 350) * (AN - 150);
} else if (werzeugungh == "ewpemab1995h") {
werzeugungheaz = 0.27;
werzeugunghhb = 1.2 - (0.2 / 350) * (AN - 150);
} else if (werzeugungh == "ewpgmvon1979bis1994h") {
werzeugungheaz = 0.27;
werzeugunghhb = 1.9 - (0.2 / 350) * (AN - 150);
} else if (werzeugungh == "ewpgmab1995h") {
werzeugungheaz = 0.23;
werzeugunghhb = 1.9 - (0.2 / 350) * (AN - 150);
} else if (werzeugungh == "zesh") {
werzeugungheaz = 1.02;
werzeugunghhb = 0;
} else if (werzeugungh == "thermebis1994h") {
werzeugungheaz = 1.24;
werzeugunghhb = 1.2;
} else if (werzeugungh == "thermeab1995h") {
werzeugungheaz = 1.14;
werzeugunghhb = 1.5;
} else if (werzeugungh == "bthermeab1995h") {
werzeugungheaz = 1.07;
werzeugunghhb = 1.5;
} else if (werzeugungh == "oeleinzel") {
werzeugungheaz = 1.4;
werzeugunghhb = 0;
} else if (werzeugungh == "kheinzel") {
werzeugungheaz = 1.6;
werzeugunghhb = 0;
} else if (werzeugungh == "greinzel") {
werzeugungheaz = 1.47;
werzeugunghhb = 0;
} else if (werzeugungh == "elnseinzelbis1994") {
werzeugungheaz = 1.12;
werzeugunghhb = 0;
} else if (werzeugungh == "elnseinzelab1995") {
werzeugungheaz = 1.05;
werzeugunghhb = 0;
} else if (werzeugungh == "eldirekt") {
werzeugungheaz = 1.02;
werzeugunghhb = 0;
}
} else if (AN > 500 && AN <= 7000) {
if (verteilungww == "zvmzbis1978") {
verteilungwwwv = 47.4 - (8.5 / 2000) * (AN - 500);
verteilungwwhg = 14.6 + (1.3 / 2000) * (AN - 500);
verteilungwwhb = 0.8 - (0.2 / 2000) * (AN - 500);
} else if (verteilungww == "zvmzngbis1978") {
verteilungwwwv = 35.4 - (2.2 / 2000) * (AN - 500);
verteilungwwhg = 14.6 + (1.3 / 2000) * (AN - 500);
verteilungwwhb = 0.8 - (0.2 / 2000) * (AN - 500);
} else if (verteilungww == "zvmzvon1979bis1994") {
verteilungwwwv = 22.6 - (1.6 / 2000) * (AN - 500);
verteilungwwhg = 9.3 + (0.6 / 2000) * (AN - 500);
verteilungwwhb = 0.8 - (0.2 / 2000) * (AN - 500);
} else if (verteilungww == "zvmzab1995") {
verteilungwwwv = 7.6 - (1 / 2000) * (AN - 500);
verteilungwwhg = 1.9 + (0.3 / 2000) * (AN - 500);
verteilungwwhb = 0.3 - (0.2 / 2000) * (AN - 500);
} else if (verteilungww == "zvozbis1978") {
verteilungwwwv = 10.4 - (2.3 / 2000) * (AN - 500);
verteilungwwhg = 3.5;
verteilungwwhb = 0;
} else if (verteilungww == "zvozngbis1978") {
verteilungwwwv = 8.8 - (1.4 / 2000) * (AN - 500);
verteilungwwhg = 3.5;
verteilungwwhb = 0;
} else if (verteilungww == "zvozvon1979bis1994") {
verteilungwwwv = 8.3 - (0.8 / 2000) * (AN - 500);
verteilungwwhg = 3.7;
verteilungwwhb = 0;
} else if (verteilungww == "zvozab1995") {
verteilungwwwv = 3.4 - (0.6 / 2000) * (AN - 500);
verteilungwwhg = 1;
verteilungwwhb = 0;
} else if (verteilungww == "dzsbis1994") {
verteilungwwwv = 3.8;
verteilungwwhg = 2;
verteilungwwhb = 0;
} else if (verteilungww == "dzsab1995") {
verteilungwwwv = 1.5;
verteilungwwhg = 0.7;
verteilungwwhb = 0;
}
if (warmwasser_speicherung == "zwwsath") {
warmwasser_speicherungwv = 1.8 - (1.3 / 2000) * (AN - 500);
warmwasser_speicherunghg = 0;
warmwasser_speicherunghb = 0.2;
} else if (warmwasser_speicherung == "zwwsith") {
warmwasser_speicherungwv = 1.4 - (1 / 2000) * (AN - 500);
warmwasser_speicherunghg = 0.8 - (0.6 / 2000) * (AN - 500);
warmwasser_speicherunghb = 0.2 + (0.1 / 2000) * (AN - 500);
} else if (warmwasser_speicherung == "gasbs") {
warmwasser_speicherungwv = 11.9;
warmwasser_speicherunghg = 0;
warmwasser_speicherunghb = 0;
} else if (warmwasser_speicherung == "elks") {
warmwasser_speicherungwv = 1.5;
warmwasser_speicherunghg = 0.8;
warmwasser_speicherunghb = 0;
}
if (werzeugungww == "ktkesselbis1986") {
werzeugungwweaz = 1.64 - (0.31 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ktkesselvon1987bis1994") {
werzeugungwweaz = 1.57 - (0.26 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ktkesselab1995") {
werzeugungwweaz = 1.46 - (0.2 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ntkesselbis1986") {
werzeugungwweaz = 1.23 - (0.05 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ntkesselvon1987bis1994") {
werzeugungwweaz = 1.23 - (0.06 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ntkesselab1995") {
werzeugungwweaz = 1.15 - (0.03 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "bwkesselbis1986") {
werzeugungwweaz = 1.17 - (0.04 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "bwkesselvon1987bis1994") {
werzeugungwweaz = 1.17 - (0.05 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "bwkesselab1995") {
werzeugungwweaz = 1.12 - (0.03 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "bwkesselab1999") {
werzeugungwweaz = 1.1 - (0.03 / 2000) * (AN - 500);
werzeugungwwhb = 0.1;
} else if (werzeugungww == "ewplhvon1979bis1994") {
werzeugungwweaz = 0.37;
werzeugungwwhb = 0;
} else if (werzeugungww == "ewplhab1995") {
werzeugungwweaz = 0.34;
werzeugungwwhb = 0;
} else if (werzeugungww == "ewpemvon1979bis1994") {
werzeugungwweaz = 0.32;
werzeugungwwhb = 0.3 - (0.1 / 2000) * (AN - 500);
} else if (werzeugungww == "ewpemab1995") {
werzeugungwweaz = 0.27;
werzeugungwwhb = 0.3 - (0.1 / 2000) * (AN - 500);
} else if (werzeugungww == "ewpgmvon1979bis1994") {
werzeugungwweaz = 0.26;
werzeugungwwhb = 0.4;
} else if (werzeugungww == "ewpgmab1995") {
werzeugungwweaz = 0.23;
werzeugungwwhb = 0.4;
} else if (werzeugungww == "fwugs") {
werzeugungwweaz = 1.14;
werzeugungwwhb = 0.4;
} else if (werzeugungww == "zes") {
werzeugungwweaz = 1;
werzeugungwwhb = 0;
} else if (werzeugungww == "gbs") {
werzeugungwweaz = 1.22;
werzeugungwwhb = 0;
} else if (werzeugungww == "thermebis1994") {
werzeugungwweaz = 1.32;
werzeugungwwhb = 0.2;
} else if (werzeugungww == "thermeab1995") {
werzeugungwweaz = 1.32;
werzeugungwwhb = 0.2;
} else if (werzeugungww == "bthermeab1995") {
werzeugungwweaz = 1.28;
werzeugungwwhb = 0.2;
} else if (werzeugungww == "dezelks") {
werzeugungwweaz = 1;
werzeugungwwhb = 0;
} else if (werzeugungww == "dezeldh") {
werzeugungwweaz = 1;
werzeugungwwhb = 0;
} else if (werzeugungww == "dezgasdhbis1994") {
werzeugungwweaz = 1.19;
werzeugungwwhb = 0;
} else if (werzeugungww == "dezgasdhab1995") {
werzeugungwweaz = 1.16;
werzeugungwwhb = 0;
}
if (heizung_zentral) {
heizung_zentralwv = 3.3;
} else if (!heizung_zentral) {
heizung_zentralwv = 0;
}
if (verteilungh == "zv7055bis1978") {
verteilunghwv = 43.5 - (10.8 / 2000) * (AN - 500);
verteilunghhb = 1 - (0.5 / 2000) * (AN - 500);
} else if (verteilungh == "zv7055ngbis1978") {
verteilunghwv = 28.2 - (4.3 / 2000) * (AN - 500);
verteilunghhb = 1 - (0.5 / 2000) * (AN - 500);
} else if (verteilungh == "zv7055von1979bis1994") {
verteilunghwv = 13.8 - (2.2 / 2000) * (AN - 500);
verteilunghhb = 0.8 - (0.4 / 2000) * (AN - 500);
} else if (verteilungh == "zv7055ab1995") {
verteilunghwv = 5.4 - (1.3 / 2000) * (AN - 500);
verteilunghhb = 0.7 - (0.4 / 2000) * (AN - 500);
} else if (verteilungh == "zv5545bis1978") {
verteilunghwv = 32.9 - (8.5 / 2000) * (AN - 500);
verteilunghhb = 1.2 - (0.5 / 2000) * (AN - 500);
} else if (verteilungh == "zv5545ngbis1978") {
verteilunghwv = 21 - (3.4 / 2000) * (AN - 500);
verteilunghhb = 1.2 - (0.5 / 2000) * (AN - 500);
} else if (verteilungh == "zv5545von1979bis1994") {
verteilunghwv = 10.3 - (1.8 / 2000) * (AN - 500);
verteilunghhb = 0.9 - (0.4 / 2000) * (AN - 500);
} else if (verteilungh == "zv5545ab1995") {
verteilunghwv = 3.9 - (1 / 2000) * (AN - 500);
verteilunghhb = 0.8 - (0.3 / 2000) * (AN - 500);
} else if (verteilungh == "wwvertbis1978") {
verteilunghwv = 8.4;
verteilunghhb = 3.41;
} else if (verteilungh == "wwvertvon1979bis1994") {
verteilunghwv = 5.4;
verteilunghhb = 2.73;
} else if (verteilungh == "wwvertab1995") {
verteilunghwv = 1.3;
verteilunghhb = 2.3;
} else if (verteilungh == "dezensys") {
verteilunghwv = 0;
verteilunghhb = 0;
}
if (spheizung == "elzs7055bis1994") {
spheizungwv = 1.3 - (0.9 / 2000) * (AN - 500);
spheizunghb = 0.2 - (0.1 / 2000) * (AN - 500);
} else if (spheizung == "elzs7055ab1995") {
spheizungwv = 1 - (0.7 / 2000) * (AN - 500);
spheizunghb = 0.2 - (0.1 / 2000) * (AN - 500);
} else if (spheizung == "puffs5545bis1994") {
spheizungwv = 1 - (0.7 / 2000) * (AN - 500);
spheizunghb = 0.2 - (0.1 / 2000) * (AN - 500);
} else if (spheizung == "puffs5545ab1995") {
spheizungwv = 0.7 - (0.5 / 2000) * (AN - 500);
spheizunghb = 0.2 - (0.1 / 2000) * (AN - 500);
} else if (spheizung == "puffshk7055bis1994") {
spheizungwv = 1.8 - (0.7 / 2000) * (AN - 500);
spheizunghb = 0.2 - (0.1 / 2000) * (AN - 500);
} else if (spheizung == "puffshk7055ab1995") {
spheizungwv = 1.4 - (0.6 / 2000) * (AN - 500);
spheizunghb = 0.2 - (0.1 / 2000) * (AN - 500);
}
if (werzeugungh == "ktkesselbis1986h") {
werzeugungheaz = 1.36 - (0.08 / 2000) * (AN - 500);
werzeugunghhb = 0.5 - (0.3 / 2000) * (AN - 500);
} else if (werzeugungh == "ktkesselvon1987bis1994h") {
werzeugungheaz = 1.26 - (0.07 / 2000) * (AN - 500);
werzeugunghhb = 0.4 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "ktkesselab1995h") {
werzeugungheaz = 1.23 - (0.07 / 2000) * (AN - 500);
werzeugunghhb = 0.4 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "ntkesselbis1986h") {
werzeugungheaz = 1.21 - (0.03 / 2000) * (AN - 500);
werzeugunghhb = 0.5 - (0.3 / 2000) * (AN - 500);
} else if (werzeugungh == "ntkesselvon1987bis1994h") {
werzeugungheaz = 1.15 - (0.02 / 2000) * (AN - 500);
werzeugunghhb = 0.4 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "ntkesselab1995h") {
werzeugungheaz = 1.11 - (0.02 / 2000) * (AN - 500);
werzeugunghhb = 0.4 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "bwkesselbis1986h") {
werzeugungheaz = 1.09 - (0.02 / 2000) * (AN - 500);
werzeugunghhb = 0.5 - (0.3 / 2000) * (AN - 500);
} else if (werzeugungh == "bwkesselvon1987bis1994h") {
werzeugungheaz = 1.06 - (0.02 / 2000) * (AN - 500);
werzeugunghhb = 0.4 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "bwkesselab1995h") {
werzeugungheaz = 1.05 - (0.01 / 2000) * (AN - 500);
werzeugunghhb = 0.4 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "bwkesselab1999h") {
werzeugungheaz = 0.98 - (0.01 / 2000) * (AN - 500);
werzeugunghhb = 0.4 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "fwugsh") {
werzeugungheaz = 1.02;
werzeugunghhb = 0;
} else if (werzeugungh == "ewplhvon1979bis1994h") {
werzeugungheaz = 0.41;
werzeugunghhb = 0;
} else if (werzeugungh == "ewplhab1995h") {
werzeugungheaz = 0.39;
werzeugunghhb = 0;
} else if (werzeugungh == "ewpemvon1979bis1994h") {
werzeugungheaz = 0.33;
werzeugunghhb = 1 - (0.1 / 2000) * (AN - 500);
} else if (werzeugungh == "ewpemab1995h") {
werzeugungheaz = 0.27;
werzeugunghhb = 1 - (0.1 / 2000) * (AN - 500);
} else if (werzeugungh == "ewpgmvon1979bis1994h") {
werzeugungheaz = 0.27;
werzeugunghhb = 1.7 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "ewpgmab1995h") {
werzeugungheaz = 0.23;
werzeugunghhb = 1.7 - (0.2 / 2000) * (AN - 500);
} else if (werzeugungh == "zesh") {
werzeugungheaz = 1.02;
werzeugunghhb = 0;
} else if (werzeugungh == "thermebis1994h") {
werzeugungheaz = 1.24;
werzeugunghhb = 1.2;
} else if (werzeugungh == "thermeab1995h") {
werzeugungheaz = 1.14;
werzeugunghhb = 1.5;
} else if (werzeugungh == "bthermeab1995h") {
werzeugungheaz = 1.07;
werzeugunghhb = 1.5;
} else if (werzeugungh == "oeleinzel") {
werzeugungheaz = 1.4;
werzeugunghhb = 0;
} else if (werzeugungh == "kheinzel") {
werzeugungheaz = 1.6;
werzeugunghhb = 0;
} else if (werzeugungh == "greinzel") {
werzeugungheaz = 1.47;
werzeugunghhb = 0;
} else if (werzeugungh == "elnseinzelbis1994") {
werzeugungheaz = 1.12;
werzeugunghhb = 0;
} else if (werzeugungh == "elnseinzelab1995") {
werzeugungheaz = 1.05;
werzeugunghhb = 0;
} else if (werzeugungh == "eldirekt") {
werzeugungheaz = 1.02;
werzeugunghhb = 0;
}
}
let result = fuelList.find(
(value) =>
value.energietraeger == energietraeger && value.einheit == "kWh"
);
let coe = 0;
if (result) {
coe = result.coe
}
return [
heizung_zentralwv,
verteilunghwv,
spheizungwv,
werzeugungheaz,
verteilungwwwv,
verteilungwwhg,
warmwasser_speicherungwv,
warmwasser_speicherunghg,
werzeugungwweaz,
verteilunghhb,
spheizunghb,
werzeugunghhb,
verteilungwwhb,
warmwasser_speicherunghb,
werzeugungwwhb,
energietraegerfa,
energietraegerfa2,
coe,
];
}

View File

@@ -4,52 +4,6 @@ import AusweisLayout from "~/layouts/AusweisLayout.astro";
import BedarfsausweisContent from "~/components/Bedarfsausweis/BedarfsausweisContent.svelte"; import BedarfsausweisContent from "~/components/Bedarfsausweis/BedarfsausweisContent.svelte";
--- ---
<!-- <div class="form-group col-12 col-md-12" style="padding:0;">
<div>
<div class="row">
<div class="form-group col-12 col-md-6">
<div class="form-group col-12 col-md-6">
<label class="control-label" style="min-width:265px;">
<span class="help1" data-toggle="tooltip" data-html="true" title="<div class='TT'>Es werden keine Personenbezogenen Daten gespeichert. Es werden nur die Eingabedaten zum Gebäude auf dieser Formularseite gespeichert.</div>">
<img src="/energieausweis-erstellen/FORM/img/question-mark.png" alt="question mark" class="mark20">
</span></label>
<button type="submit" class="weiterbutton" formaction="speichern.php" formnovalidate></button>
</div>
</div>
<div class="form-group col-12 col-md-6">
<div class="form-group col-12 col-md-6 offset-md-6">
<label class="control-label">
<span class="help1" data-toggle="tooltip" data-html="true" title="<div class='TT'>Wir helfen Ihnen bei der Eingabe. Kurze Fragen zum Formular oder der Ausweisart werden kostenfrei telefonisch beantwortet (bis 5min). Bitte kontaktieren Sie uns unter 040/209339850. Gerne nehmen wir Ihnen die Arbeit ab - Fordern Sie unseren Offline Service an und klicken auf -Hilfe anfordern- </div>">
<img src="/energieausweis-erstellen/FORM/img/question-mark.png" alt="question mark" class="mark20">
</span>
</label>
<input class="weiterbutton" onclick="javascript:toggle('hilfean')" style="background-color: #31448e;width:100%;" id="hilfeaw" type="button" value="Hilfe anfordern">
<script type='module' src='/energieausweis-erstellen/FORM/js/auto-fill.js' async defer></script>
</div>
</div>
</div>
</div>
<div class="form-group col-md-12" id="hilfean" style="display: none">
<div class="form-group col-md-12 pop_help">
<div class="form-group col-md-12">
Gerne helfen wir Ihnen wenn Sie nicht weiterkommen oder Fragen haben. Kurze
Fragen zum Formular oder der Ausweisart werden kostenfrei telefonisch unter <a href="tel:+4940209339850">040/209339850</a> beantwortet (bis 5min). Sollten
Sie Unterstützung bei der Erstellung benötgen oder lieber die Arbeit von unserem
Ingenieurbüro erledigen lassen, bieten wir Ihnen folgende Hilfen an. Bitte
treffen Sie Ihre Auswahl und klicken auf weiter:
</div>
<div class="row" style="margin:0em 0em 0em 2em;">
<div class="form-group col-md-7">Bedarfsausweis online inkl. ausführlicher telefonischer Beratung für 95€ inkl. MwSt.</div>
<div class="form-group col-md-5"><input type="radio" class="ausstellgrund" value="1" name="hilfe"></div>
</div>
<div class="form-group col-md-12" style="text-align:right;">
<button type="submit" class="weiterbutton">Kundendaten</button>
</div>
</div>
</div>
</div> -->
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen"> <AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
<BedarfsausweisContent></BedarfsausweisContent> <BedarfsausweisContent client:load></BedarfsausweisContent>
</AusweisLayout> </AusweisLayout>

View File

@@ -6,5 +6,5 @@ import VerbrauchsausweisGewerbeContent from "~/components/VerbrauchsausweisGewer
--- ---
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen"> <AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen">
<VerbrauchsausweisGewerbeContent></VerbrauchsausweisGewerbeContent> <VerbrauchsausweisGewerbeContent client:load></VerbrauchsausweisGewerbeContent>
</AusweisLayout> </AusweisLayout>