Ausstellen

This commit is contained in:
Moritz Utcke
2025-04-08 19:34:51 -04:00
parent d354189d3c
commit 0956744878
5 changed files with 49 additions and 36 deletions

View File

@@ -6,7 +6,7 @@ import moment from "moment";
import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib"; import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib";
import { addCheckMark } from "./utils/checkbox.js"; import { addCheckMark } from "./utils/checkbox.js";
import { addText } from "./utils/text.js"; import { addText } from "./utils/text.js";
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js"; import { addAnsichtsausweisLabel, addDatumGEG, addRegistriernummer } from "./utils/helpers.js";
import { getS3File } from "#lib/s3.js"; import { getS3File } from "#lib/s3.js";
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Server.js"; import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Server.js";
@@ -612,11 +612,15 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
} }
for (const page of pages) { for (let i = 0; i < pages.length; i++) {
const page = pages[i];
if (vorschau) { if (vorschau) {
addAnsichtsausweisLabel(page, font) addAnsichtsausweisLabel(page, font)
} }
addDatumGEG(page, font) addDatumGEG(page, font)
if (i !== pages.length - 1) {
addRegistriernummer(page, font, ausweis.registriernummer || "")
}
} }

View File

@@ -6,7 +6,7 @@ import moment from "moment";
import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib"; import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib";
import { addCheckMark } from "./utils/checkbox.js"; import { addCheckMark } from "./utils/checkbox.js";
import { addText } from "./utils/text.js"; import { addText } from "./utils/text.js";
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js"; import { addAnsichtsausweisLabel, addDatumGEG, addRegistriernummer } from "./utils/helpers.js";
import { getS3File } from "#lib/s3.js"; import { getS3File } from "#lib/s3.js";
import { endEnergieVerbrauchVerbrauchsausweis_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Server.js"; import { endEnergieVerbrauchVerbrauchsausweis_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Server.js";
@@ -592,11 +592,15 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addEmpfehlung(empfehlung.anlagenteil, empfehlung.description, true, empfehlung.amortisationszeit, empfehlung.kosten) addEmpfehlung(empfehlung.anlagenteil, empfehlung.description, true, empfehlung.amortisationszeit, empfehlung.kosten)
} }
for (const page of pages) { for (let i = 0; i < pages.length; i++) {
const page = pages[i];
if (vorschau) { if (vorschau) {
addAnsichtsausweisLabel(page, font) addAnsichtsausweisLabel(page, font)
} }
addDatumGEG(page, font) addDatumGEG(page, font)
if (i !== pages.length - 1) {
addRegistriernummer(page, font, ausweis.registriernummer || "")
}
} }
return pdf.save(); return pdf.save();

View File

@@ -22,3 +22,13 @@ export function addAnsichtsausweisLabel(page: PDFPage, font: PDFFont) {
opacity: 0.3, opacity: 0.3,
}); });
} }
export function addRegistriernummer(page: PDFPage, font: PDFFont, registriernummer: string) {
page.drawText(registriernummer, {
x: 435,
y: page.getHeight() - 113,
size: 10,
font,
});
}

View File

@@ -129,7 +129,7 @@ export const GET = defineApiRoute({
if (pdfDatenblatt) { if (pdfDatenblatt) {
const command = new PutObjectCommand({ const command = new PutObjectCommand({
Bucket: "ibc-pdfs", Bucket: "ibc-pdfs",
Key: `ID_${ausweis.id}_Energieausweis.pdf`, Key: `ID_${ausweis.id}_Datenblatt.pdf`,
Body: pdfDatenblatt, Body: pdfDatenblatt,
ACL: "private", ACL: "private",
}); });

View File

@@ -122,32 +122,27 @@ export const GET = defineApiRoute({
? "Energiebedarfsausweis" ? "Energiebedarfsausweis"
: "Energieverbrauchsausweis"; : "Energieverbrauchsausweis";
const body = `<Datenregistratur xmlns="http://energieausweis.dibt.de/WebServiceEnergie/DibtEnergieAusweisService"> const requestPayload = {
<doc> doc: {
<root> root: {
<Authentifizierung> Authentifizierung: {
<Aussteller_ID_DIBT>${Aussteller_ID_DIBT}</Aussteller_ID_DIBT> Aussteller_ID_DIBT: Aussteller_ID_DIBT,
<Aussteller_PWD_DIBT>${Aussteller_PWD_DIBT}</Aussteller_PWD_DIBT> Aussteller_PWD_DIBT: Aussteller_PWD_DIBT,
</Authentifizierung> },
<EnEV-Nachweis> 'EnEV-Nachweis': {
<Ausstellungsdatum>${Ausstellungsdatum}</Ausstellungsdatum> Ausstellungsdatum: Ausstellungsdatum,
<Bundesland>${postleitzahl.bundesland}</Bundesland> Bundesland: postleitzahl.bundesland,
<Postleitzahl>${postleitzahl.plz}</Postleitzahl> Postleitzahl: postleitzahl.plz,
<Gesetzesgrundlage>${Gesetzesgrundlage}</Gesetzesgrundlage> Gesetzesgrundlage: Gesetzesgrundlage,
</EnEV-Nachweis> },
<Energieausweis-Daten> 'Energieausweis-Daten': {
<Gebaeudeart>${gebaeudeart}</Gebaeudeart> Gebaeudeart: gebaeudeart,
<Art>${art}</Art> Art: art,
<Neubau>${ Neubau: ausweis.ausstellgrund === Enums.Ausstellgrund.Neubau ? "1" : "0",
ausweis.ausstellgrund === },
Enums.Ausstellgrund.Neubau },
? "1" },
: "0" }
}</Neubau>
</Energieausweis-Daten>
</root>
</doc>
</Datenregistratur>`;
return await new Promise(async (resolve, reject) => { return await new Promise(async (resolve, reject) => {
soap.createClient( soap.createClient(
@@ -162,7 +157,7 @@ export const GET = defineApiRoute({
} }
client.Datenregistratur( client.Datenregistratur(
body, requestPayload,
async function ( async function (
err: any, err: any,
result: { result: {