@@ -92,26 +116,18 @@
{#if Object.keys($notifications).length > 0}
- {Object.keys($notifications).length}
+ {Object.keys($notifications).length}
{/if}
-
-
-
-
@@ -121,8 +137,10 @@
+
diff --git a/src/generated/zod/bedarfsausweisgewerbe.ts b/src/generated/zod/bedarfsausweisgewerbe.ts
index 5eea5ecc..c387134e 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, Ausweisart } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const BedarfsausweisGewerbeSchema = z.object({
id: z.string(),
@@ -20,7 +20,6 @@ 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 2abcdb06..2960c4cb 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, Ausweisart } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const BedarfsausweisWohnenSchema = z.object({
id: z.string(),
@@ -86,7 +86,6 @@ 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 3ce71a6b..36d05932 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, Ausweisart } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const GEGNachweisGewerbeSchema = z.object({
id: z.string(),
@@ -10,7 +10,6 @@ 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 9517fb13..3d454c3e 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, Ausweisart } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const GEGNachweisWohnenSchema = z.object({
id: z.string(),
@@ -10,7 +10,6 @@ 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 63fe2d8b..a7c16a0d 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, Ausweisart } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const VerbrauchsausweisGewerbeSchema = z.object({
id: z.string(),
@@ -52,7 +52,6 @@ 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 3425b342..34b9c4af 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, Ausweisart } from "@prisma/client"
+import { Ausstellgrund, AusweisTyp } from "@prisma/client"
export const VerbrauchsausweisWohnenSchema = z.object({
id: z.string().describe("ID des Ausweises"),
@@ -38,7 +38,6 @@ 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 5a4ccece..d3726c72 100644
--- a/src/layouts/DashboardLayout.astro
+++ b/src/layouts/DashboardLayout.astro
@@ -3,19 +3,22 @@
import "../style/global.css";
import "../../svelte-dialogs.config.js";
import DashboardSidebar from "../components/Dashboard/DashboardSidebar.svelte";
-import { BenutzerClient } from "#components/Ausweis/types";
+import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
+import { BenutzerClient, ObjektClient } from "#components/Ausweis/types";
+
+const valid = validateAccessTokenServer(Astro)
+
+if (!valid) {
+ Astro.redirect("/auth/login", 302)
+}
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",
@@ -50,22 +53,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 4bcb2bfa..4b02ac93 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: ${ausweis.id || ""}`, {
+ pages[0].drawText(`ID: ${aufnahme.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,20 +213,15 @@ 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;
@@ -238,17 +233,8 @@ 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", {
@@ -277,33 +263,6 @@ 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,
@@ -311,13 +270,6 @@ 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),
@@ -344,43 +296,16 @@ 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 - 293)
+ addCheckMark(pages[2], 41, height - 269)
}
if (ausweis.kuehlung_enthalten) {
- addCheckMark(pages[2], 41, height - 305)
+ addCheckMark(pages[2], 41, height - 281)
}
if (ausweis.stromverbrauch_enthaelt_heizung) {
diff --git a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
index a2de2af6..55bb779e 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: ${ausweis.id || ""}`, {
+ pages[0].drawText(`ID: ${aufnahme.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 476ccc13..c5734609 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 8f7554c3..39235642 100644
--- a/src/lib/server/db.ts
+++ b/src/lib/server/db.ts
@@ -28,8 +28,6 @@ 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 9d201cfa..43f4160f 100644
--- a/src/lib/server/invoice.ts
+++ b/src/lib/server/invoice.ts
@@ -1,52 +1,37 @@
import { getAusweisartFromId } from "#components/Ausweis/types.js";
import moment from "moment";
import { createLexOfficeCustomer } from "./lexoffice.js";
-import { Enums, prisma, Rechnung } from "./prisma.js";
+import { Enums, prisma, Rechnung, VerbrauchsausweisWohnen } 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
+ }
};
}
-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)
- );
+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;
@@ -60,24 +45,17 @@ export function addedServicesNeu(
* @return array
* @throws Error
*/
-export async function createInvoice(
- ausweis: VerbrauchsausweisWohnenKomplett,
- rechnung: Rechnung
-) {
- if (!ausweis) {
- throw new Error("Ausweis ist null");
- }
-
+export async function createInvoice(ausweis: VerbrauchsausweisWohnen, rechnung: Rechnung) {
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) {
@@ -85,198 +63,129 @@ export async function createInvoice(
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: [] as LineItem[],
- totalPrice: {
- currency: "EUR",
- totalGrossAmount: rechnung.betrag,
+ "lineItems": [],
+ "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: Record = {
- [Enums.Bezahlmethoden.paypal]: "PayPal",
- [Enums.Bezahlmethoden.creditcard]: "Kreditkarte",
- [Enums.Bezahlmethoden.sofort]: "Sofortüberweisung",
- [Enums.Bezahlmethoden.giropay]: "Giropay",
- [Enums.Bezahlmethoden.rechnung]: "Rechnung",
+ const types = {
+ [Enums.Bezahlmethoden.paypal]: "PayPal",
+ [Enums.Bezahlmethoden.creditcard]: "Kreditkarte",
+ [Enums.Bezahlmethoden.sofort]: "Sofortüberweisung",
+ [Enums.Bezahlmethoden.giropay]: "Giropay",
};
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"],
- };
-}
+ voucherNumber: abfrage_response["voucherNumber"]
+ }
+}
\ No newline at end of file
diff --git a/src/modules/Dashboard/DashboardModule.svelte b/src/modules/Dashboard/DashboardModule.svelte
index 0ac7dc41..9cd5f3a4 100644
--- a/src/modules/Dashboard/DashboardModule.svelte
+++ b/src/modules/Dashboard/DashboardModule.svelte
@@ -2,6 +2,7 @@
import "../../style/formular.css";
import {
BenutzerClient,
+ ObjektClient,
ObjektKomplettClient,
} from "#components/Ausweis/types.js";
import DashboardObjekt from "#components/Dashboard/DashboardObjekt.svelte";
@@ -13,7 +14,10 @@
import Cookies from "js-cookie";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import Pagination from "#components/Pagination.svelte";
- import { Enums, Objekt } from "#lib/client/prisma.js";
+ 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";
export let user: BenutzerClient;
export let objekte: ObjektKomplettClient[];
@@ -22,7 +26,7 @@
let objektOverlayHidden = true;
- let objekt: Objekt = {
+ let objekt: Omit = {
adresse: "",
erstellungsdatum: new Date(),
latitude: 0,
@@ -87,6 +91,8 @@
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 2175c94c..8b623303 100644
--- a/src/modules/ImpersonateUserModule.svelte
+++ b/src/modules/ImpersonateUserModule.svelte
@@ -27,7 +27,7 @@
{user.vorname} {user.name}
{user.email}
-