Neuausstellung + Verschlankung
This commit is contained in:
@@ -12,15 +12,15 @@ export const createCaller = createCallerFactory({
|
|||||||
"admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-ausstellen.ts"),
|
"admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-ausstellen.ts"),
|
||||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
|
||||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
|
||||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
|
||||||
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||||
|
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||||
|
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||||
|
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||||
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
||||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||||
|
|||||||
@@ -10,8 +10,11 @@ import {
|
|||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
import {
|
import {
|
||||||
|
Aufnahme,
|
||||||
BedarfsausweisWohnen,
|
BedarfsausweisWohnen,
|
||||||
|
Bild,
|
||||||
Enums,
|
Enums,
|
||||||
|
Objekt,
|
||||||
Unterlage,
|
Unterlage,
|
||||||
VerbrauchsausweisGewerbe,
|
VerbrauchsausweisGewerbe,
|
||||||
VerbrauchsausweisWohnen,
|
VerbrauchsausweisWohnen,
|
||||||
@@ -528,12 +531,12 @@ export async function bedarfsausweisWohnenSpeichern(
|
|||||||
|
|
||||||
export async function ausweisSpeichern(
|
export async function ausweisSpeichern(
|
||||||
ausweis:
|
ausweis:
|
||||||
| VerbrauchsausweisWohnenClient
|
| VerbrauchsausweisWohnen
|
||||||
| VerbrauchsausweisGewerbeClient
|
| VerbrauchsausweisGewerbe
|
||||||
| BedarfsausweisWohnenClient,
|
| BedarfsausweisWohnen,
|
||||||
objekt: ObjektClient,
|
objekt: Objekt,
|
||||||
aufnahme: AufnahmeClient,
|
aufnahme: Aufnahme,
|
||||||
bilder: BildClient[],
|
bilder: Bild[],
|
||||||
unterlagen: Unterlage[],
|
unterlagen: Unterlage[],
|
||||||
ausweisart: Enums.Ausweisart
|
ausweisart: Enums.Ausweisart
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
window.history.pushState(
|
window.history.pushState(
|
||||||
{},
|
{},
|
||||||
"",
|
"",
|
||||||
`${location.pathname}?id=${ausweis.id}`
|
`${location.pathname}?ausweis_id=${ausweis.id}`
|
||||||
);
|
);
|
||||||
blockLocalStorageSync = true;
|
blockLocalStorageSync = true;
|
||||||
localStorage.clear()
|
localStorage.clear()
|
||||||
|
|||||||
@@ -1,939 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
|
||||||
import moment from "moment";
|
|
||||||
import {
|
|
||||||
AufnahmeClient,
|
|
||||||
getAusweisartFromId,
|
|
||||||
ObjektClient,
|
|
||||||
BildClient,
|
|
||||||
VerbrauchsausweisWohnenClient,
|
|
||||||
} from "./Ausweis/types.js";
|
|
||||||
import AusweisPruefenTooltip from "./AusweisPruefenTooltip.svelte";
|
|
||||||
import { addNotification } from "#components/Notifications/shared.js";
|
|
||||||
import { CheckCircled, CrossCircled, Image } from "radix-svelte-icons";
|
|
||||||
import ChevronDown from "radix-svelte-icons/src/lib/icons/ChevronDown.svelte";
|
|
||||||
import { Event } from "#lib/client/prisma.js";
|
|
||||||
import { api } from "astro-typesafe-api/client";
|
|
||||||
import Cookies from "js-cookie";
|
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
|
||||||
import NotificationWrapper from "./Notifications/NotificationWrapper.svelte";
|
|
||||||
|
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
|
||||||
export let aufnahme: AufnahmeClient;
|
|
||||||
export let objekt: ObjektClient;
|
|
||||||
export let bilder: BildClient[]
|
|
||||||
export let events: Event[]
|
|
||||||
export let calculations: Awaited<
|
|
||||||
ReturnType<typeof endEnergieVerbrauchVerbrauchsausweis_2016>
|
|
||||||
>;
|
|
||||||
|
|
||||||
async function ausweisAusstellen(uid: string) {
|
|
||||||
try {
|
|
||||||
await api.admin.ausstellen.GET.fetch({
|
|
||||||
id_ausweis: uid
|
|
||||||
}, {
|
|
||||||
headers: {
|
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} catch(e) {
|
|
||||||
addNotification({
|
|
||||||
message: "Das hat nicht geklappt.",
|
|
||||||
subtext: e as string,
|
|
||||||
timeout: 3000,
|
|
||||||
type: "error",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const ausweisArt = getAusweisartFromId(ausweis.id)
|
|
||||||
|
|
||||||
let verbrauchWWGesamt_1 = "";
|
|
||||||
let verbrauchWWGesamt_2 = "";
|
|
||||||
|
|
||||||
var Ausweisbild,
|
|
||||||
DatenBlattBild,
|
|
||||||
warmWasser,
|
|
||||||
anteilWarmwasser,
|
|
||||||
solarsystemWarmwasser;
|
|
||||||
|
|
||||||
let zurueckGestellt: any;
|
|
||||||
let symbolPruefung: any;
|
|
||||||
let StatusIcon: any;
|
|
||||||
let tooltip3Z1: any;
|
|
||||||
let tooltip3Z2: any;
|
|
||||||
let tooltip4Z1: any;
|
|
||||||
let tooltip4Z2: any;
|
|
||||||
let tooltip5Z1: any;
|
|
||||||
let tooltip5Z2: any;
|
|
||||||
let tooltip5Z3: any;
|
|
||||||
let tooltip6Z1: any;
|
|
||||||
let tooltip6Z2: any;
|
|
||||||
let tooltip7Z1: any;
|
|
||||||
let tooltip7Z2: any;
|
|
||||||
let tooltip8Z1: any;
|
|
||||||
let tooltip8Z2: any;
|
|
||||||
let tooltip9Z1: any;
|
|
||||||
let tooltip9Z2: any;
|
|
||||||
let tooltip10Z1: any;
|
|
||||||
let tooltip10Z2: any;
|
|
||||||
let tooltip11Z1: any;
|
|
||||||
let tooltip11Z2: any;
|
|
||||||
let tooltip12Z1: any;
|
|
||||||
let tooltip12Z2: any;
|
|
||||||
let tooltip13Z1: any;
|
|
||||||
let tooltip13Z2: any;
|
|
||||||
let tooltip14Z1: any;
|
|
||||||
let tooltip14Z2: any;
|
|
||||||
let tooltip15Z1: any;
|
|
||||||
let tooltip15Z2: any;
|
|
||||||
let tooltip16Z1: any;
|
|
||||||
let tooltip16Z2: any;
|
|
||||||
|
|
||||||
let table3Z1: any;
|
|
||||||
let table3Z2: any;
|
|
||||||
let table4Z1: any;
|
|
||||||
let table4Z2: any;
|
|
||||||
let table5Z1: any;
|
|
||||||
let table5Z2: any;
|
|
||||||
let table6Z1: any;
|
|
||||||
let table6Z2: any;
|
|
||||||
let table7Z1: any;
|
|
||||||
let table7Z2: any;
|
|
||||||
let table8Z1: any;
|
|
||||||
let table8Z2: any;
|
|
||||||
let table9Z1: any;
|
|
||||||
let table9Z2: any;
|
|
||||||
let table10Z1: any;
|
|
||||||
let table10Z2: any;
|
|
||||||
let table11Z1: any;
|
|
||||||
let table11Z2: any;
|
|
||||||
let table12Z1: any;
|
|
||||||
let table12Z2: any;
|
|
||||||
let table13Z1: any;
|
|
||||||
let table13Z2: any;
|
|
||||||
let table14Z1: any;
|
|
||||||
let table14Z2: any;
|
|
||||||
let table15Z1: any;
|
|
||||||
let table15Z2: any;
|
|
||||||
let table16Z1: any;
|
|
||||||
let table16Z2: any;
|
|
||||||
|
|
||||||
let Abgeschlossen: any;
|
|
||||||
|
|
||||||
if (ausweis.ausgestellt) {
|
|
||||||
Ausweisbild = "/images/dashboard/ausweishaken.jpg";
|
|
||||||
DatenBlattBild = "/images/dashboard/datenblatthaken.jpg";
|
|
||||||
StatusIcon = "/images/dashboard/erledigt.svg";
|
|
||||||
Abgeschlossen = 0;
|
|
||||||
} else if (ausweis.bestellt) {
|
|
||||||
Ausweisbild = "/images/dashboard/ausweis.jpg";
|
|
||||||
DatenBlattBild = "/images/dashboard/datenblatt.jpg";
|
|
||||||
StatusIcon = "/images/dashboard/bestellt.svg";
|
|
||||||
Abgeschlossen = 1;
|
|
||||||
} else {
|
|
||||||
Ausweisbild = "/images/dashboard/ausweiskreuz.jpg";
|
|
||||||
DatenBlattBild = "/images/dashboard/datenblattkreuz.jpg";
|
|
||||||
StatusIcon = "/images/dashboard/gespeichert.svg";
|
|
||||||
Abgeschlossen = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ausweis.boxpruefung) {
|
|
||||||
symbolPruefung = "/images/dashboard/kreishaken.png";
|
|
||||||
} else {
|
|
||||||
symbolPruefung = "/images/dashboard/kreiskreuz.png";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ausweis.zurueckgestellt) {
|
|
||||||
zurueckGestellt =
|
|
||||||
"<img src='/images/dashboard/zurueckGestellt.svg' alt='Status' width=\"25\" height=\"25\"></img>";
|
|
||||||
} else {
|
|
||||||
zurueckGestellt = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (ausweis.warmwasser_enthalten) {
|
|
||||||
warmWasser = "Warmwasser enthalten";
|
|
||||||
} else {
|
|
||||||
warmWasser = "Warmwasser nicht enthalten";
|
|
||||||
}
|
|
||||||
if (ausweis.warmwasser_anteil_bekannt) {
|
|
||||||
anteilWarmwasser = "Anteil bekannt";
|
|
||||||
} else {
|
|
||||||
anteilWarmwasser = "Anteil unbekannt";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
|
||||||
ausweis.warmwasser_enthalten &&
|
|
||||||
ausweis.warmwasser_anteil_bekannt
|
|
||||||
) {
|
|
||||||
if (aufnahme.solarsystem_warmwasser) {
|
|
||||||
// Wenn Warmwasser enthalten und Anteil bekannt und Solarsystem
|
|
||||||
verbrauchWWGesamt_1 = `${calculations?.energieVerbrauchGesamt_1} kWh x ${(ausweis.anteil_warmwasser_1 || 0) / 100} x 0.6`;
|
|
||||||
verbrauchWWGesamt_2 = `${calculations?.energieVerbrauchGesamt_2} kWh x ${(ausweis.anteil_warmwasser_2 || 0) / 100} x 0.6`;
|
|
||||||
solarsystemWarmwasser = "Solarsystem Warmwasser";
|
|
||||||
} else {
|
|
||||||
// Wenn Warmwasser enthalten und Anteil bekannt und **kein** Solarsystem
|
|
||||||
verbrauchWWGesamt_1 = `${calculations?.energieVerbrauchGesamt_1} kWh x ${(ausweis.anteil_warmwasser_1 || 0) / 100} x 0.6`
|
|
||||||
verbrauchWWGesamt_2 = `${calculations?.energieVerbrauchGesamt_2} kWh x ${(ausweis.anteil_warmwasser_2 || 0) / 100} x 0.6`
|
|
||||||
solarsystemWarmwasser = "kein Solarsystem Warmwasser";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (aufnahme.solarsystem_warmwasser) {
|
|
||||||
// Wenn Warmwasser Anteil unbekannt und Solarsystem
|
|
||||||
verbrauchWWGesamt_1 =
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
" m² x 12 kWh/m² x 3 Jahre";
|
|
||||||
solarsystemWarmwasser = "Solarsystem Warmwasser";
|
|
||||||
} else {
|
|
||||||
// Wenn Warmwasser Anteil unbekannt und **kein** Solarsystem
|
|
||||||
verbrauchWWGesamt_1 =
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
" m² x 20 kWh/m² x 3 Jahre";
|
|
||||||
solarsystemWarmwasser = "kein Solarsystem Warmwasser";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
tooltip3Z1 = "Wohnfläche in m²";
|
|
||||||
tooltip3Z2 =
|
|
||||||
ausweis.faktorKeller +
|
|
||||||
" x " +
|
|
||||||
aufnahme.flaeche +
|
|
||||||
" m² Energetische Nutzfläche (Keller " +
|
|
||||||
aufnahme.keller +
|
|
||||||
" ) in m²";
|
|
||||||
table3Z1 = aufnahme.flaeche;
|
|
||||||
table3Z2 = calculations?.energetischeNutzflaeche;
|
|
||||||
|
|
||||||
|
|
||||||
tooltip4Z1 =
|
|
||||||
"(" +
|
|
||||||
ausweis.verbrauch_1 +
|
|
||||||
" " +
|
|
||||||
ausweis.einheit_1 +
|
|
||||||
" + " +
|
|
||||||
ausweis.verbrauch_2 +
|
|
||||||
" " +
|
|
||||||
ausweis.einheit_1 +
|
|
||||||
" + " +
|
|
||||||
ausweis.verbrauch_3 +
|
|
||||||
" " +
|
|
||||||
ausweis.einheit_1 +
|
|
||||||
") x " +
|
|
||||||
calculations?.brennstoff_1.umrechnungsfaktor +
|
|
||||||
" kWh/" +
|
|
||||||
ausweis.einheit_1 +
|
|
||||||
" >> Verbrauch 1 " +
|
|
||||||
ausweis.brennstoff_1 +
|
|
||||||
" in kWh";
|
|
||||||
tooltip4Z2 =
|
|
||||||
"(" +
|
|
||||||
ausweis.verbrauch_4 +
|
|
||||||
" " +
|
|
||||||
ausweis.einheit_2 +
|
|
||||||
" + " +
|
|
||||||
ausweis.verbrauch_5 +
|
|
||||||
" " +
|
|
||||||
ausweis.einheit_2 +
|
|
||||||
" + " +
|
|
||||||
ausweis.verbrauch_6 +
|
|
||||||
" " +
|
|
||||||
ausweis.einheit_2 +
|
|
||||||
") x " +
|
|
||||||
calculations?.brennstoff_2.umrechnungsfaktor +
|
|
||||||
" kWh/" +
|
|
||||||
ausweis.einheit_2 +
|
|
||||||
" >> Verbrauch 2 " +
|
|
||||||
ausweis.brennstoff_2 +
|
|
||||||
" in kWh";
|
|
||||||
table4Z1 = calculations?.energieVerbrauchGesamt_1;
|
|
||||||
table4Z2 = calculations?.energieVerbrauchGesamt_2;
|
|
||||||
|
|
||||||
tooltip5Z1 =
|
|
||||||
warmWasser + ", " + anteilWarmwasser + ", " + solarsystemWarmwasser;
|
|
||||||
tooltip5Z2 = verbrauchWWGesamt_1;
|
|
||||||
tooltip5Z3 = verbrauchWWGesamt_2;
|
|
||||||
table5Z1 = calculations?.energieVerbrauchWarmwasser_1;
|
|
||||||
table5Z2 = calculations?.energieVerbrauchWarmwasser_2;
|
|
||||||
|
|
||||||
tooltip6Z1 =
|
|
||||||
"(" +
|
|
||||||
calculations?.klimafaktoren[0].klimafaktor +
|
|
||||||
" + " +
|
|
||||||
calculations?.klimafaktoren[1].klimafaktor +
|
|
||||||
" + " +
|
|
||||||
calculations?.klimafaktoren[2].klimafaktor +
|
|
||||||
") / 3 >> durchschnittlicher Klimafaktor";
|
|
||||||
tooltip6Z2 = "";
|
|
||||||
table6Z1 = calculations?.durchschnittsKlimafaktor;
|
|
||||||
table6Z2 = "";
|
|
||||||
|
|
||||||
tooltip7Z1 =
|
|
||||||
calculations?.energieVerbrauchHeizung_1 +
|
|
||||||
" kWh x " +
|
|
||||||
calculations?.durchschnittsKlimafaktor +
|
|
||||||
" >> Klimabereinigter Heizverbrauch 1 in kWh";
|
|
||||||
tooltip7Z2 =
|
|
||||||
calculations?.energieVerbrauchHeizung_2 +
|
|
||||||
" kWh x " +
|
|
||||||
calculations?.durchschnittsKlimafaktor +
|
|
||||||
" >> Klimabereinigter Heizverbrauch 2 in kWh";
|
|
||||||
table7Z1 = calculations?.energieVerbrauchHeizungBereinigt_1;
|
|
||||||
table7Z2 = calculations?.energieVerbrauchHeizungBereinigt_2;
|
|
||||||
|
|
||||||
|
|
||||||
tooltip8Z1 =
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
" m² x 6 kWh/m² x 3 Jahre >> Kühlungszuschlag in kWh";
|
|
||||||
tooltip8Z2 = "";
|
|
||||||
table8Z1 = calculations?.kuehlungsZuschlag;
|
|
||||||
table8Z2 = "";
|
|
||||||
|
|
||||||
tooltip9Z1 =
|
|
||||||
"-0.0028 x " +
|
|
||||||
calculations?.durchschnittsEnergieVerbrauchHeizungBereingt +
|
|
||||||
" + 0.9147 >> Heizungsfaktor";
|
|
||||||
tooltip9Z2 =
|
|
||||||
"(" +
|
|
||||||
calculations?.energieVerbrauchHeizungBereinigt_1 +
|
|
||||||
" + " +
|
|
||||||
calculations?.energieVerbrauchHeizungBereinigt_2 +
|
|
||||||
") / (3 * " +
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
") >> Durchschnittsverbrauch Heizung in kWh";
|
|
||||||
table9Z1 =
|
|
||||||
calculations?.faktorDurchschnittsEnergieVerbrauchHeizungBereinigt;
|
|
||||||
table9Z2 = calculations?.durchschnittsEnergieVerbrauchHeizungBereingt;
|
|
||||||
|
|
||||||
tooltip10Z1 =
|
|
||||||
calculations[
|
|
||||||
"faktorDurchschnittsEnergieVerbrauchHeizungBereinigt"
|
|
||||||
] +
|
|
||||||
" x " +
|
|
||||||
calculations?.leerstand +
|
|
||||||
" x (" +
|
|
||||||
calculations.energieVerbrauchHeizungBereinigt_1 +
|
|
||||||
" + " +
|
|
||||||
calculations.energieVerbrauchHeizungBereinigt_2 +
|
|
||||||
") >> Leerstandszuschlag Heizung in kWh";
|
|
||||||
tooltip10Z2 =
|
|
||||||
calculations?.leerstand +
|
|
||||||
" x (" +
|
|
||||||
calculations?.energieVerbrauchWarmwasser_1 +
|
|
||||||
" + " +
|
|
||||||
calculations?.energieVerbrauchWarmwasser_2 +
|
|
||||||
") >> Leerstandszuschlag Warmwasser in kWh";
|
|
||||||
table10Z1 = calculations?.leerstandsZuschlagHeizung;
|
|
||||||
table10Z2 = calculations?.leerstandsZuschlagWarmwasser;
|
|
||||||
|
|
||||||
tooltip11Z2 =
|
|
||||||
"(" +
|
|
||||||
calculations?.energieVerbrauchHeizungBereinigt_2 +
|
|
||||||
" + " +
|
|
||||||
calculations?.energieVerbrauchWarmwasser_2 +
|
|
||||||
") / (3 Jahre x " +
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
") Endenergieverbrauch 2 in kWh/m²a";
|
|
||||||
table11Z1 = calculations?.endEnergieVerbrauch_1;
|
|
||||||
table11Z2 = calculations?.endEnergieVerbrauch_2;
|
|
||||||
|
|
||||||
tooltip12Z1 =
|
|
||||||
"((" +
|
|
||||||
calculations?.energieVerbrauchHeizungBereinigt_1 +
|
|
||||||
" x " +
|
|
||||||
calculations?.primaerfaktor_1 +
|
|
||||||
") + (" +
|
|
||||||
calculations?.energieVerbrauchWarmwasser_1 +
|
|
||||||
" x " +
|
|
||||||
calculations?.primaerfaktorww +
|
|
||||||
")) / (3 Jahre x " +
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
") Primärenergieverbrauch 1 in kWh/m²a";
|
|
||||||
tooltip12Z2 =
|
|
||||||
"((" +
|
|
||||||
calculations?.energieVerbrauchHeizungBereinigt_2 +
|
|
||||||
" x " +
|
|
||||||
calculations?.primaerfaktor_1 +
|
|
||||||
") + (" +
|
|
||||||
calculations?.energieVerbrauchWarmwasser_2 +
|
|
||||||
" x " +
|
|
||||||
calculations?.primaerfaktorww_1 +
|
|
||||||
")) / (3 Jahre x " +
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
") Primärenergieverbrauch 2 in kWh/m²a";
|
|
||||||
table12Z1 = calculations?.primaerEnergieVerbrauch_1;
|
|
||||||
table12Z2 = calculations?.primaerEnergieVerbrauch_2;
|
|
||||||
|
|
||||||
tooltip13Z1 =
|
|
||||||
"(" +
|
|
||||||
calculations?.leerstandsZuschlagHeizung +
|
|
||||||
" + " +
|
|
||||||
calculations?.leerstandsZuschlagWarmwasser +
|
|
||||||
") / (3 Jahre x " +
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
") Endenergieverbrauch Leerstand in kWh/m²a";
|
|
||||||
tooltip13Z2 =
|
|
||||||
"(" +
|
|
||||||
calculations?.kuehlungsZuschlag +
|
|
||||||
") / (3 Jahre x " +
|
|
||||||
calculations?.energetischeNutzflaeche +
|
|
||||||
") Endenergieverbrauch Kühlung in kWh/m²a";
|
|
||||||
table13Z1 = calculations?.endEnergieVerbrauchLeerstandsZuschlag;
|
|
||||||
table13Z2 = calculations?.endEnergieVerbrauchKuehlungsZuschlag;
|
|
||||||
|
|
||||||
tooltip14Z1 =
|
|
||||||
calculations?.endEnergieVerbrauchLeerstandsZuschlag +
|
|
||||||
" x " +
|
|
||||||
calculations?.primaerfaktor +
|
|
||||||
" Primärenergieverbrauch Leerstand in kWh/m²a";
|
|
||||||
tooltip14Z2 =
|
|
||||||
calculations?.endEnergieVerbrauchKuehlungsZuschlag +
|
|
||||||
" x 1.8 Primärenergieverbrauch Kühlung in kWh/m²a";
|
|
||||||
table14Z1 = calculations?.primaerEnergieVerbrauchLeerstandsZuschlag;
|
|
||||||
table14Z2 = calculations?.primaerEnergieVerbrauchKuehlungsZuschlag;
|
|
||||||
|
|
||||||
tooltip15Z1 =
|
|
||||||
calculations?.endEnergieVerbrauch_1 +
|
|
||||||
" + " +
|
|
||||||
calculations?.endEnergieVerbrauch_2 +
|
|
||||||
" + " +
|
|
||||||
calculations?.endEnergieVerbrauchLeerstandsZuschlag +
|
|
||||||
" + " +
|
|
||||||
calculations?.endEnergieVerbrauchKuehlungsZuschlag +
|
|
||||||
" Endenergieverbrauch in kWh/m²a";
|
|
||||||
tooltip15Z2 =
|
|
||||||
"(" +
|
|
||||||
calculations?.endEnergieVerbrauch_1 +
|
|
||||||
" x " +
|
|
||||||
calculations?.co2Emissionen_1 +
|
|
||||||
") + (" +
|
|
||||||
calculations?.endEnergieVerbrauch_2 +
|
|
||||||
" x " +
|
|
||||||
calculations?.co2Emissionen_2 +
|
|
||||||
") + (" +
|
|
||||||
calculations?.endEnergieVerbrauchLeerstandsZuschlag +
|
|
||||||
" x " +
|
|
||||||
calculations?.co2Emissionen_1 +
|
|
||||||
") + (" +
|
|
||||||
calculations?.endEnergieVerbrauchKuehlungsZuschlag +
|
|
||||||
" x " +
|
|
||||||
calculations?.co2Emissionen_1 +
|
|
||||||
") CO2-Emissionen in kg/m²a";
|
|
||||||
table15Z1 = calculations?.endEnergieVerbrauchGesamt;
|
|
||||||
table15Z2 = calculations?.co2EmissionenGesamt;
|
|
||||||
|
|
||||||
tooltip16Z1 =
|
|
||||||
calculations?.primaerEnergieVerbrauch_1 +
|
|
||||||
" + " +
|
|
||||||
calculations?.primaerEnergieVerbrauch_2 +
|
|
||||||
" + " +
|
|
||||||
calculations?.primaerEnergieVerbrauchLeerstandsZuschlag +
|
|
||||||
" x " +
|
|
||||||
calculations?.primaerEnergieVerbrauchKuehlungsZuschlag +
|
|
||||||
" Primärenergieverbrauch in kWh/m²a";
|
|
||||||
tooltip16Z2 = "Effizienzklasse";
|
|
||||||
table16Z1 = calculations?.primaerEnergieVerbrauchGesamt;
|
|
||||||
table16Z2 = aufnahme.energieeffizienzklasse;
|
|
||||||
|
|
||||||
let imagePreview = "";
|
|
||||||
|
|
||||||
// let imageJson = JSON.parse(ausweis.images);
|
|
||||||
// let imagePreview = "";
|
|
||||||
// if (typeof imageJson === "object") {
|
|
||||||
// imagePreview =
|
|
||||||
// imageJson.daemmung.toString() +
|
|
||||||
// "," +
|
|
||||||
// imageJson.general.toString() +
|
|
||||||
// "," +
|
|
||||||
// imageJson.fenster.toString() +
|
|
||||||
// "," +
|
|
||||||
// imageJson.heizung.toString();
|
|
||||||
// }
|
|
||||||
|
|
||||||
async function stornieren(ausweis: VerbrauchsausweisWohnenClient) {
|
|
||||||
try {
|
|
||||||
const response = await api.admin.stornieren.PUT.fetch({
|
|
||||||
uid_ausweis: ausweis.id
|
|
||||||
}, {
|
|
||||||
headers: {
|
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
addNotification({
|
|
||||||
message: "Ausweis wurde storniert",
|
|
||||||
type: "success",
|
|
||||||
dismissable: true,
|
|
||||||
timeout: 3000,
|
|
||||||
})
|
|
||||||
|
|
||||||
ausweis.storniert = true;
|
|
||||||
ausweis = ausweis;
|
|
||||||
} catch(e) {
|
|
||||||
addNotification({
|
|
||||||
message: "Ausweis konnte nicht storniert werden.",
|
|
||||||
subtext: e as string,
|
|
||||||
type: "error",
|
|
||||||
dismissable: true,
|
|
||||||
timeout: 3000,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let bilderModal: HTMLDialogElement;
|
|
||||||
let infoVisible = false;
|
|
||||||
|
|
||||||
|
|
||||||
async function registriernummerAnfordern(uid: string) {
|
|
||||||
try {
|
|
||||||
const result = await api.admin.registriernummer.GET.fetch({
|
|
||||||
uid
|
|
||||||
}, {
|
|
||||||
headers: {
|
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} catch(e) {
|
|
||||||
addNotification({
|
|
||||||
message: "Registriernummer anfordern fehlgeschlagen.",
|
|
||||||
subtext: e as string,
|
|
||||||
type: "error",
|
|
||||||
dismissable: true,
|
|
||||||
timeout: 3000,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div class="border rounded-lg bg-base-200">
|
|
||||||
<table class="">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><button on:click={() => infoVisible = !infoVisible}><ChevronDown size={22} class="transition-all {infoVisible ? "" : "rotate-180"}"></ChevronDown></button></td>
|
|
||||||
<td class="w-6 px-2"
|
|
||||||
>
|
|
||||||
{#if ausweis.ausgestellt}
|
|
||||||
<div class="tooltip" data-tip="Ausweis wurde ausgestellt">
|
|
||||||
<div class="rounded-full w-6 h-6 bg-success"></div>
|
|
||||||
</div>
|
|
||||||
{:else if ausweis.bestellt}
|
|
||||||
<div class="tooltip" data-tip="Ausweis wurde bestellt">
|
|
||||||
<div class="rounded-full w-6 h-6 bg-warning"></div>
|
|
||||||
</div>
|
|
||||||
{:else}
|
|
||||||
<div class="tooltip" data-tip="Ausweis ist in Bearbeitung">
|
|
||||||
<div class="rounded-full w-6 h-6 bg-error"></div>
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td width="150px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{aufnahme.adresse} {aufnahme.plz} {aufnahme.ort}</span>
|
|
||||||
<br>
|
|
||||||
<span>{aufnahme.gebaeudetyp}, Einheiten: {aufnahme.einheiten}</span>
|
|
||||||
</div>
|
|
||||||
<span>{ausweisArt} - {aufnahme.id}</span>
|
|
||||||
<span>{moment(aufnahme.erstellungsdatum).format("DD.MM.YYYY")}</span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="35px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>Baujahr Gebäude / Baujahr Heizung</span>
|
|
||||||
</div>
|
|
||||||
<span>{aufnahme.baujahr_gebaeude.join(", ")}</span>
|
|
||||||
<span>{aufnahme.baujahr_heizung.join(", ")}</span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
<div class="tooltip" data-tip="">
|
|
||||||
|
|
||||||
</div></td
|
|
||||||
>
|
|
||||||
<td width="45px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>Wohnfläche in m²</span>
|
|
||||||
<br>
|
|
||||||
<span>{ausweis.faktorKeller} x {aufnahme.flaeche}m² Energetische Nutzfläche (Keller {aufnahme.keller}) in m²</span>
|
|
||||||
</div>
|
|
||||||
<span>{aufnahme.flaeche}</span>
|
|
||||||
<span><strong>{calculations?.energetischeNutzflaeche}</strong></span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td width="90px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip4Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip4Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table4Z1}</span>
|
|
||||||
<span>{table4Z2}</span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="70px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip5Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip5Z2}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip5Z3}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table5Z1}</span>
|
|
||||||
<span>{table5Z2}</span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td width="50px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip6Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip6Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span><strong>{table6Z1}</strong></span>
|
|
||||||
<span><strong>{table6Z2}</strong></span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="90px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip7Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip7Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table7Z1}</span>
|
|
||||||
<span>{table7Z2}</span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="60px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip8Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip8Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table8Z1}</span>
|
|
||||||
<span>{table8Z2}</span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="50px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip9Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip9Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table9Z1}</span>
|
|
||||||
<span><strong>{table9Z2}</strong></span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="100px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip10Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip10Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table10Z1}</span>
|
|
||||||
<span>{table10Z2}</span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="110px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>({calculations?.energieVerbrauchHeizungBereinigt_1} + {calculations?.energieVerbrauchWarmwasser_1}) / (3 Jahre x {calculations?.energetischeNutzflaeche}) Endenergieverbrauch 1 in kWh/m²a</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip11Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table11Z1}</span>
|
|
||||||
<span>{table11Z2}</span>
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td width="50px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip12Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip12Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table12Z1}</span>
|
|
||||||
<span>{table12Z2}</span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td width="60px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip13Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip13Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table13Z1}</span>
|
|
||||||
<span>{table13Z2}</span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td width="45px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip14Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip14Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span>{table14Z1}</span>
|
|
||||||
<span>{table14Z2}</span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td width="45px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip15Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip15Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span><strong>{table15Z1}</strong></span>
|
|
||||||
<span><strong>{table15Z2}</strong></span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td width="50px"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{tooltip16Z1}</span>
|
|
||||||
<br>
|
|
||||||
<span>{tooltip16Z2}</span>
|
|
||||||
</div>
|
|
||||||
<span><strong>{table16Z1}</strong></span>
|
|
||||||
<span><strong>{table16Z2}</strong></span>
|
|
||||||
</AusweisPruefenTooltip>
|
|
||||||
</td
|
|
||||||
>
|
|
||||||
<td title="Gebäudebilder anzeigen"
|
|
||||||
><!-- Open the modal using ID.showModal() method -->
|
|
||||||
<button class="btn btn-square" on:click={() => bilderModal.showModal()}><Image size={22}></Image></button>
|
|
||||||
<dialog bind:this={bilderModal} class="modal p-4 rounded-lg">
|
|
||||||
<div class="modal-box flex flex-row gap-4 items-center justify-center">
|
|
||||||
{#if bilder.length === 0}
|
|
||||||
<div class="flex flex-col gap-4 items-center justify-center">
|
|
||||||
<p>Für diesen Ausweis sind noch keine Bilder vorhanden.</p>
|
|
||||||
<button class="button" tabindex="0">Erinnerung Verschicken</button>
|
|
||||||
</div>
|
|
||||||
{:else}
|
|
||||||
{#each bilder as image}
|
|
||||||
<div>
|
|
||||||
<h2 class="text-lg mb-4 font-bold">{image.kategorie}</h2>
|
|
||||||
<img src="/bilder/{image.id}.jpg">
|
|
||||||
</div>
|
|
||||||
{/each}
|
|
||||||
{/if}
|
|
||||||
</div>
|
|
||||||
<form method="dialog" class="modal-backdrop">
|
|
||||||
<button class="button">Close</button>
|
|
||||||
</form>
|
|
||||||
</dialog></td
|
|
||||||
>
|
|
||||||
<td class="w-[30px]"
|
|
||||||
>
|
|
||||||
<AusweisPruefenTooltip>
|
|
||||||
<div slot="tooltip">
|
|
||||||
<span>{aufnahme.prueftext}</span>
|
|
||||||
</div>
|
|
||||||
{#if ausweis.boxpruefung}
|
|
||||||
<CheckCircled size={22}></CheckCircled>
|
|
||||||
{:else}
|
|
||||||
<CrossCircled size={22}></CrossCircled>
|
|
||||||
{/if}
|
|
||||||
</AusweisPruefenTooltip></td
|
|
||||||
>
|
|
||||||
<td title="Ausweis anzeigen" class="w-[50px]"
|
|
||||||
><a
|
|
||||||
class="energieausweis-img"
|
|
||||||
href="/pdf/ansichtsausweis?uid={ausweis.id}"
|
|
||||||
target="_blank"
|
|
||||||
><img
|
|
||||||
src="/images/dashboard/ausweis.jpg"
|
|
||||||
alt="Energieausweis"
|
|
||||||
class="w-full h-8"
|
|
||||||
/></a
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td title="Datenblatt anzeigen" width="50px"
|
|
||||||
><a
|
|
||||||
class="energieausweis-img"
|
|
||||||
href="/pdf/datenblatt?uid={ausweis.id}"
|
|
||||||
target="_blank"
|
|
||||||
><img
|
|
||||||
src="/images/dashboard/datenblatt.jpg"
|
|
||||||
alt="Datenblatt"
|
|
||||||
/></a
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
title="Ausweis stornieren und Zahlung wenn erforderlich automatisch zurückbuchen"
|
|
||||||
class="w-4 p-1"
|
|
||||||
><button
|
|
||||||
class="btn btn-xs btn-ghost"
|
|
||||||
on:click={() => stornieren(ausweis)}>S</button
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td title="Ausweis ausstellen" class="w-4 p-1"
|
|
||||||
><button
|
|
||||||
class="btn btn-xs btn-ghost"
|
|
||||||
on:click={() => ausweisAusstellen(aufnahme.uid)}>A</button
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
title="Ausweis ausstellen und per Post verschicken"
|
|
||||||
class="w-4 p-1"
|
|
||||||
><button
|
|
||||||
class="btn btn-xs btn-ghost"
|
|
||||||
on:click={() => ausweisAusstellenPost(aufnahme.uid)}>P</button
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
title="E-Mail an Kunden schicken mit Erläuterungen warum der Ausweis noch nicht ausgestellt werden kann."
|
|
||||||
class="w-4 p-1"
|
|
||||||
><button
|
|
||||||
class="btn btn-xs btn-ghost"
|
|
||||||
on:click={() => ausweisnichtAusstellen(aufnahme.uid)}>N</button
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
title="Bestellbestätigung nochmal schicken (Zahlung nicht erfolgreich)"
|
|
||||||
class="w-4 p-1"
|
|
||||||
><button
|
|
||||||
class="btn btn-xs btn-ghost"
|
|
||||||
on:click={() => bestellBestaetigung(aufnahme.uid)}>B</button
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
title="E-Mail an Kunden schicken mit Erinnerung die Bestellung abzuschließen."
|
|
||||||
class="w-4 p-1"
|
|
||||||
><button
|
|
||||||
class="btn btn-xs btn-ghost"
|
|
||||||
on:click={() => erinnern(aufnahme.uid)}
|
|
||||||
>E</button
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
title="Zum Formular mit allen Eingabedaten."
|
|
||||||
class="w-4 p-1"
|
|
||||||
><a
|
|
||||||
class="btn btn-xs btn-ghost"
|
|
||||||
target="_blank"
|
|
||||||
href="/energieausweis-erstellen/gespeichert?id={aufnahme.uid}">F</a
|
|
||||||
></td
|
|
||||||
>
|
|
||||||
{#if aufnahme.kontrolldatei}
|
|
||||||
<td title="XML-Datei an das DiBT verschicken." class="w-4 p-1"><button class="btn btn-xs btn-ghost" on:click={() => {
|
|
||||||
xmlAbschicken(aufnahme.uid)
|
|
||||||
}}>X</button></td>
|
|
||||||
{/if}
|
|
||||||
{#if !ausweis.registriernummer}
|
|
||||||
<td title="Registriernummer vom DiBT anfordern." class="w-4 p-1"><button class="btn btn-xs btn-ghost" on:click={() => {
|
|
||||||
registriernummerAnfordern(ausweis.id)
|
|
||||||
}}>R</button></td>
|
|
||||||
{/if}
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div class:hidden={!infoVisible} class:block={infoVisible} class="py-4 border-t">
|
|
||||||
<div class="grid grid-cols-[2fr_1fr] prose max-w-full">
|
|
||||||
<div class="border-r px-8">
|
|
||||||
<h3 class="mt-0">Wichtige Daten</h3>
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>Angewendete Berechnungsformel</td>
|
|
||||||
<td><strong>EnEV 2016</strong></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Berechnungsergebnis</td>
|
|
||||||
<td>{calculations?.endEnergieVerbrauchGesamt}kWh/m2/A - Energieeffizienzklasse <strong>{calculations?.energieEffizienzKlasse}</strong></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Informationen des Nutzers</td>
|
|
||||||
<td>{ausweis.boxpruefung}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>UID</td>
|
|
||||||
<td><strong><pre>{ausweis.id}</pre></strong></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="px-8">
|
|
||||||
<h3 class="mt-0">Ereignisse</h3>
|
|
||||||
<ul class="timeline timeline-snap-icon max-md:timeline-compact timeline-vertical">
|
|
||||||
<li>
|
|
||||||
<div class="timeline-middle">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-5 w-5"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>
|
|
||||||
</div>
|
|
||||||
<div class="timeline-start md:text-end mb-10">
|
|
||||||
<time class="font-mono italic">{moment(ausweis.erstellungsdatum).format("DD.MM.YYYY - HH:mm")} Uhr</time>
|
|
||||||
<div class="text-lg font-black">Ausweis erstellt</div>
|
|
||||||
</div>
|
|
||||||
<hr/>
|
|
||||||
</li>
|
|
||||||
{#each events as event, i}
|
|
||||||
<li>
|
|
||||||
<hr />
|
|
||||||
<div class="timeline-middle">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-5 w-5"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>
|
|
||||||
</div>
|
|
||||||
<div class="mb-10" class:timeline-end={i % 2 == 0} class:timeline-start={i % 2 == 1}>
|
|
||||||
<time class="font-mono italic">{moment(event.date).format("DD.MM.YYYY - HH:mm")} Uhr</time>
|
|
||||||
<div class="text-lg font-black">{event.title}</div>
|
|
||||||
{event.description || ""}
|
|
||||||
</div>
|
|
||||||
<hr />
|
|
||||||
</li>
|
|
||||||
{/each}
|
|
||||||
{#if ausweis.erledigt}
|
|
||||||
<li>
|
|
||||||
<hr />
|
|
||||||
<div class="timeline-middle">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-5 w-5"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>
|
|
||||||
</div>
|
|
||||||
<div class="mb-10 timeline-end">
|
|
||||||
<time class="font-mono italic">{moment(ausweis.ausstellungsdatum).format("DD.MM.YYYY - HH:mm")} Uhr</time>
|
|
||||||
<div class="text-lg font-black">Ausweis ausgestellt</div>
|
|
||||||
{ausweis.registriernummer ? `Registriernummer: ${ausweis.registriernummer}` : ""}
|
|
||||||
</div>
|
|
||||||
<hr />
|
|
||||||
</li>
|
|
||||||
{/if}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<NotificationWrapper />
|
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
} from "radix-svelte-icons";
|
} from "radix-svelte-icons";
|
||||||
import { api } from "astro-typesafe-api/client";
|
import { api } from "astro-typesafe-api/client";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME, AusstellungsTyp } from "#lib/constants.js";
|
||||||
import { Enums, Objekt } from "#lib/client/prisma.js";
|
import { Enums, Objekt } from "#lib/client/prisma.js";
|
||||||
import { addNotification, updateNotification } from "#components/Notifications/shared.js";
|
import { addNotification, updateNotification } from "#components/Notifications/shared.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Client.js";
|
import { endEnergieVerbrauchVerbrauchsausweis_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Client.js";
|
||||||
@@ -482,32 +482,32 @@
|
|||||||
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweis_id={ausweis.id}&typ={AusstellungsTyp.Speichern}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweis_id={ausweis.id}&typ={AusstellungsTyp.Speichern}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?id={ausweis.id}"
|
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweis_id={ausweis.id}&typ={AusstellungsTyp.Speichern}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.GEGNachweisWohnen}
|
{:else if ausweisart === Enums.Ausweisart.GEGNachweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/angebot-anfragen/geg-nachweis-wohnen-anfragen?id={ausweis.id}"
|
href="/angebot-anfragen/geg-nachweis-wohnen-anfragen?ausweis_id={ausweis.id}&typ={AusstellungsTyp.Speichern}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.GEGNachweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.GEGNachweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/angebot-anfragen/geg-nachweis-gewerbe-anfragen?id={ausweis.id}"
|
href="/angebot-anfragen/geg-nachweis-gewerbe-anfragen?ausweis_id={ausweis.id}&typ={AusstellungsTyp.Speichern}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?id={ausweis.id}"
|
href="/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?ausweis_id={ausweis.id}&typ={AusstellungsTyp.Speichern}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -516,17 +516,17 @@
|
|||||||
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweis_id={ausweis.id}"
|
||||||
>Formular</a>
|
>Formular</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweis_id={ausweis.id}"
|
||||||
>Formular</a>
|
>Formular</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?id={ausweis.id}"
|
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweis_id={ausweis.id}"
|
||||||
>Formular</a>
|
>Formular</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -1,21 +1,11 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {
|
import {
|
||||||
Reader,
|
|
||||||
Bell,
|
|
||||||
Gear,
|
Gear,
|
||||||
LockClosed,
|
LockClosed,
|
||||||
CaretDown,
|
CaretDown,
|
||||||
MagnifyingGlass,
|
MagnifyingGlass,
|
||||||
} from "radix-svelte-icons";
|
} from "radix-svelte-icons";
|
||||||
import NotificationProvider from "#components/NotificationProvider/NotificationProvider.svelte";
|
import { Benutzer } from "#lib/server/prisma.js";
|
||||||
import DashboardNotification from "./DashboardNotification.svelte";
|
|
||||||
import { notifications } from "#components/NotificationProvider/shared.js";
|
|
||||||
import ThemeController from "#components/ThemeController.svelte";
|
|
||||||
import {
|
|
||||||
BenutzerClient,
|
|
||||||
ObjektKomplettClient,
|
|
||||||
} from "#components/Ausweis/types.js";
|
|
||||||
import { Benutzer, Rechnung } from "#lib/server/prisma.js";
|
|
||||||
|
|
||||||
export let lightTheme: boolean;
|
export let lightTheme: boolean;
|
||||||
export let benutzer: Benutzer;
|
export let benutzer: Benutzer;
|
||||||
|
|||||||
@@ -1,82 +1,170 @@
|
|||||||
<script>
|
<script>
|
||||||
import { PRICES } from "#lib/constants";
|
import { PRICES } from "#lib/constants";
|
||||||
export let bullets;
|
|
||||||
export let title;
|
|
||||||
export let ref = "";
|
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma";
|
||||||
|
export let ref = "";
|
||||||
|
|
||||||
bullets = [
|
const bullets = [
|
||||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
[
|
||||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
"Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",
|
||||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
true,
|
||||||
["Same day service (zubuchbar)",true, true, false],
|
true,
|
||||||
["Fotoupload",true, true, true],
|
true,
|
||||||
["automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",true, true, false],
|
],
|
||||||
["Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",true, true, false],
|
[
|
||||||
["persönlicher Support",false, true, true],
|
"Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",
|
||||||
["telefonische Beratung<br>persönlicher Energieberater",false, true, true],
|
true,
|
||||||
["Dokumentenupload (Pläne, Bauunterlagen)",false, false, true],
|
true,
|
||||||
["Eingabe durch Dipl. Ing.",false, false, true],]
|
true,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
["Same day service (zubuchbar)", true, true, false],
|
||||||
|
["Fotoupload", true, true, true],
|
||||||
|
[
|
||||||
|
"automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
["persönlicher Support", false, true, true],
|
||||||
|
[
|
||||||
|
"telefonische Beratung<br>persönlicher Energieberater",
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
["Dokumentenupload (Pläne, Bauunterlagen)", false, false, true],
|
||||||
|
["Eingabe durch Dipl. Ing.", false, false, true],
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<h1>
|
||||||
|
Produktübersicht: <span class="text-secondary"
|
||||||
|
>Bedarfsausweis Wohngebäude</span
|
||||||
|
>
|
||||||
|
</h1>
|
||||||
|
<h3>Bedarfsausweis Leistungen und Preise in der Übersicht:</h3>
|
||||||
|
|
||||||
</script>
|
<hr />
|
||||||
|
<br />
|
||||||
|
|
||||||
<h1>Produktübersicht: <span class="text-secondary">Bedarfsausweis Wohngebäude</span></h1>
|
<div id="ProduktUebersichtBedarfssausweisWohnen">
|
||||||
<h3>Bedarfsausweis Leistungen und Preise in der Übersicht:</h3>
|
<div
|
||||||
|
class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]"
|
||||||
<hr>
|
>
|
||||||
<br>
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]"
|
||||||
<div id="ProduktUebersichtBedarfssausweisWohnen">
|
>
|
||||||
|
<div class="justify-self-start pl-2"><b>Leistung</b></div>
|
||||||
<div class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]">
|
<div><b>online</b></div>
|
||||||
|
<div><b>premium</b></div>
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]">
|
<div><b>offline</b></div>
|
||||||
<div class="justify-self-start pl-2"><b>Leistung</b></div><div><b>online</b></div><div><b>premium</b></div><div><b>offline</b></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#each bullets as [bullet,online,premium,offline]}
|
{#each bullets as [bullet, online, premium, offline]}
|
||||||
<div class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center">
|
<div
|
||||||
|
class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center"
|
||||||
|
>
|
||||||
<div class="justify-self-start pl-2">{@html bullet}</div>
|
<div class="justify-self-start pl-2">{@html bullet}</div>
|
||||||
<div class:check={online} class:check-no={!online}>{online ? "✔" : "⁃"}</div>
|
<div class:check={online} class:check-no={!online}>
|
||||||
<div class:check={premium} class:check-no={!premium}>{premium ? "✔" : "⁃"}</div>
|
{online ? "✔" : "⁃"}
|
||||||
<div class:check={offline} class:check-no={!offline}>{offline ? "✔" : "⁃"}</div>
|
</div>
|
||||||
|
<div class:check={premium} class:check-no={!premium}>
|
||||||
|
{premium ? "✔" : "⁃"}
|
||||||
|
</div>
|
||||||
|
<div class:check={offline} class:check-no={!offline}>
|
||||||
|
{offline ? "✔" : "⁃"}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]">
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]"
|
||||||
|
>
|
||||||
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
||||||
<div class="price"><b>{PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Standard]} €</b></div>
|
<div class="price">
|
||||||
<div class="price"><b>{PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Beratung]} €</b></div>
|
<b
|
||||||
<div class="price"><b>{PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Offline]} €</b></div>
|
>{PRICES.BedarfsausweisWohnen[
|
||||||
|
Enums.AusweisTyp.Standard
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="price">
|
||||||
|
<b
|
||||||
|
>{PRICES.BedarfsausweisWohnen[
|
||||||
|
Enums.AusweisTyp.Beratung
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="price">
|
||||||
|
<b
|
||||||
|
>{PRICES.BedarfsausweisWohnen[
|
||||||
|
Enums.AusweisTyp.Offline
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center"
|
||||||
|
>
|
||||||
<div class="justify-self-start pl-2"></div>
|
<div class="justify-self-start pl-2"></div>
|
||||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Standard}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
<a
|
||||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Beratung}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums
|
||||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Offline}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
.AusweisTyp.Standard}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums
|
||||||
|
.AusweisTyp.Beratung}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums
|
||||||
|
.AusweisTyp.Offline}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style lang="postcss">
|
||||||
|
.bestellbutton {
|
||||||
|
@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
||||||
|
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zeile {
|
||||||
</div>
|
@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem];
|
||||||
|
}
|
||||||
<style lang="postcss">
|
.bullet {
|
||||||
|
@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem];
|
||||||
.bestellbutton{@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
}
|
||||||
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;}
|
.bullet:nth-child(even) {
|
||||||
|
@apply bg-blue-100/40;
|
||||||
|
}
|
||||||
|
.bullet:nth-child(2) {
|
||||||
|
@apply !border-t-[6px];
|
||||||
.zeile{@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem]}
|
}
|
||||||
.bullet{@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem]}
|
.bullet:nth-child(12) {
|
||||||
.bullet:nth-child(even){@apply bg-blue-100/40}
|
@apply !border-b-[6px];
|
||||||
.bullet:nth-child(2){@apply !border-t-[6px]}
|
}
|
||||||
.bullet:nth-child(12){@apply !border-b-[6px]}
|
|
||||||
|
|
||||||
.check {
|
.check {
|
||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
||||||
@@ -85,6 +173,7 @@
|
|||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-black;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
.price {
|
||||||
|
@apply text-[1.25rem] sm:text-[2rem];
|
||||||
</style>
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -4,78 +4,167 @@
|
|||||||
export let ref = "";
|
export let ref = "";
|
||||||
|
|
||||||
const bullets = [
|
const bullets = [
|
||||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
[
|
||||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
"Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",
|
||||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
true,
|
||||||
["Same day service (zubuchbar)",true, true, false],
|
true,
|
||||||
["Fotoupload",true, true, true],
|
true,
|
||||||
["automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",true, true, false],
|
],
|
||||||
["Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",true, true, false],
|
[
|
||||||
["persönlicher Support",false, true, true],
|
"Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",
|
||||||
["telefonische Beratung<br>persönlicher Energieberater",false, true, true],
|
true,
|
||||||
["Dokumentenupload (Verbrauchsabrechnungen)",false, false, true],
|
true,
|
||||||
["Eingabe durch Dipl. Ing.",false, false, true],
|
true,
|
||||||
]
|
],
|
||||||
|
[
|
||||||
|
"Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
["Same day service (zubuchbar)", true, true, false],
|
||||||
|
["Fotoupload", true, true, true],
|
||||||
|
[
|
||||||
|
"automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
["persönlicher Support", false, true, true],
|
||||||
|
[
|
||||||
|
"telefonische Beratung<br>persönlicher Energieberater",
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
["Dokumentenupload (Verbrauchsabrechnungen)", false, false, true],
|
||||||
|
["Eingabe durch Dipl. Ing.", false, false, true],
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<h1>
|
||||||
|
Produktübersicht: <span class="text-secondary"
|
||||||
|
>Verbrauchsausweis Gewerbegebäude</span
|
||||||
|
>
|
||||||
|
</h1>
|
||||||
|
<h3>Verbrauchsausweis Leistungen und Preise in der Übersicht:</h3>
|
||||||
|
|
||||||
</script>
|
<hr />
|
||||||
|
<br />
|
||||||
|
|
||||||
<h1>Produktübersicht: <span class="text-secondary">Verbrauchsausweis Gewerbegebäude</span></h1>
|
<div id="ProduktUebersichtVerbrauchsausweisGewerbe">
|
||||||
<h3>Verbrauchsausweis Leistungen und Preise in der Übersicht:</h3>
|
<div
|
||||||
|
class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]"
|
||||||
<hr>
|
>
|
||||||
<br>
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]"
|
||||||
<div id="ProduktUebersichtVerbrauchsausweisGewerbe">
|
>
|
||||||
|
<div class="justify-self-start pl-2"><b>Leistung</b></div>
|
||||||
<div class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]">
|
<div><b>online</b></div>
|
||||||
|
<div><b>premium</b></div>
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]">
|
<div><b>offline</b></div>
|
||||||
<div class="justify-self-start pl-2"><b>Leistung</b></div><div><b>online</b></div><div><b>premium</b></div><div><b>offline</b></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#each bullets as [bullet,online,premium,offline]}
|
{#each bullets as [bullet, online, premium, offline]}
|
||||||
<div class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center">
|
<div
|
||||||
|
class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center"
|
||||||
|
>
|
||||||
<div class="justify-self-start pl-2">{@html bullet}</div>
|
<div class="justify-self-start pl-2">{@html bullet}</div>
|
||||||
<div class:check={online} class:check-no={!online}>{online ? "✔" : "⁃"}</div>
|
<div class:check={online} class:check-no={!online}>
|
||||||
<div class:check={premium} class:check-no={!premium}>{premium ? "✔" : "⁃"}</div>
|
{online ? "✔" : "⁃"}
|
||||||
<div class:check={offline} class:check-no={!offline}>{offline ? "✔" : "⁃"}</div>
|
</div>
|
||||||
|
<div class:check={premium} class:check-no={!premium}>
|
||||||
|
{premium ? "✔" : "⁃"}
|
||||||
|
</div>
|
||||||
|
<div class:check={offline} class:check-no={!offline}>
|
||||||
|
{offline ? "✔" : "⁃"}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]">
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]"
|
||||||
|
>
|
||||||
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
||||||
<div class="price"><b>{PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Standard]} €</b></div>
|
<div class="price">
|
||||||
<div class="price"><b>{PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Beratung]} €</b></div>
|
<b
|
||||||
<div class="price"><b>{PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Offline]} €</b></div>
|
>{PRICES.VerbrauchsausweisGewerbe[
|
||||||
|
Enums.AusweisTyp.Standard
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="price">
|
||||||
|
<b
|
||||||
|
>{PRICES.VerbrauchsausweisGewerbe[
|
||||||
|
Enums.AusweisTyp.Beratung
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="price">
|
||||||
|
<b
|
||||||
|
>{PRICES.VerbrauchsausweisGewerbe[
|
||||||
|
Enums.AusweisTyp.Offline
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center"
|
||||||
|
>
|
||||||
<div class="justify-self-start pl-2"></div>
|
<div class="justify-self-start pl-2"></div>
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums.AusweisTyp.Standard}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
<a
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums.AusweisTyp.Beratung}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums.AusweisTyp.Offline}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
.AusweisTyp.Standard}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums
|
||||||
|
.AusweisTyp.Beratung}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums
|
||||||
|
.AusweisTyp.Offline}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style lang="postcss">
|
||||||
|
.bestellbutton {
|
||||||
|
@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
||||||
|
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zeile {
|
||||||
</div>
|
@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem];
|
||||||
|
}
|
||||||
<style lang="postcss">
|
.bullet {
|
||||||
|
@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem];
|
||||||
.bestellbutton{@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
}
|
||||||
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;}
|
.bullet:nth-child(even) {
|
||||||
|
@apply bg-blue-100/40;
|
||||||
|
}
|
||||||
|
.bullet:nth-child(2) {
|
||||||
|
@apply !border-t-[6px];
|
||||||
.zeile{@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem]}
|
}
|
||||||
.bullet{@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem]}
|
.bullet:nth-child(12) {
|
||||||
.bullet:nth-child(even){@apply bg-blue-100/40}
|
@apply !border-b-[6px];
|
||||||
.bullet:nth-child(2){@apply !border-t-[6px]}
|
}
|
||||||
.bullet:nth-child(12){@apply !border-b-[6px]}
|
|
||||||
|
|
||||||
.check {
|
.check {
|
||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
||||||
@@ -84,6 +173,7 @@
|
|||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-black;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
.price {
|
||||||
|
@apply text-[1.25rem] sm:text-[2rem];
|
||||||
</style>
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -1,93 +1,179 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { PRICES } from "#lib/constants.js";
|
import { PRICES } from "#lib/constants.js";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
export let bullets;
|
export let ref = "";
|
||||||
export let title;
|
|
||||||
export let ref = "";
|
|
||||||
|
|
||||||
|
|
||||||
bullets = [
|
|
||||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
|
||||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
|
||||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
|
||||||
["Same day service (zubuchbar)",true, true, false],
|
|
||||||
["Fotoupload",true, true, true],
|
|
||||||
["automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",true, true, false],
|
|
||||||
["Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",true, true, false],
|
|
||||||
["persönlicher Support",false, true, true],
|
|
||||||
["telefonische Beratung<br>persönlicher Energieberater",false, true, true],
|
|
||||||
["Dokumentenupload (Verbrauchsabrechnungen)",false, false, true],
|
|
||||||
["Eingabe durch Dipl. Ing.",false, false, true],
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
|
const bullets = [
|
||||||
|
[
|
||||||
|
"Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
["Same day service (zubuchbar)", true, true, false],
|
||||||
|
["Fotoupload", true, true, true],
|
||||||
|
[
|
||||||
|
"automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
["persönlicher Support", false, true, true],
|
||||||
|
[
|
||||||
|
"telefonische Beratung<br>persönlicher Energieberater",
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
["Dokumentenupload (Verbrauchsabrechnungen)", false, false, true],
|
||||||
|
["Eingabe durch Dipl. Ing.", false, false, true],
|
||||||
|
];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<h1>Produktübersicht: <span class="text-secondary">Verbrauchsausweis Wohngebäude</span></h1>
|
<h1>
|
||||||
|
Produktübersicht: <span class="text-secondary"
|
||||||
|
>Verbrauchsausweis Wohngebäude</span
|
||||||
|
>
|
||||||
|
</h1>
|
||||||
<h3>Verbrauchsausweis Leistungen und Preise in der Übersicht:</h3>
|
<h3>Verbrauchsausweis Leistungen und Preise in der Übersicht:</h3>
|
||||||
|
|
||||||
<hr>
|
<hr />
|
||||||
<br>
|
<br />
|
||||||
|
|
||||||
<div id="ProduktUebersichtVerbrauchsausweisWohnen">
|
<div id="ProduktUebersichtVerbrauchsausweisWohnen">
|
||||||
|
<div
|
||||||
|
class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]"
|
||||||
|
>
|
||||||
|
<div class="justify-self-start pl-2"><b>Leistung</b></div>
|
||||||
|
<div><b>online</b></div>
|
||||||
|
<div><b>premium</b></div>
|
||||||
|
<div><b>offline</b></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]">
|
{#each bullets as [bullet, online, premium, offline]}
|
||||||
|
<div
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]">
|
class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center"
|
||||||
<div class="justify-self-start pl-2"><b>Leistung</b></div><div><b>online</b></div><div><b>premium</b></div><div><b>offline</b></div>
|
>
|
||||||
</div>
|
|
||||||
|
|
||||||
{#each bullets as [bullet,online,premium,offline]}
|
|
||||||
<div class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center">
|
|
||||||
<div class="justify-self-start pl-2">{@html bullet}</div>
|
<div class="justify-self-start pl-2">{@html bullet}</div>
|
||||||
<div class:check={online} class:check-no={!online}>{online ? "✔" : "⁃"}</div>
|
<div class:check={online} class:check-no={!online}>
|
||||||
<div class:check={premium} class:check-no={!premium}>{premium ? "✔" : "⁃"}</div>
|
{online ? "✔" : "⁃"}
|
||||||
<div class:check={offline} class:check-no={!offline}>{offline ? "✔" : "⁃"}</div>
|
</div>
|
||||||
</div>
|
<div class:check={premium} class:check-no={!premium}>
|
||||||
{/each}
|
{premium ? "✔" : "⁃"}
|
||||||
|
</div>
|
||||||
|
<div class:check={offline} class:check-no={!offline}>
|
||||||
|
{offline ? "✔" : "⁃"}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]">
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]"
|
||||||
|
>
|
||||||
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
||||||
<div class="price"><b>{PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Standard]} €</b></div>
|
<div class="price">
|
||||||
<div class="price"><b>{PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Beratung]} €</b></div>
|
<b
|
||||||
<div class="price"><b>{PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Offline]} €</b></div>
|
>{PRICES.VerbrauchsausweisWohnen[
|
||||||
</div>
|
Enums.AusweisTyp.Standard
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="price">
|
||||||
|
<b
|
||||||
|
>{PRICES.VerbrauchsausweisWohnen[
|
||||||
|
Enums.AusweisTyp.Beratung
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="price">
|
||||||
|
<b
|
||||||
|
>{PRICES.VerbrauchsausweisWohnen[
|
||||||
|
Enums.AusweisTyp.Offline
|
||||||
|
]} €</b
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
<div
|
||||||
|
class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center"
|
||||||
|
>
|
||||||
<div class="justify-self-start pl-2"></div>
|
<div class="justify-self-start pl-2"></div>
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Standard}" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
<a
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Beratung}" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Offline}" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
.AusweisTyp.Standard}"
|
||||||
</div>
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
</div>
|
></a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums
|
||||||
|
.AusweisTyp.Beratung}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums
|
||||||
|
.AusweisTyp.Offline}"
|
||||||
|
><button class="bestellbutton" type="button"
|
||||||
|
>sofort<br />bestellen</button
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style lang="postcss">
|
<style lang="postcss">
|
||||||
|
.bestellbutton {
|
||||||
|
@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
||||||
|
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;
|
||||||
|
}
|
||||||
|
|
||||||
.bestellbutton{@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
.zeile {
|
||||||
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;}
|
@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem];
|
||||||
|
}
|
||||||
|
.bullet {
|
||||||
|
@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem];
|
||||||
|
}
|
||||||
|
.bullet:nth-child(even) {
|
||||||
|
@apply bg-blue-100/40;
|
||||||
|
}
|
||||||
|
.bullet:nth-child(2) {
|
||||||
|
@apply !border-t-[6px];
|
||||||
|
}
|
||||||
|
.bullet:nth-child(12) {
|
||||||
|
@apply !border-b-[6px];
|
||||||
|
}
|
||||||
|
|
||||||
|
.check {
|
||||||
|
|
||||||
|
|
||||||
.zeile{@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem]}
|
|
||||||
.bullet{@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem]}
|
|
||||||
.bullet:nth-child(even){@apply bg-blue-100/40}
|
|
||||||
.bullet:nth-child(2){@apply !border-t-[6px]}
|
|
||||||
.bullet:nth-child(12){@apply !border-b-[6px]}
|
|
||||||
|
|
||||||
.check {
|
|
||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
||||||
}
|
}
|
||||||
.check-no {
|
.check-no {
|
||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-black;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
.price {
|
||||||
|
@apply text-[1.25rem] sm:text-[2rem];
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -26,7 +26,7 @@ describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => {
|
|||||||
}).then((ausweis: VerbrauchsausweisWohnen & { benutzer: Benutzer, aufnahme: Aufnahme & { objekt: Objekt }, rechnung: Rechnung | null }) => {
|
}).then((ausweis: VerbrauchsausweisWohnen & { benutzer: Benutzer, aufnahme: Aufnahme & { objekt: Objekt }, rechnung: Rechnung | null }) => {
|
||||||
cy.login("user@ib-cornelsen.de", "passwort");
|
cy.login("user@ib-cornelsen.de", "passwort");
|
||||||
|
|
||||||
cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id=${ausweis.id}`);
|
cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweis_id=${ausweis.id}`);
|
||||||
|
|
||||||
cy.wait(2000);
|
cy.wait(2000);
|
||||||
|
|
||||||
|
|||||||
@@ -113,3 +113,12 @@ export const SERVICES: Record<
|
|||||||
|
|
||||||
export const BASE_URI = process.env.NODE_ENV == "production" ? "https://online-energieausweis.org" : "http://localhost:3000";
|
export const BASE_URI = process.env.NODE_ENV == "production" ? "https://online-energieausweis.org" : "http://localhost:3000";
|
||||||
export const LEX_OFFICE_API_KEY = process.env.NODE_ENV == "production" ? "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q" : "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q"
|
export const LEX_OFFICE_API_KEY = process.env.NODE_ENV == "production" ? "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q" : "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q"
|
||||||
|
|
||||||
|
export enum AusstellungsTyp {
|
||||||
|
// Objekt wird behalten, Aufnahme und Ausweis werden neu angelegt.
|
||||||
|
Neuausstellung = "Neuausstellung",
|
||||||
|
// Alles wird behalten, Ausweis, Aufnahme und Objekt werden gespeichert, dafür müssen alle drei bereits existieren.
|
||||||
|
Speichern = "Speichern",
|
||||||
|
// Objekt und Aufnahme werden behalten, Ausweis wird neu angelegt.
|
||||||
|
Alternativdokument = "Alternativdokument",
|
||||||
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { AufnahmeKomplettClient, BenutzerClient } from "#components/Ausweis/types.js";
|
import { BenutzerClient } from "#components/Ausweis/types.js";
|
||||||
import Carousel from "#components/Carousel.svelte";
|
|
||||||
import DashboardAusweis from "#components/Dashboard/DashboardAusweis.svelte";
|
import DashboardAusweis from "#components/Dashboard/DashboardAusweis.svelte";
|
||||||
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
|
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
|
||||||
import { Aufnahme, BedarfsausweisWohnen, Bild, Objekt, Rechnung, Unterlage, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
import { Aufnahme, BedarfsausweisWohnen, Bild, Objekt, Rechnung, Unterlage, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||||
import { CaretRight, ChevronLeft, ChevronRight, FileText } from "radix-svelte-icons";
|
import { AusstellungsTyp } from "#lib/constants.js";
|
||||||
|
import { CaretRight, Plus } from "radix-svelte-icons";
|
||||||
import CaretLeft from "radix-svelte-icons/src/lib/icons/CaretLeft.svelte";
|
import CaretLeft from "radix-svelte-icons/src/lib/icons/CaretLeft.svelte";
|
||||||
|
|
||||||
export let ausweis: (VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen) & {
|
export let ausweis: (VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen) & {
|
||||||
@@ -33,22 +33,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="text-2xl">{ausweis.aufnahme.objekt.adresse}, {ausweis.aufnahme.objekt.plz} {ausweis.aufnahme.objekt.ort}</div>
|
<div class="text-2xl">{ausweis.aufnahme.objekt.adresse}, {ausweis.aufnahme.objekt.plz} {ausweis.aufnahme.objekt.ort}</div>
|
||||||
|
|
||||||
<!--
|
|
||||||
Funkioniert noch nicht. Man kann den neuen Ausweis nicht abspeichern.
|
<!-- Funkioniert noch nicht. Man kann den neuen Ausweis nicht abspeichern. -->
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<button class="button flex flex-row rounded-lg gap-2 bg-secondary text-white text-center" on:click={toggleDropdown}>
|
<button class="button flex flex-row rounded-lg gap-2 bg-secondary text-white text-center items-center" on:click={toggleDropdown}>
|
||||||
Als Vorlage verwenden +
|
Neuausstellung zu {ausweis.aufnahme.objekt.adresse} <Plus size={20}></Plus>
|
||||||
</button>
|
</button>
|
||||||
{#if dropdownOpen}
|
{#if dropdownOpen}
|
||||||
<div class="absolute top-15 left-0 mt-2 w-50 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 z-[9999]" on:click|stopPropagation on:keydown|stopPropagation on:keyup|stopPropagation>
|
<div class="absolute top-15 left-0 mt-2 w-50 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 z-[9999]" on:click|stopPropagation on:keydown|stopPropagation on:keyup|stopPropagation>
|
||||||
<div class="py-1 w-full" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
|
<div class="py-1 w-full" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
|
||||||
<a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?aufnahme={ausweis.aufnahme.id}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis<br>Wohnen Erstellen</a>
|
<a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?aufnahme_id={ausweis.aufnahme.id}&ausweis_id={ausweis.id}&typ={AusstellungsTyp.Neuausstellung}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis<br>Wohnen Erstellen</a>
|
||||||
<a href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?aufnahme={ausweis.aufnahme.id}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis<br>Gewerbe Erstellen</a>
|
<a href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?aufnahme_id={ausweis.aufnahme.id}&ausweis_id={ausweis.id}&typ={AusstellungsTyp.Neuausstellung}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Verbrauchsausweis<br>Gewerbe Erstellen</a>
|
||||||
<a href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?aufnahme={ausweis.aufnahme.id}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Bedarfsausweis<br>Wohnen Erstellen</a>
|
<a href="/energieausweis-erstellen/bedarfsausweis-wohngebaeud e?aufnahme_id={ausweis.aufnahme.id}&ausweis_id={ausweis.id}&typ={AusstellungsTyp.Neuausstellung}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 w-full text-left" role="menuitem">Bedarfsausweis<br>Wohnen Erstellen</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div> -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let bilder: BildClient[];
|
export let bilder: BildClient[];
|
||||||
export let id: string | null;
|
export let ausweis_id: string | null;
|
||||||
|
|
||||||
export let partner_code: string;
|
export let partner_code: string;
|
||||||
export let loadFromDatabase: boolean = false;
|
export let loadFromDatabase: boolean = false;
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
export let user: BenutzerClient | null;
|
export let user: BenutzerClient | null;
|
||||||
export let bilder: BildClient[];
|
export let bilder: BildClient[];
|
||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let id: string | null;
|
export let ausweis_id: string | null;
|
||||||
export let partner_code: string;
|
export let partner_code: string;
|
||||||
|
|
||||||
export let loadFromDatabase: boolean = false;
|
export let loadFromDatabase: boolean = false;
|
||||||
|
|||||||
230
src/pages/energieausweis-erstellen/[ausweisart]/index.astro
Normal file
230
src/pages/energieausweis-erstellen/[ausweisart]/index.astro
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
---
|
||||||
|
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||||
|
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||||
|
import {
|
||||||
|
Aufnahme,
|
||||||
|
BedarfsausweisWohnen,
|
||||||
|
Bild,
|
||||||
|
Enums,
|
||||||
|
Objekt,
|
||||||
|
prisma,
|
||||||
|
VerbrauchsausweisGewerbe,
|
||||||
|
VerbrauchsausweisWohnen,
|
||||||
|
} from "#lib/server/prisma";
|
||||||
|
import {
|
||||||
|
getAufnahme,
|
||||||
|
getBedarfsausweisWohnen,
|
||||||
|
getBilder,
|
||||||
|
getObjekt,
|
||||||
|
getVerbrauchsausweisGewerbe,
|
||||||
|
getVerbrauchsausweisWohnen,
|
||||||
|
} from "#lib/server/db";
|
||||||
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
|
import { AusstellungsTyp } from "#lib/constants";
|
||||||
|
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
||||||
|
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
||||||
|
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
|
||||||
|
|
||||||
|
const ausweisart = Astro.params.ausweisart as string;
|
||||||
|
|
||||||
|
if (
|
||||||
|
ausweisart !== "verbrauchsausweis-wohngebaeude" &&
|
||||||
|
ausweisart !== "verbrauchsausweis-gewerbe" &&
|
||||||
|
ausweisart !== "bedarfsausweis-wohngebaeude"
|
||||||
|
) {
|
||||||
|
return Astro.redirect("/404");
|
||||||
|
}
|
||||||
|
|
||||||
|
const user = await getCurrentUser(Astro);
|
||||||
|
|
||||||
|
const ausweis_id = Astro.url.searchParams.get("ausweis_id");
|
||||||
|
const typ = Astro.url.searchParams.get("typ") as AusstellungsTyp;
|
||||||
|
|
||||||
|
let ausweistyp =
|
||||||
|
(Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp) ||
|
||||||
|
Enums.AusweisTyp.Standard;
|
||||||
|
|
||||||
|
let ausweis:
|
||||||
|
| VerbrauchsausweisWohnen
|
||||||
|
| VerbrauchsausweisGewerbe
|
||||||
|
| BedarfsausweisWohnen
|
||||||
|
| null = {} as VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
|
let aufnahme: Aufnahme | null = {} as Aufnahme;
|
||||||
|
let objekt: Objekt | null = {} as Objekt;
|
||||||
|
let bilder: Bild[] = [];
|
||||||
|
let loadFromDatabase = false;
|
||||||
|
|
||||||
|
if (typ === AusstellungsTyp.Neuausstellung) {
|
||||||
|
if (!user) {
|
||||||
|
return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
|
||||||
|
}AusstellungsTyp
|
||||||
|
|
||||||
|
if (!ausweis_id) {
|
||||||
|
return Astro.redirect("/400");
|
||||||
|
}
|
||||||
|
|
||||||
|
const adapter = getPrismaAusweisAdapter(ausweis_id)
|
||||||
|
|
||||||
|
ausweis = await adapter?.findUnique({
|
||||||
|
where: {
|
||||||
|
id: ausweis_id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
aufnahme = await prisma.aufnahme.findUnique({
|
||||||
|
where: {
|
||||||
|
id: ausweis?.aufnahme_id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
objekt = await prisma.objekt.findUnique({
|
||||||
|
where: {
|
||||||
|
id: aufnahme?.objekt_id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (
|
||||||
|
!ausweis ||
|
||||||
|
!aufnahme ||
|
||||||
|
!objekt ||
|
||||||
|
ausweis.benutzer_id !== user.id ||
|
||||||
|
aufnahme.benutzer_id !== user.id ||
|
||||||
|
objekt.benutzer_id !== user.id
|
||||||
|
) {
|
||||||
|
return Astro.redirect("/405");
|
||||||
|
}
|
||||||
|
|
||||||
|
ausweis.id = null;
|
||||||
|
aufnahme.id = null;
|
||||||
|
// Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
|
||||||
|
loadFromDatabase = true;
|
||||||
|
} else if (typ === AusstellungsTyp.Speichern) {
|
||||||
|
if (!user) {
|
||||||
|
return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
|
||||||
|
}AusstellungsTyp
|
||||||
|
|
||||||
|
if (!ausweis_id) {
|
||||||
|
return Astro.redirect("/400");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ausweisart === "verbrauchsausweis-wohngebaeude") {
|
||||||
|
ausweis = await getVerbrauchsausweisWohnen(ausweis_id);
|
||||||
|
} else if (ausweisart === "verbrauchsausweis-gewerbe") {
|
||||||
|
ausweis = await getVerbrauchsausweisGewerbe(ausweis_id);
|
||||||
|
} else {
|
||||||
|
ausweis = await getBedarfsausweisWohnen(ausweis_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
ausweistyp = ausweis.ausweistyp;
|
||||||
|
|
||||||
|
aufnahme = (await getAufnahme(ausweis.aufnahme_id)) as Aufnahme;
|
||||||
|
|
||||||
|
objekt = (await getObjekt(aufnahme.objekt_id)) as Objekt;
|
||||||
|
|
||||||
|
if (
|
||||||
|
!ausweis ||
|
||||||
|
!aufnahme ||
|
||||||
|
!objekt ||
|
||||||
|
ausweis.benutzer_id !== user.id ||
|
||||||
|
aufnahme.benutzer_id !== user.id ||
|
||||||
|
objekt.benutzer_id !== user.id
|
||||||
|
) {
|
||||||
|
return Astro.redirect("/405");
|
||||||
|
}
|
||||||
|
|
||||||
|
bilder = await getBilder(aufnahme.id);
|
||||||
|
loadFromDatabase = true;
|
||||||
|
} else if (typ === AusstellungsTyp.Alternativdokument) {
|
||||||
|
if (!user) {
|
||||||
|
return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
|
||||||
|
}AusstellungsTyp
|
||||||
|
|
||||||
|
if (!ausweis_id) {
|
||||||
|
return Astro.redirect("/400");
|
||||||
|
}
|
||||||
|
|
||||||
|
const adapter = getPrismaAusweisAdapter(ausweis_id)
|
||||||
|
|
||||||
|
ausweis = await adapter?.findUnique({
|
||||||
|
where: {
|
||||||
|
id: ausweis_id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
aufnahme = await prisma.aufnahme.findUnique({
|
||||||
|
where: {
|
||||||
|
id: ausweis?.aufnahme_id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
objekt = await prisma.objekt.findUnique({
|
||||||
|
where: {
|
||||||
|
id: aufnahme?.objekt_id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (
|
||||||
|
!ausweis ||
|
||||||
|
!aufnahme ||
|
||||||
|
!objekt ||
|
||||||
|
ausweis.benutzer_id !== user.id ||
|
||||||
|
aufnahme.benutzer_id !== user.id ||
|
||||||
|
objekt.benutzer_id !== user.id
|
||||||
|
) {
|
||||||
|
return Astro.redirect("/405");
|
||||||
|
}
|
||||||
|
|
||||||
|
ausweis.id = null;
|
||||||
|
// Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
|
||||||
|
loadFromDatabase = true;
|
||||||
|
}
|
||||||
|
---
|
||||||
|
|
||||||
|
<AusweisLayout title="Verbrauchsausweis erstellen">
|
||||||
|
{
|
||||||
|
ausweisart === "verbrauchsausweis-wohngebaeude" && (
|
||||||
|
<VerbrauchsausweisWohnenModule
|
||||||
|
client:only
|
||||||
|
{ausweis}
|
||||||
|
{objekt}
|
||||||
|
{aufnahme}
|
||||||
|
{bilder}
|
||||||
|
{ausweis_id}
|
||||||
|
{ausweistyp}
|
||||||
|
{user}
|
||||||
|
{loadFromDatabase}
|
||||||
|
partner_code=""
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ausweisart === "verbrauchsausweis-gewerbe" && (
|
||||||
|
<VerbrauchsausweisGewerbeModule
|
||||||
|
client:only
|
||||||
|
{ausweis}
|
||||||
|
{objekt}
|
||||||
|
{aufnahme}
|
||||||
|
{bilder}
|
||||||
|
{ausweistyp}
|
||||||
|
{user}
|
||||||
|
{ausweis_id}
|
||||||
|
{loadFromDatabase}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ausweisart === "bedarfsausweis-wohngebaeude" && (
|
||||||
|
<BedarfsausweisWohnenModule
|
||||||
|
client:only
|
||||||
|
{ausweis}
|
||||||
|
{objekt}
|
||||||
|
{aufnahme}
|
||||||
|
{bilder}
|
||||||
|
{ausweistyp}
|
||||||
|
{ausweis_id}
|
||||||
|
{user}
|
||||||
|
{loadFromDatabase}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
</AusweisLayout>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
import Layout from "#layouts/Layout.astro";
|
||||||
|
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
|
||||||
|
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
|
||||||
|
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
|
||||||
|
|
||||||
|
const ausweisart = Astro.params.ausweisart;
|
||||||
|
|
||||||
|
if (ausweisart !== "verbrauchsausweis-wohngebaeude" && ausweisart !== "verbrauchsausweis-gewerbe" && ausweisart !== "bedarfsausweis-wohngebaeude") {
|
||||||
|
return Astro.redirect("/404")
|
||||||
|
}
|
||||||
|
|
||||||
|
let title: string = "";
|
||||||
|
if (ausweisart === "verbrauchsausweis-wohngebaeude") title = "Verbrauchsausweis Wohngebäude Produktübersicht";
|
||||||
|
if (ausweisart === "verbrauchsausweis-gewerbe") title = "Verbrauchsausweis Gewerbe Produktübersicht";
|
||||||
|
if (ausweisart === "bedarfsausweis-wohngebaeude") title = "Bedarfsausweis Wohngebäude Produktübersicht";
|
||||||
|
---
|
||||||
|
|
||||||
|
<Layout {title}>
|
||||||
|
{ausweisart === "verbrauchsausweis-wohngebaeude" && <ProduktUebersichtVerbrauchsausweisWohnen />}
|
||||||
|
{ausweisart === "verbrauchsausweis-gewerbe" && <ProduktUebersichtVerbrauchsausweisGewerbe />}
|
||||||
|
{ausweisart === "bedarfsausweis-wohngebaeude" && <ProduktUebersichtBedarfsausweisWohnen />}
|
||||||
|
</Layout>
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
|
||||||
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
|
||||||
import { Aufnahme, BedarfsausweisWohnen, Bild, Enums, Objekt } from "#lib/server/prisma";
|
|
||||||
import { getAufnahme, getObjekt, getBilder, getBedarfsausweisWohnen } from "#lib/server/db";
|
|
||||||
import { getCurrentUser } from "#lib/server/user";
|
|
||||||
|
|
||||||
const id = Astro.url.searchParams.get("id");
|
|
||||||
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
|
||||||
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
|
|
||||||
|
|
||||||
let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
|
|
||||||
let aufnahme: Aufnahme = {} as Aufnahme;
|
|
||||||
let objekt: Objekt = {} as Objekt;
|
|
||||||
let bilder: Bild[] = []
|
|
||||||
|
|
||||||
const user = await getCurrentUser(Astro)
|
|
||||||
|
|
||||||
if (id) {
|
|
||||||
if (!user) {
|
|
||||||
return Astro.redirect(
|
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
|
|
||||||
ausweistyp = ausweis.ausweistyp;
|
|
||||||
|
|
||||||
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
|
||||||
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
|
||||||
|
|
||||||
if (!aufnahme) {
|
|
||||||
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
||||||
|
|
||||||
if (!objekt) {
|
|
||||||
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
bilder = await getBilder(aufnahme.id);
|
|
||||||
} else if (aufnahme_id) {
|
|
||||||
if (!user) {
|
|
||||||
return Astro.redirect(
|
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
aufnahme = await getAufnahme(aufnahme_id) as Aufnahme
|
|
||||||
|
|
||||||
if (!aufnahme) {
|
|
||||||
// Die Aufnahme existiert wohl nicht.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
||||||
|
|
||||||
if (!objekt) {
|
|
||||||
// Das Objekt existiert nicht.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(ausweistyp);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
|
||||||
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id} {user} loadFromDatabase={id !== null}></BedarfsausweisWohnenModule>
|
|
||||||
</AusweisLayout>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
import Layout from "#layouts/Layout.astro";
|
|
||||||
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title="Bedarfsausweis Wohngebäude Produktübersicht">
|
|
||||||
|
|
||||||
<ProduktUebersichtBedarfsausweisWohnen>
|
|
||||||
|
|
||||||
</ProduktUebersichtBedarfsausweisWohnen>
|
|
||||||
|
|
||||||
|
|
||||||
</Layout>
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
---
|
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
|
||||||
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
|
|
||||||
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
|
||||||
import { Aufnahme, Enums, Objekt, VerbrauchsausweisGewerbe } from "#lib/server/prisma";
|
|
||||||
import { getAufnahme, getObjekt, getBilder, getVerbrauchsausweisGewerbe } from "#lib/server/db";
|
|
||||||
import { getCurrentUser } from "#lib/server/user";
|
|
||||||
|
|
||||||
const id = Astro.url.searchParams.get("id");
|
|
||||||
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
|
||||||
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
|
|
||||||
|
|
||||||
let ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
|
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
|
||||||
let bilder: BildClient[] = []
|
|
||||||
|
|
||||||
const user = await getCurrentUser(Astro)
|
|
||||||
|
|
||||||
if (id) {
|
|
||||||
if (!user) {
|
|
||||||
return Astro.redirect(
|
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe
|
|
||||||
ausweistyp = ausweis.ausweistyp;
|
|
||||||
|
|
||||||
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
|
||||||
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
|
||||||
|
|
||||||
if (!aufnahme) {
|
|
||||||
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
||||||
|
|
||||||
if (!objekt) {
|
|
||||||
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
bilder = await getBilder(aufnahme.id);
|
|
||||||
} else if (aufnahme_id) {
|
|
||||||
if (!user) {
|
|
||||||
return Astro.redirect(
|
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
aufnahme = await getAufnahme(aufnahme_id) as Aufnahme
|
|
||||||
|
|
||||||
if (!aufnahme) {
|
|
||||||
// Die Aufnahme existiert wohl nicht.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
||||||
|
|
||||||
if (!objekt) {
|
|
||||||
// Das Objekt existiert nicht.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
---
|
|
||||||
|
|
||||||
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen">
|
|
||||||
<VerbrauchsausweisGewerbeModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {user} {id} loadFromDatabase={id !== null}/>
|
|
||||||
</AusweisLayout>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
import Layout from "#layouts/Layout.astro";
|
|
||||||
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title="Verbrauchsausweis Gewerbe Produktübersicht">
|
|
||||||
|
|
||||||
<ProduktUebersichtVerbrauchsausweisGewerbe>
|
|
||||||
|
|
||||||
</ProduktUebersichtVerbrauchsausweisGewerbe>
|
|
||||||
|
|
||||||
|
|
||||||
</Layout>
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
---
|
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
|
||||||
import DatenblattVerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte";
|
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
|
||||||
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;
|
|
||||||
|
|
||||||
|
|
||||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
|
||||||
let bilder: UploadedGebaeudeBild[] = []
|
|
||||||
|
|
||||||
const valid = validateAccessTokenServer(Astro);
|
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
|
||||||
|
|
||||||
if (uid) {
|
|
||||||
if (!valid) {
|
|
||||||
return Astro.redirect(
|
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(null, {
|
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid: ausweis.uid_aufnahme
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid: ausweis.uid_objekt
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
|
|
||||||
headers: {
|
|
||||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
||||||
},
|
|
||||||
params: {
|
|
||||||
uid: ausweis.uid_aufnahme
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!ausweis) {
|
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
|
||||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} catch(e) {
|
|
||||||
return Astro.redirect(
|
|
||||||
"/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
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
---
|
|
||||||
|
|
||||||
<AusweisLayout title="Datenblatt Verbrauchsausweis Wohngebäude">
|
|
||||||
<DatenblattVerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} />
|
|
||||||
</AusweisLayout>
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
---
|
|
||||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
|
||||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
|
||||||
import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
|
|
||||||
import { getAufnahme, getBilder, getObjekt, getVerbrauchsausweisWohnen } from "#lib/server/db";
|
|
||||||
import { getCurrentUser } from "#lib/server/user";
|
|
||||||
|
|
||||||
const id = Astro.url.searchParams.get("id");
|
|
||||||
const aufnahme_id = Astro.url.searchParams.get("aufnahme")
|
|
||||||
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
|
|
||||||
|
|
||||||
let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
|
|
||||||
let aufnahme: Aufnahme = {} as Aufnahme;
|
|
||||||
let objekt: Objekt = {} as Objekt;
|
|
||||||
let bilder: Bild[] = []
|
|
||||||
|
|
||||||
const user = await getCurrentUser(Astro)
|
|
||||||
|
|
||||||
if (id) {
|
|
||||||
if (!user) {
|
|
||||||
return Astro.redirect(
|
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ausweis = await getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
|
|
||||||
ausweistyp = ausweis.ausweistyp;
|
|
||||||
|
|
||||||
if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
|
|
||||||
// Der Ausweis scheint nicht zu existieren.
|
|
||||||
// Wir leiten auf die generische Ausweisseite ohne ID weiter.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
|
||||||
|
|
||||||
if (!aufnahme) {
|
|
||||||
// Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
||||||
|
|
||||||
if (!objekt) {
|
|
||||||
// Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
bilder = await getBilder(aufnahme.id);
|
|
||||||
} else if (aufnahme_id) {
|
|
||||||
if (!user) {
|
|
||||||
return Astro.redirect(
|
|
||||||
`/auth/login?redirect=${Astro.url.toString()}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
aufnahme = await getAufnahme(aufnahme_id) as Aufnahme
|
|
||||||
|
|
||||||
if (!aufnahme) {
|
|
||||||
// Die Aufnahme existiert wohl nicht.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
|
||||||
|
|
||||||
if (!objekt) {
|
|
||||||
// Das Objekt existiert nicht.
|
|
||||||
return Astro.redirect(
|
|
||||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
---
|
|
||||||
|
|
||||||
<AusweisLayout title="Verbrauchsausweis erstellen">
|
|
||||||
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {id} {ausweistyp} {user} loadFromDatabase={id !== null} partner_code="" />
|
|
||||||
</AusweisLayout>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
import Layout from "#layouts/Layout.astro";
|
|
||||||
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title="Verbrauchsausweis Wohngebäude Produktübersicht">
|
|
||||||
|
|
||||||
<ProduktUebersichtVerbrauchsausweisWohnen>
|
|
||||||
|
|
||||||
</ProduktUebersichtVerbrauchsausweisWohnen>
|
|
||||||
|
|
||||||
|
|
||||||
</Layout>
|
|
||||||
Reference in New Issue
Block a user