diff --git a/src/components/Ausweis/Verbrauch.svelte b/src/components/Ausweis/Verbrauch.svelte index 7f2bd0cf..272057a9 100644 --- a/src/components/Ausweis/Verbrauch.svelte +++ b/src/components/Ausweis/Verbrauch.svelte @@ -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 > - {#each availableMonths as m, i} - - {/each} + {#if year !== null} + {#each availableDates.filter(date => date.year == year) as date} + + {/each} + {:else} + {#each availableDates as date} + + {/each} + {/if} diff --git a/src/lib/altes-system/import.ts b/src/lib/altes-system/import.ts index 61eb20e8..46e125ac 100644 --- a/src/lib/altes-system/import.ts +++ b/src/lib/altes-system/import.ts @@ -122,7 +122,9 @@ export function verbrauchsausweisWohnenImportTranslate(ausweis: Record { 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) }) }) \ No newline at end of file