Ausweis, Ausstellung, Adresse

This commit is contained in:
Moritz Utcke
2025-04-08 18:49:29 -04:00
parent 07760aa26a
commit d354189d3c
19 changed files with 289 additions and 105 deletions

View File

@@ -20,6 +20,7 @@ import { PutObjectCommand } from "@aws-sdk/client-s3";
import { s3Client } from "#lib/s3.js";
import { createInvoice } from "#lib/server/invoice.js";
import { tryCatch } from "#lib/tryCatch.js";
import { getBedarfsausweisWohnenKomplett, getVerbrauchsausweisGewerbeKomplett, getVerbrauchsausweisWohnenKomplett } from "#lib/server/db.js";
export const GET = defineApiRoute({
input: z.object({
@@ -46,59 +47,11 @@ export const GET = defineApiRoute({
| null = null;
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
ausweis = await prisma.verbrauchsausweisWohnen.findUnique({
where: {
id: id_ausweis,
},
include: {
aufnahme: {
include: {
bilder: true,
objekt: {
include: {
benutzer: true,
},
},
},
},
},
});
ausweis = await getVerbrauchsausweisWohnenKomplett(id_ausweis)
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
ausweis = await prisma.verbrauchsausweisGewerbe.findUnique({
where: {
id: id_ausweis,
},
include: {
aufnahme: {
include: {
bilder: true,
objekt: {
include: {
benutzer: true,
},
},
},
},
},
});
ausweis = await getVerbrauchsausweisGewerbeKomplett(id_ausweis)
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
ausweis = await prisma.bedarfsausweisWohnen.findUnique({
where: {
id: id_ausweis,
},
include: {
aufnahme: {
include: {
bilder: true,
objekt: {
include: {
benutzer: true,
},
},
},
},
},
});
ausweis = await getBedarfsausweisWohnenKomplett(id_ausweis)
}
if (!ausweis) {
@@ -273,5 +226,34 @@ fax 040 · 209339859
subject: `Ihr Originalausweis vom Ingenieurbüro Cornelsen (ID: ${ausweis.id})`,
text,
});
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
await prisma.verbrauchsausweisWohnen.update({
where: {
id: ausweis.id
},
data: {
ausgestellt: true
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
await prisma.verbrauchsausweisGewerbe.update({
where: {
id: ausweis.id
},
data: {
ausgestellt: true
}
})
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
await prisma.bedarfsausweisWohnen.update({
where: {
id: ausweis.id
},
data: {
ausgestellt: true,
}
})
}
},
});

View File

@@ -7,10 +7,7 @@ import {
authorizationHeaders,
} from "#lib/middleware/authorization.js";
import {
BedarfsausweisWohnen,
Enums,
VerbrauchsausweisGewerbe,
VerbrauchsausweisWohnen,
} from "#lib/server/prisma.js";
import { prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
@@ -21,14 +18,14 @@ import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
export const GET = defineApiRoute({
input: z.object({
uid: UUidWithPrefix,
id: UUidWithPrefix,
}),
headers: authorizationHeaders,
middleware: adminMiddleware,
async fetch({ uid }, context, user) {
const ausweisart = getAusweisartFromId(uid);
async fetch({ id }, context, user) {
const ausweisart = getAusweisartFromId(id);
const adapter = getPrismaAusweisAdapter(
uid
id
) as typeof prisma.verbrauchsausweisWohnen;
if (!adapter) {
@@ -40,7 +37,7 @@ export const GET = defineApiRoute({
const ausweis = await adapter.findUnique({
where: {
uid,
id,
},
include: {
aufnahme: {
@@ -193,7 +190,7 @@ export const GET = defineApiRoute({
adapter as typeof prisma.verbrauchsausweisWohnen
).update({
where: {
uid,
id,
},
data: {
registriernummer:

View File

@@ -101,6 +101,19 @@ export const PUT = defineApiRoute({
betrag,
bezahlmethode: bezahlmethode,
status: Enums.Rechnungsstatus.open,
abweichende_versand_adresse: input.abweichende_versand_adresse,
email: input.email,
empfaenger: input.empfaenger,
ort: input.ort,
plz: input.plz,
strasse: input.strasse,
telefon: input.telefon,
versand_ort: input.versand_ort,
versand_empfaenger: input.versand_empfaenger,
versand_plz: input.versand_plz,
versand_strasse: input.versand_strasse,
versand_zusatzzeile: input.versand_zusatzzeile,
zusatzzeile: input.zusatzzeile,
verbrauchsausweis_wohnen: {
connect: {
id: ausweis_id
@@ -118,6 +131,19 @@ export const PUT = defineApiRoute({
betrag,
bezahlmethode: bezahlmethode,
status: Enums.Rechnungsstatus.open,
abweichende_versand_adresse: input.abweichende_versand_adresse,
email: input.email,
empfaenger: input.empfaenger,
ort: input.ort,
plz: input.plz,
strasse: input.strasse,
telefon: input.telefon,
versand_ort: input.versand_ort,
versand_empfaenger: input.versand_empfaenger,
versand_plz: input.versand_plz,
versand_strasse: input.versand_strasse,
versand_zusatzzeile: input.versand_zusatzzeile,
zusatzzeile: input.zusatzzeile,
verbrauchsausweis_gewerbe: {
connect: {
id: ausweis_id
@@ -135,6 +161,19 @@ export const PUT = defineApiRoute({
betrag,
bezahlmethode: bezahlmethode,
status: Enums.Rechnungsstatus.open,
abweichende_versand_adresse: input.abweichende_versand_adresse,
email: input.email,
empfaenger: input.empfaenger,
ort: input.ort,
plz: input.plz,
strasse: input.strasse,
telefon: input.telefon,
versand_ort: input.versand_ort,
versand_empfaenger: input.versand_empfaenger,
versand_plz: input.versand_plz,
versand_strasse: input.versand_strasse,
versand_zusatzzeile: input.versand_zusatzzeile,
zusatzzeile: input.zusatzzeile,
bedarfsausweis_wohnen: {
connect: {
id: ausweis_id