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