Verbrauchsausweis Gewerbe
This commit is contained in:
@@ -14,13 +14,18 @@
|
||||
import { AuditType, hidden } from "#components/Verbrauchsausweis/audits/hidden";
|
||||
import { auditBedarfsausweisBenoetigt } from "#components/Verbrauchsausweis/audits/BedarfsausweisBenoetigt";
|
||||
import { auditVerbrauchAbweichung } from "#components/Verbrauchsausweis/audits/VerbrauchAbweichung";
|
||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||
import { Enums, GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||
import { client } from "src/trpc";
|
||||
import Cookies from "js-cookie";
|
||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||
import Overlay from "#components/Overlay.svelte";
|
||||
|
||||
export let uid: string | null = null;
|
||||
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
||||
export let ausweis: VerbrauchsausweisWohnen = {
|
||||
ausweisart: Enums.Ausweisart.VerbrauchsausweisWohnen
|
||||
} as VerbrauchsausweisWohnen;
|
||||
export let showLoginPage: boolean = false;
|
||||
|
||||
async function spaeterWeitermachen() {
|
||||
|
||||
@@ -28,6 +33,7 @@
|
||||
// Wir prüfen also ob wir eingeloggt sind und leiten den Nutzer ggf. auf die Login Seite weiter.
|
||||
if (!Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)) {
|
||||
loginOverlayHidden = false;
|
||||
showLoginPage = true;
|
||||
|
||||
const getEvent = (event: MessageEvent) => {
|
||||
if (event.data == "AUTHORIZED") {
|
||||
@@ -80,8 +86,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
||||
export let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
|
||||
if (uid) {
|
||||
// NOTE: Funktioniert nicht mehr
|
||||
async () => {
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
let email: string;
|
||||
let passwort: string;
|
||||
|
||||
export let onLogin: (response: Awaited<ReturnType<typeof loginClient>>) => void;
|
||||
|
||||
async function login() {
|
||||
const response = await loginClient(email, passwort)
|
||||
|
||||
@@ -18,6 +20,7 @@
|
||||
})
|
||||
} else {
|
||||
parent.postMessage("AUTHORIZED", "*");
|
||||
onLogin(response);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -4,14 +4,36 @@
|
||||
import ZipSearch from "../components/ZIPSearch.svelte";
|
||||
import Label from "../components/Label.svelte";
|
||||
import PriceContainer from "#components/Kaufabschluss/PriceContainer.svelte";
|
||||
import { Benutzer, Bezahlmethoden, Enums, Rechnungen, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||
import { BedarfsausweisWohnen, Benutzer, Bezahlmethoden, Enums, Rechnungen, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||
import PaymentOption from "#components/PaymentOption.svelte";
|
||||
import { client } from "src/trpc";
|
||||
|
||||
export let user: Benutzer;
|
||||
export let ausweis: VerbrauchsausweisWohnen
|
||||
export let ausweis: VerbrauchsausweisWohnen | BedarfsausweisWohnen | VerbrauchsausweisGewerbe;
|
||||
let rechnung: Rechnungen = {} as Rechnungen;
|
||||
|
||||
let services = [{
|
||||
name: "Qualitätsdruck per Post (zusätzlich zur PDF Version) für 9€ inkl. MwSt.",
|
||||
id: Enums.Service.Qualitaetsdruck,
|
||||
price: 9,
|
||||
selected: false
|
||||
}, {
|
||||
name: "Aushang (für öffentliche Gebäude gesetzlich vorgeschrieben) für 10€ inkl. MwSt.",
|
||||
id: Enums.Service.Aushang,
|
||||
price: 10,
|
||||
selected: false
|
||||
}, {
|
||||
name: "Same Day Service (Bestellung Werktags vor 12:00 Uhr - Ausstellung bis 18:00 Uhr am gleichen Tag) für 29€ inkl. MwSt.",
|
||||
id: Enums.Service.SameDay,
|
||||
price: 29,
|
||||
selected: false
|
||||
}, {
|
||||
name: "Telefonische Energieeffizienzberatung für 75€ inkl. MwSt.",
|
||||
id: Enums.Service.Telefonberatung,
|
||||
price: 75,
|
||||
selected: false
|
||||
}]
|
||||
|
||||
export let selectedPaymentType: Bezahlmethoden = Enums.Bezahlmethoden.PAYPAL;
|
||||
|
||||
let agbAkzeptiert: boolean;
|
||||
@@ -19,10 +41,10 @@
|
||||
|
||||
async function createPayment() {
|
||||
const response = await client.v1.rechnungen.erstellen.mutate({
|
||||
ausweisart: "VerbrauchsausweisWohnen",
|
||||
ausweisart: ausweis.ausweisart,
|
||||
uid: ausweis.uid,
|
||||
payment_method: selectedPaymentType,
|
||||
services: []
|
||||
services: services.filter(service => service.selected).map(service => service.id)
|
||||
})
|
||||
|
||||
window.location.href = response.checkout_url
|
||||
@@ -328,7 +350,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-2/5">
|
||||
<PriceContainer prices={[45, 60, 160]} />
|
||||
<PriceContainer {ausweis} bind:services />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
118
src/modules/VerbrauchsausweisGewerbe/BuildingTypes.ts
Normal file
118
src/modules/VerbrauchsausweisGewerbe/BuildingTypes.ts
Normal file
@@ -0,0 +1,118 @@
|
||||
export const buildingTypes = [
|
||||
"Hotels ohne Stern, Pensionen, Gasthäuser, Hotels garni",
|
||||
"Hotels mit 1 und 2 Sternen",
|
||||
"Hotels mit 3 Sterne",
|
||||
"Hotels mit 4 und 5 Sternen",
|
||||
"Gästehäuser, Vereinsheime",
|
||||
"Studentenwohnheime",
|
||||
"Ausschankwirtschaft",
|
||||
"Speisegaststätte/Restaurant",
|
||||
"Kantinen/Mensen",
|
||||
"Kino",
|
||||
"Opernhäuser, Theatergebäude",
|
||||
"Saalbauten, Stadthallen",
|
||||
"Spielcasinos",
|
||||
"Freizeitzentren, Jugendhäuser, Gemeindehäuser",
|
||||
"Sporthallen",
|
||||
"Mehrzweckhallen",
|
||||
"Schwimmhallen, Hallenbäder",
|
||||
"Sportheim (Vereinsheim)",
|
||||
"Handel Non-food bis 300 qm",
|
||||
"Handel Non-food bis 2000 qm",
|
||||
"Handel Food bis 300 qm",
|
||||
"Handel Food bis 2000 qm",
|
||||
"Kaufhäuser, Warenhäuser, Einkaufszentren über 2000 qm",
|
||||
"Krankenhäuser bis 250 Betten",
|
||||
"Krankenhäuser von 251 bis 450 Betten",
|
||||
"Krankenhäuser von 451 bis 650 Betten",
|
||||
"Krankenhäuser von 651 bis 1000 Betten",
|
||||
"Krankenhäuser mit über 1000 Betten",
|
||||
"Flughafen, Terminal",
|
||||
"Flughafen, Frachthallen",
|
||||
"Flughafen, Wartung/Hangar",
|
||||
"Flughafen, Werkstätten",
|
||||
"Tiefgaragen, Parkhäuser",
|
||||
"Bürogebäude, nur beheizt",
|
||||
"Bürogebäude, temperiert, mech. belüftet",
|
||||
"Bürogebäude mit Vollklimaanlage",
|
||||
"Parlamentsgebäude",
|
||||
"Gerichtsgebäude < 3.500",
|
||||
"Gerichtsgebäude > 3.500",
|
||||
"Verwaltungsgebäude < 3.500",
|
||||
"Verwaltungsgebäude > 3.500",
|
||||
"Ministerien",
|
||||
"Ämtergebäude < 3.500",
|
||||
"Ämtergebäude > 3.500",
|
||||
"Krankenkassengebäude, Rathäuser, Sozialämter",
|
||||
"Finanzämter < 3.500",
|
||||
"Finanzämter > 3.500",
|
||||
"Verwaltungsgebäude mit höherer techn. Ausstattung1",
|
||||
"Polizeidienstgebäude < 3.500",
|
||||
"Polizeidienstgebäude > 3.500",
|
||||
"Polizeiinspektionen, Kommissariate, Kriminalämter, Reviere < 3.500",
|
||||
"Polizeiinspektionen, Kommissariate, Kriminalämter, Reviere > 3.500",
|
||||
"Zollämter, -Stationen, Grenzabfertigung",
|
||||
"Rechenzentren",
|
||||
"Gebäude für wissenschaftliche Lehre",
|
||||
"Hörsaalgebäude",
|
||||
"Institutsgebäude für Lehre und Forschung < 3.500",
|
||||
"Institutsgebäude für Lehre und Forschung > 3.500",
|
||||
"Institutsgebäude I < 3.500",
|
||||
"Institutsgebäude I > 3.500",
|
||||
"Institutsgebäude II *",
|
||||
"Institutsgebäude III *",
|
||||
"Institutsgebäude IV *",
|
||||
"Institutsgebäude V *",
|
||||
"Institutsgebäude für Forschung und Untersuchung",
|
||||
"Fachhochschulen",
|
||||
"Gebäude des Gesundheitswesens",
|
||||
"Krankenhäuser und Unikliniken für Akutkranke",
|
||||
"Schulen < 3.500",
|
||||
"Schulen > 3.500",
|
||||
"Allgemeinbildende Schulen < 3.500",
|
||||
"Allgemeinbildende Schulen > 3.500",
|
||||
"Grundschulen < 3.500",
|
||||
"Grundschulen > 3.500",
|
||||
"Hauptschulen",
|
||||
"Realschulen",
|
||||
"Gymnasien",
|
||||
"Gesamtschulen",
|
||||
"Berufsbildende Schulen < 3.500",
|
||||
"Berufsbildende Schulen > 3.500",
|
||||
"Sonderschulen",
|
||||
"Kindertagesstätten",
|
||||
"Weiterbildungseinrichtungen",
|
||||
"Sportbauten",
|
||||
"Hallen (ohne Schwimmhallen)",
|
||||
"Schwimmhallen",
|
||||
"Gebäude für Sportplatz- und Freibade anlagen",
|
||||
"Gebäude für Freibadeanlagen einschl. Außenanlagen",
|
||||
"Gemeinschaftsstätten < 3.500",
|
||||
"Gemeinschaftsstätten > 3.500",
|
||||
"Gemeinschaftsunterkünfte",
|
||||
"Betreuungseinrichtungen",
|
||||
"Gaststätten",
|
||||
"Mensen",
|
||||
"Beherbergungsstätten",
|
||||
"Gebäude für Produktion, Werkstätten, Lagergebäude < 3.500",
|
||||
"Gebäude für Produktion, Werkstätten, Lagergebäude > 3.500",
|
||||
"Land- und forstwirtschaftliche Produktionsstätten",
|
||||
"Verkaufsstätten",
|
||||
"Betriebs- und Werkstätten",
|
||||
"Gebäude für Lagerung",
|
||||
"Garagengebäude",
|
||||
"Gebäude für öffentliche Bereitschaftsdienste < 3.500",
|
||||
"Gebäude für öffentliche Bereitschaftsdienste > 3.500",
|
||||
"Straßenmeistereien",
|
||||
"Bauhöfe",
|
||||
"Feuerwehren",
|
||||
"THW-Höfe",
|
||||
"Bauwerke für technische Zwecke",
|
||||
"Gebäude für kulturelle und musische Zwecke < 3.500",
|
||||
"Gebäude für kulturelle und musische Zwecke > 3.500",
|
||||
"Ausstellungsgebäude",
|
||||
"Bibliotheksgebäude",
|
||||
"Veranstaltungsgebäude",
|
||||
"Gemeinschaftshäuser",
|
||||
"Justizvollzugsanstalten",
|
||||
];
|
||||
@@ -0,0 +1,437 @@
|
||||
<script lang="ts">
|
||||
import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
|
||||
import Progressbar from "#components/Ausweis/Progressbar.svelte";
|
||||
import Hilfe from "#components/Ausweis/Hilfe.svelte";
|
||||
import HelpLabel from "#components/HelpLabel.svelte";
|
||||
import Verbrauch from "#components/Ausweis/Verbrauch.svelte";
|
||||
import Label from "#components/Label.svelte";
|
||||
import Ausweisart from "#components/Ausweis/Ausweisart.svelte";
|
||||
import ZipSearch from "../../components/ZIPSearch.svelte";
|
||||
import { buildingTypes } from "./BuildingTypes";
|
||||
import BilderZusatzsysteme from "../../components/Ausweis/BilderZusatzsysteme.svelte";
|
||||
import moment from "moment";
|
||||
import { Enums, GebaeudeStammdaten, VerbrauchsausweisGewerbe } from "@ibcornelsen/database";
|
||||
|
||||
export let uid: string | null = null;
|
||||
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
||||
export let ausweis: VerbrauchsausweisGewerbe = {
|
||||
ausweisart: Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||
} as VerbrauchsausweisGewerbe;
|
||||
|
||||
let additionalHeating: boolean = false;
|
||||
let heatedWaterIncluded: boolean = false;
|
||||
let heatedWaterPortion: number = 18;
|
||||
|
||||
let needsRequirementCertificate: boolean = false;
|
||||
|
||||
$: needsRequirementCertificate =
|
||||
(gebaeude.baujahr_gebaeude[0] < 1978 &&
|
||||
(gebaeude.einheiten || 0) <= 4 &&
|
||||
gebaeude.saniert == false &&
|
||||
(ausweis.ausstellgrund == "Vermietung" ||
|
||||
ausweis.ausstellgrund == "Sonstiges")) ||
|
||||
ausweis.ausstellgrund == "Neubau" ||
|
||||
ausweis.ausstellgrund == "Modernisierung" ||
|
||||
ausweis.ausstellgrund == "Verkauf";
|
||||
|
||||
function automatischAusfüllen() {
|
||||
gebaeude.baujahr_gebaeude = [1962];
|
||||
gebaeude.baujahr_heizung = [1952];
|
||||
gebaeude.saniert = true;
|
||||
gebaeude.einheiten = 1;
|
||||
ausweis.ausstellgrund = "Vermietung";
|
||||
ausweis.verbrauch_1 = 15000;
|
||||
ausweis.verbrauch_2 = 14000;
|
||||
ausweis.verbrauch_3 = 16000;
|
||||
gebaeude.flaeche = 152;
|
||||
ausweis.keller_beheizt = true;
|
||||
ausweis.brennstoff_1 = "Erdgas H";
|
||||
ausweis.einheit_1 = "kWh";
|
||||
ausweis.anteil_warmwasser_1 = 18;
|
||||
ausweis.startdatum = moment("12.01.2019").toDate();
|
||||
gebaeude.plz = "21039";
|
||||
gebaeude.ort = "Hamburg";
|
||||
gebaeude.adresse = "Curslacker Deich 170";
|
||||
gebaeude.gebaeudeteil = "Gesamtgebäude";
|
||||
|
||||
gebaeude = gebaeude;
|
||||
ausweis = ausweis;
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="flex flex-row gap-8 items-center mb-8">
|
||||
<div class="flex flex-col w-full">
|
||||
<h1>Verbrauchsausweis Gewerbe erstellen - 65€</h1>
|
||||
<Progressbar progress={0} />
|
||||
</div>
|
||||
|
||||
<PerformanceScore bind:ausweis />
|
||||
</div>
|
||||
|
||||
<form method="post" action="/verbrauchsausweis/erstellen">
|
||||
<fieldset
|
||||
class="bg-[rgba(252,234,187,0.2)] border-2 p-4 rounded-lg border-[#ffcc03]"
|
||||
>
|
||||
<div class="flex flex-row justify-between">
|
||||
<a class="button" href="/speichern">Später Weitermachen</a>
|
||||
<div class="flex gap-4">
|
||||
<Hilfe />
|
||||
<button
|
||||
on:click={automatischAusfüllen}
|
||||
type="button"
|
||||
class="button">Automatisch Ausfüllen</button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<Label>A - Prüfung der Ausweisart</Label>
|
||||
|
||||
<Ausweisart bind:ausweis bind:gebaeude />
|
||||
|
||||
<div
|
||||
class="flex flex-col p-4"
|
||||
class:hidden={!needsRequirementCertificate}
|
||||
>
|
||||
<div class="form-group col-md-9">
|
||||
<HelpLabel
|
||||
title="Sie benötigen einen Bedarfsausweis. Bitte führen Sie hier Ihre Eingabe für den Bedarfsausweis fort und klicken auf den Button:"
|
||||
>
|
||||
Der Bedarfsausweis ist die etwas umfangreichere Berechnung.
|
||||
Sie benötigen z.B. Länge, Breite und Geschoßhöhe des
|
||||
Gebäudes. Auch müssen genauere Angaben zur Anlagentechnik
|
||||
gemacht werden.
|
||||
</HelpLabel>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<a class="button" href="/bedarfsausweis"
|
||||
>Bedarfsausweis erstellen</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<Label
|
||||
>B - Eingabe der Gebäudeadresse - Angaben zu Wohnfläche,
|
||||
Kellerund Dachgeschoss</Label
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="GRB">
|
||||
<!-- Strasse -->
|
||||
<div class="form-group col-md-4">
|
||||
<HelpLabel title="Straße, Hausnummer *">
|
||||
Bitte geben Sie hier die Straße und Hausnummer des Gebäudes
|
||||
ein.
|
||||
</HelpLabel>
|
||||
<div>
|
||||
<input
|
||||
name="IGstrasse"
|
||||
class=" strasse"
|
||||
type="text"
|
||||
autocomplete="off"
|
||||
required
|
||||
data-msg-minlength="min. 5 Zeichen"
|
||||
data-msg-maxlength="max. 40 Zeichen"
|
||||
bind:value={gebaeude.adresse}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- PLZ -->
|
||||
<div class="form-group col-md-4 PLZ">
|
||||
<ZipSearch
|
||||
bind:zip={gebaeude.plz}
|
||||
bind:city={gebaeude.ort}
|
||||
name="zip"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- IGort: readonly entfernt - Nelson -->
|
||||
<div class="form-group col-md-4">
|
||||
<HelpLabel title="Ort *">
|
||||
Ort des Gebäudes wird automatisch ermittelt.
|
||||
</HelpLabel>
|
||||
<div>
|
||||
<input
|
||||
name="IGort"
|
||||
|
||||
readonly={true}
|
||||
bind:value={gebaeude.ort}
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Wohnfläche -->
|
||||
<div class="form-group col-md-4">
|
||||
<HelpLabel title="Wohnfläche m² *">
|
||||
Bitte geben Sie hier die beheizte Wohnfläche in m² ein.
|
||||
Dabei handelt es sich um die Wohnfläche abzüglich
|
||||
vorhandener Flächen die sich außerhalb des Gebäudes
|
||||
befinden. (Balkone, Terassen,etc.).
|
||||
</HelpLabel>
|
||||
<div>
|
||||
<input
|
||||
name="IGflaeche"
|
||||
maxlength="4"
|
||||
type="number"
|
||||
required
|
||||
autocomplete="off"
|
||||
data-rule-minlength="2"
|
||||
data-msg-minlength="min. 2 Zeichen"
|
||||
bind:value={gebaeude.flaeche}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Keller -->
|
||||
<div class="form-group col-md-4">
|
||||
<Label>Keller *</Label>
|
||||
<div>
|
||||
<select
|
||||
name="IGkeller"
|
||||
required
|
||||
bind:value={gebaeude.keller}
|
||||
>
|
||||
<option>Bitte auswählen</option>
|
||||
<option value={false}>nicht vorhanden</option>
|
||||
<option value={false}>unbeheizt</option>
|
||||
<option value={true}>beheizt</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Dachgeschoss -->
|
||||
<div class="form-group col-md-4">
|
||||
<Label>Dachgeschoss *</Label>
|
||||
<div>
|
||||
<select name="IGdach" class="" required>
|
||||
<option>Bitte auswählen</option>
|
||||
<option value="dnein">nicht vorhanden</option>
|
||||
<option value="dub">unbeheizt</option>
|
||||
<option value="dbh">beheizt</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div>
|
||||
<Label>C - Eingabe von 3 zusammenhängenden Verbrauchsjahren</Label>
|
||||
</div>
|
||||
|
||||
<div class="GRB">
|
||||
<Verbrauch bind:ausweis bind:gebaeude />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<div>
|
||||
<div class="GRB">
|
||||
<!-- Anteil WW enthalten -->
|
||||
<div class="flex flex-col">
|
||||
<div class="flex flex-row gap-6">
|
||||
<label class="radio-inline"
|
||||
><input
|
||||
type="checkbox"
|
||||
class="IGwwbool"
|
||||
name="IGwwbool"
|
||||
bind:checked={heatedWaterIncluded}
|
||||
/>Warmwasser im Verbrauch enthalten</label
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Warmwasser Antel -->
|
||||
<div class="form-group col-md-2">
|
||||
<HelpLabel title="% Anteil Warmwasser">
|
||||
Wenn bekannt geben Sie den Anteil der
|
||||
Warmwasser-Versorgung hier ein. Standardmäßig wird
|
||||
ein Anteil von 18% angenommen.
|
||||
</HelpLabel>
|
||||
|
||||
<input
|
||||
name="IGwarmwasser"
|
||||
maxlength="2"
|
||||
type="text"
|
||||
bind:value={heatedWaterPortion}
|
||||
disabled={!heatedWaterIncluded}
|
||||
autocomplete="off"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-2">
|
||||
<HelpLabel title="zusätzliche Heizquelle">
|
||||
Wenn bekannt geben Sie den Anteil der
|
||||
Warmwasser-Versorgung von der zusätzlichen
|
||||
Heizquelle hier ein. Standardmäßig wird ein Anteil
|
||||
von 18% angenommen.
|
||||
</HelpLabel>
|
||||
<input
|
||||
name="IGwarmwasser2"
|
||||
maxlength="3"
|
||||
type="text"
|
||||
autocomplete="off"
|
||||
disabled={!additionalHeating}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Alternative Energieversorgungssyteme -->
|
||||
<div class="form-group col-md-5">
|
||||
<HelpLabel
|
||||
title="Alternative Energieversorgungssysteme genutzt für "
|
||||
>
|
||||
Bitte setzen Sie den Haken falls nachhaltige
|
||||
CO2-Effiziente Heizungssysteme vorhanden sind. Das
|
||||
wäre beispielsweise bei Pelletofen, Wärmepumpe,
|
||||
BHKW, Solarsystem, etc. der Fall.
|
||||
</HelpLabel>
|
||||
<div class="flex flex-row gap-4">
|
||||
<label class="checkbox-inline"
|
||||
><input
|
||||
type="checkbox"
|
||||
name="IGversorgungssysteme1"
|
||||
value="Heizung"
|
||||
/>Heizung</label
|
||||
>
|
||||
<label class="checkbox-inline"
|
||||
><input
|
||||
type="checkbox"
|
||||
name="IGversorgungssysteme2"
|
||||
value="Warmwasser"
|
||||
/>Warmwasser</label
|
||||
>
|
||||
<label class="checkbox-inline"
|
||||
><input
|
||||
type="checkbox"
|
||||
name="IGversorgungssysteme3"
|
||||
value="Lüftung"
|
||||
/>Lüftung</label
|
||||
>
|
||||
<label class="checkbox-inline"
|
||||
><input
|
||||
type="checkbox"
|
||||
name="IGversorgungssysteme4"
|
||||
value="Kühlung"
|
||||
/>Kühlung</label
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div>
|
||||
<Label
|
||||
>E - Eingabe von Gebäudetyp, Gebäudeteil, Lüftung,
|
||||
Kühlung und Leerstand</Label
|
||||
>
|
||||
</div>
|
||||
<div class="GRB grid grid-cols-5 gap-4">
|
||||
<!-- Gebäudetyp -->
|
||||
<div>
|
||||
<HelpLabel title="Gebäudetyp *"
|
||||
>Bitte wählen Sie hier den Gebäudetyp aus.
|
||||
</HelpLabel>
|
||||
<div>
|
||||
<select name="objekt_typ" required>
|
||||
{#each buildingTypes as type}
|
||||
<option value={type}>{type}</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
</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>
|
||||
<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 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>
|
||||
|
||||
<hr />
|
||||
<div class="form-group col-md-12">
|
||||
<Label
|
||||
>F - Bitte prüfen Sie hier die Angaben zum
|
||||
Sanierungszustand des Gebäudes</Label
|
||||
>
|
||||
</div>
|
||||
|
||||
<BilderZusatzsysteme {ausweis} {gebaeude} />
|
||||
|
||||
<div class="flex flex-row justify-between">
|
||||
<Hilfe />
|
||||
<button formnovalidate>Weiter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
64
src/modules/VerbrauchsausweisWohnenFlowModule.svelte
Normal file
64
src/modules/VerbrauchsausweisWohnenFlowModule.svelte
Normal file
@@ -0,0 +1,64 @@
|
||||
<script lang="ts">
|
||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||
import VerbrauchsausweisWohnenModule from "./Ausweise/VerbrauchsausweisWohnenModule.svelte";
|
||||
import EmbeddedLoginModule from "./EmbeddedLoginModule.svelte";
|
||||
import { client } from "src/trpc";
|
||||
import { addNotification } from "@ibcornelsen/ui";
|
||||
|
||||
export let uid: string | null = null;
|
||||
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
||||
export let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
|
||||
|
||||
let showLoginPage = false;
|
||||
|
||||
</script>
|
||||
|
||||
{#if !showLoginPage}
|
||||
<VerbrauchsausweisWohnenModule {uid} {gebaeude} {ausweis} bind:showLoginPage></VerbrauchsausweisWohnenModule>
|
||||
{/if}
|
||||
|
||||
{#if showLoginPage}
|
||||
<EmbeddedLoginModule onLogin={async (response) => {
|
||||
if (uid) {
|
||||
// Anscheinend wurde der Ausweis bereits erstellt und hat eine UID.
|
||||
// Jetzt müssen wir ihn nun nur noch abspeichern.
|
||||
try {
|
||||
await client.v1.verbrauchsausweisWohnen[2016].speichern.mutate({
|
||||
...ausweis,
|
||||
gebaeude_stammdaten: gebaeude,
|
||||
uid
|
||||
})
|
||||
|
||||
window.location.href = `/ausweis-gespeichert?uid=${uid}`;
|
||||
} catch (e) {
|
||||
showLoginPage = false;
|
||||
addNotification({
|
||||
dismissable: false,
|
||||
message: "Ausweis konnte nicht gespeichert werden, bitte versuchen sie es erneut.",
|
||||
subtext: "Sollte das Problem weiterhin bestehen, kontaktieren sie bitte den Support.",
|
||||
timeout: 6000,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// Wir speichern den Ausweis ab und leiten auf die "ausweis-gespeichert" Seite weiter.
|
||||
try {
|
||||
const { uid } = await client.v1.verbrauchsausweisWohnen[2016].erstellen.mutate({
|
||||
...ausweis,
|
||||
gebaeude_stammdaten: gebaeude
|
||||
})
|
||||
window.location.href = `/ausweis-gespeichert?uid=${uid}`;
|
||||
} catch (e) {
|
||||
showLoginPage = false;
|
||||
addNotification({
|
||||
dismissable: false,
|
||||
message: "Ausweis konnte nicht gespeichert werden, bitte versuchen sie es erneut.",
|
||||
subtext: "Sollte das Problem weiterhin bestehen, kontaktieren sie bitte den Support.",
|
||||
timeout: 6000,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}}></EmbeddedLoginModule>
|
||||
{/if}
|
||||
Reference in New Issue
Block a user