Verbrauchsausweis Gewerbe
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import { AufnahmeClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
|
||||
import { exclude } from "#lib/exclude.js";
|
||||
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
|
||||
import { AufnahmeSchema, prisma } from "#lib/server/prisma.js";
|
||||
import { prisma } from "#lib/server/prisma.js";
|
||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||
import { AufnahmeSchema } from "src/generated/zod/aufnahme.js";
|
||||
import { z } from "zod";
|
||||
|
||||
export const PATCH = defineApiRoute({
|
||||
@@ -22,7 +23,7 @@ export const PATCH = defineApiRoute({
|
||||
where: {
|
||||
uid,
|
||||
benutzer_id: user.id
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
if (!aufnahme) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { z } from "zod";
|
||||
import { Enums, RechnungSchema, prisma } from "#lib/server/prisma";
|
||||
import { Enums, prisma } from "#lib/server/prisma.js";
|
||||
import { mollieClient } from "#lib/mollie.js";
|
||||
import { PaymentMethod } from "@mollie/api-client";
|
||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||
@@ -10,6 +10,8 @@ import {
|
||||
import { UUidWithPrefix } from "#components/Ausweis/types.js";
|
||||
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
|
||||
import { PRICES, SERVICES } from "#lib/constants.js";
|
||||
import { Rechnung } from "#lib/client/prisma.js";
|
||||
import { RechnungSchema } from "src/generated/zod/rechnung.js";
|
||||
|
||||
export const PUT = defineApiRoute({
|
||||
meta: {
|
||||
@@ -28,7 +30,6 @@ export const PUT = defineApiRoute({
|
||||
.merge(
|
||||
RechnungSchema.omit({
|
||||
benutzer_id: true,
|
||||
aufnahme_id: true,
|
||||
bezahlt_am: true,
|
||||
erstellt_am: true,
|
||||
id: true,
|
||||
@@ -86,27 +87,57 @@ export const PUT = defineApiRoute({
|
||||
});
|
||||
}
|
||||
|
||||
// TODO
|
||||
// Wir erstellen eine neue Rechnung in unserer Datenbank.
|
||||
const rechnung = await prisma.rechnung.create({
|
||||
data: {
|
||||
benutzer_id: user.id,
|
||||
betrag,
|
||||
bezahlmethode: bezahlmethode,
|
||||
status: Enums.Rechnungsstatus.open,
|
||||
verbrauchsausweis_wohnen: {
|
||||
connect: {
|
||||
uid: ausweis_uid
|
||||
}
|
||||
},
|
||||
services,
|
||||
ausweistyp
|
||||
},
|
||||
select: {
|
||||
uid: true,
|
||||
betrag: true,
|
||||
},
|
||||
});
|
||||
let rechnung: Rechnung | null = null;
|
||||
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||
rechnung = await prisma.rechnung.create({
|
||||
data: {
|
||||
benutzer_id: user.id,
|
||||
betrag,
|
||||
bezahlmethode: bezahlmethode,
|
||||
status: Enums.Rechnungsstatus.open,
|
||||
verbrauchsausweis_wohnen: {
|
||||
connect: {
|
||||
uid: ausweis_uid
|
||||
}
|
||||
},
|
||||
services,
|
||||
ausweistyp
|
||||
}
|
||||
});
|
||||
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||
rechnung = await prisma.rechnung.create({
|
||||
data: {
|
||||
benutzer_id: user.id,
|
||||
betrag,
|
||||
bezahlmethode: bezahlmethode,
|
||||
status: Enums.Rechnungsstatus.open,
|
||||
verbrauchsausweis_gewerbe: {
|
||||
connect: {
|
||||
uid: ausweis_uid
|
||||
}
|
||||
},
|
||||
services,
|
||||
ausweistyp
|
||||
}
|
||||
});
|
||||
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
|
||||
rechnung = await prisma.rechnung.create({
|
||||
data: {
|
||||
benutzer_id: user.id,
|
||||
betrag,
|
||||
bezahlmethode: bezahlmethode,
|
||||
status: Enums.Rechnungsstatus.open,
|
||||
bedarfsausweis_wohnen: {
|
||||
connect: {
|
||||
uid: ausweis_uid
|
||||
}
|
||||
},
|
||||
services,
|
||||
ausweistyp
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!rechnung) {
|
||||
throw new APIError({
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { UUidWithPrefix } from "#components/Ausweis/types.js";
|
||||
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
|
||||
import { prisma, VerbrauchsausweisGewerbeSchema } from "#lib/server/prisma";
|
||||
import { prisma } from "#lib/server/prisma.js";
|
||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||
import { VerbrauchsausweisGewerbeSchema } from "src/generated/zod/verbrauchsausweisgewerbe.js";
|
||||
import { z } from "zod";
|
||||
|
||||
export const PUT = defineApiRoute({
|
||||
@@ -17,7 +18,9 @@ export const PUT = defineApiRoute({
|
||||
benutzer_id: true,
|
||||
uid: true,
|
||||
aufnahme_id: true
|
||||
}),
|
||||
}).merge(z.object({
|
||||
startdatum: z.coerce.date()
|
||||
})),
|
||||
uid_aufnahme: UUidWithPrefix
|
||||
}),
|
||||
output: z.object({
|
||||
|
||||
@@ -8,6 +8,7 @@ import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
||||
|
||||
const uid = Astro.url.searchParams.get("uid");
|
||||
const uid_aufnahme = Astro.url.searchParams.get("aufnahme")
|
||||
let ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
|
||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||
let objekt: ObjektClient = {} as ObjektClient;
|
||||
@@ -75,6 +76,32 @@ if (uid) {
|
||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
||||
);
|
||||
}
|
||||
} else if (uid_aufnahme) {
|
||||
if (!valid) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
let { uid_objekt, ...result} = await caller.aufnahme._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: uid_aufnahme
|
||||
}
|
||||
})
|
||||
|
||||
aufnahme = result;
|
||||
|
||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: uid_objekt
|
||||
}
|
||||
})
|
||||
}
|
||||
---
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||
import { Enums } from "#lib/server/prisma";
|
||||
|
||||
const uid = Astro.url.searchParams.get("uid");
|
||||
const uid_aufnahme = Astro.url.searchParams.get("aufnahme")
|
||||
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
||||
|
||||
|
||||
@@ -76,6 +77,32 @@ if (uid) {
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
} else if (uid_aufnahme) {
|
||||
if (!valid) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
let { uid_objekt, ...result} = await caller.aufnahme._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: uid_aufnahme
|
||||
}
|
||||
})
|
||||
|
||||
aufnahme = result;
|
||||
|
||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: uid_objekt
|
||||
}
|
||||
})
|
||||
}
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user