Files
online-energieausweis/src/lib/altes-system/import.ts
2025-02-19 11:11:24 +11:00

133 lines
5.6 KiB
TypeScript

import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { faker } from "@faker-js/faker";
import { Enums } from "@ibcornelsen/database/client";
import moment from "moment";
export async function importVerbrauchsausweisWohnenAltesSystem(count: number = 5) {
const response = await fetch("https://online-energieausweis.org/user/ausweis-import.php", {
method: "POST",
body: JSON.stringify({
i: count,
offset: 0,
q: {}
})
})
const data = await response.json();
return data
}
export function verbrauchsausweisWohnenImportTranslate(ausweis: Record<string, any>) {
const ausweisTranslated: VerbrauchsausweisWohnenClient = {
aufnahme: {
rechnungen: null,
baujahr_gebaeude: [ausweis.baujahr_gebaeude],
baujahr_heizung: [ausweis.baujahr_anlage],
baujahr_klima: [ausweis.baujahr_klimaanlage],
adresse: ausweis.objekt_strasse,
plz: ausweis.objekt_plz,
ort: ausweis.objekt_ort,
nutzflaeche: ausweis.nutzflaeche,
einheiten: ausweis.anzahl_einheiten,
saniert: ausweis.objekt_saniert,
keller: ausweis.keller_beheizt == "Beheizt" ? Enums.Heizungsstatus.BEHEIZT : ausweis.keller_beheizt == "Unbeheizt" ? Enums.Heizungsstatus.UNBEHEIZT : Enums.Heizungsstatus.NICHT_VORHANDEN,
dachgeschoss: ausweis.dachgeschoss == "Beheizt" ? Enums.Heizungsstatus.BEHEIZT : ausweis.dachgeschoss == "Unbeheizt" ? Enums.Heizungsstatus.UNBEHEIZT : Enums.Heizungsstatus.NICHT_VORHANDEN,
flaeche: ausweis.wohnflaeche,
gebaeudetyp: ausweis.objekt_typ,
gebaeudeteil: ausweis.objekt_gebaeudeteil,
lueftung: ausweis.lueftungskonzept,
kuehlung: ausweis.wird_gekuehlt,
objekt: {
adresse: ausweis.objekt_strasse,
plz: ausweis.objekt_plz,
ort: ausweis.objekt_ort,
uid: faker.string.uuid(),
bilder: [],
latitude: null,
longitude: null,
},
brennstoff_1: ausweis.energietraeger_1,
brennstoff_2: ausweis.energietraeger_2,
alternative_heizung: ausweis.alheizung,
alternative_kuehlung: ausweis.alkuehlung,
alternative_lueftung: ausweis.allueftung,
alternative_warmwasser: ausweis.alwarmwasser,
ausweisart: Enums.Ausweisart.VerbrauchsausweisWohnen,
energieeffizienzklasse: "",
aussenwand_gedaemmt: ausweis.aussenwand_gedaemmt,
aussenwand_min_12cm_gedaemmt: ausweis.aussenwand_min_12cm_gedaemmt,
bestellt: ausweis.bestellt,
boxpruefung: ausweis.boxpruefung,
brennwert_kessel: ausweis.brennwert_kessel,
dachgeschoss_gedaemmt: ausweis.dachgeschoss_gedaemmt,
dachgeschoss_min_12cm_gedaemmt: ausweis.dachgeschoss_min_12cm_gedaemmt,
doppel_verglasung: ausweis.doppel_verglasung,
dreifach_verglasung: ausweis.dreifach_verglasung,
durchlauf_erhitzer: ausweis.durchlauf_erhitzer,
einfach_verglasung: ausweis.einfach_verglasung,
einzelofen: ausweis.einzelofen,
erledigt: ausweis.erledigt,
erstellungsdatum: ausweis.erstellungsdatum,
fenster_dicht: ausweis.fenster_dicht,
fenster_teilweise_undicht: ausweis.fenster_teilweise_undicht,
heizungsrohre_gedaemmt: ausweis.heizungsrohre_gedaemmt,
isolier_verglasung: ausweis.isolier_verglasung,
keller_decke_gedaemmt: ausweis.keller_decke_gedaemmt,
keller_wand_gedaemmt: ausweis.keller_wand_gedaemmt,
niedertemperatur_kessel: ausweis.niedertemperatur_kessel,
oberste_geschossdecke_gedaemmt: ausweis.oberste_geschossdecke_gedaemmt,
oberste_geschossdecke_min_12cm_gedaemmt: ausweis.oberste_geschossdecke_min_12cm_gedaemmt,
raum_temperatur_regler: ausweis.raum_temperatur_regler,
rolllaeden_kaesten_gedaemmt: ausweis.rolllaeden_kaesten_gedaemmt,
solarsystem_warmwasser: ausweis.solarsystem_warmwasser,
standard_kessel: ausweis.standard_kessel,
waermepumpe: ausweis.waermepumpe,
warmwasser_rohre_gedaemmt: ausweis.warmwasser_rohre_gedaemmt,
zentralheizung: ausweis.zentralheizung,
zirkulation: ausweis.zirkulation,
photovoltaik: ausweis.photovoltaik,
leerstand: ausweis.leerstand,
prueftext: ausweis["check-texts"],
storniert: false,
tueren_dicht: ausweis.tueren_dicht,
tueren_undicht: ausweis.tueren_undicht,
zurueckgestellt: ausweis.zurueckGestellt,
uid: faker.string.uuid(),
events: []
},
verbrauch_1: parseInt(ausweis.energieverbrauch_1_heizquelle_1),
verbrauch_2: parseInt(ausweis.energieverbrauch_2_heizquelle_1),
verbrauch_3: parseInt(ausweis.energieverbrauch_3_heizquelle_1),
verbrauch_4: parseInt(ausweis.energieverbrauch_1_heizquelle_2),
verbrauch_5: parseInt(ausweis.energieverbrauch_2_heizquelle_2),
verbrauch_6: parseInt(ausweis.energieverbrauch_3_heizquelle_2),
einheit_1: ausweis.energietraeger_einheit_heizquelle_1,
einheit_2: ausweis.energietraeger_einheit_heizquelle_2,
warmwasser_enthalten: ausweis.warmwasser_enthalten,
uid: faker.string.uuid(),
alternative_heizung: ausweis.alheizung,
alternative_kuehlung: ausweis.alkuehlung,
alternative_lueftung: ausweis.allueftung,
alternative_warmwasser: ausweis.alwarmwasser,
anteil_warmwasser_1: ausweis.anteil_warmwasser_1,
anteil_warmwasser_2: ausweis.anteil_warmwasser_2,
ausstellgrund: ausweis.ausstellgrund,
ausstellungsdatum: moment(ausweis.bestelldatum).toDate(),
erledigt: ausweis.erledigt,
erstellungsdatum: moment(ausweis.erstellungsdatum).toDate(),
keller_beheizt: ausweis.keller_beheizt,
registriernummer: ausweis.regnummer,
// Der Monat im alten System ist 1-basiert, in der neuen Datenbank 0-basiert
// Also müssen wir hier 1 abziehen
startdatum: moment(`${ausweis.energieverbrauch_zeitraum_jahr}-${ausweis.energieverbrauch_zeitraum_monat}-01`).toDate(),
warmwasser_anteil_bekannt: ausweis.warmwasser_anteil_bekannt,
wird_gekuehlt: ausweis.wird_gekuehlt,
zusaetzliche_heizquelle: ausweis.zusaetzliche_heizquelle,
}
return ausweisTranslated
}