Empfehlungen und Ansichtsausweis
This commit is contained in:
@@ -20,7 +20,7 @@ export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
|
||||
if ((ausweis.gebaeude_aufnahme_allgemein.nutzflaeche || 0) > 0) {
|
||||
return ausweis.gebaeude_aufnahme_allgemein.nutzflaeche || 0;
|
||||
} else {
|
||||
return (ausweis.gebaeude_aufnahme_allgemein.flaeche || 1) * faktorKeller;
|
||||
return (ausweis.gebaeude_aufnahme_allgemein.flaeche || 0) * faktorKeller;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
import type { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database/client";
|
||||
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||
import { Enums } from "@ibcornelsen/database/client";
|
||||
import moment from "moment";
|
||||
|
||||
export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnen, gebaeude: GebaeudeStammdaten): {
|
||||
export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient): {
|
||||
title: string,
|
||||
description: string,
|
||||
anlagenteil: string
|
||||
}[] {
|
||||
let Warmwasserrohre_gedaemmt = gebaeude.warmwasser_rohre_gedaemmt;
|
||||
let Heizungsrohre_gedaemmt = gebaeude.heizungsrohre_gedaemmt;
|
||||
let Waermepumpe = gebaeude.waermepumpe;
|
||||
let Kellerwand_gedaemmt = gebaeude.keller_wand_gedaemmt;
|
||||
let Keller = ausweis.keller_beheizt;
|
||||
let Kellerdecke_Kalraeume_gedaemmt = gebaeude.keller_decke_gedaemmt;
|
||||
let Brennwertkessel = gebaeude.brennwert_kessel;
|
||||
let baujahr_anlagesanlage = gebaeude.baujahr_heizung[0];
|
||||
let Zentralheizung = gebaeude.zentralheizung;
|
||||
let photovoltaik = gebaeude.photovoltaik;
|
||||
let Brennstoff = ausweis.brennstoff_1;
|
||||
let Aussenwand_gedaemmt = gebaeude.aussenwand_gedaemmt;
|
||||
let Dachgeschoss = gebaeude.dachgeschoss;
|
||||
let Dachgeschoss_gedaemmt = gebaeude.dachgeschoss_gedaemmt;
|
||||
let Oberste_Geschossdecke_gedaemmt = gebaeude.oberste_geschossdecke_gedaemmt;
|
||||
let Einfachglas = gebaeude.einfach_verglasung;
|
||||
let Doppelfenster = gebaeude.doppel_verglasung;
|
||||
let Fenster_teilw_undicht = gebaeude.fenster_teilweise_undicht;
|
||||
let Warmwasserrohre_gedaemmt = ausweis.gebaeude_aufnahme_allgemein.warmwasser_rohre_gedaemmt;
|
||||
let Heizungsrohre_gedaemmt = ausweis.gebaeude_aufnahme_allgemein.heizungsrohre_gedaemmt;
|
||||
let Waermepumpe = ausweis.gebaeude_aufnahme_allgemein.waermepumpe;
|
||||
let Kellerwand_gedaemmt = ausweis.gebaeude_aufnahme_allgemein.keller_wand_gedaemmt;
|
||||
let Keller = ausweis.gebaeude_aufnahme_allgemein.keller;
|
||||
let Kellerdecke_Kalraeume_gedaemmt = ausweis.gebaeude_aufnahme_allgemein.keller_decke_gedaemmt;
|
||||
let Brennwertkessel = ausweis.gebaeude_aufnahme_allgemein.brennwert_kessel;
|
||||
let baujahr_anlagesanlage = ausweis.gebaeude_aufnahme_allgemein.baujahr_heizung[0];
|
||||
let Zentralheizung = ausweis.gebaeude_aufnahme_allgemein.zentralheizung;
|
||||
let photovoltaik = ausweis.gebaeude_aufnahme_allgemein.photovoltaik;
|
||||
let Brennstoff = ausweis.gebaeude_aufnahme_allgemein.brennstoff_1;
|
||||
let Aussenwand_gedaemmt = ausweis.gebaeude_aufnahme_allgemein.aussenwand_gedaemmt;
|
||||
let Dachgeschoss = ausweis.gebaeude_aufnahme_allgemein.dachgeschoss;
|
||||
let Dachgeschoss_gedaemmt = ausweis.gebaeude_aufnahme_allgemein.dachgeschoss_gedaemmt;
|
||||
let Oberste_Geschossdecke_gedaemmt = ausweis.gebaeude_aufnahme_allgemein.oberste_geschossdecke_gedaemmt;
|
||||
let Einfachglas = ausweis.gebaeude_aufnahme_allgemein.einfach_verglasung;
|
||||
let Doppelfenster = ausweis.gebaeude_aufnahme_allgemein.doppel_verglasung;
|
||||
let Fenster_teilw_undicht = ausweis.gebaeude_aufnahme_allgemein.fenster_teilweise_undicht;
|
||||
|
||||
let empfehlungen = [];
|
||||
|
||||
if (gebaeude.einfach_verglasung || (Doppelfenster && Fenster_teilw_undicht)) {
|
||||
if (ausweis.gebaeude_aufnahme_allgemein.einfach_verglasung || (Doppelfenster && Fenster_teilw_undicht)) {
|
||||
empfehlungen.push({
|
||||
"title" : "Erneuerung der Fenster",
|
||||
"description" : "Alte und undichte Fenster mit Wärmeschutzfenstern auswechseln.",
|
||||
@@ -35,13 +36,13 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnen, gebaeude: Geba
|
||||
});
|
||||
}
|
||||
|
||||
if (gebaeude.dachgeschoss == "Unbeheizt" && !Oberste_Geschossdecke_gedaemmt) {
|
||||
if (ausweis.gebaeude_aufnahme_allgemein.dachgeschoss == Enums.Heizungsstatus.UNBEHEIZT && !Oberste_Geschossdecke_gedaemmt) {
|
||||
empfehlungen.push({
|
||||
"title" : "Zusätzliche Dämmung des Fußbodens des kalten Dachraumes",
|
||||
"description" : "Beim Einbringen sollten mindestens 16cm Dämmstoff verarbeitet werden. Das Einsparpotenzial ist für jeden zusätzlichen cm Dämmung sehr hoch.",
|
||||
"anlagenteil" : "Dach"
|
||||
});
|
||||
} else if (Dachgeschoss == "Beheizt" && !Dachgeschoss_gedaemmt) {
|
||||
} else if (Dachgeschoss == Enums.Heizungsstatus.BEHEIZT && !Dachgeschoss_gedaemmt) {
|
||||
empfehlungen.push({
|
||||
"title" : "Zusätzliche Dämmung des Daches bzw. Dachraumes",
|
||||
"description" : "Beim Einbringen sollten mindestens 16cm Dämmstoff, wenn möglich, verarbeitet werden. Das Einsparpotenzial ist für jeden zusätzlichen cm Dämmung sehr hoch.",
|
||||
@@ -67,13 +68,13 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnen, gebaeude: Geba
|
||||
});
|
||||
}
|
||||
|
||||
if (!Kellerdecke_Kalraeume_gedaemmt && Keller == "Unbeheizt") {
|
||||
if (!Kellerdecke_Kalraeume_gedaemmt && Keller == Enums.Heizungsstatus.UNBEHEIZT) {
|
||||
empfehlungen.push({
|
||||
"title" : "Nachträgliche Dämmung der Kellerdecke",
|
||||
"description" : "Je nach Deckenhöhe, den vorhandenen Raum voll ausnutzen. Das Einsparpotenzial für jeden zusätzlichen cm Dämmung sehr hoch.",
|
||||
"anlagenteil" : "Kellerdecke"
|
||||
});
|
||||
} else if (!Kellerwand_gedaemmt && Keller == "Beheizt") {
|
||||
} else if (!Kellerwand_gedaemmt && Keller == Enums.Heizungsstatus.BEHEIZT) {
|
||||
empfehlungen.push({
|
||||
"title" : "Nachträgliche Dämmung der Kellerwände",
|
||||
"description" : "Man sollte mit Dämmstärken ab 12cm planen. Das Einsparpotenzial für jeden zusätzlichen cm Dämmung sehr hoch.",
|
||||
|
||||
@@ -259,7 +259,7 @@ const propPanel: PropPanel<VariableSchema> = {
|
||||
backgroundColor: "",
|
||||
opacity: DEFAULT_OPACITY,
|
||||
variable: undefined
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
export const variable: Plugin<VariableSchema> = {
|
||||
|
||||
@@ -10,9 +10,10 @@ import { Schema, Template } from "@pdfme/common";
|
||||
import { Moment } from "moment";
|
||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016";
|
||||
import moment from "moment";
|
||||
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen";
|
||||
|
||||
const base64 = Astro.url.searchParams.get("base64");
|
||||
let ausweis: Partial<VerbrauchsausweisWohnenClient> | null = null;
|
||||
let ausweis: VerbrauchsausweisWohnenClient | null = null;
|
||||
if (base64) {
|
||||
const buffer = Buffer.from(base64, "base64");
|
||||
const json = buffer.toString("utf-8");
|
||||
@@ -32,6 +33,7 @@ if (base64) {
|
||||
}
|
||||
|
||||
const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis);
|
||||
|
||||
let inputs: Record<string, string> = {};
|
||||
@@ -170,10 +172,58 @@ if (ausweis.zusaetzliche_heizquelle) {
|
||||
);
|
||||
}
|
||||
|
||||
const convertedInputs = { ...convertAusweisData(ausweis), ...inputs };
|
||||
const empfehlungen = getEmpfehlungen(ausweis);
|
||||
|
||||
const addEmpfehlung = (() => {
|
||||
let i = 0;
|
||||
let columnWidth = [9, 25, 81, 13, 10, 17, 31];
|
||||
|
||||
const getPosition = (column: number) => {
|
||||
return {
|
||||
position: {
|
||||
x:
|
||||
13 +
|
||||
columnWidth.reduce(
|
||||
(a, c, i) => (i >= column ? a : a + c),
|
||||
0
|
||||
),
|
||||
y: 94 + i * 15,
|
||||
},
|
||||
height: 15,
|
||||
width: columnWidth[column],
|
||||
type: "text",
|
||||
fontSize: 8,
|
||||
verticalAlign: "middle",
|
||||
};
|
||||
};
|
||||
|
||||
return (empfehlung: ReturnType<typeof getEmpfehlungen>[0]) => {
|
||||
template.schemas[3][`empfehlung_${i}_nr`] = getPosition(0)
|
||||
template.schemas[3][`empfehlung_${i}_bauteil`] = getPosition(1)
|
||||
template.schemas[3][`empfehlung_${i}_beschreibung`] = getPosition(2)
|
||||
template.schemas[3][`empfehlung_${i}_amortisationszeit`] = getPosition(5)
|
||||
template.schemas[3][`empfehlung_${i}_kosten`] = getPosition(6)
|
||||
|
||||
convertedInputs[`empfehlung_${i}_nr`] = (i + 1).toString();
|
||||
convertedInputs[`empfehlung_${i}_bauteil`] = empfehlung.anlagenteil;
|
||||
convertedInputs[`empfehlung_${i}_beschreibung`] = empfehlung.description;
|
||||
convertedInputs[`empfehlung_${i}_amortisationszeit`] = "";
|
||||
convertedInputs[`empfehlung_${i}_kosten`] = "";
|
||||
|
||||
i++;
|
||||
}
|
||||
})()
|
||||
|
||||
|
||||
for (const empfehlung of empfehlungen) {
|
||||
addEmpfehlung(empfehlung);
|
||||
}
|
||||
|
||||
const pdf = await generate({
|
||||
template,
|
||||
plugins: { text, image, variable },
|
||||
inputs: [{ ...convertAusweisData(ausweis), ...inputs }],
|
||||
plugins: { text, image, variable: { ...variable, pdf: variable.pdf.bind(convertedInputs), ui: variable.ui.bind(convertedInputs) } },
|
||||
inputs: [convertedInputs],
|
||||
options: {
|
||||
author: "IB Cornelsen",
|
||||
creationDate: new Date(),
|
||||
|
||||
Reference in New Issue
Block a user