Alte Ausweis Id

This commit is contained in:
Moritz Utcke
2025-03-19 13:15:40 -03:00
parent dee9afcda4
commit 147b1ff44f
10 changed files with 69 additions and 2 deletions

View File

@@ -0,0 +1,50 @@
-- AlterTable
ALTER TABLE "Anteilshaber" ALTER COLUMN "uid" SET DEFAULT 'ant-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "Aufnahme" ALTER COLUMN "uid" SET DEFAULT 'auf-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "BedarfsausweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'bag-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "alte_ausweis_id" INTEGER,
ALTER COLUMN "uid" SET DEFAULT 'baw-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "Bild" ALTER COLUMN "uid" SET DEFAULT 'img-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "Event" ALTER COLUMN "uid" SET DEFAULT 'evt-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "GEGEinpreisung" ALTER COLUMN "uid" SET DEFAULT 'gge-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "GEGNachweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'gng-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "GEGNachweisWohnen" ALTER COLUMN "uid" SET DEFAULT 'gnw-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "Objekt" ALTER COLUMN "uid" SET DEFAULT 'obj-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "Rechnung" ALTER COLUMN "uid" SET DEFAULT 'inv-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "Tickets" ALTER COLUMN "uid" SET DEFAULT 'tkt-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "Unterlage" ALTER COLUMN "uid" SET DEFAULT 'pln-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "VerbrauchsausweisGewerbe" ADD COLUMN "alte_ausweis_id" INTEGER,
ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "VerbrauchsausweisWohnen" ADD COLUMN "alte_ausweis_id" INTEGER,
ALTER COLUMN "uid" SET DEFAULT 'vaw-' || gen_random_uuid();
-- AlterTable
ALTER TABLE "benutzer" ALTER COLUMN "uid" SET DEFAULT 'usr-' || gen_random_uuid();

View File

