From a37486618cbb74df399140af9a71a8375a70a81f Mon Sep 17 00:00:00 2001 From: Kai Lawrence Date: Thu, 30 May 2024 10:53:13 +0000 Subject: [PATCH] wip: Try to fix Heizkostenabrechnung --- .vscode/launch.json | 2 +- .../Abrechnungseinheit.cs | 3 +-- .../Utils.cs | 4 ++++ .../Verbrauchanteil.cs | 10 +++++++++- .../Services/DbServices/UmlageDbService.cs | 12 ++++++++---- .../src/components/details/WalterUmlageHKVO.svelte | 9 ++++++--- .../svelte/src/lib/WalterUmlage.ts | 3 ++- .../src/routes/(app)/umlagen/[id]/+page.svelte | 5 +++-- 8 files changed, 34 insertions(+), 14 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index d4da608b..4acce465 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -64,7 +64,7 @@ "ASPNETCORE_ENVIRONMENT": "Development", "DATABASE_HOST": "walter_dev_db", "DATABASE_PORT": "5432", - "DATABASE_NAME": "saverdb", + "DATABASE_NAME": "walter_dev_generic_db", "DATABASE_USER": "postgres", "DATABASE_PASS": "postgres", "WALTER_PASSWORD": "postgres", diff --git a/Deeplex.Saverwalter.BetriebskostenabrechnungService/Abrechnungseinheit.cs b/Deeplex.Saverwalter.BetriebskostenabrechnungService/Abrechnungseinheit.cs index 4c8d1066..c69bb09d 100644 --- a/Deeplex.Saverwalter.BetriebskostenabrechnungService/Abrechnungseinheit.cs +++ b/Deeplex.Saverwalter.BetriebskostenabrechnungService/Abrechnungseinheit.cs @@ -156,10 +156,9 @@ private double GetVerbrauchAnteil(Betriebskostenrechnung rechnung, List no var verbrauchAnteil = verbrauchAnteile.First(); - if (verbrauchAnteil.Anteil.Count > 1) { - notes.Add($"Verbrauch von Rechnung {rechnung.Umlage.Typ} enthält mehr als einen Zählertypen", + notes.Add($"Verbrauch von Rechnung {rechnung.Umlage.Typ.Bezeichnung} enthält mehr als einen Zählertypen", Severity.Error); return 0; diff --git a/Deeplex.Saverwalter.BetriebskostenabrechnungService/Utils.cs b/Deeplex.Saverwalter.BetriebskostenabrechnungService/Utils.cs index 87654944..95f1d631 100644 --- a/Deeplex.Saverwalter.BetriebskostenabrechnungService/Utils.cs +++ b/Deeplex.Saverwalter.BetriebskostenabrechnungService/Utils.cs @@ -92,6 +92,10 @@ public static double GetKaltMiete(Vertrag vertrag, Zeitraum zeitraum) { return 0; } + else if (version.Beginn > zeitraum.Abrechnungsende) + { + return 0; + } else { var last = Min(versionEnde ?? zeitraum.Abrechnungsende, zeitraum.Abrechnungsende).Month; diff --git a/Deeplex.Saverwalter.BetriebskostenabrechnungService/Verbrauchanteil.cs b/Deeplex.Saverwalter.BetriebskostenabrechnungService/Verbrauchanteil.cs index 4f294aa3..0aed91a2 100644 --- a/Deeplex.Saverwalter.BetriebskostenabrechnungService/Verbrauchanteil.cs +++ b/Deeplex.Saverwalter.BetriebskostenabrechnungService/Verbrauchanteil.cs @@ -50,6 +50,10 @@ public VerbrauchAnteil(Umlage umlage, Wohnung wohnung, Zeitraum zeitraum, List stand.Stand) .FirstOrDefault()? @@ -60,7 +64,11 @@ public VerbrauchAnteil(Umlage umlage, Wohnung wohnung, Zeitraum zeitraum, List e.UmlageId == hkvo.Stromrechnung.Id) }; @@ -190,10 +194,10 @@ private void SetOptionalValues(Umlage entity, UmlageEntry entry) else { var oldHKVO = Ctx.HKVO.Single(e => e.HKVOId == hkvo.Id); - oldHKVO.HKVO_P7 = (double)hkvo.HKVO_P7 / 100; - oldHKVO.HKVO_P8 = (double)hkvo.HKVO_P8 / 100; + oldHKVO.HKVO_P7 = ((double)hkvo.HKVO_P7) / 100; + oldHKVO.HKVO_P8 = ((double)hkvo.HKVO_P8) / 100; oldHKVO.HKVO_P9 = (HKVO_P9A2)hkvo.HKVO_P9.Id; - oldHKVO.Strompauschale = (double)hkvo.Strompauschale / 100; + oldHKVO.Strompauschale = ((double)hkvo.Strompauschale) / 100; oldHKVO.Betriebsstrom = Ctx.Umlagen.Single(e => e.UmlageId == hkvo.Stromrechnung.Id); Ctx.HKVO.Update(oldHKVO); } diff --git a/Deeplex.Saverwalter.WebAPI/svelte/src/components/details/WalterUmlageHKVO.svelte b/Deeplex.Saverwalter.WebAPI/svelte/src/components/details/WalterUmlageHKVO.svelte index d86bfa19..1a64e518 100644 --- a/Deeplex.Saverwalter.WebAPI/svelte/src/components/details/WalterUmlageHKVO.svelte +++ b/Deeplex.Saverwalter.WebAPI/svelte/src/components/details/WalterUmlageHKVO.svelte @@ -41,7 +41,9 @@ along with this program. If not, see . let visible: boolean = false; let oldHKVO: Partial = {}; - let selectableUmlagen: Promise; + let selectableUmlagen: Promise = new Promise( + () => [] + ); onMount(() => { visible = !!entry.hKVO; @@ -120,6 +122,7 @@ along with this program. If not, see . function change(e: Event, p9a2: WalterSelectionEntry[]) { if ((e.target as HTMLInputElement).checked) { entry.hKVO = { + id: oldHKVO.id || 0, hkvO_P7: oldHKVO.hkvO_P7 || 50, hkvO_P8: oldHKVO.hkvO_P8 || 50, hkvO_P9: oldHKVO.hkvO_P9 || p9a2[1], @@ -132,13 +135,13 @@ along with this program. If not, see . } -{#if entry.schluessel?.id === '3'} +{#if `${entry.schluessel?.id}` === '3'} {#await hkvo_p9a2 then p9a2}
change(e, p9a2)} />
diff --git a/Deeplex.Saverwalter.WebAPI/svelte/src/lib/WalterUmlage.ts b/Deeplex.Saverwalter.WebAPI/svelte/src/lib/WalterUmlage.ts index 005a5b3c..187fdc56 100644 --- a/Deeplex.Saverwalter.WebAPI/svelte/src/lib/WalterUmlage.ts +++ b/Deeplex.Saverwalter.WebAPI/svelte/src/lib/WalterUmlage.ts @@ -58,8 +58,9 @@ export class WalterUmlageEntry extends WalterApiHandler { const selectedZaehler = json.selectedZaehler?.map( WalterSelectionEntry.fromJson ); + // TODO: Check naming? const hkvo = - json.hKVO && WalterHKVOEntry.fromJson(json.hKVO as WalterHKVOEntry); + json.hkvo && WalterHKVOEntry.fromJson(json.hkvo as WalterHKVOEntry); const zaehler = json.zaehler?.map(WalterZaehlerEntry.fromJson); const permissions = json.permissions && WalterPermissions.fromJson(json.permissions); diff --git a/Deeplex.Saverwalter.WebAPI/svelte/src/routes/(app)/umlagen/[id]/+page.svelte b/Deeplex.Saverwalter.WebAPI/svelte/src/routes/(app)/umlagen/[id]/+page.svelte index 6a5d1979..73aba921 100644 --- a/Deeplex.Saverwalter.WebAPI/svelte/src/routes/(app)/umlagen/[id]/+page.svelte +++ b/Deeplex.Saverwalter.WebAPI/svelte/src/routes/(app)/umlagen/[id]/+page.svelte @@ -24,7 +24,8 @@ along with this program. If not, see . WalterUmlage, WalterZaehlerList, WalterLinks, - WalterLinkTile + WalterLinkTile, + WalterZaehler } from '$walter/components'; import { convertDateCanadian } from '$walter/services/utils'; import { @@ -94,7 +95,7 @@ along with this program. If not, see . rows={data.entry.betriebskostenrechnungen} /> - {#if data.entry?.schluessel?.id === '3'} + {#if `${data.entry?.schluessel?.id}` === '3'}