Fixes mit Moritz

This commit is contained in:
Jens Cornelsen
2024-12-10 14:04:40 +01:00
parent 9fea70a00a
commit 0279d0121c
4 changed files with 268 additions and 4 deletions

View File

@@ -45,6 +45,7 @@
"i18next-http-backend": "^2.6.2",
"js-cookie": "^3.0.5",
"js-interpolate": "^1.0.1",
"jsonwebtoken": "^9.0.2",
"katex": "^0.16.11",
"moment": "^2.30.1",
"moment-timezone": "^0.5.46",

View File

@@ -0,0 +1,263 @@
<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 Ausweisart from "#components/Ausweis/Ausweisart.svelte";
import Label from "#components/Label.svelte";
import HelpLabel from "#components/HelpLabel.svelte";
import ZipSearch from "#components/PlzSuche.svelte";
import { hotWaterProductionTypes } from "./HotWaterProductionTypes";
import BilderZusatzsysteme from "../Ausweis/BilderZusatzsysteme.svelte";
import moment from "moment";
import { BitChecker } from "src/lib/BitChecker";
import type { BedarfsausweisWohnen } from "@ibcornelsen/database/client";
let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
let daemmungsBreiten = [0, 0.02, 0.05, 0.08, 0.12, 0.16, 0.2, 0.3, 0.4];
let fensterArten = {
Einfachverglasung: 5,
"Holzfenster Doppelverglasung": 2.7,
"Kunststofffenster Doppelverglasung": 3,
"Alu- oder Stahlfenster Doppelverglasung": 4.3,
"Fenster Doppelverglasung (ab 1995)": 1.8,
"Fenster Doppelverglasung (U-Wert 1,1)": 1.1,
"Dreifach-Wärmeschutzverglasung(U-Wert 0,9)": 0.9,
"Dreifach-Wärmeschutzverglasung(U-Wert 0,85)": 0.85,
"Passivhausfenster(U-Wert 0,7)": 0.7,
"Passivhausfenster(U-Wert 0,6)": 0.6,
"Fenster mit U-Wert 2,3": 2.3,
"Fenster mit U-Wert 1,6": 1.6,
"Fenster mit U-Wert 1,7": 1.7,
"Fenster mit U-Wert 1,3": 1.3,
"Fenster mit U-Wert 1": 1,
};
const arrayRange = (start: number, stop: number, step: number) =>
Array.from(
{ length: (stop - start) / step + 1 },
(value, index) => start + index * step
);
function automatischAusfüllen() {
ausweis.baujahr_anlage = 1974;
ausweis.baujahr_gebaeude = 1962;
ausweis.anzahl_einheiten = 1;
ausweis.objekt_saniert = true;
ausweis.objekt_strasse = "Mönckebergstraße";
ausweis.objekt_plz = "22049";
ausweis.objekt_ort = "Hamburg";
ausweis.wohnflaeche = 152;
ausweis.keller_beheizt = true;
ausweis.dachgeschoss = Dachgeschoss.UNBEHEIZT;
ausweis.energieverbrauch_zeitraum = moment("04.01.2018");
ausweis.energietraeger_1 = "Erdgas";
ausweis.energietraeger_einheit_heizquelle_1 = "kWh";
ausweis.versorgungssysteme = BitChecker(1);
ausweis.fenster_dach = BitChecker(1);
ausweis.daemmung = BitChecker(1);
ausweis.objekt_typ = "Einfamilienhaus";
ausweis.objekt_gebaeudeteil = "Gesamtgebäude";
ausweis.lueftungskonzept = "Fensterlüftung";
ausweis.wird_gekuehlt = false;
ausweis.energieverbrauch_1_heizquelle_1 = 40120;
ausweis.energieverbrauch_2_heizquelle_1 = 42120;
ausweis.energieverbrauch_3_heizquelle_1 = 41120;
ausweis.anzahl_vollgeschosse = 2;
ausweis.geschosshoehe = 2.25;
ausweis.anzahl_gauben = 1;
ausweis.breite_gauben = 0.7;
ausweis.masse_a = 4;
ausweis.masse_b = 12;
ausweis.masse_c = 3;
ausweis.masse_d = 6;
ausweis.masse_e = 4;
ausweis.masse_f = 9;
ausweis.fensterflaeche_so_sw = 8;
ausweis.fensterflaeche_nw_no = 8;
ausweis.aussenwandflaeche_unbeheizt = 15;
ausweis.fenster_flaeche_1 = 16;
ausweis.fenster_art_1 = 5;
ausweis.fenster_flaeche_2 = 0;
ausweis.fenster_art_2 = 5;
ausweis.dachfenster_flaeche = 12;
ausweis.dachfenster_art = 5;
ausweis.haustuer_flaeche = 2;
ausweis.haustuer_art = 5;
ausweis.dach_bauart = "Massive Konstruktion";
ausweis.dach_daemmung = 0;
ausweis.decke_bauart = "Massive Konstruktion";
ausweis.decke_daemmung = 0.02;
ausweis.aussenwand_bauart = "Massive Konstruktion";
ausweis.aussenwand_daemmung = 0.05;
ausweis.boden_bauart = "Massive Konstruktion";
ausweis.boden_daemmung = 0.08;
ausweis.warmwasser_verteilung = "zvmzbis1978";
ausweis.warmwasser_speicherung = "zwwsath";
ausweis.warmwasser_erzeugung = "ktkesselbis1986";
ausweis.heizung_zentral = false;
ausweis.heizung_verteilung = "zv7055bis1978";
ausweis.waerme_erzeugung_heizung = "ktkesselbis1986h";
ausweis.heizung_speicherung = "elzs7055bis1994";
ausweis.energietraeger_2 = "Braunkohle";
ausweis.anteil_zusatzheizung = 0.7;
ausweis = ausweis;
}
</script>
<div class="flex flex-row gap-8 items-center mb-8">
<div class="flex flex-col w-full">
<h1>Bedarfsausweis erstellen - 75€</h1>
<Progressbar progress={0} />
</div>
<PerformanceScore {ausweis} />
</div>
<form action="FORM/transfer/VA_1to2" enctype="multipart/form-data">
<div class="form-section">
<label id="headlinep" class="section-title">A - Prüfung der Ausweisart</label>
</div>
<div class="form-container">
<div class="form-grid">
<!-- Anlass für Energieausweis -->
<div class="form-group">
<label for="ausstellgrund" class="form-label">Anlass für Energieausweis *</label>
<div class="form-options">
<label class="radio-option">
<input type="radio" name="ausstellgrund" value="Neubau" required>
<span>Neubau</span>
</label>
<label class="radio-option">
<input type="radio" name="ausstellgrund" value="Vermietung" required>
<span>Vermietung</span>
</label>
<label class="radio-option">
<input type="radio" name="ausstellgrund" value="Verkauf" required>
<span>Verkauf</span>
</label>
<label class="radio-option">
<input type="radio" name="ausstellgrund" value="Modernisierung" required>
<span>Modernisierung</span>
</label>
<label class="radio-option">
<input type="radio" name="ausstellgrund" value="Sonstiges" required>
<span>Sonstiges</span>
</label>
</div>
</div>
<!-- Baujahr Heizung -->
<div class="form-group">
<label for="baujahr_anlage" class="form-label">Baujahr Heizung *</label>
<input id="baujahr_anlage" name="baujahr_anlage" type="text" maxlength="20" required autocomplete="off" class="form-input">
</div>
<!-- Baujahr Gebäude -->
<div class="form-group">
<label for="baujahr_gebaeude" class="form-label">Baujahr Gebäude *</label>
<input id="baujahr_gebaeude" name="baujahr_gebaeude" type="text" maxlength="20" required autocomplete="off" class="form-input">
</div>
<!-- Anzahl der Wohnungen -->
<div class="form-group">
<label for="anzahl_einheiten" class="form-label">Anzahl Wohnungen *</label>
<input id="anzahl_einheiten" name="anzahl_einheiten" type="text" maxlength="3" required autocomplete="off" class="form-input">
</div>
<!-- Sanierungsstatus -->
<div class="form-group">
<label for="objekt_saniert" class="form-label">Sanierungsstatus *</label>
<select id="objekt_saniert" name="objekt_saniert" required class="form-select">
<option value="">Bitte auswählen</option>
<option value="1">saniert</option>
<option value="0">unsaniert</option>
</select>
</div>
</div>
</div>
</form>
<style lang="scss">
.form-section {
margin-bottom: 1rem;
.section-title {
font-size: 1.125rem; // 18px
font-weight: 600;
text-align: left;
}
}
.form-container {
padding: 1rem;
background-color: #f3f4f6; // Tailwind's bg-gray-100
border-radius: 0.5rem;
}
.form-grid {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 1rem;
.form-group {
grid-column: span 4; // Equivalent to col-span-4 in Tailwind
&.full-width {
grid-column: span 12;
}
.form-label {
display: block;
font-size: 0.875rem; // 14px
font-weight: 500;
color: #374151; // Tailwind's text-gray-700
margin-bottom: 0.5rem;
}
.form-input,
.form-select {
display: block;
width: 100%;
padding: 0.5rem;
font-size: 0.875rem;
color: #111827; // Tailwind's text-gray-900
border: 1px solid #d1d5db; // Tailwind's border-gray-300
border-radius: 0.375rem; // Rounded-md
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); // Tailwind's shadow-sm
transition: border-color 0.2s, box-shadow 0.2s;
&:focus {
border-color: #6366f1; // Tailwind's focus:border-indigo-500
box-shadow: 0 0 0 1px #6366f1; // Tailwind's focus:ring-indigo-500
outline: none;
}
}
.form-options {
margin-top: 0.5rem;
.radio-option {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
input {
accent-color: #6366f1; // Tailwind's text-indigo-600
margin-right: 0.5rem;
}
span {
font-size: 0.875rem;
color: #374151; // Tailwind's text-gray-700
}
}
}
}
}
</style>

View File

@@ -10,9 +10,9 @@ export const API_UID_COOKIE_NAME = "uid";
export const PRICES: Record<Enums.Ausweisart, [number, number, number]> = {
// per E-Mail , inkl.Beratung, offline
BedarfsausweisWohnen: [135, 145, 290],
VerbrauchsausweisWohnen: [55, 75, 180],
VerbrauchsausweisWohnen: [65, 75, 180],
VerbrauchsausweisGewerbe: [95, 115, 360],
BedarfsausweisGewerbe: [400, 0, 0]
BedarfsausweisGewerbe: [500, 0, 0]
};
export const SERVICES: Record<Enums.Ausweisart, Record<Enums.Service, number>> = {
@@ -34,4 +34,4 @@ export const SERVICES: Record<Enums.Ausweisart, Record<Enums.Service, number>> =
SameDay: 29,
Telefonberatung: 25,
},
};
};

View File

@@ -1,7 +1,7 @@
---
import AusweisLayout from "#layouts/AusweisLayout.astro";
import BedarfsausweisContent from "#components/Bedarfsausweis/BedarfsausweisContent.svelte";
import BedarfsausweisContent from "#components/Bedarfsausweis/BedarfsausweisContent1.svelte";
---