Neue Datenbank eingebunden
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Moment } from "moment";
|
||||
import { BitChecker } from "../BitChecker";
|
||||
import { Dachgeschoss } from "./types";
|
||||
import { Bedarfsausweis } from "./Bedarfsausweis";
|
||||
import { Verbrauchsausweis } from "./Verbrauchsausweis";
|
||||
import { VerbrauchsausweisGewerbe } from "./VerbrauchsausweisGewerbe";
|
||||
|
||||
export enum AusweisType {
|
||||
VERBRAUCHSAUSWEIS,
|
||||
@@ -18,124 +18,25 @@ export type Ausstellgrund =
|
||||
|
||||
export type Lueftungskonzept = "Fensterlüftung" | "Schachtlüftung" | "Lüftungsanlage ohne Wärmerückgewinnung" | "Lüftungsanlage mit Wärmerückgewinnung"
|
||||
|
||||
export interface Ausweis {
|
||||
ausweisart: Ausweisart;
|
||||
id: number;
|
||||
user_id: number;
|
||||
rechnung_adresse: number;
|
||||
versand_adresse: number;
|
||||
objekt_typ: string;
|
||||
objekt_plz: string;
|
||||
objekt_ort: string;
|
||||
objekt_strasse: string;
|
||||
objekt_gebaeudeteil: string;
|
||||
objekt_saniert: boolean;
|
||||
baujahr_gebaeude: number;
|
||||
baujahr_anlage: number;
|
||||
anzahl_einheiten: number;
|
||||
export type Ausweis = Verbrauchsausweis | Bedarfsausweis | VerbrauchsausweisGewerbe;
|
||||
|
||||
erstellungsdatum: Date;
|
||||
ausstellgrund: Ausstellgrund;
|
||||
export function getAusweis(ausweisart: Ausweisart, initializer?: Ausweis): Ausweis {
|
||||
let ausweis;
|
||||
|
||||
energieverbrauch_zeitraum: Moment;
|
||||
energieverbrauch_1_heizquelle_1: number;
|
||||
energieverbrauch_2_heizquelle_1: number;
|
||||
energieverbrauch_3_heizquelle_1: number;
|
||||
energieverbrauch_1_heizquelle_2: number;
|
||||
energieverbrauch_2_heizquelle_2: number;
|
||||
energieverbrauch_3_heizquelle_2: number;
|
||||
if (ausweisart == "VA") {
|
||||
ausweis = new Verbrauchsausweis();
|
||||
} else if (ausweisart == "VANW") {
|
||||
ausweis = new VerbrauchsausweisGewerbe();
|
||||
} else if (ausweisart == "BA") {
|
||||
ausweis = new Bedarfsausweis();
|
||||
} else {
|
||||
throw new Error("Unbekannte Ausweisart.");
|
||||
}
|
||||
|
||||
energietraeger_einheit_heizquelle_1: string;
|
||||
energietraeger_einheit_heizquelle_2: string;
|
||||
energietraeger_1: string;
|
||||
energietraeger_2: string;
|
||||
|
||||
anteil_warmwasser_1: number;
|
||||
anteil_warmwasser_2: number;
|
||||
|
||||
uid: string;
|
||||
|
||||
wohnflaeche: number;
|
||||
keller_beheizt: boolean;
|
||||
dachgeschoss: Dachgeschoss;
|
||||
zusaetzliche_heizquelle: boolean;
|
||||
warmwasser_enthalten: boolean;
|
||||
lueftungskonzept: Lueftungskonzept;
|
||||
wird_gekuehlt: boolean;
|
||||
leerstand: number;
|
||||
images: string[];
|
||||
|
||||
versorgungssysteme: boolean[];
|
||||
fenster_dach: boolean[];
|
||||
energiequelle_2_nutzung: boolean[];
|
||||
daemmung: boolean[];
|
||||
|
||||
/**
|
||||
* Bedarfsausweis spezifische Eigenschaften
|
||||
*/
|
||||
anzahl_vollgeschosse: number;
|
||||
geschosshoehe: number;
|
||||
anzahl_gauben: number;
|
||||
breite_gauben: number;
|
||||
masse_a: number;
|
||||
masse_b: number;
|
||||
masse_c: number;
|
||||
masse_d: number;
|
||||
masse_e: number;
|
||||
masse_f: number;
|
||||
fensterflaeche_so_sw: number;
|
||||
fensterflaeche_nw_no: number;
|
||||
aussenwandflaeche_unbeheizt: number;
|
||||
dachflaeche: number;
|
||||
dach_u_wert: number;
|
||||
deckenflaeche: number;
|
||||
decke_u_wert: number;
|
||||
aussenwand_flaeche: number;
|
||||
aussenwand_u_wert: number;
|
||||
fussboden_flaeche: number;
|
||||
fussboden_u_wert: number;
|
||||
volumen: number;
|
||||
dicht: boolean;
|
||||
fenster_flaeche_1: number;
|
||||
fenster_art_1: number;
|
||||
fenster_flaeche_2: number;
|
||||
fenster_art_2: number;
|
||||
dachfenster_flaeche: number;
|
||||
dachfenster_art: number;
|
||||
haustuer_flaeche: number;
|
||||
haustuer_art: number;
|
||||
dach_bauart: string;
|
||||
dach_daemmung: number;
|
||||
decke_bauart: string;
|
||||
decke_daemmung: number;
|
||||
aussenwand_bauart: string;
|
||||
aussenwand_daemmung: number;
|
||||
boden_bauart: string;
|
||||
boden_daemmung: number;
|
||||
warmwasser_verteilung: string;
|
||||
warmwasser_speicherung: string;
|
||||
warmwasser_erzeugung: string;
|
||||
heizung_zentral: boolean;
|
||||
heizung_verteilung: string;
|
||||
heizung_speicherung: string;
|
||||
waerme_erzeugung_heizung: string;
|
||||
anteil_zusatzheizung: number;
|
||||
kollektor_flaeche: number;
|
||||
|
||||
// VANW
|
||||
|
||||
vanw_stromverbrauch_enthalten: number;
|
||||
vanw_stromverbrauch_sonstige: string;
|
||||
vanw_strom_1: number;
|
||||
vanw_strom_2: number;
|
||||
vanw_strom_3: number;
|
||||
|
||||
regnummer: string;
|
||||
erledigt: boolean;
|
||||
|
||||
anrede: string;
|
||||
name: string;
|
||||
vorname: string;
|
||||
email: string;
|
||||
telefonnummer: string;
|
||||
}
|
||||
if (initializer) {
|
||||
ausweis.ausstellgrund = initializer.ausstellgrund;
|
||||
ausweis.ausweisart = initializer.ausweisart;
|
||||
}
|
||||
|
||||
return ausweis;
|
||||
}
|
||||
@@ -5,8 +5,9 @@ import { BitChecker } from "../BitChecker";
|
||||
import { getHeizungswerte } from "../Heizungswerte";
|
||||
import { Ausstellgrund, Ausweisart, Dachgeschoss, Lueftungskonzept } from "./types";
|
||||
import { Ausweis } from "./Ausweis";
|
||||
import { Energiekennwerte } from "../Energiekennwerte";
|
||||
|
||||
export class Bedarfsausweis implements Ausweis {
|
||||
export class Bedarfsausweis {
|
||||
public ausweisart: Ausweisart = "VA";
|
||||
public id: number = 0;
|
||||
public user_id: number = 0;
|
||||
@@ -25,7 +26,7 @@ export class Bedarfsausweis implements Ausweis {
|
||||
public erstellungsdatum: Date = new Date();
|
||||
public ausstellgrund: Ausstellgrund = "Vermietung";
|
||||
|
||||
public energieverbrauch_zeitraum: Moment = moment();
|
||||
public energieverbrauch_zeitraum: Moment = moment();
|
||||
public energieverbrauch_1_heizquelle_1: number = 0;
|
||||
public energieverbrauch_2_heizquelle_1: number = 0;
|
||||
public energieverbrauch_3_heizquelle_1: number = 0;
|
||||
@@ -137,6 +138,9 @@ export class Bedarfsausweis implements Ausweis {
|
||||
// Temporär
|
||||
public tabellenwerte_aendern: boolean = false;
|
||||
|
||||
public gebaeude_uid?: string;
|
||||
public kennwerte: Energiekennwerte = new Energiekennwerte();
|
||||
|
||||
public constructor() {}
|
||||
|
||||
public static fromBase64(base64: string): Bedarfsausweis | null {
|
||||
@@ -150,17 +154,15 @@ export class Bedarfsausweis implements Ausweis {
|
||||
}
|
||||
}
|
||||
|
||||
public get primaer_energie_verbrauch(): Promise<number> {
|
||||
return (async () => {
|
||||
const Endenergieverbrauch = await this.end_energie_verbrauch;
|
||||
public get primaer_energie_verbrauch(): number {
|
||||
const Endenergieverbrauch = this.end_energie_verbrauch;
|
||||
|
||||
const brennstoff_1 = getHeizwertfaktorClient(
|
||||
this.energietraeger_1,
|
||||
this.energietraeger_einheit_heizquelle_1
|
||||
);
|
||||
const brennstoff_1 = getHeizwertfaktorClient(
|
||||
this.energietraeger_1,
|
||||
this.energietraeger_einheit_heizquelle_1
|
||||
);
|
||||
|
||||
return Endenergieverbrauch * brennstoff_1.primärenergiefaktor;
|
||||
})();
|
||||
return Endenergieverbrauch * brennstoff_1.primärenergiefaktor;
|
||||
}
|
||||
|
||||
public get end_energie_verbrauch(): number {
|
||||
|
||||
@@ -1,214 +1,31 @@
|
||||
import { Moment } from "moment";
|
||||
import { getKlimafaktorenClient } from "../Klimafaktoren";
|
||||
import { getHeizwertfaktorClient } from "../server/Heizwertfaktor";
|
||||
import moment from "moment";
|
||||
import { BitChecker } from "../BitChecker";
|
||||
import { Ausstellgrund, Ausweisart, Dachgeschoss, Lueftungskonzept } from "./types";
|
||||
import { Ausweis } from "./Ausweis";
|
||||
import { Ausstellgrund, Ausweisart } from "./types";
|
||||
import { Energiekennwerte } from "../Energiekennwerte";
|
||||
import { Gebaeude } from "../Gebaeude";
|
||||
|
||||
|
||||
export class Verbrauchsausweis implements Ausweis {
|
||||
export class Verbrauchsausweis {
|
||||
public ausweisart: Ausweisart = "VA";
|
||||
public id: number = 0;
|
||||
public user_id: number = 0;
|
||||
public rechnung_adresse: number = 0;
|
||||
public versand_adresse: number = 0;
|
||||
public objekt_typ: string = "";
|
||||
public objekt_plz: string = "";
|
||||
public objekt_ort: string = "";
|
||||
public objekt_strasse: string = "";
|
||||
public objekt_gebaeudeteil: string = "";
|
||||
public objekt_saniert: boolean = false;
|
||||
public baujahr_gebaeude: number = 0;
|
||||
public baujahr_anlage: number = 0;
|
||||
public anzahl_einheiten: number = 0;
|
||||
|
||||
public erstellungsdatum: Date = new Date();
|
||||
public ausstellgrund: Ausstellgrund = "Vermietung";
|
||||
public warmwasser_enthalten: boolean = true;
|
||||
public id?: number;
|
||||
public uid?: string;
|
||||
public baujahr_anlage: number = 0;
|
||||
|
||||
public energieverbrauch_zeitraum: Moment = moment();
|
||||
public energieverbrauch_1_heizquelle_1: number = 0;
|
||||
public energieverbrauch_2_heizquelle_1: number = 0;
|
||||
public energieverbrauch_3_heizquelle_1: number = 0;
|
||||
public energieverbrauch_1_heizquelle_2: number = 0;
|
||||
public energieverbrauch_2_heizquelle_2: number = 0;
|
||||
public energieverbrauch_3_heizquelle_2: number = 0;
|
||||
|
||||
public energietraeger_einheit_heizquelle_1: string = "";
|
||||
public energietraeger_einheit_heizquelle_2: string = "";
|
||||
public energietraeger_1: string = "";
|
||||
public energietraeger_2: string = "";
|
||||
|
||||
public anteil_warmwasser_1: number = 0;
|
||||
public anteil_warmwasser_2: number = 0;
|
||||
|
||||
public uid: string = "";
|
||||
|
||||
public wohnflaeche: number = 0;
|
||||
public keller_beheizt: boolean = false;
|
||||
public dachgeschoss: Dachgeschoss = Dachgeschoss.NICHT_VORHANDEN;
|
||||
public zusaetzliche_heizquelle: boolean = false;
|
||||
public warmwasser_enthalten: boolean = false;
|
||||
public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";
|
||||
public wird_gekuehlt: boolean = false;
|
||||
public leerstand: number = 0;
|
||||
public images: string[] = [];
|
||||
|
||||
public versorgungssysteme: ReturnType<typeof BitChecker> = BitChecker(0);
|
||||
public fenster_dach: ReturnType<typeof BitChecker> = BitChecker(0);
|
||||
public energiequelle_2_nutzung: ReturnType<typeof BitChecker> = BitChecker(0);
|
||||
public daemmung: ReturnType<typeof BitChecker> = BitChecker(0);
|
||||
public get energetische_nutzfläche(): number {
|
||||
return this.wohnflaeche * (this.keller_beheizt ? 1.35 : 1.2);
|
||||
};
|
||||
return (
|
||||
this.gebaeude.wohnflaeche *
|
||||
(this.gebaeude.keller_beheizt ? 1.35 : 1.2)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bedarfsausweis spezifische Eigenschaften
|
||||
*/
|
||||
public anzahl_vollgeschosse: number = 0;
|
||||
public geschosshoehe: number = 0;
|
||||
public anzahl_gauben: number = 0;
|
||||
public breite_gauben: number = 0;
|
||||
public masse_a: number = 0;
|
||||
public masse_b: number = 0;
|
||||
public masse_c: number = 0;
|
||||
public masse_d: number = 0;
|
||||
public masse_e: number = 0;
|
||||
public masse_f: number = 0;
|
||||
public fensterflaeche_so_sw: number = 0;
|
||||
public fensterflaeche_nw_no: number = 0;
|
||||
public aussenwandflaeche_unbeheizt: number = 0;
|
||||
public dachflaeche: number = 0;
|
||||
public dach_u_wert: number = 0;
|
||||
public deckenflaeche: number = 0;
|
||||
public decke_u_wert: number = 0;
|
||||
public aussenwand_flaeche: number = 0;
|
||||
public aussenwand_u_wert: number = 0;
|
||||
public fussboden_flaeche: number = 0;
|
||||
public fussboden_u_wert: number = 0;
|
||||
public volumen: number = 0;
|
||||
public dicht: boolean = false;
|
||||
public fenster_flaeche_1: number = 0;
|
||||
public fenster_art_1: number = 0;
|
||||
public fenster_flaeche_2: number = 0;
|
||||
public fenster_art_2: number = 0;
|
||||
public dachfenster_flaeche: number = 0;
|
||||
public dachfenster_art: number = 0;
|
||||
public haustuer_flaeche: number = 0;
|
||||
public haustuer_art: number = 0;
|
||||
public dach_bauart: string = "";
|
||||
public dach_daemmung: number = 0;
|
||||
public decke_bauart: string = "";
|
||||
public decke_daemmung: number = 0;
|
||||
public aussenwand_bauart: string = "";
|
||||
public aussenwand_daemmung: number = 0;
|
||||
public boden_bauart: string = "";
|
||||
public boden_daemmung: number = 0;
|
||||
public warmwasser_verteilung: string = "";
|
||||
public warmwasser_speicherung: string = "";
|
||||
public warmwasser_erzeugung: string = "";
|
||||
public heizung_zentral: boolean = false;
|
||||
public heizung_verteilung: string = "";
|
||||
public heizung_speicherung: string = "";
|
||||
public waerme_erzeugung_heizung: string = "";
|
||||
public anteil_zusatzheizung: number = 0;
|
||||
public kollektor_flaeche: number = 0;
|
||||
public regnummer?: string;
|
||||
|
||||
// VANW
|
||||
|
||||
public vanw_stromverbrauch_enthalten: number = 0;
|
||||
public vanw_stromverbrauch_sonstige: string = "";
|
||||
public vanw_strom_1: number = 0;
|
||||
public vanw_strom_2: number = 0;
|
||||
public vanw_strom_3: number = 0;
|
||||
|
||||
public regnummer: string = "";
|
||||
public erledigt: boolean = false;
|
||||
|
||||
public anrede: string = "";
|
||||
public name: string = "";
|
||||
public vorname: string = "";
|
||||
public email: string = "";
|
||||
public telefonnummer: string = "";
|
||||
public kennwerte: Energiekennwerte = new Energiekennwerte();
|
||||
public gebaeude: Gebaeude = new Gebaeude();
|
||||
|
||||
public constructor() {}
|
||||
|
||||
public async upload() {
|
||||
const body = this.getUploadBody();
|
||||
const response = await fetch("/api/ausweis/verbrauchsausweis", {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(body)
|
||||
})
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
public async save() {
|
||||
const body = this.getUploadBody();
|
||||
const response = await fetch("/api/ausweis/verbrauchsausweis", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(body)
|
||||
})
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
private getUploadBody() {
|
||||
return {
|
||||
ausweisart: "VA",
|
||||
|
||||
objekt_typ: this.objekt_typ,
|
||||
objekt_plz: this.objekt_plz,
|
||||
objekt_ort: this.objekt_ort,
|
||||
objekt_strasse: this.objekt_strasse,
|
||||
objekt_gebaeudeteil: this.objekt_gebaeudeteil,
|
||||
objekt_saniert: this.objekt_saniert,
|
||||
baujahr_gebaeude: this.baujahr_gebaeude,
|
||||
baujahr_anlage: this.baujahr_anlage,
|
||||
anzahl_einheiten: this.anzahl_einheiten,
|
||||
|
||||
ausstellgrund: this.ausstellgrund,
|
||||
|
||||
energieverbrauch_zeitraum: this.energieverbrauch_zeitraum.toDate(),
|
||||
energieverbrauch_1_heizquelle_1: this.energieverbrauch_1_heizquelle_1,
|
||||
energieverbrauch_2_heizquelle_1: this.energieverbrauch_2_heizquelle_1,
|
||||
energieverbrauch_3_heizquelle_1: this.energieverbrauch_3_heizquelle_1,
|
||||
energieverbrauch_1_heizquelle_2: this.energieverbrauch_1_heizquelle_2,
|
||||
energieverbrauch_2_heizquelle_2: this.energieverbrauch_2_heizquelle_2,
|
||||
energieverbrauch_3_heizquelle_2: this.energieverbrauch_3_heizquelle_2,
|
||||
|
||||
energietraeger_einheit_heizquelle_1: this.energietraeger_einheit_heizquelle_1,
|
||||
energietraeger_einheit_heizquelle_2: this.energietraeger_einheit_heizquelle_2,
|
||||
energietraeger_1: this.energietraeger_1,
|
||||
energietraeger_2: this.energietraeger_2,
|
||||
|
||||
anteil_warmwasser_1: this.anteil_warmwasser_1,
|
||||
anteil_warmwasser_2: this.anteil_warmwasser_2,
|
||||
|
||||
wohnflaeche: this.wohnflaeche,
|
||||
|
||||
keller_beheizt: this.keller_beheizt,
|
||||
dachgeschoss: this.dachgeschoss,
|
||||
zusaetzliche_heizquelle: this.zusaetzliche_heizquelle,
|
||||
warmwasser_enthalten: this.warmwasser_enthalten,
|
||||
lueftungskonzept: this.lueftungskonzept,
|
||||
wird_gekuehlt: this.wird_gekuehlt,
|
||||
leerstand: this.leerstand,
|
||||
images: this.images,
|
||||
|
||||
versorgungssysteme: this.versorgungssysteme.value,
|
||||
fenster_dach: this.versorgungssysteme.value,
|
||||
energiequelle_2_nutzung: this.versorgungssysteme.value,
|
||||
daemmung: this.versorgungssysteme.value,
|
||||
|
||||
anrede: this.anrede,
|
||||
name: this.name,
|
||||
vorname: this.vorname,
|
||||
email: this.email,
|
||||
telefonnummer: this.telefonnummer,
|
||||
}
|
||||
}
|
||||
|
||||
public static fromBase64(base64: string): Verbrauchsausweis | null {
|
||||
try {
|
||||
const text = Buffer.from(base64, "base64");
|
||||
@@ -224,7 +41,10 @@ export class Verbrauchsausweis implements Ausweis {
|
||||
return (async () => {
|
||||
const Endenergieverbrauch = await this.end_energie_verbrauch;
|
||||
|
||||
const brennstoff_1 = getHeizwertfaktorClient(this.energietraeger_1, this.energietraeger_einheit_heizquelle_1);
|
||||
const brennstoff_1 = getHeizwertfaktorClient(
|
||||
this.kennwerte.energietraeger_1,
|
||||
this.kennwerte.einheit_1
|
||||
);
|
||||
|
||||
return Endenergieverbrauch * brennstoff_1.primärenergiefaktor;
|
||||
})();
|
||||
@@ -232,38 +52,44 @@ export class Verbrauchsausweis implements Ausweis {
|
||||
|
||||
public get end_energie_verbrauch(): Promise<number> {
|
||||
return (async () => {
|
||||
const date = this.energieverbrauch_zeitraum;
|
||||
const date = this.kennwerte.zeitraum;
|
||||
const klimafaktoren = await getKlimafaktorenClient(
|
||||
date,
|
||||
this.objekt_plz
|
||||
this.gebaeude.plz
|
||||
);
|
||||
|
||||
// Endenergieverbrauch
|
||||
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
|
||||
let brennstoff_1 = getHeizwertfaktorClient(this.energietraeger_1, this.energietraeger_einheit_heizquelle_1);
|
||||
let brennstoff_2 = getHeizwertfaktorClient(this.energietraeger_2, this.energietraeger_einheit_heizquelle_2);
|
||||
let brennstoff_1 = getHeizwertfaktorClient(
|
||||
this.kennwerte.energietraeger_1,
|
||||
this.kennwerte.einheit_1
|
||||
);
|
||||
let brennstoff_2 = getHeizwertfaktorClient(
|
||||
this.kennwerte.energietraeger_2,
|
||||
this.kennwerte.einheit_2
|
||||
);
|
||||
|
||||
let verbrauch_1_kwh =
|
||||
(this.energieverbrauch_1_heizquelle_1 * brennstoff_1.umrechnungsfaktor)
|
||||
this.kennwerte.verbrauch_1 * brennstoff_1.umrechnungsfaktor;
|
||||
let verbrauch_2_kwh =
|
||||
(this.energieverbrauch_2_heizquelle_1 * brennstoff_1.umrechnungsfaktor)
|
||||
this.kennwerte.verbrauch_2 * brennstoff_1.umrechnungsfaktor;
|
||||
let verbrauch_3_kwh =
|
||||
(this.energieverbrauch_3_heizquelle_1 * brennstoff_1.umrechnungsfaktor)
|
||||
this.kennwerte.verbrauch_3 * brennstoff_1.umrechnungsfaktor;
|
||||
let verbrauch_4_kwh =
|
||||
(this.energieverbrauch_1_heizquelle_2 * brennstoff_2.umrechnungsfaktor)
|
||||
this.kennwerte.verbrauch_4 * brennstoff_2.umrechnungsfaktor;
|
||||
let verbrauch_5_kwh =
|
||||
(this.energieverbrauch_2_heizquelle_2 * brennstoff_2.umrechnungsfaktor)
|
||||
this.kennwerte.verbrauch_5 * brennstoff_2.umrechnungsfaktor;
|
||||
let verbrauch_6_kwh =
|
||||
(this.energieverbrauch_3_heizquelle_2 * brennstoff_2.umrechnungsfaktor)
|
||||
this.kennwerte.verbrauch_6 * brennstoff_2.umrechnungsfaktor;
|
||||
|
||||
let warmwasserZuschlag = 0;
|
||||
let leerstandsZuschlag = 0;
|
||||
let kuehlungsZuschlag = 0;
|
||||
if (this.anteil_warmwasser_1 == 0) {
|
||||
if (this.kennwerte.anteil_warmwasser_1 == 0) {
|
||||
warmwasserZuschlag = 20 * this.energetische_nutzfläche * 3;
|
||||
}
|
||||
|
||||
if (this.leerstand > 0) {
|
||||
if (this.gebaeude.leerstand > 0) {
|
||||
let durchschnittsKlimafaktor =
|
||||
klimafaktoren.reduce((a, b) => a + b, 0) / 3;
|
||||
|
||||
@@ -274,17 +100,16 @@ export class Verbrauchsausweis implements Ausweis {
|
||||
verbrauch_4_kwh +
|
||||
verbrauch_5_kwh +
|
||||
verbrauch_6_kwh) *
|
||||
(this.leerstand / 100)) /
|
||||
(this.gebaeude.leerstand / 100)) /
|
||||
durchschnittsKlimafaktor;
|
||||
}
|
||||
|
||||
if (this.energiequelle_2_nutzung[3]) {
|
||||
if (this.gebaeude.energiequelle_2_nutzung[3]) {
|
||||
kuehlungsZuschlag = 6 * this.energetische_nutzfläche * 3;
|
||||
}
|
||||
|
||||
|
||||
let anteil_heizung = 1 - this.anteil_warmwasser_1 / 100;
|
||||
let anteil_warmwasser = this.anteil_warmwasser_1 / 100;
|
||||
let anteil_heizung = 1 - this.kennwerte.anteil_warmwasser_1 / 100;
|
||||
let anteil_warmwasser = this.kennwerte.anteil_warmwasser_1 / 100;
|
||||
|
||||
let Energieverbrauchskennwert =
|
||||
(anteil_heizung *
|
||||
@@ -304,7 +129,6 @@ export class Verbrauchsausweis implements Ausweis {
|
||||
kuehlungsZuschlag) /
|
||||
3 /
|
||||
this.energetische_nutzfläche;
|
||||
|
||||
|
||||
return Energieverbrauchskennwert;
|
||||
})();
|
||||
|
||||
@@ -5,9 +5,10 @@ import moment from "moment";
|
||||
import { BitChecker } from "../BitChecker";
|
||||
import { Ausstellgrund, Ausweisart, Dachgeschoss, Lueftungskonzept } from "./types";
|
||||
import { Ausweis } from "./Ausweis";
|
||||
import { Energiekennwerte } from "../Energiekennwerte";
|
||||
|
||||
|
||||
export class VerbrauchsausweisGewerbe implements Ausweis {
|
||||
export class VerbrauchsausweisGewerbe {
|
||||
public ausweisart: Ausweisart = "VA";
|
||||
public id: number = 0;
|
||||
public user_id: number = 0;
|
||||
@@ -131,6 +132,9 @@ export class VerbrauchsausweisGewerbe implements Ausweis {
|
||||
public email: string = "";
|
||||
public telefonnummer: string = "";
|
||||
|
||||
public gebaeude_uid?: string;
|
||||
public kennwerte: Energiekennwerte = new Energiekennwerte();
|
||||
|
||||
public constructor() {}
|
||||
|
||||
public static fromBase64(base64: string): VerbrauchsausweisGewerbe | null {
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
export class Ausweis {
|
||||
public static fromUID(uid: string) {
|
||||
|
||||
}
|
||||
|
||||
public static fromPrivateId(id: number) {
|
||||
|
||||
}
|
||||
}
|
||||
25
src/lib/Energiekennwerte.ts
Normal file
25
src/lib/Energiekennwerte.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import moment, { Moment } from "moment";
|
||||
|
||||
export class Energiekennwerte {
|
||||
public zeitraum: Moment = moment();
|
||||
public verbrauch_1: number = 0;
|
||||
public verbrauch_2: number = 0;
|
||||
public verbrauch_3: number = 0;
|
||||
public verbrauch_4: number = 0;
|
||||
public verbrauch_5: number = 0;
|
||||
public verbrauch_6: number = 0;
|
||||
public einheit_1: string = "";
|
||||
public einheit_2: string = "";
|
||||
public energietraeger_1: string = "";
|
||||
public energietraeger_2: string = "";
|
||||
public anteil_warmwasser_1: number = 0;
|
||||
public anteil_warmwasser_2: number = 0;
|
||||
public warmwasser_enthalten: boolean = false;
|
||||
public zusaetzliche_heizquelle: boolean = false;
|
||||
|
||||
public constructor(initializer?: Energiekennwerte) {
|
||||
if (initializer) {
|
||||
this.zeitraum = initializer.zeitraum;
|
||||
}
|
||||
}
|
||||
}
|
||||
37
src/lib/Gebaeude.ts
Normal file
37
src/lib/Gebaeude.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
import { Ausweis } from "./Ausweis/Ausweis";
|
||||
import { Dachgeschoss, Lueftungskonzept } from "./Ausweis/types";
|
||||
import { BitChecker } from "./BitChecker";
|
||||
|
||||
export class Gebaeude {
|
||||
public typ: string = "";
|
||||
public plz: string = "";
|
||||
public ort: string = "";
|
||||
public strasse: string = "";
|
||||
public gebaeudeteil: string = "";
|
||||
public saniert: boolean = false;
|
||||
public baujahr: number = 0;
|
||||
public einheiten: number = 0;
|
||||
public wohnflaeche: number = 0;
|
||||
public keller_beheizt: boolean = false;
|
||||
public dachgeschoss_beheizt: Dachgeschoss = Dachgeschoss.UNBEHEIZT;
|
||||
public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";
|
||||
public wird_gekuehlt: boolean = false;
|
||||
public leerstand: number = 0;
|
||||
public versorgungssysteme: boolean[] = BitChecker(0);
|
||||
public fenster_dach: boolean[] = BitChecker(0);
|
||||
public energiequelle_2_nutzung: boolean[] = BitChecker(0);
|
||||
public daemmung: boolean[] = BitChecker(0);
|
||||
|
||||
public ausweis?: Ausweis;
|
||||
|
||||
public uid?: string;
|
||||
|
||||
public constructor(initializer?: Gebaeude) {
|
||||
if (initializer) {
|
||||
this.typ = initializer.typ;
|
||||
this.plz = initializer.plz;
|
||||
this.ort = initializer.ort;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user