108 lines
2.6 KiB
TypeScript
108 lines
2.6 KiB
TypeScript
import { getAusweisartFromUUID } from "#components/Ausweis/types.js";
|
|
import { BASE_URI } from "#lib/constants.js";
|
|
import { transport } from "#lib/mail.js";
|
|
import {
|
|
Benutzer,
|
|
Enums,
|
|
Rechnung,
|
|
VerbrauchsausweisWohnen,
|
|
} from "#lib/client/prisma.js";
|
|
import { prisma } from "#lib/server/prisma.js";
|
|
import { getAnsichtsausweis } from "../ausweis.js";
|
|
import Mail from "nodemailer/lib/mailer/index.js";
|
|
import { shortenUID } from "#server/lib/hash.js";
|
|
import { getPaymentSuccessSubject } from "./helpers.js";
|
|
|
|
export async function sendInvoiceMail(
|
|
ausweis: VerbrauchsausweisWohnen,
|
|
rechnung: Rechnung,
|
|
user: Benutzer
|
|
) {
|
|
const aufnahme = await prisma.aufnahme.findUnique({
|
|
where: {
|
|
id: ausweis.aufnahme_id,
|
|
},
|
|
include: {
|
|
objekt: true,
|
|
bilder: true,
|
|
},
|
|
});
|
|
|
|
if (!aufnahme) {
|
|
return;
|
|
}
|
|
|
|
const ausweisart = getAusweisartFromUUID(ausweis.uid);
|
|
|
|
if (!ausweisart) {
|
|
return
|
|
}
|
|
|
|
const attachments: Mail.Attachment[] = [];
|
|
|
|
const id = shortenUID(ausweis.uid)
|
|
|
|
|
|
if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen) {
|
|
const ansichtsausweis = await getAnsichtsausweis(
|
|
ausweis,
|
|
aufnahme,
|
|
aufnahme.objekt,
|
|
aufnahme.bilder,
|
|
user,
|
|
ausweisart
|
|
);
|
|
|
|
if (ansichtsausweis) {
|
|
attachments.push(
|
|
{
|
|
filename: `ID_${id}_Ansichtsausweis.pdf`,
|
|
encoding: "binary",
|
|
content: Buffer.from(ansichtsausweis),
|
|
contentType: "application/pdf",
|
|
contentDisposition: "attachment",
|
|
},
|
|
);
|
|
}
|
|
}
|
|
|
|
await transport.sendMail({
|
|
attachments,
|
|
from: `"IBCornelsen" <info@online-energieausweis.org>`,
|
|
to: user.email,
|
|
subject: getPaymentSuccessSubject(ausweis, rechnung, ausweisart),
|
|
cc: {
|
|
address: rechnung.email || "",
|
|
name: rechnung.empfaenger || "",
|
|
},
|
|
bcc: "info@online-energieausweis.org",
|
|
html: `<p>Sehr geehrte*r ${user.vorname} ${user.name},</p>
|
|
|
|
<p>vielen Dank für Ihre Bestellung. Im Anhang finden Sie den Ansichtsausweis als PDF-Datei. Wir werden den Ausweis nun prüfen und Originalausweis und Rechnung nach Prüfung zuschicken.</p>
|
|
<p>In der Regel erhalten Sie Ihren Ausweis innerhalb von 24 Stunden. Die Ausstellung erfolgt nach aktuellem GEG und Ihr Ausweis wird beim DIBT registriert.</p>
|
|
<br>
|
|
<p>Ihre Zahlung konnte nicht durchgeführt werden. Sie erhalten Bankverbindung und Verwendungszweck zusammen mit der Rechnung, sobald ihr Ausweis ausgestellt wurde.</p>
|
|
<br>
|
|
<br>
|
|
<p>
|
|
Mit freundlichen Grüßen,
|
|
<br>
|
|
Dipl.-Ing. Jens Cornelsen
|
|
<br>
|
|
<br>
|
|
<strong>IB Cornelsen</strong>
|
|
<br>
|
|
Katendeich 5A
|
|
<br>
|
|
21035 Hamburg
|
|
<br>
|
|
www.online-energieausweis.org
|
|
<br>
|
|
<br>
|
|
fon 040 · 209339850
|
|
<br>
|
|
fax 040 · 209339859
|
|
</p>`,
|
|
});
|
|
}
|