Startdatum Auswahl gefixt
This commit is contained in:
@@ -7,10 +7,15 @@
|
||||
import type { VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
||||
import { GebaeudeAufnahmeClient, GebaeudeClient, VerbrauchsausweisWohnenClient } from "./types";
|
||||
|
||||
let availableYears = [
|
||||
2018, 2019,
|
||||
];
|
||||
let availableMonths = [
|
||||
// Wir dürfen bis zu 4.5 Jahre alte Klimafaktoren benutzen, also nehmen wir alle Monate seitdem und generieren daraus die Auswahl.
|
||||
// Allerdings müssen wir auch berücksichtigen, dass wir drei folgende Jahre brauchen, also
|
||||
// kann der Nutzer nur 36 + 18 Monate zurückgehen.
|
||||
let availableDates: {
|
||||
year: number;
|
||||
month: number;
|
||||
}[] = [];
|
||||
|
||||
let monthNames = [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"März",
|
||||
@@ -25,6 +30,17 @@
|
||||
"Dezember",
|
||||
];
|
||||
|
||||
const startDate = moment().subtract(4, "years").subtract(6, "months");
|
||||
const endDate = moment().subtract(3, "years");
|
||||
|
||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||
availableDates.push({
|
||||
year: m.year(),
|
||||
month: m.month(),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export let gebaeude: GebaeudeClient;
|
||||
export let gebaeude_aufnahme_allgemein: GebaeudeAufnahmeClient;
|
||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe;
|
||||
@@ -35,12 +51,10 @@
|
||||
fuelMap[fuel[0]] = fuelMap[fuel[0]] || [];
|
||||
fuelMap[fuel[0]].push(fuel[1]);
|
||||
}
|
||||
|
||||
console.log(ausweis.startdatum);
|
||||
|
||||
|
||||
let month = ausweis.startdatum?.getMonth() || 1;
|
||||
let year = ausweis.startdatum?.getFullYear() || 2018;
|
||||
let month = ausweis.startdatum?.getMonth() || moment().month();
|
||||
let year = ausweis.startdatum?.getFullYear() || moment().subtract(3, "years").year();
|
||||
|
||||
$: {
|
||||
if (typeof month === "number" && typeof year === "number") {
|
||||
@@ -173,9 +187,15 @@
|
||||
required
|
||||
>
|
||||
<option>auswählen</option>
|
||||
{#each availableMonths as m, i}
|
||||
<option value={i}>{m}</option>
|
||||
{/each}
|
||||
{#if year !== null}
|
||||
{#each availableDates.filter(date => date.year == year) as date}
|
||||
<option value={date.month}>{monthNames[date.month]}</option>
|
||||
{/each}
|
||||
{:else}
|
||||
{#each availableDates as date}
|
||||
<option value={date.month}>{monthNames[date.month]}</option>
|
||||
{/each}
|
||||
{/if}
|
||||
</select>
|
||||
|
||||
<select
|
||||
@@ -185,8 +205,11 @@
|
||||
required
|
||||
>
|
||||
<option>auswählen</option>
|
||||
{#each availableYears as y}
|
||||
<option value={y}>{y}</option>
|
||||
{#each Array.from(availableDates.reduce((a,c) => {
|
||||
a.add(c.year);
|
||||
return a;
|
||||
}, new Set())) as year}
|
||||
<option value={year}>{year}</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -122,7 +122,9 @@ export function verbrauchsausweisWohnenImportTranslate(ausweis: Record<string, a
|
||||
erstellungsdatum: moment(ausweis.erstellungsdatum).toDate(),
|
||||
keller_beheizt: ausweis.keller_beheizt,
|
||||
registriernummer: ausweis.regnummer,
|
||||
startdatum: moment(`${ausweis.energieverbrauch_zeitraum_jahr}-01-${ausweis.energieverbrauch_zeitraum_monat}`).toDate(),
|
||||
// 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,
|
||||
|
||||
@@ -5,9 +5,24 @@ import { importVerbrauchsausweisWohnenAltesSystem, verbrauchsausweisWohnenImport
|
||||
describe('Energieverbrauch', async () => {
|
||||
const alteAusweise = await importVerbrauchsausweisWohnenAltesSystem();
|
||||
const ausweis = verbrauchsausweisWohnenImportTranslate(alteAusweise.data[0]);
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis);
|
||||
const berechnungenAlt = alteAusweise.data[0].calculations;
|
||||
|
||||
|
||||
test("Klimafaktoren", async () => {
|
||||
console.log("PLZ: " + ausweis.gebaeude_aufnahme_allgemein.plz)
|
||||
|
||||
expect(berechnungen?.klimafaktoren).toHaveLength(3)
|
||||
expect(berechnungen?.klimafaktoren.map(x => x.klimafaktor)).toEqual(berechnungenAlt.klimafaktoren)
|
||||
})
|
||||
|
||||
|
||||
test("Endenergieverbrauch", async () => {
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis);
|
||||
expect(berechnungen?.endEnergieVerbrauchGesamt).toBeCloseTo(alteAusweise.data[0].calculations.endEnergieVerbrauchGesamt, -1)
|
||||
expect(berechnungen?.endEnergieVerbrauchGesamt).toBeCloseTo(berechnungenAlt.endEnergieVerbrauchGesamt, 0)
|
||||
})
|
||||
|
||||
test("Primärenergieverbrauch", async () => {
|
||||
|
||||
expect(berechnungen?.primaerEnergieVerbrauchGesamt).toBeCloseTo(berechnungenAlt.primaerEnergieVerbrauchGesamt, 0)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user