Bugfixes im Zuge der Datenbank Umstellung
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user