Ansichtsausweis und Datenblatt

This commit is contained in:
Moritz Utcke
2025-02-07 15:38:55 +07:00
parent 829c176b50
commit 03d9b8a0a0
21 changed files with 211 additions and 139 deletions

View File

@@ -1,33 +1,32 @@
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { AufnahmeClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
import { getHeizwertfaktor } from "#lib/server/Heizwertfaktor.js";
import { Enums } from "@ibcornelsen/database/client";
import moment from "moment";
export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
ausweis: VerbrauchsausweisWohnenClient
ausweis: VerbrauchsausweisWohnenClient,
aufnahme: AufnahmeClient
): number {
if (!ausweis.aufnahme.objekt) {
return 0
}
let faktorKeller = 1.2;
// Falls das Gebäude einen Keller besitzt der Beheizt ist erhöhen wir die Nutzfläche um 15%
if (ausweis.aufnahme.keller == Enums.Heizungsstatus.BEHEIZT && (ausweis.aufnahme.einheiten || 1) <= 2) {
if (aufnahme.keller == Enums.Heizungsstatus.BEHEIZT && (aufnahme.einheiten || 1) <= 2) {
faktorKeller = 1.35;
}
if ((ausweis.aufnahme.nutzflaeche || 0) > 0) {
return ausweis.aufnahme.nutzflaeche || 0;
if ((aufnahme.nutzflaeche || 0) > 0) {
return aufnahme.nutzflaeche || 0;
} else {
return (ausweis.aufnahme.flaeche || 0) * faktorKeller;
return (aufnahme.flaeche || 0) * faktorKeller;
}
}
export async function endEnergieVerbrauchVerbrauchsausweis_2016(
ausweis: VerbrauchsausweisWohnenClient
ausweis: VerbrauchsausweisWohnenClient,
aufnahme: AufnahmeClient,
objekt: ObjektClient
) {
if (!ausweis.aufnahme || !ausweis.aufnahme.objekt) {
if (!aufnahme || !objekt || !ausweis) {
return null;
}
@@ -50,7 +49,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
}];
try {
const response = await getKlimafaktoren(ausweis.startdatum, ausweis.aufnahme.objekt.plz)
const response = await getKlimafaktoren(ausweis.startdatum, objekt.plz)
if (response) {
klimafaktoren = response
@@ -65,16 +64,16 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
// Endenergieverbrauch
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
let brennstoff_1 = getHeizwertfaktor(
ausweis.aufnahme.brennstoff_1 as string,
aufnahme.brennstoff_1 as string,
ausweis.einheit_1 as string
);
let brennstoff_2 = getHeizwertfaktor(
ausweis.aufnahme.brennstoff_2 as string,
aufnahme.brennstoff_2 as string,
ausweis.einheit_2 as string
);
const energetischeNutzflaeche =
energetischeNutzflaecheVerbrauchsausweisWohnen_2016(ausweis);
energetischeNutzflaecheVerbrauchsausweisWohnen_2016(ausweis, aufnahme);
let energieVerbrauchGesamt_1 =
((ausweis.verbrauch_1 || 0) +
@@ -91,10 +90,10 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
let energieVerbrauchWarmwasser_2 = 0;
let leerstandsZuschlagWarmwasser = 0;
// Leerstand wird in Prozent angegeben, muss hier aber in eine Zahl zwischen 0 und 1 umgerechnet werden.
let leerstand = (ausweis.aufnahme.leerstand || 0) / 100;
let leerstand = (aufnahme.leerstand || 0) / 100;
if (ausweis.warmwasser_enthalten && ausweis.warmwasser_anteil_bekannt) {
if (ausweis.aufnahme.solarsystem_warmwasser) {
if (aufnahme.solarsystem_warmwasser) {
// Wenn Warmwasser enthalten und Anteil bekannt und Solarsystem
energieVerbrauchWarmwasser_1 =
energieVerbrauchGesamt_1 *
@@ -117,7 +116,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
leerstand *
(energieVerbrauchWarmwasser_1 + energieVerbrauchWarmwasser_2);
} else {
if (ausweis.aufnahme.solarsystem_warmwasser) {
if (aufnahme.solarsystem_warmwasser) {
// Wenn Warmwasser Anteil unbekannt und Solarsystem
energieVerbrauchWarmwasser_1 = energetischeNutzflaeche * 12 * 3;
energieVerbrauchWarmwasser_2 = 0;
@@ -189,7 +188,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
let primaerfaktorww = 0;
let primaerfaktorww_1 = 0;
if (!ausweis.warmwasser_enthalten && ausweis.aufnahme.durchlauf_erhitzer) {
if (!ausweis.warmwasser_enthalten && aufnahme.durchlauf_erhitzer) {
primaerfaktorww = 1.8;
primaerfaktorww_1 = 1.8;
} else {