Ausweis und weitere Änderungen

This commit is contained in:
Moritz Utcke
2025-02-18 18:17:02 +11:00
parent 8486421f12
commit c8ba17fab3
38 changed files with 1771 additions and 330 deletions

View File

@@ -1,13 +1,13 @@
import { AufnahmeClient, BenutzerClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { AufnahmeClient, BenutzerClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen.js";
import { Enums } from "@ibcornelsen/database/server";
import * as fs from "fs"
import moment from "moment";
import { PDFDocument, PDFFont, PDFName, PDFNumber, PDFPage, StandardFonts, TextAlignment } from "pdf-lib";
import { PDFDocument, PDFFont, PDFImage, PDFName, PDFNumber, PDFPage, StandardFonts, TextAlignment } from "pdf-lib";
export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: UploadedGebaeudeBild[], user: BenutzerClient) {
export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: UploadedGebaeudeBild[], user: BenutzerClient) {
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("./templates/GEG24_Nichtwohngebaeude.pdf", import.meta.url), "base64");
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
const pages = pdf.getPages()
@@ -15,7 +15,6 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisWohn
// const template = VerbrauchsausweisWohnen2016Template as Template;
const berechnungen = await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis, aufnahme, objekt);
console.log(berechnungen);
const empfehlungen = getEmpfehlungen(ausweis, aufnahme, objekt)
@@ -44,6 +43,50 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisWohn
}
}
pages[0].drawText(aufnahme.gebaeudetyp || "", {
x: 181,
y: height - 191,
size: 10
})
pages[0].drawText(objekt.adresse || "", {
x: 181,
y: height - 210,
size: 10
})
pages[0].drawText(aufnahme.gebaeudeteil || "", {
x: 181,
y: height - 226,
size: 10
})
pages[0].drawText(aufnahme.baujahr_gebaeude?.toString() || "", {
x: 181,
y: height - 242.5,
size: 10
})
pages[0].drawText(aufnahme.baujahr_heizung?.toString() || "", {
x: 181,
y: height - 259,
size: 10
})
pages[0].drawText(aufnahme.nutzflaeche?.toString() || "", {
x: 181,
y: height - 295,
size: 10
})
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, {
x: 181,
y: height - 314,
size: 10
})
// const gebaeudetyp = fillFormField("gebaeudetyp", aufnahme.gebaeudetyp || "")
// const adresse = fillFormField("adresse", objekt.adresse)
@@ -76,7 +119,22 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisWohn
// toggleCheck("anlass_sonstiges", ausweis.ausstellgrund == "Sonstiges")
// const gebaeudeBild = bilder.find(image => image.kategorie === "Gebaeude");
const gebaeudeBild = bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
if (gebaeudeBild) {
let image: PDFImage;
try {
image = await pdf.embedJpg(gebaeudeBild?.base64)
} catch(e) {
image = await pdf.embedPng(gebaeudeBild?.base64)
}
pages[0].drawImage(image, {
x: 424.5,
y: height - 321,
width: 111,
height: 143
})
}
// /* -------------------------------- Seite 2 -------------------------------- */
@@ -248,50 +306,44 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisWohn
const addVerbrauch = addVerbrauchGenerator();
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(1, "year").format("MM.YYYY"),
aufnahme.brennstoff_1,
berechnungen?.primaerfaktor.toString(),
Math.round(berechnungen?.verbrauch_1_kwh).toString(),
Math.round(
berechnungen?.anteil_warmwasser_1 * berechnungen?.verbrauch_1_kwh
).toString(),
Math.round(
berechnungen?.anteil_heizung_1 * berechnungen?.verbrauch_1_kwh
).toString(),
berechnungen?.klimafaktoren[0].klimafaktor.toString()
);
if (!ausweis.warmwasser_enthalten) {
// Mit Warmwasserzuschlag
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
"0",
Math.round(berechnungen?.energieVerbrauchHeizung_1 || 0).toString(),
berechnungen?.durchschnittsKlimafaktor.toString()
);
} else {
// Ohne Warmwasserzuschlag
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchHeizung_1 || 0).toString(),
berechnungen?.durchschnittsKlimafaktor.toString()
);
}
addVerbrauch(
moment(ausweis.startdatum).add(1, "year").format("MM.YYYY"),
moment(ausweis.startdatum).add(2, "year").format("MM.YYYY"),
aufnahme.brennstoff_1,
berechnungen?.primaerfaktor.toString(),
Math.round(berechnungen?.verbrauch_2_kwh).toString(),
Math.round(
berechnungen?.anteil_warmwasser_1 * berechnungen?.verbrauch_2_kwh
).toString(),
Math.round(
berechnungen?.anteil_heizung_1 * berechnungen?.verbrauch_2_kwh
).toString(),
berechnungen?.klimafaktoren[0].klimafaktor.toString()
);
addVerbrauch(
moment(ausweis.startdatum).add(2, "year").format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "year").format("MM.YYYY"),
aufnahme.brennstoff_1,
berechnungen?.primaerfaktor.toString(),
Math.round(berechnungen?.verbrauch_3_kwh).toString(),
Math.round(
berechnungen?.anteil_warmwasser_1 * berechnungen?.verbrauch_3_kwh
).toString(),
Math.round(
berechnungen?.anteil_heizung_1 * berechnungen?.verbrauch_3_kwh
).toString(),
berechnungen?.klimafaktoren[0].klimafaktor.toString()
);
if (ausweis.zusaetzliche_heizquelle) {
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_2 || "",
berechnungen?.brennstoff_2.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_2 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_2 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchHeizung_2 || 0).toString(),
berechnungen?.durchschnittsKlimafaktor.toString()
);
}
/* -------------------------------- Seite 4 -------------------------------- */