T42, T43 und T44 fertiggestellt

This commit is contained in:
Jens Cornelsen
2025-02-19 19:04:01 +01:00
parent daec65e051
commit 52e07ea0bf
4 changed files with 124 additions and 1 deletions

View File

@@ -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"),

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}