Email Betreff

This commit is contained in:
Moritz Utcke
2025-03-13 17:12:45 -03:00
parent 2391629b36
commit 2a47b8f482
6 changed files with 59 additions and 10 deletions

View File

@@ -3,6 +3,7 @@ import {
Benutzer,
GEGNachweisWohnen,
} from "#lib/client/prisma.js";
import { getPaymentSuccessSubject } from "./helpers.js";
export async function sendGEGBestellungsMail(
nachweis: GEGNachweisWohnen,
@@ -11,7 +12,8 @@ export async function sendGEGBestellungsMail(
await transport.sendMail({
from: `"IBCornelsen" <info@online-energieausweis.org>`,
to: user.email,
subject: `Bestellbestätigung vom IBCornelsen (ID: ${nachweis.uid})`,
// subject: getPaymentSuccessSubject(nachweis, ),
// TODO
cc: {
address: user.email || "",
name: user.name || "",

View File

@@ -0,0 +1,32 @@
import { shortenUID } from "#server/lib/hash.js";
import { BedarfsausweisWohnen, Enums, Rechnung, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "../prisma.js";
export function getPaymentSuccessSubject(ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen, rechnung: Rechnung, ausweisart: Enums.Ausweisart) {
const id = shortenUID(ausweis.uid);
let subject: string = "";
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen (ID: ${id})`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen mit Beratung (ID: ${id})`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen - offline Service (ID: ${id})`
}
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe (ID: ${id})`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe mit Beratung (ID: ${id})`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe - offline Service (ID: ${id})`
}
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen (ID: ${id})`
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen mit Beratung (ID: ${id})`
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen - offline Service (ID: ${id})`
}
}
return subject;
}

View File

@@ -11,6 +11,7 @@ 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,
@@ -33,6 +34,10 @@ export async function sendInvoiceMail(
const ausweisart = getAusweisartFromUUID(ausweis.uid);
if (!ausweisart) {
return
}
const attachments: Mail.Attachment[] = [];
const id = shortenUID(ausweis.uid)
@@ -65,7 +70,7 @@ export async function sendInvoiceMail(
attachments,
from: `"IBCornelsen" <info@online-energieausweis.org>`,
to: user.email,
subject: `Bestellbestätigung vom IBCornelsen (ID: ${id})`,
subject: getPaymentSuccessSubject(ausweis, rechnung, ausweisart),
cc: {
address: rechnung.email || "",
name: rechnung.empfaenger || "",

View File

@@ -10,6 +10,7 @@ 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 sendPaymentSuccessMail(
ausweis: VerbrauchsausweisWohnen,
@@ -32,6 +33,11 @@ export async function sendPaymentSuccessMail(
let info: string = "";
const ausweisart = getAusweisartFromUUID(ausweis.uid);
if (!ausweisart) {
return;
}
const attachments: Mail.Attachment[] = [];
const id = shortenUID(ausweis.uid)
@@ -68,7 +74,7 @@ export async function sendPaymentSuccessMail(
attachments,
from: `"IBCornelsen" <info@online-energieausweis.org>`,
to: user.email,
subject: `Bestellbestätigung vom IBCornelsen (ID: ${id})`,
subject: getPaymentSuccessSubject(ausweis, rechnung, ausweisart),
cc: {
address: rechnung.email || "",
name: rechnung.empfaenger || "",

View File

@@ -2,7 +2,7 @@ import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, UUidWithPrefix, Ver
import { filterAusweise } from "#lib/filters.js";
import { omit } from "#lib/helpers.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { Enums, prisma, VerbrauchsausweisWohnenSchema } from "#lib/server/prisma";
import { Enums, prisma } from "#lib/server/prisma.js";
import { defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
@@ -15,12 +15,16 @@ export const GET = defineApiRoute({
skip: z.number().optional()
}),
async fetch(input, context, user) {
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
input.filters = input.filters || {}
input.filters["benutzer"] = {
uid: user.uid
}
}
const ausweise = await prisma.verbrauchsausweisWohnen.findMany({
where: {
...input.filters,
benutzer: {
uid: user.uid
},
...input.filters
},
include: {
aufnahme: {

View File

@@ -1,3 +1,3 @@
---
return Astro.redirect("/dashboard/admin/ausweise-pruefen/1")
return Astro.redirect("/dashboard/admin/ausweise-pruefen/1");
---