nutzflaeche, preis, ausweise prüfen

nutzflaeche hinzugefügt, Preis VANW von 65 auf 85 gesetzt
This commit is contained in:
Jens Cornelsen
2024-02-20 11:08:06 +01:00
parent cb7d78c867
commit ba93f7b660
8 changed files with 103 additions and 6 deletions

View File

@@ -65,6 +65,11 @@ describe("Verbrauchsausweis erstellen Schritt 1", () => {
.should("have.attr", "type", "number")
.type(faker.number.int({ min: 50, max: 1000 }).toString());
// Nutzlaeche
cy.get("input[name='nutzflaeche']")
.should("have.attr", "type", "number")
.type(faker.number.int({ min: 50, max: 1000 }).toString());
// Keller
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", Object.values(Enums.Heizungsstatus).length).parent().select(faker.number.int({
max: Object.values(Enums.Heizungsstatus).length,

View File

@@ -65,6 +65,11 @@ describe("Verbrauchsausweis erstellen Schritt 1", () => {
.should("have.attr", "type", "number")
.type(faker.number.int({ min: 50, max: 1000 }).toString());
// Nutzflaeche
cy.get("input[name='nutzflaeche']")
.should("have.attr", "type", "number")
.type(faker.number.int({ min: 50, max: 1000 }).toString());
// Keller
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", Object.values(Enums.Heizungsstatus).length).parent().select(faker.number.int({
max: Object.values(Enums.Heizungsstatus).length,

View File

@@ -11,12 +11,20 @@ export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
gebaeude_stammdaten: GebaeudeClient;
}
): number {
if (!ausweis.gebaeude_stammdaten) {
return 0
}
let faktorKeller = 1.2;
if (ausweis.keller_beheizt && (ausweis.gebaeude_stammdaten.einheiten || 1) <= 2) {
faktorKeller = 1.35;
}
return (ausweis.gebaeude_stammdaten.flaeche || 1) * faktorKeller;
if ((ausweis.gebaeude_stammdaten.nutzflaeche || 0) > 0) {
return ausweis.gebaeude_stammdaten.nutzflaeche || 0;
} else {
return (ausweis.gebaeude_stammdaten.flaeche || 1) * faktorKeller;
}
}
export async function endEnergieVerbrauchVerbrauchsausweis_2016(

View File

@@ -13,6 +13,7 @@ export class Gebaeude {
public baujahr: number[] = [];
public einheiten: number = 0;
public wohnflaeche: number = 0;
public nutzflaeche: number = 0;
public keller_beheizt: boolean = false;
public dachgeschoss_beheizt: Dachgeschoss = Dachgeschoss.UNBEHEIZT;
public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";

View File

@@ -10,7 +10,7 @@ export const API_UID_COOKIE_NAME = "uid";
export const PRICES: Record<Enums.Ausweisart, [number, number, number]> = {
BedarfsausweisWohnen: [135, 145, 290],
VerbrauchsausweisWohnen: [45, 55, 180],
VerbrauchsausweisGewerbe: [65, 75, 360],
VerbrauchsausweisGewerbe: [85, 95, 360],
};
export const SERVICES: Record<Enums.Ausweisart, Record<Enums.Service, number>> = {
@@ -18,7 +18,7 @@ export const SERVICES: Record<Enums.Ausweisart, Record<Enums.Service, number>> =
Qualitaetsdruck: 9,
Aushang: 10,
SameDay: 29,
Telefonberatung: 30,
Telefonberatung: 30,
},
VerbrauchsausweisWohnen: {
Qualitaetsdruck: 9,

View File

@@ -158,6 +158,7 @@
ausweis.verbrauch_2 = 14000;
ausweis.verbrauch_3 = 16000;
gebaeude.flaeche = 152;
gebaeude.nutzflaeche = 172;
ausweis.keller_beheizt = true;
ausweis.brennstoff_1 = "Erdgas H";
ausweis.einheit_1 = "kWh";
@@ -280,7 +281,7 @@
</div>
</div>
<!-- Wohnfläche -->
<div class="form-group col-md-4">
<div class="form-group col-md-3">
<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
@@ -302,7 +303,7 @@
</div>
<!-- Keller -->
<div class="form-group col-md-4">
<div class="form-group col-md-3">
<Label>Keller *</Label>
<div>
<select
@@ -319,7 +320,7 @@
</div>
<!-- Dachgeschoss -->
<div class="form-group col-md-4">
<div class="form-group col-md-3">
<Label>Dachgeschoss *</Label>
<div>
<select name="dachgeschoss" data-test="dachgeschoss" bind:value={gebaeude.dachgeschoss} required>
@@ -330,6 +331,28 @@
</select>
</div>
</div>
<!-- Gesamtfläche -->
<div class="form-group col-md-3">
<HelpLabel title="Gesamtfläche m²">
Bitte geben Sie hier die beheizte Gesamtfläche in m² ein (wenn bekannt).
Dabei handelt es sich um die Wohnfläche + weiterer Flächen innerhalb des Gebäudes
(z.B. Fläche des beheizten Kellers).
Diese Fläche wird dann im Energieausweis als energetische Nutzfläche (An) ausgewiesen.
</HelpLabel>
<div>
<input
name="nutzflaeche" data-test="nutzflaeche"
maxlength="4"
type="number"
required
autocomplete="off"
data-rule-minlength="2"
data-msg-minlength="min. 2 Zeichen"
bind:value={gebaeude.nutzflaeche}
/>
</div>
</div>
</div>
<hr />

View File

@@ -0,0 +1,30 @@
<script lang="ts">
const calculations: Record<string, any> = {};
const ausweis: Record<string, any> = {};
</script>
<div class="list-ausweis" style="border: 1px solid #ccc;">
<div class="flex-row justify-between">
<div class="flex-column">
<table class="table-borderless" style="border:none;">
<tr>
<td title="" width="50px"
><div class="checkTextPreviewButton">
<div
class="checkTextPreview"
style="display:none; position: absolute; background-color: black; color: white; padding: 10px; border-radius: 5px; max-width: 600px; z-index:9999;"
>
{#if ausweis["ausweisart"] == "VA" || ausweis["ausweisart"] == "VANW"}
({calculations["Klimafaktor_1"]} + {calculations["Klimafaktor_2"]} + {calculations["Klimafaktor_3"]}) / 3 &gt;&gt; durchschnittlicher Klimafaktor
{:else}
{/if}
<br />
</div>
</div></td
>
</tr>
</table>
</div>
</div>
</div>

View File

@@ -0,0 +1,25 @@
---
import UserLayout from "../../../layouts/UserLayout.astro";
import { API_UID_COOKIE_NAME } from "../../../lib/constants";
import { prisma } from "@ibcornelsen/database/server";
const uid = Astro.cookies.get(API_UID_COOKIE_NAME).value
if (!uid) {
return Astro.redirect("/auth/login")
}
const user = await prisma.benutzer.findUnique({
where: {
uid
}
})
if (!user) {
return Astro.redirect("/auth/login")
}
---
<UserLayout title="Ausweise Prüfen">
</UserLayout>