Bugfixes im Zuge der Datenbank Umstellung

This commit is contained in:
Moritz Utcke
2024-02-25 11:45:30 +07:00
parent b3aa49e0a9
commit 61c36f6b78
35 changed files with 425 additions and 1130 deletions

View File

@@ -1,55 +1,59 @@
import { VerbrauchsausweisWohnenClient, GebaeudeClient } from "#components/Ausweis/types";
import { VerbrauchsausweisWohnenClient, GebaeudeClient, GebaeudeAufnahmeClient } from "#components/Ausweis/types";
import { getKlimafaktoren } from "#lib/Klimafaktoren";
import { getHeizwertfaktor } from "#lib/server/Heizwertfaktor";
import moment from "moment";
export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
ausweis: VerbrauchsausweisWohnenClient & {
gebaeude_stammdaten: GebaeudeClient;
gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient & {
gebaeude_stammdaten: GebaeudeClient;
};
}
): number {
if (!ausweis.gebaeude_stammdaten) {
if (!ausweis.gebaeude_aufnahme_allgemein.gebaeude_stammdaten) {
return 0
}
let faktorKeller = 1.2;
if (ausweis.keller_beheizt && (ausweis.gebaeude_stammdaten.einheiten || 1) <= 2) {
if (ausweis.keller_beheizt && (ausweis.gebaeude_aufnahme_allgemein.einheiten || 1) <= 2) {
faktorKeller = 1.35;
}
if ((ausweis.gebaeude_stammdaten.nutzflaeche || 0) > 0) {
return ausweis.gebaeude_stammdaten.nutzflaeche || 0;
if ((ausweis.gebaeude_aufnahme_allgemein.nutzflaeche || 0) > 0) {
return ausweis.gebaeude_aufnahme_allgemein.nutzflaeche || 0;
} else {
return (ausweis.gebaeude_stammdaten.flaeche || 1) * faktorKeller;
return (ausweis.gebaeude_aufnahme_allgemein.flaeche || 1) * faktorKeller;
}
}
export async function endEnergieVerbrauchVerbrauchsausweis_2016(
ausweis: VerbrauchsausweisWohnenClient & {
gebaeude_stammdaten: GebaeudeClient;
gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient & {
gebaeude_stammdaten: GebaeudeClient;
}
}
) {
if (!ausweis.gebaeude_stammdaten.plz || !ausweis.startdatum) {
return null
}
let startdatum = moment(ausweis.startdatum);
let klimafaktoren: Awaited<ReturnType<typeof getKlimafaktoren>> = [{
month: ausweis.startdatum.getMonth(),
year: ausweis.startdatum.getFullYear(),
month: startdatum.month(),
year: startdatum.year(),
klimafaktor: 1
},
{
month: ausweis.startdatum.getMonth(),
year: ausweis.startdatum.getFullYear() + 1,
month: startdatum.month(),
year: startdatum.year() + 1,
klimafaktor: 1
},
{
month: ausweis.startdatum.getMonth(),
year: ausweis.startdatum.getFullYear() + 2,
month: startdatum.month(),
year: startdatum.year() + 2,
klimafaktor: 1
}];
try {
const response = await getKlimafaktoren(ausweis.startdatum, ausweis.gebaeude_stammdaten.plz)
const response = await getKlimafaktoren(ausweis.startdatum, ausweis.gebaeude_aufnahme_allgemein.gebaeude_stammdaten.plz)
if (response) {
klimafaktoren = response
@@ -64,11 +68,11 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
// Endenergieverbrauch
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
let brennstoff_1 = getHeizwertfaktor(
ausweis.brennstoff_1 as string,
ausweis.gebaeude_aufnahme_allgemein.brennstoff_1 as string,
ausweis.einheit_1 as string
);
let brennstoff_2 = getHeizwertfaktor(
ausweis.brennstoff_2 as string,
ausweis.gebaeude_aufnahme_allgemein.brennstoff_2 as string,
ausweis.einheit_2 as string
);
@@ -90,10 +94,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.gebaeude_stammdaten.leerstand || 0) / 100;
let leerstand = (ausweis.gebaeude_aufnahme_allgemein.leerstand || 0) / 100;
if (ausweis.warmwasser_enthalten && ausweis.warmwasser_anteil_bekannt) {
if (ausweis.gebaeude_stammdaten.solarsystem_warmwasser) {
if (ausweis.gebaeude_aufnahme_allgemein.solarsystem_warmwasser) {
// Wenn Warmwasser enthalten und Anteil bekannt und Solarsystem
energieVerbrauchWarmwasser_1 =
energieVerbrauchGesamt_1 *
@@ -116,7 +120,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
leerstand *
(energieVerbrauchWarmwasser_1 + energieVerbrauchWarmwasser_2);
} else {
if (ausweis.gebaeude_stammdaten.solarsystem_warmwasser) {
if (ausweis.gebaeude_aufnahme_allgemein.solarsystem_warmwasser) {
// Wenn Warmwasser Anteil unbekannt und Solarsystem
energieVerbrauchWarmwasser_1 = energetischeNutzflaeche * 12 * 3;
energieVerbrauchWarmwasser_2 = 0;
@@ -184,7 +188,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
let primaerfaktorww = 0;
let primaerfaktorww_1 = 0;
if (!ausweis.warmwasser_enthalten && ausweis.gebaeude_stammdaten.durchlauf_erhitzer) {
if (!ausweis.warmwasser_enthalten && ausweis.gebaeude_aufnahme_allgemein.durchlauf_erhitzer) {
primaerfaktorww = 1.8;
primaerfaktorww_1 = 1.8;
} else {