@@ -116,18 +92,26 @@
{#if Object.keys($notifications).length > 0}
- {Object.keys($notifications).length}
+ {Object.keys($notifications).length}
{/if}
-
-
-
-
@@ -137,10 +121,8 @@
-
diff --git a/src/generated/zod/bedarfsausweisgewerbe.ts b/src/generated/zod/bedarfsausweisgewerbe.ts
index c387134e..5eea5ecc 100644
--- a/src/generated/zod/bedarfsausweisgewerbe.ts
+++ b/src/generated/zod/bedarfsausweisgewerbe.ts
@@ -1,5 +1,5 @@
import * as z from "zod"
-import { Ausstellgrund, AusweisTyp } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp, Ausweisart } from "@prisma/client"
export const BedarfsausweisGewerbeSchema = z.object({
id: z.string(),
@@ -20,6 +20,7 @@ export const BedarfsausweisGewerbeSchema = z.object({
bauteilaktivierung: z.boolean().nullish(),
klimatisierung: z.boolean().nullish(),
nachweistyp: z.nativeEnum(AusweisTyp),
+ ausweisart: z.nativeEnum(Ausweisart),
created_at: z.date(),
updated_at: z.date(),
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
diff --git a/src/generated/zod/bedarfsausweiswohnen.ts b/src/generated/zod/bedarfsausweiswohnen.ts
index 2960c4cb..2abcdb06 100644
--- a/src/generated/zod/bedarfsausweiswohnen.ts
+++ b/src/generated/zod/bedarfsausweiswohnen.ts
@@ -1,5 +1,5 @@
import * as z from "zod"
-import { Ausstellgrund, AusweisTyp } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp, Ausweisart } from "@prisma/client"
export const BedarfsausweisWohnenSchema = z.object({
id: z.string(),
@@ -86,6 +86,7 @@ export const BedarfsausweisWohnenSchema = z.object({
pruefpunkt_geometrie: z.boolean().nullish(),
pruefpunkt_fenster: z.boolean().nullish(),
ausweistyp: z.nativeEnum(AusweisTyp),
+ ausweisart: z.nativeEnum(Ausweisart),
rechnung_id: z.string().nullish(),
aufnahme_id: z.string().describe("ID der korrespondierenden Gebäudeaufnahme"),
})
diff --git a/src/generated/zod/gegnachweisgewerbe.ts b/src/generated/zod/gegnachweisgewerbe.ts
index 36d05932..3ce71a6b 100644
--- a/src/generated/zod/gegnachweisgewerbe.ts
+++ b/src/generated/zod/gegnachweisgewerbe.ts
@@ -1,5 +1,5 @@
import * as z from "zod"
-import { Ausstellgrund, AusweisTyp } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp, Ausweisart } from "@prisma/client"
export const GEGNachweisGewerbeSchema = z.object({
id: z.string(),
@@ -10,6 +10,7 @@ export const GEGNachweisGewerbeSchema = z.object({
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
nachweistyp: z.nativeEnum(AusweisTyp),
+ ausweisart: z.nativeEnum(Ausweisart),
created_at: z.date(),
updated_at: z.date(),
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
diff --git a/src/generated/zod/gegnachweiswohnen.ts b/src/generated/zod/gegnachweiswohnen.ts
index 3d454c3e..9517fb13 100644
--- a/src/generated/zod/gegnachweiswohnen.ts
+++ b/src/generated/zod/gegnachweiswohnen.ts
@@ -1,5 +1,5 @@
import * as z from "zod"
-import { Ausstellgrund, AusweisTyp } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp, Ausweisart } from "@prisma/client"
export const GEGNachweisWohnenSchema = z.object({
id: z.string(),
@@ -10,6 +10,7 @@ export const GEGNachweisWohnenSchema = z.object({
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
nachweistyp: z.nativeEnum(AusweisTyp),
+ ausweisart: z.nativeEnum(Ausweisart),
created_at: z.date(),
updated_at: z.date(),
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
diff --git a/src/generated/zod/verbrauchsausweisgewerbe.ts b/src/generated/zod/verbrauchsausweisgewerbe.ts
index a7c16a0d..63fe2d8b 100644
--- a/src/generated/zod/verbrauchsausweisgewerbe.ts
+++ b/src/generated/zod/verbrauchsausweisgewerbe.ts
@@ -1,5 +1,5 @@
import * as z from "zod"
-import { Ausstellgrund, AusweisTyp } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp, Ausweisart } from "@prisma/client"
export const VerbrauchsausweisGewerbeSchema = z.object({
id: z.string(),
@@ -52,6 +52,7 @@ export const VerbrauchsausweisGewerbeSchema = z.object({
created_at: z.date(),
updated_at: z.date(),
ausweistyp: z.nativeEnum(AusweisTyp),
+ ausweisart: z.nativeEnum(Ausweisart),
pruefpunkt_heizungsalter: z.boolean().nullish(),
pruefpunkt_verbrauch_niedrig: z.boolean().nullish(),
pruefpunkt_verbrauch_hoch: z.boolean().nullish(),
diff --git a/src/generated/zod/verbrauchsausweiswohnen.ts b/src/generated/zod/verbrauchsausweiswohnen.ts
index 34b9c4af..3425b342 100644
--- a/src/generated/zod/verbrauchsausweiswohnen.ts
+++ b/src/generated/zod/verbrauchsausweiswohnen.ts
@@ -1,5 +1,5 @@
import * as z from "zod"
-import { Ausstellgrund, AusweisTyp } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp, Ausweisart } from "@prisma/client"
export const VerbrauchsausweisWohnenSchema = z.object({
id: z.string().describe("ID des Ausweises"),
@@ -38,6 +38,7 @@ export const VerbrauchsausweisWohnenSchema = z.object({
beschreibung: z.string().nullish(),
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
ausweistyp: z.nativeEnum(AusweisTyp),
+ ausweisart: z.nativeEnum(Ausweisart),
created_at: z.date(),
updated_at: z.date(),
pruefpunkt_heizungsalter: z.boolean().nullish(),
diff --git a/src/layouts/DashboardLayout.astro b/src/layouts/DashboardLayout.astro
index d3726c72..5a4ccece 100644
--- a/src/layouts/DashboardLayout.astro
+++ b/src/layouts/DashboardLayout.astro
@@ -3,22 +3,19 @@
import "../style/global.css";
import "../../svelte-dialogs.config.js";
import DashboardSidebar from "../components/Dashboard/DashboardSidebar.svelte";
-import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
-import { BenutzerClient, ObjektClient } from "#components/Ausweis/types";
-
-const valid = validateAccessTokenServer(Astro)
-
-if (!valid) {
- Astro.redirect("/auth/login", 302)
-}
+import { BenutzerClient } from "#components/Ausweis/types";
export interface Props {
title: string;
- user: BenutzerClient
+ user: BenutzerClient;
}
const { title, user } = Astro.props;
+if (!user) {
+ Astro.redirect("/auth/login", 302);
+}
+
const schema = JSON.stringify({
"@context": "http://schema.org",
"@type": "Corporation",
@@ -53,22 +50,22 @@ let lightTheme = Astro.cookies.get("theme")?.value === "light";
if (import.meta.env.PROD) {
H.init("1jdkoe52", {
serviceName: "online-energieausweis",
- backendUrl: "https://highlight-backend.online-energieausweis.org/public",
+ backendUrl:
+ "https://highlight-backend.online-energieausweis.org/public",
tracingOrigins: true,
networkRecording: {
enabled: true,
- recordHeadersAndBody: true
- }
- })
+ recordHeadersAndBody: true,
+ },
+ });
}
-
-
+
-
+
-
-
-
-
-
-
-
+
+
+
-
-
\ No newline at end of file
+
diff --git a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
index 4b02ac93..4bcb2bfa 100644
--- a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
+++ b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
@@ -30,7 +30,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
const form = pdf.getForm()
form.updateFieldAppearances(font)
- pages[0].drawText(`ID: ${aufnahme.id || ""}`, {
+ pages[0].drawText(`ID: ${ausweis.id || ""}`, {
x: 211,
y: height - 112.5,
size: 10
@@ -116,7 +116,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.Schachtlueftung) {
addCheckMark(pages[0], 213, height - 345)
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung) {
- addCheckMark(pages[0], 355, height - 334)
+ addCheckMark(pages[0], 355, height - 334)
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung) {
addCheckMark(pages[0], 355, height - 345)
}
@@ -213,15 +213,20 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
const addEnergieverbrauchSkalaPfeile = async (page: PDFPage) => {
const pfeilNachUnten = await pdf.embedPng(fs.readFileSync(new URL("../../../public/images/pfeil-nach-unten.png", import.meta.url), "base64"))
+ const pfeilNachOben = await pdf.embedPng(fs.readFileSync(new URL("../../../public/images/pfeil-nach-oben.png", import.meta.url), "base64"))
// Wir müssen den berechneten Wert zwischen 0 und 1000 als Wert zwischen 0 und 1 festlegen
const endenergieverbrauchTranslationPercentage = Math.min(1000, Math.max(0, berechnungen?.endEnergieVerbrauchGesamt || 0)) / 1000
const stromVerbrauchTranslationPercentage = Math.min(1000, Math.max(0, berechnungen?.endEnergieVerbrauchStrom || 0)) / 1000
+ const vergleichsWertWaermeTranslationPercentage = Math.min(1000, Math.max(0, berechnungen?.vergleichsWertWaerme || 0)) / 1000
+ const vergleichsWertStromTranslationPercentage = Math.min(1000, Math.max(0, berechnungen?.vergleichsWertStrom || 0)) / 1000
const minTranslation = 78
const maxTranslation = 512
const endenergieverbrauchTranslationX = minTranslation + (maxTranslation - minTranslation) * endenergieverbrauchTranslationPercentage;
const stromVerbrauchTranslationX = minTranslation + (maxTranslation - minTranslation) * stromVerbrauchTranslationPercentage;
+ const vergleichsWertWaermeTranslationX = minTranslation + (maxTranslation - minTranslation) * vergleichsWertWaermeTranslationPercentage;
+ const vergleichsWertStromTranslationX = minTranslation + (maxTranslation - minTranslation) * vergleichsWertStromTranslationPercentage;
const pfeilWidth = 20
const margin = 5;
@@ -233,8 +238,17 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
height: 30
})
+ page.drawImage(pfeilNachOben, {
+ x: vergleichsWertWaermeTranslationX,
+ y: height - 293,
+ width: pfeilWidth,
+ height: 30
+ })
+
const endEnergieVerbrauchGesamtText = `${berechnungen?.endEnergieVerbrauchGesamt.toString()}kWh/(m²a)`;
const stromVerbrauchGesamtText = `${berechnungen?.endEnergieVerbrauchStrom.toString()}kWh/(m²a)`;
+ const vergleichswertWaermeText = `${berechnungen?.vergleichsWertWaerme.toString()}kWh/(m²a)`
+ const vergleichswertStromText = `${berechnungen?.vergleichsWertStrom.toString()}kWh/(m²a)`
if (endenergieverbrauchTranslationPercentage > 0.5) {
page.drawText("Endenergieverbrauch Wärme", {
@@ -263,6 +277,33 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
})
}
+ if (vergleichsWertWaermeTranslationPercentage > 0.5) {
+ page.drawText("Vergleichswert Wärme", {
+ x: vergleichsWertWaermeTranslationX - margin - font.widthOfTextAtSize("Vergleichswert", 10),
+ y: height - 275,
+ size: 10
+ })
+
+ page.drawText(vergleichswertWaermeText, {
+ x: vergleichsWertWaermeTranslationX - margin - bold.widthOfTextAtSize(vergleichswertWaermeText, 10),
+ y: height - 289,
+ size: 10,
+ font: bold
+ })
+ } else {
+ page.drawText("Vergleichswert Wärme", {
+ x: vergleichsWertWaermeTranslationX + pfeilWidth + margin,
+ y: height - 275,
+ size: 10
+ })
+ page.drawText(vergleichswertWaermeText, {
+ x: vergleichsWertWaermeTranslationX + pfeilWidth + margin,
+ y: height - 289,
+ size: 10,
+ font: bold
+ })
+ }
+
page.drawImage(pfeilNachUnten, {
x: stromVerbrauchTranslationX,
y: height - 354,
@@ -270,6 +311,13 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
height: 30
})
+ page.drawImage(pfeilNachOben, {
+ x: vergleichsWertStromTranslationX,
+ y: height - 437,
+ width: pfeilWidth,
+ height: 30
+ })
+
if (endenergieverbrauchTranslationPercentage > 0.5) {
page.drawText("Endenergieverbrauch Strom", {
x: stromVerbrauchTranslationX - margin - font.widthOfTextAtSize("Primärenergieverbrauch", 10),
@@ -296,16 +344,43 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
font: bold
})
}
+
+ if (vergleichsWertWaermeTranslationPercentage > 0.5) {
+ page.drawText("Vergleichswert Strom", {
+ x: vergleichsWertStromTranslationX - margin - font.widthOfTextAtSize("Vergleichswert", 10),
+ y: height - 420,
+ size: 10
+ })
+
+ page.drawText(vergleichswertStromText, {
+ x: vergleichsWertStromTranslationX - margin - bold.widthOfTextAtSize(vergleichswertStromText, 10),
+ y: height - 434,
+ size: 10,
+ font: bold
+ })
+ } else {
+ page.drawText("Vergleichswert Strom", {
+ x: vergleichsWertStromTranslationX + pfeilWidth + margin,
+ y: height - 420,
+ size: 10
+ })
+ page.drawText(vergleichswertStromText, {
+ x: vergleichsWertStromTranslationX + pfeilWidth + margin,
+ y: height - 434,
+ size: 10,
+ font: bold
+ })
+ }
}
addEnergieverbrauchSkalaPfeile(pages[2])
if (ausweis.warmwasser_enthalten) {
- addCheckMark(pages[2], 41, height - 269)
+ addCheckMark(pages[2], 41, height - 293)
}
if (ausweis.kuehlung_enthalten) {
- addCheckMark(pages[2], 41, height - 281)
+ addCheckMark(pages[2], 41, height - 305)
}
if (ausweis.stromverbrauch_enthaelt_heizung) {
diff --git a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
index 55bb779e..a2de2af6 100644
--- a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
+++ b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
@@ -28,7 +28,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
const font = await pdf.embedFont(StandardFonts.Helvetica)
const bold = await pdf.embedFont(StandardFonts.HelveticaBold)
- pages[0].drawText(`ID: ${aufnahme.id || ""}`, {
+ pages[0].drawText(`ID: ${ausweis.id || ""}`, {
x: 211,
y: height - 112.5,
size: 10
diff --git a/src/lib/pdf/templates/GEG24_Nichtwohngebaeude.pdf b/src/lib/pdf/templates/GEG24_Nichtwohngebaeude.pdf
index c5734609..476ccc13 100644
Binary files a/src/lib/pdf/templates/GEG24_Nichtwohngebaeude.pdf and b/src/lib/pdf/templates/GEG24_Nichtwohngebaeude.pdf differ
diff --git a/src/lib/server/db.ts b/src/lib/server/db.ts
index 39235642..8f7554c3 100644
--- a/src/lib/server/db.ts
+++ b/src/lib/server/db.ts
@@ -28,6 +28,8 @@ export async function getVerbrauchsausweisWohnenKomplett(id: string) {
})
}
+export type VerbrauchsausweisWohnenKomplett = Awaited
>;
+
export async function getVerbrauchsausweisGewerbe(id: string): Promise {
return await prisma.verbrauchsausweisGewerbe.findUnique({
where: {
diff --git a/src/lib/server/invoice.ts b/src/lib/server/invoice.ts
index 43f4160f..9d201cfa 100644
--- a/src/lib/server/invoice.ts
+++ b/src/lib/server/invoice.ts
@@ -1,37 +1,52 @@
import { getAusweisartFromId } from "#components/Ausweis/types.js";
import moment from "moment";
import { createLexOfficeCustomer } from "./lexoffice.js";
-import { Enums, prisma, Rechnung, VerbrauchsausweisWohnen } from "./prisma.js";
+import { Enums, prisma, Rechnung } from "./prisma.js";
import { LEX_OFFICE_API_KEY, PRICES } from "#lib/constants.js";
+import { VerbrauchsausweisWohnenKomplett } from "./db.js";
export function createLineItem(name: string, preis: number, steuer: number) {
return {
- "type": "custom",
- "name": name,
- "description": "",
- "quantity": 1,
- "lineItemAmount": preis,
- "unitName": name,
- "unitPrice": {
- "currency": "EUR",
- "grossAmount": preis,
- "taxRatePercentage": steuer
- }
+ type: "custom",
+ name: name,
+ description: "",
+ quantity: 1,
+ lineItemAmount: preis,
+ unitName: name,
+ unitPrice: {
+ currency: "EUR",
+ grossAmount: preis,
+ taxRatePercentage: steuer,
+ },
};
}
-export function addedServicesNeu(data: any, rechnung: Rechnung, steuer: number){
- if (rechnung.services.includes(Enums.Service.Qualitaetsdruck)){
- data["lineItems"].push(createLineItem('Zusatzservice Postversand', 9, steuer))
+type LineItem = ReturnType;
+
+export function addedServicesNeu(
+ data: any,
+ rechnung: Rechnung,
+ steuer: number
+) {
+ if (rechnung.services.includes(Enums.Service.Qualitaetsdruck)) {
+ data["lineItems"].push(
+ createLineItem("Zusatzservice Postversand", 9, steuer)
+ );
}
- if (rechnung.services.includes(Enums.Service.Aushang)){
- data["lineItems"].push(createLineItem('Zusatzservice Aushang', 10, steuer))
+ if (rechnung.services.includes(Enums.Service.Aushang)) {
+ data["lineItems"].push(
+ createLineItem("Zusatzservice Aushang", 10, steuer)
+ );
}
- if (rechnung.services.includes(Enums.Service.SameDay)){
- data["lineItems"].push(createLineItem('Zusatzservice Same Day Service', 29, steuer))
+ if (rechnung.services.includes(Enums.Service.SameDay)) {
+ data["lineItems"].push(
+ createLineItem("Zusatzservice Same Day Service", 29, steuer)
+ );
}
- if (rechnung.services.includes(Enums.Service.Telefonberatung)){
- data["lineItems"].push(createLineItem('Zusatzservice Telefonische Beratung', 75, steuer))
+ if (rechnung.services.includes(Enums.Service.Telefonberatung)) {
+ data["lineItems"].push(
+ createLineItem("Zusatzservice Telefonische Beratung", 75, steuer)
+ );
}
return data;
@@ -45,17 +60,24 @@ export function addedServicesNeu(data: any, rechnung: Rechnung, steuer: number){
* @return array
* @throws Error
*/
-export async function createInvoice(ausweis: VerbrauchsausweisWohnen, rechnung: Rechnung) {
+export async function createInvoice(
+ ausweis: VerbrauchsausweisWohnenKomplett,
+ rechnung: Rechnung
+) {
+ if (!ausweis) {
+ throw new Error("Ausweis ist null");
+ }
+
if (!ausweis.benutzer_id) {
- throw new Error("Benutzer ist nicht vorhanden")
+ throw new Error("Benutzer ist nicht vorhanden");
}
const user = await prisma.benutzer.findUnique({
where: {
- id: ausweis.benutzer_id
- }
- })
-
+ id: ausweis.benutzer_id,
+ },
+ });
+
if (!user) {
throw new Error("Nutzer existiert nicht!");
} else if (user.lex_office_id == null) {
@@ -63,129 +85,198 @@ export async function createInvoice(ausweis: VerbrauchsausweisWohnen, rechnung:
const lex_office_id = await createLexOfficeCustomer(user);
user.lex_office_id = lex_office_id;
-
+
await prisma.benutzer.update({
where: {
- id: user.id
+ id: user.id,
},
data: {
- lex_office_id: user.lex_office_id
- }
- })
+ lex_office_id: user.lex_office_id,
+ },
+ });
}
- const ausweisart = getAusweisartFromId(ausweis.id);
+ const ausweisart = getAusweisartFromId(ausweis.id);
let data = {
- "voucherDate": moment().format('YYYY-MM-DDTHH:mm:ss.SSSZ'),
- "taxConditions": {
- "taxType": "gross"
+ voucherDate: moment().format("YYYY-MM-DDTHH:mm:ss.SSSZ"),
+ taxConditions: {
+ taxType: "gross",
},
- "shippingConditions": {
- "shippingType": "none"
+ shippingConditions: {
+ shippingType: "none",
},
- "address": {
- "contactId": user.lex_office_id,
- "name": rechnung.empfaenger || "----",
- "street": rechnung.strasse,
- "city": rechnung.ort,
- "zip": rechnung.plz,
- "countryCode": "DE",
- "supplement": rechnung.zusatzzeile
+ address: {
+ contactId: user.lex_office_id,
+ name: rechnung.empfaenger || "----",
+ street: rechnung.strasse,
+ city: rechnung.ort,
+ zip: rechnung.plz,
+ countryCode: "DE",
+ supplement: rechnung.zusatzzeile,
},
- "lineItems": [],
- "totalPrice": {
- "currency": "EUR",
- "totalGrossAmount": rechnung.betrag,
+ lineItems: [] as LineItem[],
+ totalPrice: {
+ currency: "EUR",
+ totalGrossAmount: rechnung.betrag,
},
- "title": "Rechnung",
- "introduction": "Ihren Energieausweis (Ausweis ID {ausweis.id}) stellen wir Ihnen hiermit in Rechnung",
- "remark": "Vielen Dank für Ihren Einkauf."
+ title: "Rechnung",
+ introduction:
+ "Ihren Energieausweis (Ausweis ID {ausweis.id}) stellen wir Ihnen hiermit in Rechnung",
+ remark: "Vielen Dank für Ihren Einkauf.",
};
if (rechnung.status == Enums.Rechnungsstatus.paid) {
- const types = {
- [Enums.Bezahlmethoden.paypal]: "PayPal",
- [Enums.Bezahlmethoden.creditcard]: "Kreditkarte",
- [Enums.Bezahlmethoden.sofort]: "Sofortüberweisung",
- [Enums.Bezahlmethoden.giropay]: "Giropay",
+ const types: Record = {
+ [Enums.Bezahlmethoden.paypal]: "PayPal",
+ [Enums.Bezahlmethoden.creditcard]: "Kreditkarte",
+ [Enums.Bezahlmethoden.sofort]: "Sofortüberweisung",
+ [Enums.Bezahlmethoden.giropay]: "Giropay",
+ [Enums.Bezahlmethoden.rechnung]: "Rechnung",
};
const type = types[rechnung.bezahlmethode];
- data["introduction"] = `Vielen Dank für Ihren Einkauf (Ausweis ID ${ausweis.id}). Ihre Rechnung haben sie bereits mit ${type} bezahlt.`;
+ data[
+ "introduction"
+ ] = `Vielen Dank für Ihren Einkauf (Ausweis ID ${ausweis.id}). Ihre Rechnung haben sie bereits mit ${type} bezahlt.`;
}
const tax_rate = 19;
if (rechnung.betrag == 15) {
// Korrektur alleinstehend
- data["lineItems"].push(createLineItem("Service Korrektur anfordern", rechnung.betrag, 19));
+ data["lineItems"].push(
+ createLineItem("Service Korrektur anfordern", rechnung.betrag, 19)
+ );
} else if (rechnung.betrag == 476) {
- data["lineItems"].push(createLineItem("GEG Berechnung Wohngebäude", rechnung.betrag, 19));
+ data["lineItems"].push(
+ createLineItem("GEG Berechnung Wohngebäude", rechnung.betrag, 19)
+ );
} else if (rechnung.betrag > 400 && rechnung.betrag != 476) {
- data["lineItems"].push(createLineItem("Bedarfsausweis Gewerbe", rechnung.betrag, 19));
+ data["lineItems"].push(
+ createLineItem("Bedarfsausweis Gewerbe", rechnung.betrag, 19)
+ );
} else if (ausweisart == Enums.Ausweisart.VerbrauchsausweisWohnen) {
if (ausweis.ausweistyp == Enums.AusweisTyp.Standard) {
- data["lineItems"].push(createLineItem(`Verbrauchsausweis Online (ID ${ausweis.id})`, PRICES.VerbrauchsausweisWohnen.Standard, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Verbrauchsausweis Online (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisWohnen.Standard,
+ 19
+ )
+ );
} else if (ausweis.ausweistyp == Enums.AusweisTyp.Beratung) {
- data["lineItems"].push(createLineItem(`Verbrauchsausweis Online (Vorprüfung negativ) (ID ${ausweis.id})`, PRICES.VerbrauchsausweisWohnen.Beratung, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Verbrauchsausweis Online (Vorprüfung negativ) (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisWohnen.Beratung,
+ 19
+ )
+ );
} else if (ausweis.ausweistyp == Enums.AusweisTyp.Offline) {
- data["lineItems"].push(createLineItem(`Verbrauchsausweis Offline (ID ${ausweis.id})`, PRICES.VerbrauchsausweisWohnen.Offline, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Verbrauchsausweis Offline (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisWohnen.Offline,
+ 19
+ )
+ );
}
} else if (ausweisart == Enums.Ausweisart.BedarfsausweisWohnen) {
if (ausweis.ausweistyp == Enums.AusweisTyp.Standard) {
- data["lineItems"].push(createLineItem(`Bedarfsausweis Online (ID ${ausweis.id})`, PRICES.VerbrauchsausweisWohnen.Standard, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Bedarfsausweis Online (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisWohnen.Standard,
+ 19
+ )
+ );
} else if (ausweis.ausweistyp == Enums.AusweisTyp.Beratung) {
- data["lineItems"].push(createLineItem(`Bedarfsausweis Online (Vorprüfung negativ) (ID ${ausweis.id})`, PRICES.VerbrauchsausweisWohnen.Beratung, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Bedarfsausweis Online (Vorprüfung negativ) (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisWohnen.Beratung,
+ 19
+ )
+ );
} else if (ausweis.ausweistyp == Enums.AusweisTyp.Offline) {
- data["lineItems"].push(createLineItem(`Bedarfsausweis Offline (ID ${ausweis.id})`, PRICES.VerbrauchsausweisWohnen.Offline, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Bedarfsausweis Offline (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisWohnen.Offline,
+ 19
+ )
+ );
}
} else if (ausweisart == Enums.Ausweisart.VerbrauchsausweisGewerbe) {
if (ausweis.ausweistyp == Enums.AusweisTyp.Standard) {
- data["lineItems"].push(createLineItem(`Verbrauchsausweis Nichtwohngebäude Online (ID ${ausweis.id})`, PRICES.VerbrauchsausweisGewerbe.Standard, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Verbrauchsausweis Nichtwohngebäude Online (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisGewerbe.Standard,
+ 19
+ )
+ );
} else if (ausweis.ausweistyp == Enums.AusweisTyp.Beratung) {
- data["lineItems"].push(createLineItem(`Verbrauchsausweis Nichtwohngebäude Online (Vorprüfung negativ) (ID ${ausweis.id})`, PRICES.VerbrauchsausweisGewerbe.Beratung, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Verbrauchsausweis Nichtwohngebäude Online (Vorprüfung negativ) (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisGewerbe.Beratung,
+ 19
+ )
+ );
} else if (ausweis.ausweistyp == Enums.AusweisTyp.Offline) {
- data["lineItems"].push(createLineItem(`Verbrauchsausweis Nichtwohngebäude Offline (ID ${ausweis.id})`, PRICES.VerbrauchsausweisGewerbe.Offline, 19));
+ data["lineItems"].push(
+ createLineItem(
+ `Verbrauchsausweis Nichtwohngebäude Offline (ID ${ausweis.id})`,
+ PRICES.VerbrauchsausweisGewerbe.Offline,
+ 19
+ )
+ );
}
}
data = addedServicesNeu(data, rechnung, 19);
-
- const response = await fetch("https://api.lexoffice.io/v1/invoices?finalize=true", {
- method: "POST",
- headers: {
- Accept: `application/json`,
- Authorization: `Bearer ${LEX_OFFICE_API_KEY}`,
- "Content-Type": "application/json"
- },
- body: JSON.stringify(data)
- })
+ const response = await fetch(
+ "https://api.lexoffice.io/v1/invoices?finalize=true",
+ {
+ method: "POST",
+ headers: {
+ Accept: `application/json`,
+ Authorization: `Bearer ${LEX_OFFICE_API_KEY}`,
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify(data),
+ }
+ );
if (response.status == 400) {
- throw new Error("Fehler beim Absenden der Request.")
+ throw new Error("Fehler beim Absenden der Request.");
}
- const invoice = await response.json()
+ const invoice = await response.json();
// Wir müssen den Ausweis nun wieder abfragen, um die erstellte Rechnungsnummer zu bekommen.
const response_id = invoice["id"];
- const request = await fetch(`https://api.lexoffice.io/v1/invoices/${response_id}`, {
- method: "GET",
- headers: {
- Accept: `application/json`,
- Authorization: `Bearer ${LEX_OFFICE_API_KEY}`,
- "Content-Type": "application/json"
+ const request = await fetch(
+ `https://api.lexoffice.io/v1/invoices/${response_id}`,
+ {
+ method: "GET",
+ headers: {
+ Accept: `application/json`,
+ Authorization: `Bearer ${LEX_OFFICE_API_KEY}`,
+ "Content-Type": "application/json",
+ },
}
- })
+ );
- const abfrage_response = await request.json()
+ const abfrage_response = await request.json();
return {
id: invoice["id"],
- voucherNumber: abfrage_response["voucherNumber"]
- }
-}
\ No newline at end of file
+ voucherNumber: abfrage_response["voucherNumber"],
+ };
+}
diff --git a/src/modules/Dashboard/DashboardModule.svelte b/src/modules/Dashboard/DashboardModule.svelte
index 9cd5f3a4..0ac7dc41 100644
--- a/src/modules/Dashboard/DashboardModule.svelte
+++ b/src/modules/Dashboard/DashboardModule.svelte
@@ -2,7 +2,6 @@
import "../../style/formular.css";
import {
BenutzerClient,
- ObjektClient,
ObjektKomplettClient,
} from "#components/Ausweis/types.js";
import DashboardObjekt from "#components/Dashboard/DashboardObjekt.svelte";
@@ -14,10 +13,7 @@
import Cookies from "js-cookie";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import Pagination from "#components/Pagination.svelte";
- import AusweisePruefenFilter from "#components/Dashboard/AusweisePruefenFilter.svelte";
- import { filterAusweise } from "#lib/filters.js";
- import { z, ZodTypeAny } from "zod";
- import { Enums } from "#lib/client/prisma.js";
+ import { Enums, Objekt } from "#lib/client/prisma.js";
export let user: BenutzerClient;
export let objekte: ObjektKomplettClient[];
@@ -26,7 +22,7 @@
let objektOverlayHidden = true;
- let objekt: Omit = {
+ let objekt: Objekt = {
adresse: "",
erstellungsdatum: new Date(),
latitude: 0,
@@ -91,8 +87,6 @@
objekte = objekte
}
- let filters: { name: keyof z.infer, type: ZodTypeAny, value: any }[] = []
-
export let id: string = "";
diff --git a/src/modules/ImpersonateUserModule.svelte b/src/modules/ImpersonateUserModule.svelte
index 8b623303..2175c94c 100644
--- a/src/modules/ImpersonateUserModule.svelte
+++ b/src/modules/ImpersonateUserModule.svelte
@@ -27,7 +27,7 @@
{user.vorname} {user.name}
{user.email}
-