From 52e07ea0bf70318c23bf55b057d20f7b913e0632 Mon Sep 17 00:00:00 2001 From: Jens Cornelsen <79703163+IB-Cornelsen@users.noreply.github.com> Date: Wed, 19 Feb 2025 19:04:01 +0100 Subject: [PATCH] T42, T43 und T44 fertiggestellt --- src/astro-typesafe-api-caller.ts | 2 +- ...ufwandszahlVerteilungTrinkwarmWasserT42.ts | 66 +++++++++++++++++++ ...ichleitungenDezentralTrinkwarmWasserT43.ts | 35 ++++++++++ ...WaermeabgabeLeitungenTrinkwarmWasserT44.ts | 22 +++++++ 4 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 src/lib/Berechnungen/BedarfsausweisWohnen/funktionAufwandszahlVerteilungTrinkwarmWasserT42.ts create mode 100644 src/lib/Berechnungen/BedarfsausweisWohnen/funktionLaengeStichleitungenDezentralTrinkwarmWasserT43.ts create mode 100644 src/lib/Berechnungen/BedarfsausweisWohnen/funktionWaermeabgabeLeitungenTrinkwarmWasserT44.ts diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index 4775fa04..d8a142b6 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -9,13 +9,13 @@ export const createCaller = createCallerFactory({ "admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-ausstellen.ts"), "admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"), "admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"), + "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "auth/access-token": await import("../src/pages/api/auth/access-token.ts"), "auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"), "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), "bedarfsausweis-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"), "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), "bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"), - "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"), "geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"), "objekt": await import("../src/pages/api/objekt/index.ts"), diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionAufwandszahlVerteilungTrinkwarmWasserT42.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionAufwandszahlVerteilungTrinkwarmWasserT42.ts new file mode 100644 index 00000000..78dab669 --- /dev/null +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionAufwandszahlVerteilungTrinkwarmWasserT42.ts @@ -0,0 +1,66 @@ +export function funktionAufwandszahlVerteilungTrinkwarmWasserT42(RohrNetztyp: string, LagezirkulationVerteilung: string) { + +type Rohrnetztyp = "I (Steigestrangtyp)" | "II (Ebenentyp)" | "III (Dezentrale Versorgung)"; +type Verteiltyp = "Verteilung im unbeheizten Bereich ohne Zirkulation" | "Verteilung im unbeheizten Bereich mit Zirkulation" | "Verteilung im beheizten Bereich ohne Zirkulation" | "Verteilung im beheizten Bereich mit Zirkulation"; + +interface WarmwasserVerteilung { + rohrnetztyp: Rohrnetztyp; + verteiltyp: Verteiltyp; + AufwandsZahlTrinkwarmWasserVerteilung?: number; +} + +const AufwandsZahlenTrinkwarmWasserVerteilung: WarmwasserVerteilung[] = [ + { + rohrnetztyp: "I (Steigestrangtyp)", + verteiltyp: "Verteilung im unbeheizten Bereich ohne Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 1.490 + }, + { + rohrnetztyp: "I (Steigestrangtyp)", + verteiltyp: "Verteilung im unbeheizten Bereich mit Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 2.290 + }, + { + rohrnetztyp: "I (Steigestrangtyp)", + verteiltyp: "Verteilung im beheizten Bereich ohne Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 1.432 + }, + { + rohrnetztyp: "I (Steigestrangtyp)", + verteiltyp: "Verteilung im beheizten Bereich mit Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 2.252 + }, + { + rohrnetztyp: "II (Ebenentyp)", + verteiltyp: "Verteilung im unbeheizten Bereich ohne Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 1.518 + }, + { + rohrnetztyp: "II (Ebenentyp)", + verteiltyp: "Verteilung im unbeheizten Bereich mit Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 2.461 + }, + { + rohrnetztyp: "II (Ebenentyp)", + verteiltyp: "Verteilung im beheizten Bereich ohne Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 1.469 + }, + { + rohrnetztyp: "II (Ebenentyp)", + verteiltyp: "Verteilung im beheizten Bereich mit Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 2.391 + }, + { + rohrnetztyp: "III (Dezentrale Versorgung)", + verteiltyp: "Verteilung im beheizten Bereich ohne Zirkulation", + AufwandsZahlTrinkwarmWasserVerteilung: 1.193 + } +]; + +const result = AufwandsZahlenTrinkwarmWasserVerteilung.find( + (item) => item.rohrnetztyp === RohrNetztyp && item.verteiltyp === LagezirkulationVerteilung +); + +return result ? result.AufwandsZahlTrinkwarmWasserVerteilung : null; + +} diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionLaengeStichleitungenDezentralTrinkwarmWasserT43.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionLaengeStichleitungenDezentralTrinkwarmWasserT43.ts new file mode 100644 index 00000000..d34fe763 --- /dev/null +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionLaengeStichleitungenDezentralTrinkwarmWasserT43.ts @@ -0,0 +1,35 @@ +import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js"; +export function funktionLaengeStichleitungenDezentralTrinkwarmWasserT43(LeitungsSystem: string, AnzahlGeraete: number) { + + let Zuschlag = 0; + + if (LeitungsSystem === "Leitungslänge für eine Zapfstelle in einem Raum (zum Beispiel Untertischspeicher)" && AnzahlGeraete > 80) { + Zuschlag = (AnzahlGeraete - 80) * 1; + AnzahlGeraete = 80; + } + if (LeitungsSystem === "Leitungslänge für mehrere Zapfstellen in einem Raum (zum Beispiel Badezimmer)" && AnzahlGeraete > 80) { + Zuschlag = (AnzahlGeraete - 80) * 3; + AnzahlGeraete = 80; + } + if (LeitungsSystem === "Leitungslänge für mehrere Zapfstellen in angrenzenden Räumen mit gleicher Installationswand" && AnzahlGeraete > 80) { + Zuschlag = (AnzahlGeraete - 80) * 4; + AnzahlGeraete = 80; + } + if (LeitungsSystem === "Leitungslängen für wohnungszentrale Versorgung" && AnzahlGeraete > 80) { + Zuschlag = (AnzahlGeraete - 80) * 6; + AnzahlGeraete = 80; + } + +const dataset = [ + {SuchSpalte: ["Anzahl Geräte"], DatenSpalte: [1,2,3,4,5,10,20,30,40,50,60,70,80]}, + {SuchSpalte: ["Leitungslänge für eine Zapfstelle in einem Raum (zum Beispiel Untertischspeicher)"], DatenSpalte: [1,2,3,4,5,10,20,30,40,50,60,70,80]}, + {SuchSpalte: ["Leitungslänge für mehrere Zapfstellen in einem Raum (zum Beispiel Badezimmer)"], DatenSpalte: [3,6,9,12,15,30,60,90,120,150,180,210,240]}, + {SuchSpalte: ["Leitungslänge für mehrere Zapfstellen in angrenzenden Räumen mit gleicher Installationswand"], DatenSpalte: [4,8,12,16,20,40,80,120,160,200,240,280,320]}, + {SuchSpalte: ["Leitungslängen für wohnungszentrale Versorgung"], DatenSpalte: [6,12,18,24,30,60,120,180,240,300,360,420,480]} +]; + +const LeitungsLaenge = funktionEinfacheInterpolation(AnzahlGeraete, LeitungsSystem, dataset); +const LaengeStichleitungenDezentralTrinkwarmWasser = LeitungsLaenge + Zuschlag; +return LaengeStichleitungenDezentralTrinkwarmWasser; + +} \ No newline at end of file diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionWaermeabgabeLeitungenTrinkwarmWasserT44.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionWaermeabgabeLeitungenTrinkwarmWasserT44.ts new file mode 100644 index 00000000..fb8ae3ec --- /dev/null +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionWaermeabgabeLeitungenTrinkwarmWasserT44.ts @@ -0,0 +1,22 @@ +import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js"; +export function funktionWaermeabgabeLeitungenTrinkwarmWasserT44(VerteilSystem: string, NettoGrundFlaeche: number) { + + if (NettoGrundFlaeche < 100) { NettoGrundFlaeche = 100; } + if (NettoGrundFlaeche > 5000) { NettoGrundFlaeche = 5000; } + +const dataset = [ + {SuchSpalte: ["Nettogrundfläche"], DatenSpalte: [100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000]}, + {SuchSpalte: ["Verteilung im unbeheizten Bereich mit Zirkulation"], DatenSpalte: [42.89, 44.58, 46.09, 48.65, 50.75, 52.50, 53.99, 55.27, 56.38, 57.35, 58.21, 63.31, 65.70, 67.02, 67.90]}, + {SuchSpalte: ["Verteilung im beheizten Bereich mit Zirkulation"], DatenSpalte: [37.56, 39.15, 40.55, 42.95, 44.92, 46.56, 47.95, 49.15, 50.19, 51.09, 51.90, 56.67, 58.87, 60.15, 60.97]}, + {SuchSpalte: ["Verteilung im unbeheizten Bereich ohne Zirkulation"], DatenSpalte: [31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09, 31.09]}, + {SuchSpalte: ["Verteilung im beheizten Bereich ohne Zirkulation"], DatenSpalte: [23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93, 23.93]}, + {SuchSpalte: ["Strangleitung im beheizten Bereich mit Zirkulation"], DatenSpalte: [46.95, 49.04, 50.88, 54.02, 56.59, 58.74, 60.57, 62.14, 63.49, 64.69, 65.74, 71.99, 74.90, 76.55, 77.63]}, + {SuchSpalte: ["Anbindeleitung im beheizten Bereich mit Zirkulation"], DatenSpalte: [26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86]}, + {SuchSpalte: ["Strangleitung im beheizten Bereich ohne Zirkulation"], DatenSpalte: [26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86]}, + {SuchSpalte: ["Anbindeleitung im beheizten Bereich ohne Zirkulation"], DatenSpalte: [26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86, 26.86]} +]; + +const WaermeabgabeLeitungenTrinkwarmWasser = funktionEinfacheInterpolation(NettoGrundFlaeche, VerteilSystem, dataset); +return WaermeabgabeLeitungenTrinkwarmWasser; + +} \ No newline at end of file