@@ -1,6 +1,7 @@
model BedarfsausweisWohnen { model BedarfsausweisWohnen {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
alte_ausweis_id Int?
uid String @unique @default(dbgenerated("'baw-' || gen_random_uuid()")) uid String @unique @default(dbgenerated("'baw-' || gen_random_uuid()"))
benutzer_id Int? benutzer_id Int?
ausstellgrund Ausstellgrund? ausstellgrund Ausstellgrund?

View File

@@ -1,6 +1,7 @@
model VerbrauchsausweisGewerbe { model VerbrauchsausweisGewerbe {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
alte_ausweis_id Int?
uid String @unique @default(dbgenerated("'vag-' || gen_random_uuid()")) uid String @unique @default(dbgenerated("'vag-' || gen_random_uuid()"))
benutzer_id Int? benutzer_id Int?
ausstellgrund Ausstellgrund? ausstellgrund Ausstellgrund?

View File

@@ -1,6 +1,7 @@
model VerbrauchsausweisWohnen { model VerbrauchsausweisWohnen {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
alte_ausweis_id Int?
/// @zod.describe("UID des Ausweises") /// @zod.describe("UID des Ausweises")
uid String @unique @default(dbgenerated("'vaw-' || gen_random_uuid()")) uid String @unique @default(dbgenerated("'vaw-' || gen_random_uuid()"))
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")

View File

@@ -3,6 +3,7 @@ import { Ausstellgrund } from "@prisma/client"
export const BedarfsausweisWohnenSchema = z.object({ export const BedarfsausweisWohnenSchema = z.object({
id: z.number().int(), id: z.number().int(),
alte_ausweis_id: z.number().int().nullish(),
uid: z.string(), uid: z.string(),
benutzer_id: z.number().int().nullish(), benutzer_id: z.number().int().nullish(),
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(), ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),

View File

@@ -3,6 +3,7 @@ import { Ausstellgrund } from "@prisma/client"
export const VerbrauchsausweisGewerbeSchema = z.object({ export const VerbrauchsausweisGewerbeSchema = z.object({
id: z.number().int(), id: z.number().int(),
alte_ausweis_id: z.number().int().nullish(),
uid: z.string(), uid: z.string(),
benutzer_id: z.number().int().nullish(), benutzer_id: z.number().int().nullish(),
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(), ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),

View File

@@ -3,6 +3,7 @@ import { Ausstellgrund } from "@prisma/client"
export const VerbrauchsausweisWohnenSchema = z.object({ export const VerbrauchsausweisWohnenSchema = z.object({
id: z.number().int(), id: z.number().int(),
alte_ausweis_id: z.number().int().nullish(),
uid: z.string().describe("UID des Ausweises"), uid: z.string().describe("UID des Ausweises"),
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(), benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(), ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),

View File

@@ -5,6 +5,7 @@ import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.
import { Enums } from "#lib/client/prisma.js"; import { Enums } from "#lib/client/prisma.js";
import { APIRoute } from "astro"; import { APIRoute } from "astro";
import { createCaller } from "src/astro-typesafe-api-caller.js"; import { createCaller } from "src/astro-typesafe-api-caller.js";
import { getS3File } from "#lib/s3.js";
export const GET: APIRoute = async (Astro) => { export const GET: APIRoute = async (Astro) => {
const uidAusweis = Astro.url.searchParams.get("uid"); const uidAusweis = Astro.url.searchParams.get("uid");
@@ -73,7 +74,10 @@ export const GET: APIRoute = async (Astro) => {
}); });
let pdf: Uint8Array<ArrayBufferLike> | null = null; let pdf: Uint8Array<ArrayBufferLike> | null = null;
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { if (ausweis.alte_ausweis_id) {
// Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren.
pdf = await getS3File("ibc-pdfs", `ID_${ausweis.alte_ausweis_id}_Energieausweis.pdf`)
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user); pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user);
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user); pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user);

View File

@@ -7,6 +7,7 @@ import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.
import { Enums } from "#lib/client/prisma.js"; import { Enums } from "#lib/client/prisma.js";
import { APIRoute } from "astro"; import { APIRoute } from "astro";
import { createCaller } from "src/astro-typesafe-api-caller.js"; import { createCaller } from "src/astro-typesafe-api-caller.js";
import { getS3File } from "#lib/s3.js";
export const GET: APIRoute = async (Astro) => { export const GET: APIRoute = async (Astro) => {
const uidAusweis = Astro.url.searchParams.get("uid"); const uidAusweis = Astro.url.searchParams.get("uid");
@@ -75,7 +76,10 @@ export const GET: APIRoute = async (Astro) => {
}); });
let pdf: Uint8Array<ArrayBufferLike> | null = null; let pdf: Uint8Array<ArrayBufferLike> | null = null;
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { if (ausweis.alte_ausweis_id) {
// Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren.
pdf = await getS3File("ibc-pdfs", `ID_${ausweis.alte_ausweis_id}_Datenblatt.pdf`)
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user); pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user);
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user); pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user);

View File

@@ -216,6 +216,7 @@ Papa.parse(file, {
if (dataset.ausweisart === "VA") { if (dataset.ausweisart === "VA") {
const ausweis = await tx.verbrauchsausweisWohnen.create({ const ausweis = await tx.verbrauchsausweisWohnen.create({
data: { data: {
alte_ausweis_id: dataset.id,
alternative_heizung: dataset.alheizung == "1", alternative_heizung: dataset.alheizung == "1",
alternative_kuehlung: dataset.alkuehlung == "1", alternative_kuehlung: dataset.alkuehlung == "1",
alternative_lueftung: dataset.allueftung == "1", alternative_lueftung: dataset.allueftung == "1",
@@ -283,6 +284,7 @@ Papa.parse(file, {
} else if (dataset.ausweisart === "VANW") { } else if (dataset.ausweisart === "VANW") {
const ausweis = await tx.verbrauchsausweisGewerbe.create({ const ausweis = await tx.verbrauchsausweisGewerbe.create({
data: { data: {
alte_ausweis_id: dataset.id,
alternative_heizung: dataset.alheizung == "1", alternative_heizung: dataset.alheizung == "1",
alternative_kuehlung: dataset.alkuehlung == "1", alternative_kuehlung: dataset.alkuehlung == "1",
alternative_lueftung: dataset.allueftung == "1", alternative_lueftung: dataset.allueftung == "1",
@@ -362,6 +364,7 @@ Papa.parse(file, {
} else if (dataset.ausweisart === "BA") { } else if (dataset.ausweisart === "BA") {
const ausweis = await tx.bedarfsausweisWohnen.create({ const ausweis = await tx.bedarfsausweisWohnen.create({
data: { data: {
alte_ausweis_id: dataset.id,
alternative_heizung: dataset.alheizung == "1", alternative_heizung: dataset.alheizung == "1",
alternative_kuehlung: dataset.alkuehlung == "1", alternative_kuehlung: dataset.alkuehlung == "1",
alternative_lueftung: dataset.allueftung == "1", alternative_lueftung: dataset.allueftung == "1",