Verbrauchsausweis Wohnen Ausweis fertig

This commit is contained in:
Moritz Utcke
2025-02-18 22:05:33 +11:00
parent c8ba17fab3
commit 003882a16a
7 changed files with 167 additions and 55 deletions

View File

@@ -4,7 +4,7 @@ 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, PDFImage, PDFName, PDFNumber, PDFPage, StandardFonts, TextAlignment } from "pdf-lib";
import { PDFDocument, PDFFont, PDFImage, PDFName, PDFNumber, PDFPage, rgb, StandardFonts, TextAlignment } from "pdf-lib";
export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: UploadedGebaeudeBild[], user: BenutzerClient) {
@@ -44,80 +44,75 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
}
pages[0].drawText(aufnahme.gebaeudetyp || "", {
x: 181,
y: height - 191,
x: 211,
y: height - 166,
size: 10
})
pages[0].drawText(objekt.adresse || "", {
x: 181,
y: height - 210,
x: 211,
y: height - 194,
size: 10
})
pages[0].drawText(aufnahme.gebaeudeteil || "", {
x: 181,
y: height - 226,
x: 211,
y: height - 214.5,
size: 10
})
pages[0].drawText(aufnahme.baujahr_gebaeude?.toString() || "", {
x: 181,
y: height - 242.5,
x: 211,
y: height - 229.5,
size: 10
})
pages[0].drawText(aufnahme.baujahr_heizung?.toString() || "", {
x: 181,
y: height - 259,
x: 211,
y: height - 250,
size: 10
})
pages[0].drawText(aufnahme.nutzflaeche?.toString() || "", {
x: 181,
y: height - 295,
x: 211,
y: height - 271.5,
size: 10
})
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, {
x: 181,
y: height - 314,
x: 211,
y: height - 285,
size: 10
})
if (ausweis.warmwasser_enthalten) {
pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, {
x: 211,
y: height - 299,
size: 10
})
}
function checkbox(page: PDFPage, x: number, y: number) {
page.drawSvgPath(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>`, {
x,
y,
scale: 0.4,
color: rgb(0,0,0)
})
}
if (aufnahme.lueftung === Enums.Lueftungskonzept.Fensterlueftung) {
checkbox(pages[0], 213, height - 334)
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.Schachtlueftung) {
checkbox(pages[0], 213, height - 345)
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung) {
checkbox(pages[0], 355, height - 334)
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung) {
checkbox(pages[0], 355, height - 345)
}
// const gebaeudetyp = fillFormField("gebaeudetyp", aufnahme.gebaeudetyp || "")
// const adresse = fillFormField("adresse", objekt.adresse)
// const gebaeudeteil = fillFormField("gebaeudeteil", aufnahme.gebaeudeteil || "")
// const baujahr_gebaeude = fillFormField("baujahr_gebaeude", aufnahme.baujahr_gebaeude?.toString())
// const baujahr_heizung = fillFormField("baujahr_heizung", aufnahme.baujahr_heizung?.toString())
// const einheiten = fillFormField("einheiten", aufnahme.einheiten?.toString())
// const nutzflaeche = fillFormField("nutzflaeche", `${aufnahme.nutzflaeche?.toString()}m²`)
// fillFormField("energietraeger_heizung", `${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`)
// if (ausweis.warmwasser_enthalten) {
// fillFormField("energietraeger_warmwasser", `${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`)
// }
// toggleCheck("fensterlueftung", aufnahme.lueftung == Enums.Lueftungskonzept.Fensterlueftung)
// toggleCheck("schachtlueftung", aufnahme.lueftung == Enums.Lueftungskonzept.Schachtlueftung)
// toggleCheck("lueftungsanlage_ohne_waermerueckgewinnung", aufnahme.lueftung == Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung)
// toggleCheck("lueftungsanlage_waermerueckgewinnung", aufnahme.lueftung == Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung)
// toggleCheck("anlass_neubau", ausweis.ausstellgrund == "Neubau")
// toggleCheck("anlass_vermietung", ausweis.ausstellgrund == "Vermietung" || ausweis.ausstellgrund == "Verkauf")
// toggleCheck("anlass_modernisierung", ausweis.ausstellgrund == "Modernisierung")
// toggleCheck("anlass_sonstiges", ausweis.ausstellgrund == "Sonstiges")
const gebaeudeBild = bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
@@ -129,10 +124,10 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
image = await pdf.embedPng(gebaeudeBild?.base64)
}
pages[0].drawImage(image, {
x: 424.5,
y: height - 321,
x: 460.5,
y: height - 289,
width: 111,
height: 143
height: 138
})
}
@@ -368,7 +363,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
const addEmpfehlungenGenerator = () => {
let i = 0;
let yOffset = 43;
const initialHeight = 568
const initialHeight = 562
const initialXOffset = 36;
return (bauteil?: string, beschreibung?: string, alsEinzelmassnahme?: boolean, amortisationszeit?: string, kosten?: string) => {
pages[3].drawText((i + 1).toString(), {