File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 10 MiB After Width: | Height: | Size: 10 MiB |
@@ -443,13 +443,17 @@
|
|||||||
<span class="font-bold">Gebäude (Bj {aufnahme.baujahr_gebaeude})</span> mit
|
<span class="font-bold">Gebäude (Bj {aufnahme.baujahr_gebaeude})</span> mit
|
||||||
{#if aufnahme.flaeche > 0 && aufnahme.flaeche !== null}
|
{#if aufnahme.flaeche > 0 && aufnahme.flaeche !== null}
|
||||||
{aufnahme.flaeche} m² Wohnfläche
|
{aufnahme.flaeche} m² Wohnfläche
|
||||||
sowie
|
|
||||||
{/if}
|
{/if}
|
||||||
{aufnahme.nutzflaeche} m² energetische Nutzfläche. Als Ausstellgrund wurde {ausweis.ausstellgrund} angegeben.
|
{#if aufnahme.nutzflaeche === 0}
|
||||||
|
. Die energetische Nutzfläche wurde nach §82 GEG aus der Wohnfläche ermittelt.
|
||||||
|
{:else}
|
||||||
|
sowie {aufnahme.nutzflaeche} m² energetische Nutzfläche.
|
||||||
|
{/if}
|
||||||
|
Als Ausstellgrund wurde {ausweis.ausstellgrund} angegeben.
|
||||||
{aufnahme.gebaeudeteil === "Wohnen"
|
{aufnahme.gebaeudeteil === "Wohnen"
|
||||||
? "Die eingegebenen Daten beziehen sich auf den Wohnteil eines gemischt genutzten Gebäudes."
|
? "Die eingegebenen Daten beziehen sich auf den Wohnteil eines gemischt genutzten Gebäudes."
|
||||||
: "Die eingegebenen Daten beziehen sich auf das gesamte Gebäude."}
|
: "Die eingegebenen Daten beziehen sich auf das gesamte Gebäude."}
|
||||||
{aufnahme.saniert ? "Das Gebäude ist in unsaniertem Zustand." : "Das Gebäude ist in saniertem Zustand."}
|
{aufnahme.saniert ? "Das Gebäude ist in saniertem Zustand." : "Das Gebäude ist in unsaniertem Zustand."}
|
||||||
</div>
|
</div>
|
||||||
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
<div class="text-sm">
|
<div class="text-sm">
|
||||||
@@ -523,7 +527,6 @@
|
|||||||
{aufnahme.standard_kessel ? "Standardkessel, " : ""}
|
{aufnahme.standard_kessel ? "Standardkessel, " : ""}
|
||||||
{aufnahme.durchlauf_erhitzer ? "Durchlauferhitzer, " : ""}
|
{aufnahme.durchlauf_erhitzer ? "Durchlauferhitzer, " : ""}
|
||||||
{aufnahme.solarsystem_warmwasser ? "Solarsystem für Warmwasser, " : ""}
|
{aufnahme.solarsystem_warmwasser ? "Solarsystem für Warmwasser, " : ""}
|
||||||
{aufnahme.waermepumpe ? "Wärmepumpe, " : ""}
|
|
||||||
{aufnahme.brennwert_kessel ? "Brennwertkessel, " : ""}
|
{aufnahme.brennwert_kessel ? "Brennwertkessel, " : ""}
|
||||||
{aufnahme.standard_kessel ? "Standardkessel, " : ""}
|
{aufnahme.standard_kessel ? "Standardkessel, " : ""}
|
||||||
{aufnahme.warmwasser_rohre_gedaemmt ? "Warmwasserrohre gedämmt, " : ""}
|
{aufnahme.warmwasser_rohre_gedaemmt ? "Warmwasserrohre gedämmt, " : ""}
|
||||||
|
|||||||
@@ -15,10 +15,11 @@
|
|||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
ObjektKomplettClient,
|
ObjektKomplettClient,
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
import { RechnungSchema } from "src/generated/zod/rechnung.js";
|
import { Benutzer } from "#lib/server/prisma.js";
|
||||||
|
|
||||||
export let lightTheme: boolean;
|
export let lightTheme: boolean;
|
||||||
export let benutzer: BenutzerClient;
|
export let benutzer: Benutzer;
|
||||||
|
export let besteller: Benutzer;
|
||||||
|
|
||||||
let id: string;
|
let id: string;
|
||||||
</script>
|
</script>
|
||||||
@@ -70,14 +71,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
{benutzer.vorname} {benutzer.name}
|
{besteller.vorname} {besteller.name}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-xs text-gray-500">
|
<div class="text-xs text-gray-500">
|
||||||
Eigentümer oder im Auftrag
|
Eigentümer oder im Auftrag
|
||||||
</div>
|
</div>
|
||||||
<div class="text-xs text-gray-500">
|
<div class="text-xs text-gray-500">
|
||||||
<!-- Soll für den Aussteller sichtbar sein -->
|
<!-- Soll für den Aussteller sichtbar sein -->
|
||||||
Telefon {benutzer.telefon}
|
Telefon {besteller.telefon}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,19 +18,19 @@ const { title } = Astro.props;
|
|||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { H } from "highlight.run";
|
// import { H } from "highlight.run";
|
||||||
|
|
||||||
if (import.meta.env.PROD) {
|
// if (import.meta.env.PROD) {
|
||||||
H.init("1jdkoe52", {
|
// H.init("1jdkoe52", {
|
||||||
serviceName: "online-energieausweis",
|
// serviceName: "online-energieausweis",
|
||||||
backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
// backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
||||||
tracingOrigins: true,
|
// tracingOrigins: true,
|
||||||
networkRecording: {
|
// networkRecording: {
|
||||||
enabled: true,
|
// enabled: true,
|
||||||
recordHeadersAndBody: true
|
// recordHeadersAndBody: true
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
window.addEventListener("scroll", () => {
|
window.addEventListener("scroll", () => {
|
||||||
const skala = document.getElementById("skala");
|
const skala = document.getElementById("skala");
|
||||||
|
|||||||
@@ -18,19 +18,19 @@ const { title } = Astro.props;
|
|||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { H } from "highlight.run";
|
// import { H } from "highlight.run";
|
||||||
|
|
||||||
if (import.meta.env.PROD) {
|
// if (import.meta.env.PROD) {
|
||||||
H.init("1jdkoe52", {
|
// H.init("1jdkoe52", {
|
||||||
serviceName: "online-energieausweis",
|
// serviceName: "online-energieausweis",
|
||||||
backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
// backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
||||||
tracingOrigins: true,
|
// tracingOrigins: true,
|
||||||
networkRecording: {
|
// networkRecording: {
|
||||||
enabled: true,
|
// enabled: true,
|
||||||
recordHeadersAndBody: true
|
// recordHeadersAndBody: true
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,19 +35,19 @@ const schema = JSON.stringify({
|
|||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { H } from "highlight.run";
|
// import { H } from "highlight.run";
|
||||||
|
|
||||||
if (import.meta.env.PROD) {
|
// if (import.meta.env.PROD) {
|
||||||
H.init("1jdkoe52", {
|
// H.init("1jdkoe52", {
|
||||||
serviceName: "online-energieausweis",
|
// serviceName: "online-energieausweis",
|
||||||
backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
// backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
||||||
tracingOrigins: true,
|
// tracingOrigins: true,
|
||||||
networkRecording: {
|
// networkRecording: {
|
||||||
enabled: true,
|
// enabled: true,
|
||||||
recordHeadersAndBody: true
|
// recordHeadersAndBody: true
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|||||||
@@ -3,14 +3,15 @@
|
|||||||
import "../style/global.css";
|
import "../style/global.css";
|
||||||
import "../../svelte-dialogs.config.js";
|
import "../../svelte-dialogs.config.js";
|
||||||
import DashboardSidebar from "../components/Dashboard/DashboardSidebar.svelte";
|
import DashboardSidebar from "../components/Dashboard/DashboardSidebar.svelte";
|
||||||
import { BenutzerClient } from "#components/Ausweis/types";
|
import { Benutzer } from "#lib/server/prisma";
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
title: string;
|
title: string;
|
||||||
user: BenutzerClient;
|
user: Benutzer;
|
||||||
|
besteller: Benutzer;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { title, user } = Astro.props;
|
const { title, user, besteller } = Astro.props;
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
Astro.redirect("/auth/login", 302);
|
Astro.redirect("/auth/login", 302);
|
||||||
@@ -44,21 +45,29 @@ const schema = JSON.stringify({
|
|||||||
let lightTheme = Astro.cookies.get("theme")?.value === "light";
|
let lightTheme = Astro.cookies.get("theme")?.value === "light";
|
||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script >
|
||||||
import { H } from "highlight.run";
|
// import { H } from "highlight.run";
|
||||||
|
|
||||||
if (import.meta.env.PROD) {
|
// const user = JSON.parse(document.body.dataset.user);
|
||||||
H.init("1jdkoe52", {
|
|
||||||
serviceName: "online-energieausweis",
|
// if (import.meta.env.PROD) {
|
||||||
backendUrl:
|
// H.init("1jdkoe52", {
|
||||||
"https://highlight-backend.online-energieausweis.org/public",
|
// serviceName: "online-energieausweis",
|
||||||
tracingOrigins: true,
|
// backendUrl:
|
||||||
networkRecording: {
|
// "https://highlight-backend.online-energieausweis.org/public",
|
||||||
enabled: true,
|
// tracingOrigins: true,
|
||||||
recordHeadersAndBody: true,
|
// networkRecording: {
|
||||||
},
|
// enabled: true,
|
||||||
});
|
// recordHeadersAndBody: true,
|
||||||
}
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
// if (user) {
|
||||||
|
// H.identify(user.email, {
|
||||||
|
// id: user.id
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
@@ -108,7 +117,7 @@ let lightTheme = Astro.cookies.get("theme")?.value === "light";
|
|||||||
</title>
|
</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body data-user={JSON.stringify({ id: user.id, email: user.email })}>
|
||||||
<main
|
<main
|
||||||
class="p-0 grid max-w-[1920px]
|
class="p-0 grid max-w-[1920px]
|
||||||
xs:grid-cols-[minmax(1fr,1fr)] xs:gap-1 xs:p-0
|
xs:grid-cols-[minmax(1fr,1fr)] xs:gap-1 xs:p-0
|
||||||
@@ -121,6 +130,7 @@ let lightTheme = Astro.cookies.get("theme")?.value === "light";
|
|||||||
<DashboardSidebar
|
<DashboardSidebar
|
||||||
lightTheme={lightTheme}
|
lightTheme={lightTheme}
|
||||||
benutzer={user}
|
benutzer={user}
|
||||||
|
besteller={besteller}
|
||||||
client:load
|
client:load
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -19,19 +19,19 @@ const { title } = Astro.props;
|
|||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { H } from "highlight.run";
|
// import { H } from "highlight.run";
|
||||||
|
|
||||||
if (import.meta.env.PROD) {
|
// if (import.meta.env.PROD) {
|
||||||
H.init("1jdkoe52", {
|
// H.init("1jdkoe52", {
|
||||||
serviceName: "online-energieausweis",
|
// serviceName: "online-energieausweis",
|
||||||
backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
// backendUrl: "https://highlight-backend.online-energieausweis.org/public",
|
||||||
tracingOrigins: true,
|
// tracingOrigins: true,
|
||||||
networkRecording: {
|
// networkRecording: {
|
||||||
enabled: true,
|
// enabled: true,
|
||||||
recordHeadersAndBody: true
|
// recordHeadersAndBody: true
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
window.addEventListener("scroll", (event) => {
|
window.addEventListener("scroll", (event) => {
|
||||||
|
|||||||
@@ -167,21 +167,21 @@
|
|||||||
><GebaeudeDaten bind:aufnahme bind:objekt {ausweisart} /></Bereich
|
><GebaeudeDaten bind:aufnahme bind:objekt {ausweisart} /></Bereich
|
||||||
>
|
>
|
||||||
|
|
||||||
<!-- C - Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen -->
|
<!-- C - Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen
|
||||||
|
|
||||||
<Bereich
|
<Bereich
|
||||||
bereich="C"
|
bereich="C"
|
||||||
title="Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen"
|
title="Berechnungshilfe und Tabelle der Hüllflächen, U-Werte und Gebäudevolumen"
|
||||||
><GebaeudeVolumen bind:ausweis /></Bereich
|
><GebaeudeVolumen bind:ausweis /></Bereich
|
||||||
>
|
> -->
|
||||||
|
|
||||||
<!-- D - Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden -->
|
<!-- D - Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden
|
||||||
|
|
||||||
<Bereich
|
<Bereich
|
||||||
bereich="D"
|
bereich="D"
|
||||||
title="Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden"
|
title="Eingabe der Fensterflächen und Konstruktion von Dach, Wänden und Boden"
|
||||||
><Fensterflaechen bind:ausweis /></Bereich
|
><Fensterflaechen bind:ausweis /></Bereich
|
||||||
>
|
> -->
|
||||||
|
|
||||||
<!-- E - Angabe zu Lüftung und Kühlung -->
|
<!-- E - Angabe zu Lüftung und Kühlung -->
|
||||||
|
|
||||||
@@ -190,7 +190,7 @@
|
|||||||
>
|
>
|
||||||
|
|
||||||
<!-- F Angaben zur Heizungsanlage -->
|
<!-- F Angaben zur Heizungsanlage -->
|
||||||
<!-- <Bereich bereich="D" title="Angaben zur Heizunganlage"
|
<Bereich bereich="D" title="Angaben zur Heizunganlage"
|
||||||
><SanierungszustandHeizungsanlage
|
><SanierungszustandHeizungsanlage
|
||||||
bind:images={bilder}
|
bind:images={bilder}
|
||||||
bind:objekt
|
bind:objekt
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
{#if ausweis.aufnahme.bilder.length > 0}
|
{#if ausweis.aufnahme.bilder.length > 0}
|
||||||
<Carousel perPage={1}>
|
<Carousel perPage={1}>
|
||||||
{#each ausweis.aufnahme.bilder as bild, i (i)}
|
{#each ausweis.aufnahme.bilder as bild, i (i)}
|
||||||
<img src="/bilder/{bild.id}.jpg" alt={bild.kategorie} class="max-h-[15vh] h-full w-full object-contain">
|
<img src="/bilder/{bild.id}.jpg" alt={bild.kategorie} loading="lazy" class="max-h-[15vh] h-full w-full object-contain">
|
||||||
{/each}
|
{/each}
|
||||||
<span slot="left-control" class="p-2.5 bg-opacity-50 bg-white block rounded-full"><ChevronLeft size={24}></ChevronLeft></span>
|
<span slot="left-control" class="p-2.5 bg-opacity-50 bg-white block rounded-full"><ChevronLeft size={24}></ChevronLeft></span>
|
||||||
<span slot="right-control" class="p-2.5 bg-opacity-50 bg-white block rounded-full"><ChevronRight size={24}></ChevronRight></span>
|
<span slot="right-control" class="p-2.5 bg-opacity-50 bg-white block rounded-full"><ChevronRight size={24}></ChevronRight></span>
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import { UUidWithPrefix } from "#components/Ausweis/types.js";
|
import { UUidWithPrefix } from "#components/Ausweis/types.js";
|
||||||
|
import { transport } from "#lib/mail.js";
|
||||||
import { adminMiddleware } from "#lib/middleware/authorization.js";
|
import { adminMiddleware } from "#lib/middleware/authorization.js";
|
||||||
import { mollieClient } from "#lib/mollie.js";
|
import { mollieClient } from "#lib/mollie.js";
|
||||||
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
|
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
|
||||||
import { Prisma, prisma } from "#lib/server/prisma.js";
|
import { Benutzer, Prisma, prisma } from "#lib/server/prisma.js";
|
||||||
import { RefundStatus } from "@mollie/api-client";
|
import { RefundStatus } from "@mollie/api-client";
|
||||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
@@ -35,6 +36,12 @@ export const PUT = defineApiRoute({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const user = await prisma.benutzer.findUnique({
|
||||||
|
where: {
|
||||||
|
id: ausweis.benutzer_id as string
|
||||||
|
}
|
||||||
|
}) as Benutzer;
|
||||||
|
|
||||||
const response = await adapter.findUnique({
|
const response = await adapter.findUnique({
|
||||||
where: {
|
where: {
|
||||||
id: input.ausweis_id
|
id: input.ausweis_id
|
||||||
@@ -107,5 +114,38 @@ export const PUT = defineApiRoute({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await transport.sendMail({
|
||||||
|
from: `"IBCornelsen" <info@online-energieausweis.org>`,
|
||||||
|
to: rechnung.email || user.email,
|
||||||
|
bcc: "info@online-energieausweis.org",
|
||||||
|
subject: `Stornierung des Energieausweises vom Ingenieurbüro Cornelsen (ID: ${ausweis.id})`,
|
||||||
|
html: `<p>Sehr geehrte*r ${user.vorname} ${user.name},</p>
|
||||||
|
|
||||||
|
<p>Ihr Energieausweis wurde soeben storniert.
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
<p>
|
||||||
|
Mit freundlichen Grüßen,
|
||||||
|
<br>
|
||||||
|
Dipl.-Ing. Jens Cornelsen
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<strong>IB Cornelsen</strong>
|
||||||
|
<br>
|
||||||
|
Katendeich 5A
|
||||||
|
<br>
|
||||||
|
21035 Hamburg
|
||||||
|
<br>
|
||||||
|
www.online-energieausweis.org
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
fon 040 · 209339850
|
||||||
|
<br>
|
||||||
|
fax 040 · 209339859
|
||||||
|
</p>`
|
||||||
|
});
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@@ -36,6 +36,7 @@ if (user.rolle === Enums.BenutzerRolle.USER) {
|
|||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true,
|
rechnung: true,
|
||||||
|
benutzer: true,
|
||||||
aufnahme: {
|
aufnahme: {
|
||||||
include: {
|
include: {
|
||||||
bilder: true,
|
bilder: true,
|
||||||
@@ -53,6 +54,7 @@ if (user.rolle === Enums.BenutzerRolle.USER) {
|
|||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true,
|
rechnung: true,
|
||||||
|
benutzer: true,
|
||||||
aufnahme: {
|
aufnahme: {
|
||||||
include: {
|
include: {
|
||||||
bilder: true,
|
bilder: true,
|
||||||
@@ -70,7 +72,7 @@ if (!ausweis) {
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<UserLayout title="Objekte" {user}>
|
<UserLayout title="Objekte" {user} besteller={ausweis.benutzer}>
|
||||||
<DashboardAufnahmeModule
|
<DashboardAufnahmeModule
|
||||||
{ausweis}
|
{ausweis}
|
||||||
benutzer={user}
|
benutzer={user}
|
||||||
|
|||||||
@@ -53,4 +53,6 @@ if (!result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Astro.redirect(`/dashboard/objekte/${result[0].id}?p=${page}`)
|
return Astro.redirect(`/dashboard/objekte/${result[0].id}?p=${page}`)
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<script></script>
|
||||||
Reference in New Issue
Block a user