Ansichtsausweis und Datenblatt
This commit is contained in:
28
Makefile
28
Makefile
@@ -1,9 +1,9 @@
|
|||||||
.PHONY: dev database api online-energieausweis all prod bun-install-database bun-install-api
|
.PHONY: dev database online-energieausweis all prod bun-install-database # api bun-install-api
|
||||||
|
|
||||||
online-energieausweis:
|
online-energieausweis:
|
||||||
bun run dev --host
|
bun run dev --host
|
||||||
|
|
||||||
dev: online-energieausweis api database
|
dev: database online-energieausweis # api
|
||||||
|
|
||||||
database:
|
database:
|
||||||
$(MAKE) -C ../database dev
|
$(MAKE) -C ../database dev
|
||||||
@@ -13,19 +13,19 @@ bun-install-database:
|
|||||||
bun link
|
bun link
|
||||||
bun install
|
bun install
|
||||||
|
|
||||||
bun-install-api: bun-install-database
|
# bun-install-api: bun-install-database
|
||||||
cd ../api
|
# cd ../api
|
||||||
bun install
|
# bun install
|
||||||
bun link @ibcornelsen/database
|
# bun link @ibcornelsen/database
|
||||||
|
|
||||||
api:
|
# api:
|
||||||
$(MAKE) -C ../api dev
|
# $(MAKE) -C ../api dev
|
||||||
|
|
||||||
all:
|
all:
|
||||||
mkdir -p ~/logs
|
mkdir -p ~/logs
|
||||||
bun run dev 2>&1 | tee ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log
|
bun run dev 2>&1 | tee ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log
|
||||||
|
|
||||||
prod: bun-install-api bun-install-database
|
prod: bun-install-database # bun-install-api
|
||||||
mkdir -p ~/logs
|
mkdir -p ~/logs
|
||||||
mkdir -p ~/persistent/online-energieausweis
|
mkdir -p ~/persistent/online-energieausweis
|
||||||
|
|
||||||
@@ -37,11 +37,11 @@ prod: bun-install-api bun-install-database
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Auch die API sollte bereits laufen
|
# Auch die API sollte bereits laufen
|
||||||
@if [ $$(pm2 pid api) -eq "0" ]; then \
|
# @if [ $$(pm2 pid api) -eq "0" ]; then \
|
||||||
cd ../api; \
|
# cd ../api; \
|
||||||
$(MAKE) prod; \
|
# $(MAKE) prod; \
|
||||||
cd ../online-energieausweis; \
|
# cd ../online-energieausweis; \
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
- rm -f ~/online-energieausweis/.env;
|
- rm -f ~/online-energieausweis/.env;
|
||||||
- touch ~/online-energieausweis/.env;
|
- touch ~/online-energieausweis/.env;
|
||||||
|
|||||||
3
bun.lock
3
bun.lock
@@ -8,7 +8,6 @@
|
|||||||
"@astrojs/node": "^8.3.4",
|
"@astrojs/node": "^8.3.4",
|
||||||
"@astrojs/svelte": "^2.2.0",
|
"@astrojs/svelte": "^2.2.0",
|
||||||
"@astrojs/tailwind": "^3.1.3",
|
"@astrojs/tailwind": "^3.1.3",
|
||||||
"@ibcornelsen/api": "link:@ibcornelsen/api",
|
|
||||||
"@ibcornelsen/database": "link:@ibcornelsen/database",
|
"@ibcornelsen/database": "link:@ibcornelsen/database",
|
||||||
"@ibcornelsen/ui": "^0.0.2",
|
"@ibcornelsen/ui": "^0.0.2",
|
||||||
"@mollie/api-client": "^4.1.0",
|
"@mollie/api-client": "^4.1.0",
|
||||||
@@ -255,8 +254,6 @@
|
|||||||
|
|
||||||
"@humanwhocodes/object-schema": ["@humanwhocodes/object-schema@1.2.1", "", {}, "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="],
|
"@humanwhocodes/object-schema": ["@humanwhocodes/object-schema@1.2.1", "", {}, "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="],
|
||||||
|
|
||||||
"@ibcornelsen/api": ["@ibcornelsen/api@link:@ibcornelsen/api", {}],
|
|
||||||
|
|
||||||
"@ibcornelsen/database": ["@ibcornelsen/database@link:@ibcornelsen/database", {}],
|
"@ibcornelsen/database": ["@ibcornelsen/database@link:@ibcornelsen/database", {}],
|
||||||
|
|
||||||
"@ibcornelsen/ui": ["@ibcornelsen/ui@0.0.2", "", { "dependencies": { "@astrojs/svelte": "^2.1.1", "cookiejs": "^2.1.2", "knex": "^2.4.2", "moment": "^2.29.4", "svelte": "^3.54.0", "svelte-preprocess": "^5.0.1", "tailwindcss": "^3.0.24", "uuid": "^9.0.0", "zod": "^3.21.4" } }, "sha512-TF29f0uY6MqxQszEySKRI5RJa1FmHCqaY5SjcIJjbI/9MjUL3tB/u9m+o7t/SpzPRNT419/HMdXSo7uOATX2Aw=="],
|
"@ibcornelsen/ui": ["@ibcornelsen/ui@0.0.2", "", { "dependencies": { "@astrojs/svelte": "^2.1.1", "cookiejs": "^2.1.2", "knex": "^2.4.2", "moment": "^2.29.4", "svelte": "^3.54.0", "svelte-preprocess": "^5.0.1", "tailwindcss": "^3.0.24", "uuid": "^9.0.0", "zod": "^3.21.4" } }, "sha512-TF29f0uY6MqxQszEySKRI5RJa1FmHCqaY5SjcIJjbI/9MjUL3tB/u9m+o7t/SpzPRNT419/HMdXSo7uOATX2Aw=="],
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default defineConfig({
|
|||||||
setupNodeEvents(on, config) {
|
setupNodeEvents(on, config) {
|
||||||
on("file:preprocessor", vitePreprocessor({
|
on("file:preprocessor", vitePreprocessor({
|
||||||
optimizeDeps: {
|
optimizeDeps: {
|
||||||
exclude: ["@ibcornelsen/api", "@ibcornelsen/database"]
|
exclude: ["@ibcornelsen/database"]
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ services:
|
|||||||
- ./:/online-energieausweis
|
- ./:/online-energieausweis
|
||||||
- ./node_modules/@ibcornelsen/ui:/online-energieausweis/node_modules/@ibcornelsen/ui
|
- ./node_modules/@ibcornelsen/ui:/online-energieausweis/node_modules/@ibcornelsen/ui
|
||||||
- ./node_modules/@ibcornelsen/database:/online-energieausweis/node_modules/@ibcornelsen/database
|
- ./node_modules/@ibcornelsen/database:/online-energieausweis/node_modules/@ibcornelsen/database
|
||||||
- ./node_modules/@ibcornelsen/api:/online-energieausweis/node_modules/@ibcornelsen/api
|
# - ./node_modules/@ibcornelsen/api:/online-energieausweis/node_modules/@ibcornelsen/api
|
||||||
- ./node_modules/radix-svelte-icons:/online-energieausweis/node_modules/radix-svelte-icons
|
- ./node_modules/radix-svelte-icons:/online-energieausweis/node_modules/radix-svelte-icons
|
||||||
- ../api/persistent:/persistent
|
- ../api/persistent:/persistent
|
||||||
ibcornelsen-api:
|
ibcornelsen-api:
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
"@astrojs/node": "^8.3.4",
|
"@astrojs/node": "^8.3.4",
|
||||||
"@astrojs/svelte": "^2.2.0",
|
"@astrojs/svelte": "^2.2.0",
|
||||||
"@astrojs/tailwind": "^3.1.3",
|
"@astrojs/tailwind": "^3.1.3",
|
||||||
"@ibcornelsen/api": "link:@ibcornelsen/api",
|
|
||||||
"@ibcornelsen/database": "link:@ibcornelsen/database",
|
"@ibcornelsen/database": "link:@ibcornelsen/database",
|
||||||
"@ibcornelsen/ui": "^0.0.2",
|
"@ibcornelsen/ui": "^0.0.2",
|
||||||
"@mollie/api-client": "^4.1.0",
|
"@mollie/api-client": "^4.1.0",
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ export const createCaller = createCallerFactory({
|
|||||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||||
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid].ts"),
|
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid].ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
|
||||||
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"),
|
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].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/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||||
"auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"),
|
"auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"),
|
||||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||||
@@ -17,9 +17,9 @@ export const createCaller = createCallerFactory({
|
|||||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||||
"verbrauchsausweis-gewerbe/[uid]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[uid].ts"),
|
"verbrauchsausweis-gewerbe/[uid]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[uid].ts"),
|
||||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
||||||
|
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
||||||
"verbrauchsausweis-wohnen/[uid]": await import("../src/pages/api/verbrauchsausweis-wohnen/[uid].ts"),
|
"verbrauchsausweis-wohnen/[uid]": await import("../src/pages/api/verbrauchsausweis-wohnen/[uid].ts"),
|
||||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||||
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
|
||||||
"objekt/[uid]/bilder": await import("../src/pages/api/objekt/[uid]/bilder.ts"),
|
"objekt/[uid]/bilder": await import("../src/pages/api/objekt/[uid]/bilder.ts"),
|
||||||
"objekt/[uid]": await import("../src/pages/api/objekt/[uid]/index.ts"),
|
"objekt/[uid]": await import("../src/pages/api/objekt/[uid]/index.ts"),
|
||||||
})
|
})
|
||||||
@@ -1,13 +1,19 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
import { VerbrauchsausweisWohnenClient } from "./Ausweis/types";
|
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
|
export let objekt: ObjektClient;
|
||||||
|
export let aufnahme: AufnahmeClient;
|
||||||
|
export let bilder: UploadedGebaeudeBild[];
|
||||||
|
|
||||||
$: base64 = Buffer.from(JSON.stringify(ausweis), "utf-8").toString("base64")
|
$: base64Ausweis = Buffer.from(JSON.stringify(ausweis), "utf-8").toString("base64")
|
||||||
|
$: base64Aufnahme = Buffer.from(JSON.stringify(aufnahme), "utf-8").toString("base64")
|
||||||
|
$: base64Objekt = Buffer.from(JSON.stringify(objekt), "utf-8").toString("base64")
|
||||||
|
$: base64Bilder = Buffer.from(JSON.stringify(bilder), "utf-8").toString("base64")
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<a class="border-2 rounded-lg w-[30%] bg-white text-center hover:shadow-md no-underline p-6 cursor-pointer" target="_blank" href="/pdf/ansichtsausweis?base64={base64}">
|
<a class="border-2 rounded-lg w-[30%] bg-white text-center hover:shadow-md no-underline p-6 cursor-pointer" target="_blank" href="/pdf/ansichtsausweis?ausweis={base64Ausweis}&objekt=${base64Objekt}&aufnahme={base64Aufnahme}&bilder={base64Bilder}">
|
||||||
<img src="/images/ausweis.webp" alt="Ausweis" />
|
<img src="/images/ausweis.webp" alt="Ausweis" />
|
||||||
<span class="text-black font-medium text-lg">Ansichtsausweis</span>
|
<span class="text-black font-medium text-lg">Ansichtsausweis</span>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
} from "@ibcornelsen/database/client";
|
} from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
AufnahmeClient,
|
||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
@@ -17,6 +18,7 @@
|
|||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
|
export let aufnahme: AufnahmeClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
</script>
|
</script>
|
||||||
@@ -58,8 +60,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row gap-4 mt-4">
|
<div class="flex flex-row gap-4 mt-4">
|
||||||
<AnsichtsausweisButton {ausweis} />
|
<AnsichtsausweisButton {ausweis} {aufnahme} {objekt} bilder={images} />
|
||||||
<DatenblattButton {ausweis} />
|
<DatenblattButton {ausweis} {aufnahme} {objekt} bilder={images} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -54,13 +54,7 @@
|
|||||||
let translation_2 = 0;
|
let translation_2 = 0;
|
||||||
$: {
|
$: {
|
||||||
(async () => {
|
(async () => {
|
||||||
const result = await endEnergieVerbrauchVerbrauchsausweis_2016({
|
const result = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||||
...ausweis,
|
|
||||||
aufnahme: {
|
|
||||||
...aufnahme,
|
|
||||||
objekt: objekt,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -132,7 +132,7 @@
|
|||||||
<!-- TODO: Metrics für den Fortschritt festlegen -->
|
<!-- TODO: Metrics für den Fortschritt festlegen -->
|
||||||
<span class="text-sm font-semibold text-base-content">{progress}%</span>
|
<span class="text-sm font-semibold text-base-content">{progress}%</span>
|
||||||
</div>
|
</div>
|
||||||
{#await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis)}
|
{#await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt)}
|
||||||
|
|
||||||
{:then calculations}
|
{:then calculations}
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
import { VerbrauchsausweisWohnenClient } from "./Ausweis/types";
|
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
|
export let objekt: ObjektClient;
|
||||||
|
export let aufnahme: AufnahmeClient;
|
||||||
|
export let bilder: UploadedGebaeudeBild[];
|
||||||
|
|
||||||
$: base64 = Buffer.from(JSON.stringify(ausweis), "utf-8").toString("base64");
|
$: base64Ausweis = Buffer.from(JSON.stringify(ausweis), "utf-8").toString("base64")
|
||||||
|
$: base64Aufnahme = Buffer.from(JSON.stringify(aufnahme), "utf-8").toString("base64")
|
||||||
|
$: base64Objekt = Buffer.from(JSON.stringify(objekt), "utf-8").toString("base64")
|
||||||
|
$: base64Bilder = Buffer.from(JSON.stringify(bilder), "utf-8").toString("base64")
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<a class="border-2 rounded-lg w-[30%] bg-white text-center hover:shadow-md no-underline p-6 cursor-pointer" target="_blank" href="/pdf/datenblatt?base64={base64}">
|
<a class="border-2 rounded-lg w-[30%] bg-white text-center hover:shadow-md no-underline p-6 cursor-pointer" target="_blank" href="/pdf/datenblatt?ausweis={base64Ausweis}&objekt=${base64Objekt}&aufnahme={base64Aufnahme}&bilder={base64Bilder}">
|
||||||
<img src="/images/datenblatt.webp" alt="Datenblatt" />
|
<img src="/images/datenblatt.webp" alt="Datenblatt" />
|
||||||
<span class="text-black font-medium text-lg">Datenblatt</span>
|
<span class="text-black font-medium text-lg">Datenblatt</span>
|
||||||
</a>
|
</a>
|
||||||
@@ -3,7 +3,7 @@ import { AuditType, hidden } from "./hidden.js";
|
|||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
||||||
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
|
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
|
||||||
|
|
||||||
export async function auditEndEnergie(ausweis: VerbrauchsausweisWohnenClient, gebaeude: ObjektClient, aufnahme: AufnahmeClient): Promise<boolean> {
|
export async function auditEndEnergie(ausweis: VerbrauchsausweisWohnenClient, objekt: ObjektClient, aufnahme: AufnahmeClient): Promise<boolean> {
|
||||||
if (hidden.has(AuditType.END_ENERGIE)) {
|
if (hidden.has(AuditType.END_ENERGIE)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -11,9 +11,9 @@ export async function auditEndEnergie(ausweis: VerbrauchsausweisWohnenClient, ge
|
|||||||
if (aufnahme){
|
if (aufnahme){
|
||||||
if (aufnahme.flaeche && ausweis.verbrauch_1 && ausweis.verbrauch_2 && ausweis.verbrauch_3) {
|
if (aufnahme.flaeche && ausweis.verbrauch_1 && ausweis.verbrauch_2 && ausweis.verbrauch_3) {
|
||||||
try {
|
try {
|
||||||
const response = await getKlimafaktoren(ausweis.startdatum, gebaeude.plz);
|
const response = await getKlimafaktoren(ausweis.startdatum, objekt.plz);
|
||||||
// Alle Klimfaktoren konnten abgefragt werden.
|
// Alle Klimfaktoren konnten abgefragt werden.
|
||||||
const eevva = await endEnergieVerbrauchVerbrauchsausweis_2016({...ausweis, aufnahme: {...aufnahme, objekt: gebaeude}});
|
const eevva = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||||
if (eevva){
|
if (eevva){
|
||||||
if (eevva?.endEnergieVerbrauchGesamt <= 45 || eevva?.endEnergieVerbrauchGesamt >= 500) {
|
if (eevva?.endEnergieVerbrauchGesamt <= 45 || eevva?.endEnergieVerbrauchGesamt >= 500) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,33 +1,32 @@
|
|||||||
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
|
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
|
||||||
import { getHeizwertfaktor } from "#lib/server/Heizwertfaktor.js";
|
import { getHeizwertfaktor } from "#lib/server/Heizwertfaktor.js";
|
||||||
import { Enums } from "@ibcornelsen/database/client";
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
|
||||||
export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
|
export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
|
||||||
ausweis: VerbrauchsausweisWohnenClient
|
ausweis: VerbrauchsausweisWohnenClient,
|
||||||
|
aufnahme: AufnahmeClient
|
||||||
): number {
|
): number {
|
||||||
if (!ausweis.aufnahme.objekt) {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
let faktorKeller = 1.2;
|
let faktorKeller = 1.2;
|
||||||
// Falls das Gebäude einen Keller besitzt der Beheizt ist erhöhen wir die Nutzfläche um 15%
|
// Falls das Gebäude einen Keller besitzt der Beheizt ist erhöhen wir die Nutzfläche um 15%
|
||||||
if (ausweis.aufnahme.keller == Enums.Heizungsstatus.BEHEIZT && (ausweis.aufnahme.einheiten || 1) <= 2) {
|
if (aufnahme.keller == Enums.Heizungsstatus.BEHEIZT && (aufnahme.einheiten || 1) <= 2) {
|
||||||
faktorKeller = 1.35;
|
faktorKeller = 1.35;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ausweis.aufnahme.nutzflaeche || 0) > 0) {
|
if ((aufnahme.nutzflaeche || 0) > 0) {
|
||||||
return ausweis.aufnahme.nutzflaeche || 0;
|
return aufnahme.nutzflaeche || 0;
|
||||||
} else {
|
} else {
|
||||||
return (ausweis.aufnahme.flaeche || 0) * faktorKeller;
|
return (aufnahme.flaeche || 0) * faktorKeller;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
||||||
ausweis: VerbrauchsausweisWohnenClient
|
ausweis: VerbrauchsausweisWohnenClient,
|
||||||
|
aufnahme: AufnahmeClient,
|
||||||
|
objekt: ObjektClient
|
||||||
) {
|
) {
|
||||||
if (!ausweis.aufnahme || !ausweis.aufnahme.objekt) {
|
if (!aufnahme || !objekt || !ausweis) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,7 +49,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
|||||||
}];
|
}];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await getKlimafaktoren(ausweis.startdatum, ausweis.aufnahme.objekt.plz)
|
const response = await getKlimafaktoren(ausweis.startdatum, objekt.plz)
|
||||||
|
|
||||||
if (response) {
|
if (response) {
|
||||||
klimafaktoren = response
|
klimafaktoren = response
|
||||||
@@ -65,16 +64,16 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
|||||||
// Endenergieverbrauch
|
// Endenergieverbrauch
|
||||||
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
|
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
|
||||||
let brennstoff_1 = getHeizwertfaktor(
|
let brennstoff_1 = getHeizwertfaktor(
|
||||||
ausweis.aufnahme.brennstoff_1 as string,
|
aufnahme.brennstoff_1 as string,
|
||||||
ausweis.einheit_1 as string
|
ausweis.einheit_1 as string
|
||||||
);
|
);
|
||||||
let brennstoff_2 = getHeizwertfaktor(
|
let brennstoff_2 = getHeizwertfaktor(
|
||||||
ausweis.aufnahme.brennstoff_2 as string,
|
aufnahme.brennstoff_2 as string,
|
||||||
ausweis.einheit_2 as string
|
ausweis.einheit_2 as string
|
||||||
);
|
);
|
||||||
|
|
||||||
const energetischeNutzflaeche =
|
const energetischeNutzflaeche =
|
||||||
energetischeNutzflaecheVerbrauchsausweisWohnen_2016(ausweis);
|
energetischeNutzflaecheVerbrauchsausweisWohnen_2016(ausweis, aufnahme);
|
||||||
|
|
||||||
let energieVerbrauchGesamt_1 =
|
let energieVerbrauchGesamt_1 =
|
||||||
((ausweis.verbrauch_1 || 0) +
|
((ausweis.verbrauch_1 || 0) +
|
||||||
@@ -91,10 +90,10 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
|||||||
let energieVerbrauchWarmwasser_2 = 0;
|
let energieVerbrauchWarmwasser_2 = 0;
|
||||||
let leerstandsZuschlagWarmwasser = 0;
|
let leerstandsZuschlagWarmwasser = 0;
|
||||||
// Leerstand wird in Prozent angegeben, muss hier aber in eine Zahl zwischen 0 und 1 umgerechnet werden.
|
// Leerstand wird in Prozent angegeben, muss hier aber in eine Zahl zwischen 0 und 1 umgerechnet werden.
|
||||||
let leerstand = (ausweis.aufnahme.leerstand || 0) / 100;
|
let leerstand = (aufnahme.leerstand || 0) / 100;
|
||||||
|
|
||||||
if (ausweis.warmwasser_enthalten && ausweis.warmwasser_anteil_bekannt) {
|
if (ausweis.warmwasser_enthalten && ausweis.warmwasser_anteil_bekannt) {
|
||||||
if (ausweis.aufnahme.solarsystem_warmwasser) {
|
if (aufnahme.solarsystem_warmwasser) {
|
||||||
// Wenn Warmwasser enthalten und Anteil bekannt und Solarsystem
|
// Wenn Warmwasser enthalten und Anteil bekannt und Solarsystem
|
||||||
energieVerbrauchWarmwasser_1 =
|
energieVerbrauchWarmwasser_1 =
|
||||||
energieVerbrauchGesamt_1 *
|
energieVerbrauchGesamt_1 *
|
||||||
@@ -117,7 +116,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
|||||||
leerstand *
|
leerstand *
|
||||||
(energieVerbrauchWarmwasser_1 + energieVerbrauchWarmwasser_2);
|
(energieVerbrauchWarmwasser_1 + energieVerbrauchWarmwasser_2);
|
||||||
} else {
|
} else {
|
||||||
if (ausweis.aufnahme.solarsystem_warmwasser) {
|
if (aufnahme.solarsystem_warmwasser) {
|
||||||
// Wenn Warmwasser Anteil unbekannt und Solarsystem
|
// Wenn Warmwasser Anteil unbekannt und Solarsystem
|
||||||
energieVerbrauchWarmwasser_1 = energetischeNutzflaeche * 12 * 3;
|
energieVerbrauchWarmwasser_1 = energetischeNutzflaeche * 12 * 3;
|
||||||
energieVerbrauchWarmwasser_2 = 0;
|
energieVerbrauchWarmwasser_2 = 0;
|
||||||
@@ -189,7 +188,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
|||||||
let primaerfaktorww = 0;
|
let primaerfaktorww = 0;
|
||||||
let primaerfaktorww_1 = 0;
|
let primaerfaktorww_1 = 0;
|
||||||
|
|
||||||
if (!ausweis.warmwasser_enthalten && ausweis.aufnahme.durchlauf_erhitzer) {
|
if (!ausweis.warmwasser_enthalten && aufnahme.durchlauf_erhitzer) {
|
||||||
primaerfaktorww = 1.8;
|
primaerfaktorww = 1.8;
|
||||||
primaerfaktorww_1 = 1.8;
|
primaerfaktorww_1 = 1.8;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import type { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database/client";
|
import type { VerbrauchsausweisWohnen } from "@ibcornelsen/database/client";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "./VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "./VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
||||||
|
import { AufnahmeClient, ObjektClient } from "#components/Ausweis/types.js";
|
||||||
|
|
||||||
export async function endEnergieVerbrauch(ausweis: VerbrauchsausweisWohnen & { objekt: GebaeudeStammdaten }): Promise<number> {
|
export async function endEnergieVerbrauch(ausweis: VerbrauchsausweisWohnen, aufnahme: AufnahmeClient, objekt: ObjektClient): Promise<number> {
|
||||||
const result = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis);
|
const result = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BenutzerClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
import { PDFDocument, rgb, StandardFonts, TextAlignment } from "pdf-lib";
|
import { PDFDocument, rgb, StandardFonts, TextAlignment } from "pdf-lib";
|
||||||
@@ -9,14 +9,14 @@ import { Heizungsstatus } from "@ibcornelsen/database/server";
|
|||||||
|
|
||||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||||
|
|
||||||
export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient) {
|
export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient) {
|
||||||
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("./templates/Leerseite_Datenblatt.pdf", import.meta.url), "base64");
|
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("./templates/Leerseite_Datenblatt.pdf", import.meta.url), "base64");
|
||||||
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
|
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
|
||||||
const pages = pdf.getPages()
|
const pages = pdf.getPages()
|
||||||
|
|
||||||
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||||
|
|
||||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis);
|
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||||
|
|
||||||
const height = pages[0].getHeight()
|
const height = pages[0].getHeight()
|
||||||
const width = pages[0].getWidth()
|
const width = pages[0].getWidth()
|
||||||
@@ -30,7 +30,7 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
const marginX = 60;
|
const marginX = 60;
|
||||||
const marginY = 150;
|
const marginY = 150;
|
||||||
|
|
||||||
const benutzer: typeof ausweis.benutzer = ausweis.benutzer || {
|
benutzer = benutzer || {
|
||||||
vorname: "Max",
|
vorname: "Max",
|
||||||
name: "Mustermann",
|
name: "Mustermann",
|
||||||
adresse: "Musterstraße 123",
|
adresse: "Musterstraße 123",
|
||||||
@@ -55,7 +55,7 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
<text size="12">Ausweis ID: ${ausweis.uid}</text>
|
<text size="12">Ausweis ID: ${ausweis.uid}</text>
|
||||||
</flex>
|
</flex>
|
||||||
<text size="12" lineHeight="14" font="bold" marginTop="10">Gebäudedaten</text>
|
<text size="12" lineHeight="14" font="bold" marginTop="10">Gebäudedaten</text>
|
||||||
<text size="12" lineHeight="14">Adresse: ${ausweis.aufnahme.objekt.adresse}, ${ausweis.aufnahme.objekt.plz} ${ausweis.aufnahme.objekt.ort}</text>
|
<text size="12" lineHeight="14">Adresse: ${objekt.adresse}, ${objekt.plz} ${objekt.ort}</text>
|
||||||
|
|
||||||
<flex direction="row" justify="space-between" width="${innerWidth}" marginTop="25">
|
<flex direction="row" justify="space-between" width="${innerWidth}" marginTop="25">
|
||||||
<flex direction="row" gap="5" align="center">
|
<flex direction="row" gap="5" align="center">
|
||||||
@@ -80,29 +80,29 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
<flex direction="column" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="column" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<text size="12" lineHeight="14">Gebäudetyp:</text>
|
<text size="12" lineHeight="14">Gebäudetyp:</text>
|
||||||
<text size="12" lineHeight="14">${ausweis.aufnahme.gebaeudetyp}</text>
|
<text size="12" lineHeight="14">${aufnahme.gebaeudetyp}</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<text size="12" lineHeight="14">Wohnfläche:</text>
|
<text size="12" lineHeight="14">Wohnfläche:</text>
|
||||||
<text size="12" lineHeight="14">DIN Wohnfläche innen ${ausweis.aufnahme.flaeche} m²</text>
|
<text size="12" lineHeight="14">DIN Wohnfläche innen ${aufnahme.flaeche} m²</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<text size="12" lineHeight="14">Leerstand:</text>
|
<text size="12" lineHeight="14">Leerstand:</text>
|
||||||
<text size="12" lineHeight="14">${ausweis.aufnahme.leerstand || 0}%</text>
|
<text size="12" lineHeight="14">${aufnahme.leerstand || 0}%</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<text size="12" lineHeight="14">Wohnungen:</text>
|
<text size="12" lineHeight="14">Wohnungen:</text>
|
||||||
<text size="12" lineHeight="14">${ausweis.aufnahme.einheiten}</text>
|
<text size="12" lineHeight="14">${aufnahme.einheiten}</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="column" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="column" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<text size="12" lineHeight="14">Dachgeschoss:</text>
|
<text size="12" lineHeight="14">Dachgeschoss:</text>
|
||||||
<text size="12" lineHeight="14">${translateHeizungsstatus[ausweis.aufnahme.dachgeschoss || "NICHT_VORHANDEN"]}</text>
|
<text size="12" lineHeight="14">${translateHeizungsstatus[aufnahme.dachgeschoss || "NICHT_VORHANDEN"]}</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
|
||||||
<text size="12" lineHeight="14">Keller:</text>
|
<text size="12" lineHeight="14">Keller:</text>
|
||||||
<text size="12" lineHeight="14">${translateHeizungsstatus[ausweis.aufnahme.keller || "NICHT_VORHANDEN"]}</text>
|
<text size="12" lineHeight="14">${translateHeizungsstatus[aufnahme.keller || "NICHT_VORHANDEN"]}</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
@@ -126,14 +126,14 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
</flex>
|
</flex>
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<text></text>
|
<text></text>
|
||||||
<text size="12" font="bold">${ausweis.aufnahme.brennstoff_1}</text>
|
<text size="12" font="bold">${aufnahme.brennstoff_1}</text>
|
||||||
<text size="12">${ausweis.verbrauch_1} ${ausweis.einheit_1}</text>
|
<text size="12">${ausweis.verbrauch_1} ${ausweis.einheit_1}</text>
|
||||||
<text size="12">${ausweis.verbrauch_2} ${ausweis.einheit_1}</text>
|
<text size="12">${ausweis.verbrauch_2} ${ausweis.einheit_1}</text>
|
||||||
<text size="12">${ausweis.verbrauch_3} ${ausweis.einheit_1}</text>
|
<text size="12">${ausweis.verbrauch_3} ${ausweis.einheit_1}</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<text size="12">zusätzliche Heizquelle</text>
|
<text size="12">zusätzliche Heizquelle</text>
|
||||||
<text size="12" font="bold">${ausweis.aufnahme.brennstoff_2 || ""}</text>
|
<text size="12" font="bold">${aufnahme.brennstoff_2 || ""}</text>
|
||||||
<text size="12">${ausweis.verbrauch_4 || ""} ${ausweis.einheit_2 || ""}</text>
|
<text size="12">${ausweis.verbrauch_4 || ""} ${ausweis.einheit_2 || ""}</text>
|
||||||
<text size="12">${ausweis.verbrauch_5 || ""} ${ausweis.einheit_2 || ""}</text>
|
<text size="12">${ausweis.verbrauch_5 || ""} ${ausweis.einheit_2 || ""}</text>
|
||||||
<text size="12">${ausweis.verbrauch_6 || ""} ${ausweis.einheit_2 || ""}</text>
|
<text size="12">${ausweis.verbrauch_6 || ""} ${ausweis.einheit_2 || ""}</text>
|
||||||
@@ -152,55 +152,55 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
<flex direction="row" justify="space-between" width="${pages[1].getWidth() - 120}" marginTop="15">
|
<flex direction="row" justify="space-between" width="${pages[1].getWidth() - 120}" marginTop="15">
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.zentralheizung || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.zentralheizung || false}"></checkbox>
|
||||||
<text size="12">Zentralheizung</text>
|
<text size="12">Zentralheizung</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.einzelofen || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.einzelofen || false}"></checkbox>
|
||||||
<text size="12">Einzelöfen</text>
|
<text size="12">Einzelöfen</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.durchlauf_erhitzer || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.durchlauf_erhitzer || false}"></checkbox>
|
||||||
<text size="12">Durchlauferhitzer</text>
|
<text size="12">Durchlauferhitzer</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.standard_kessel || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.standard_kessel || false}"></checkbox>
|
||||||
<text size="12">Standardkessel</text>
|
<text size="12">Standardkessel</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.solarsystem_warmwasser || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.solarsystem_warmwasser || false}"></checkbox>
|
||||||
<text size="12">Solarsystem für Warmwasser</text>
|
<text size="12">Solarsystem für Warmwasser</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.waermepumpe || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.waermepumpe || false}"></checkbox>
|
||||||
<text size="12">Wärmepumpe</text>
|
<text size="12">Wärmepumpe</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.niedertemperatur_kessel || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.niedertemperatur_kessel || false}"></checkbox>
|
||||||
<text size="12">Niedertemperaturkessel</text>
|
<text size="12">Niedertemperaturkessel</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.brennwert_kessel || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.brennwert_kessel || false}"></checkbox>
|
||||||
<text size="12">Brennwertkessel</text>
|
<text size="12">Brennwertkessel</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.warmwasser_rohre_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.warmwasser_rohre_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Warmwasserrohre gedämmt</text>
|
<text size="12">Warmwasserrohre gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.heizungsrohre_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.heizungsrohre_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Heizungsrohre gedämmt</text>
|
<text size="12">Heizungsrohre gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.zirkulation || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.zirkulation || false}"></checkbox>
|
||||||
<text size="12">Zirkulation</text>
|
<text size="12">Zirkulation</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.raum_temperatur_regler || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.raum_temperatur_regler || false}"></checkbox>
|
||||||
<text size="12">Raumtemperaturregelung</text>
|
<text size="12">Raumtemperaturregelung</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
@@ -209,15 +209,15 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
<flex direction="row" justify="space-between" width="${pages[1].getWidth() - 120}" marginTop="15">
|
<flex direction="row" justify="space-between" width="${pages[1].getWidth() - 120}" marginTop="15">
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.einfach_verglasung || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.einfach_verglasung || false}"></checkbox>
|
||||||
<text size="12">Einfachglas</text>
|
<text size="12">Einfachglas</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.doppel_verglasung || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.doppel_verglasung || false}"></checkbox>
|
||||||
<text size="12">Doppelverglasung</text>
|
<text size="12">Doppelverglasung</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.isolier_verglasung || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.isolier_verglasung || false}"></checkbox>
|
||||||
<text size="12">Isolierverglasung</text>
|
<text size="12">Isolierverglasung</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
@@ -227,25 +227,25 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
<text size="12">Passivhausfenster</text>
|
<text size="12">Passivhausfenster</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.fenster_dicht || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.fenster_dicht || false}"></checkbox>
|
||||||
<text size="12">Alle Fenster dicht</text>
|
<text size="12">Alle Fenster dicht</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.fenster_teilweise_undicht || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.fenster_teilweise_undicht || false}"></checkbox>
|
||||||
<text size="12">Fenster teilweise undicht</text>
|
<text size="12">Fenster teilweise undicht</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.tueren_undicht || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.tueren_undicht || false}"></checkbox>
|
||||||
<text size="12">Türen teilweise undicht</text>
|
<text size="12">Türen teilweise undicht</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.tueren_dicht || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.tueren_dicht || false}"></checkbox>
|
||||||
<text size="12">Alle Türen dicht</text>
|
<text size="12">Alle Türen dicht</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.rolllaeden_kaesten_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.rolllaeden_kaesten_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Rollladenkästen gedämmt</text>
|
<text size="12">Rollladenkästen gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
@@ -254,33 +254,33 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
<flex direction="row" justify="space-between" width="${pages[1].getWidth() - 120}" marginTop="15">
|
<flex direction="row" justify="space-between" width="${pages[1].getWidth() - 120}" marginTop="15">
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.keller_wand_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.keller_wand_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Kelleraußenwand gedämmt</text>
|
<text size="12">Kelleraußenwand gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.keller_decke_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.keller_decke_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Kellerdecke gedämmt</text>
|
<text size="12">Kellerdecke gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.aussenwand_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.aussenwand_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Außenwand gedämmt</text>
|
<text size="12">Außenwand gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="column" gap="4">
|
<flex direction="column" gap="4">
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.dachgeschoss_min_12cm_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.dachgeschoss_min_12cm_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Dachgeschoss min. 12cm gedämmt</text>
|
<text size="12">Dachgeschoss min. 12cm gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.dachgeschoss_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.dachgeschoss_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Dachgeschoss gedämmt</text>
|
<text size="12">Dachgeschoss gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.oberste_geschossdecke_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.oberste_geschossdecke_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Oberste Geschossdecke gedämmt</text>
|
<text size="12">Oberste Geschossdecke gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
<flex direction="row" gap="4" align="center">
|
<flex direction="row" gap="4" align="center">
|
||||||
<checkbox width="8" height="8" checked="${ausweis.aufnahme.oberste_geschossdecke_min_12cm_gedaemmt || false}"></checkbox>
|
<checkbox width="8" height="8" checked="${aufnahme.oberste_geschossdecke_min_12cm_gedaemmt || false}"></checkbox>
|
||||||
<text size="12">Oberste Geschossdecke min. 12cm gedämmt</text>
|
<text size="12">Oberste Geschossdecke min. 12cm gedämmt</text>
|
||||||
</flex>
|
</flex>
|
||||||
</flex>
|
</flex>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
|
|
||||||
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||||
|
|
||||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis);
|
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||||
|
|
||||||
const height = pages[0].getHeight()
|
const height = pages[0].getHeight()
|
||||||
|
|
||||||
@@ -48,13 +48,13 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
|
|
||||||
const gebaeudeteil = fillFormField("gebaeudeteil", aufnahme.gebaeudeteil)
|
const gebaeudeteil = fillFormField("gebaeudeteil", aufnahme.gebaeudeteil)
|
||||||
|
|
||||||
const baujahr_gebaeude = fillFormField("baujahr_gebaeude", aufnahme.baujahr_gebaeude.toString())
|
const baujahr_gebaeude = fillFormField("baujahr_gebaeude", aufnahme.baujahr_gebaeude?.toString())
|
||||||
|
|
||||||
const baujahr_heizung = fillFormField("baujahr_heizung", aufnahme.baujahr_heizung.toString())
|
const baujahr_heizung = fillFormField("baujahr_heizung", aufnahme.baujahr_heizung?.toString())
|
||||||
|
|
||||||
const einheiten = fillFormField("einheiten", aufnahme.einheiten.toString())
|
const einheiten = fillFormField("einheiten", aufnahme.einheiten?.toString())
|
||||||
|
|
||||||
const nutzflaeche = fillFormField("nutzflaeche", `${aufnahme.nutzflaeche.toString()}m²`)
|
const nutzflaeche = fillFormField("nutzflaeche", `${aufnahme.nutzflaeche?.toString()}m²`)
|
||||||
|
|
||||||
fillFormField("energietraeger_heizung", `${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`)
|
fillFormField("energietraeger_heizung", `${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`)
|
||||||
|
|
||||||
@@ -72,20 +72,23 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
toggleCheck("anlass_modernisierung", ausweis.ausstellgrund == "Modernisierung")
|
toggleCheck("anlass_modernisierung", ausweis.ausstellgrund == "Modernisierung")
|
||||||
toggleCheck("anlass_sonstiges", ausweis.ausstellgrund == "Sonstiges")
|
toggleCheck("anlass_sonstiges", ausweis.ausstellgrund == "Sonstiges")
|
||||||
|
|
||||||
|
console.log(bilder);
|
||||||
|
|
||||||
|
|
||||||
const gebaeudeBild = bilder.find(image => image.kategorie === "Gebaeude");
|
const gebaeudeBild = bilder.find(image => image.kategorie === "Gebaeude");
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------- Seite 2 -------------------------------- */
|
/* -------------------------------- Seite 2 -------------------------------- */
|
||||||
|
|
||||||
const co2Emissionen = fillFormField("co2emissionen", berechnungen.co2EmissionenGesamt.toString(), 8, TextAlignment.Center)
|
const co2Emissionen = fillFormField("co2emissionen", berechnungen?.co2EmissionenGesamt.toString(), 8, TextAlignment.Center)
|
||||||
|
|
||||||
const addEnergieverbrauchSkalaPfeile = async (page: PDFPage) => {
|
const addEnergieverbrauchSkalaPfeile = async (page: PDFPage) => {
|
||||||
const pfeilNachUnten = await pdf.embedPng(fs.readFileSync(new URL("../../../public/images/pfeil-nach-unten.png", import.meta.url), "base64"))
|
const pfeilNachUnten = await pdf.embedPng(fs.readFileSync(new URL("../../../public/images/pfeil-nach-unten.png", import.meta.url), "base64"))
|
||||||
const pfeilNachOben = await pdf.embedPng(fs.readFileSync(new URL("../../../public/images/pfeil-nach-oben.png", import.meta.url), "base64"))
|
const pfeilNachOben = await pdf.embedPng(fs.readFileSync(new URL("../../../public/images/pfeil-nach-oben.png", import.meta.url), "base64"))
|
||||||
|
|
||||||
// Wir müssen den berechneten Wert zwischen 0 und 250 als Wert zwischen 0 und 1 festlegen
|
// Wir müssen den berechneten Wert zwischen 0 und 250 als Wert zwischen 0 und 1 festlegen
|
||||||
const endenergieverbrauchTranslationPercentage = Math.min(250, Math.max(0, berechnungen?.endEnergieVerbrauchGesamt)) / 250
|
const endenergieverbrauchTranslationPercentage = Math.min(250, Math.max(0, berechnungen?.endEnergieVerbrauchGesamt || 0)) / 250
|
||||||
const primaerenergieverbrauchTranslationPercentage = Math.min(250, Math.max(0, berechnungen?.primaerEnergieVerbrauchGesamt)) / 250
|
const primaerenergieverbrauchTranslationPercentage = Math.min(250, Math.max(0, berechnungen?.primaerEnergieVerbrauchGesamt || 0)) / 250
|
||||||
|
|
||||||
const minTranslation = 68
|
const minTranslation = 68
|
||||||
const maxTranslation = 504
|
const maxTranslation = 504
|
||||||
@@ -182,57 +185,57 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
let yOffset = 14.6;
|
let yOffset = 14.6;
|
||||||
const initialHeight = 435
|
const initialHeight = 435
|
||||||
const initialXOffset = 36;
|
const initialXOffset = 36;
|
||||||
return (zeitraum_von: string, zeitraum_bis: string, energietraeger: string, primaerfaktor: string, energieverbrauch: string, anteil_warmwasser: string, anteil_heizung: string, klimafaktor: string) => {
|
return (zeitraum_von?: string, zeitraum_bis?: string, energietraeger?: string, primaerfaktor?: string, energieverbrauch?: string, anteil_warmwasser?: string, anteil_heizung?: string, klimafaktor?: string) => {
|
||||||
pages[2].drawText(zeitraum_von, {
|
pages[2].drawText(zeitraum_von || "", {
|
||||||
x: initialXOffset,
|
x: initialXOffset,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
font
|
font
|
||||||
})
|
})
|
||||||
|
|
||||||
pages[2].drawText(zeitraum_bis, {
|
pages[2].drawText(zeitraum_bis || "", {
|
||||||
x: initialXOffset + 47,
|
x: initialXOffset + 47,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
font
|
font
|
||||||
})
|
})
|
||||||
|
|
||||||
pages[2].drawText(energietraeger, {
|
pages[2].drawText(energietraeger || "", {
|
||||||
x: initialXOffset + 94,
|
x: initialXOffset + 94,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
font
|
font
|
||||||
})
|
})
|
||||||
|
|
||||||
pages[2].drawText(primaerfaktor, {
|
pages[2].drawText(primaerfaktor || "", {
|
||||||
x: initialXOffset + 317,
|
x: initialXOffset + 317,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
font
|
font
|
||||||
})
|
})
|
||||||
|
|
||||||
pages[2].drawText(energieverbrauch, {
|
pages[2].drawText(energieverbrauch || "", {
|
||||||
x: initialXOffset + 351,
|
x: initialXOffset + 351,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
font
|
font
|
||||||
})
|
})
|
||||||
|
|
||||||
pages[2].drawText(anteil_warmwasser, {
|
pages[2].drawText(anteil_warmwasser || "", {
|
||||||
x: initialXOffset + 402,
|
x: initialXOffset + 402,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
font
|
font
|
||||||
})
|
})
|
||||||
|
|
||||||
pages[2].drawText(anteil_heizung, {
|
pages[2].drawText(anteil_heizung || "", {
|
||||||
x: initialXOffset + 453,
|
x: initialXOffset + 453,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
font
|
font
|
||||||
})
|
})
|
||||||
|
|
||||||
pages[2].drawText(klimafaktor, {
|
pages[2].drawText(klimafaktor || "", {
|
||||||
x: initialXOffset + 504,
|
x: initialXOffset + 504,
|
||||||
y: initialHeight - (i * yOffset),
|
y: initialHeight - (i * yOffset),
|
||||||
size: 8,
|
size: 8,
|
||||||
|
|||||||
@@ -1000,6 +1000,7 @@ title="Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgesc
|
|||||||
bind:images
|
bind:images
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
bind:gebaeude
|
bind:gebaeude
|
||||||
|
bind:aufnahme
|
||||||
/></Bereich
|
/></Bereich
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|||||||
@@ -161,6 +161,7 @@
|
|||||||
bind:images={bilder}
|
bind:images={bilder}
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
bind:objekt
|
bind:objekt
|
||||||
|
bind:aufnahme
|
||||||
/></Bereich>
|
/></Bereich>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -290,6 +290,7 @@ const ausweisart: Enums.Ausweisart = "VerbrauchsausweisWohnen"
|
|||||||
bind:images={bilder}
|
bind:images={bilder}
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
bind:objekt={objekt}
|
bind:objekt={objekt}
|
||||||
|
bind:aufnahme
|
||||||
/></Bereich
|
/></Bereich
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,16 +5,20 @@ import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen"
|
|||||||
import { Enums } from "@ibcornelsen/database/client";
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
import { createCaller } from "src/astro-typesafe-api-caller";
|
||||||
|
|
||||||
const base64 = Astro.url.searchParams.get("base64");
|
const base64Ausweis = Astro.url.searchParams.get("ausweis");
|
||||||
|
const base64Aufnahme = Astro.url.searchParams.get("aufnahme");
|
||||||
|
const base64Objekt = Astro.url.searchParams.get("objekt");
|
||||||
|
const base64Bilder = Astro.url.searchParams.get("bilder");
|
||||||
let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | null = null;
|
let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | null = null;
|
||||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||||
let objekt: ObjektClient = {} as ObjektClient;
|
let objekt: ObjektClient = {} as ObjektClient;
|
||||||
let user: BenutzerClient = {} as BenutzerClient;
|
let user: BenutzerClient = {} as BenutzerClient;
|
||||||
let images: UploadedGebaeudeBild[] = []
|
let bilder: UploadedGebaeudeBild[] = []
|
||||||
if (base64) {
|
if (base64Ausweis && base64Aufnahme && base64Objekt && base64Bilder) {
|
||||||
const buffer = Buffer.from(base64, "base64");
|
ausweis = JSON.parse(Buffer.from(base64Ausweis, "base64").toString("utf-8")) as VerbrauchsausweisWohnenClient;
|
||||||
const json = buffer.toString("utf-8");
|
objekt = JSON.parse(Buffer.from(base64Objekt, "base64").toString("utf-8")) as ObjektClient;
|
||||||
ausweis = JSON.parse(json) as VerbrauchsausweisWohnenClient;
|
aufnahme = JSON.parse(Buffer.from(base64Aufnahme, "base64").toString("utf-8")) as AufnahmeClient;
|
||||||
|
bilder = JSON.parse(Buffer.from(base64Bilder, "base64").toString("utf-8")) as UploadedGebaeudeBild[];
|
||||||
} else {
|
} else {
|
||||||
const uidAusweis = Astro.url.searchParams.get("uid");
|
const uidAusweis = Astro.url.searchParams.get("uid");
|
||||||
|
|
||||||
@@ -76,7 +80,7 @@ if (base64) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const pdf = await pdfVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, images, user);
|
const pdf = await pdfVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, bilder, user);
|
||||||
|
|
||||||
return new Response(pdf, {
|
return new Response(pdf, {
|
||||||
headers: {
|
headers: {
|
||||||
|
|||||||
@@ -1,14 +1,25 @@
|
|||||||
---
|
---
|
||||||
import { BenutzerClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { AufnahmeClient, BenutzerClient, getAusweisartFromUUID, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||||
import { createCaller } from "#lib/caller";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||||
import { pdfDatenblattVerbrauchsausweisWohnen } from "#lib/pdf/pdfDatenblattVerbrauchsausweisWohnen";
|
import { pdfDatenblattVerbrauchsausweisWohnen } from "#lib/pdf/pdfDatenblattVerbrauchsausweisWohnen";
|
||||||
|
import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen";
|
||||||
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
|
import { createCaller } from "src/astro-typesafe-api-caller";
|
||||||
|
|
||||||
const base64 = Astro.url.searchParams.get("base64");
|
const base64Ausweis = Astro.url.searchParams.get("ausweis");
|
||||||
let ausweis: VerbrauchsausweisWohnenClient | null = null;
|
const base64Aufnahme = Astro.url.searchParams.get("aufnahme");
|
||||||
if (base64) {
|
const base64Objekt = Astro.url.searchParams.get("objekt");
|
||||||
const buffer = Buffer.from(base64, "base64");
|
const base64Bilder = Astro.url.searchParams.get("bilder");
|
||||||
const json = buffer.toString("utf-8");
|
let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | null = null;
|
||||||
ausweis = JSON.parse(json) as VerbrauchsausweisWohnenClient;
|
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||||
|
let objekt: ObjektClient = {} as ObjektClient;
|
||||||
|
let benutzer: BenutzerClient = {} as BenutzerClient;
|
||||||
|
let bilder: UploadedGebaeudeBild[] = []
|
||||||
|
if (base64Ausweis && base64Aufnahme && base64Objekt && base64Bilder) {
|
||||||
|
ausweis = JSON.parse(Buffer.from(base64Ausweis, "base64").toString("utf-8")) as VerbrauchsausweisWohnenClient;
|
||||||
|
objekt = JSON.parse(Buffer.from(base64Objekt, "base64").toString("utf-8")) as ObjektClient;
|
||||||
|
aufnahme = JSON.parse(Buffer.from(base64Aufnahme, "base64").toString("utf-8")) as AufnahmeClient;
|
||||||
|
bilder = JSON.parse(Buffer.from(base64Bilder, "base64").toString("utf-8")) as UploadedGebaeudeBild[];
|
||||||
} else {
|
} else {
|
||||||
const uidAusweis = Astro.url.searchParams.get("uid");
|
const uidAusweis = Astro.url.searchParams.get("uid");
|
||||||
|
|
||||||
@@ -16,14 +27,61 @@ if (base64) {
|
|||||||
return Astro.redirect("/404");
|
return Astro.redirect("/404");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ausweisart = getAusweisartFromUUID(uidAusweis)
|
||||||
|
|
||||||
const caller = createCaller(Astro);
|
const caller = createCaller(Astro);
|
||||||
|
|
||||||
ausweis = await caller.v1.verbrauchsausweisWohnen.get({
|
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
|
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(undefined, {
|
||||||
|
params: {
|
||||||
uid: uidAusweis
|
uid: uidAusweis
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
|
ausweis = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(undefined, {
|
||||||
|
params: {
|
||||||
|
uid: uidAusweis
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const pdf = await pdfDatenblattVerbrauchsausweisWohnen(ausweis);
|
|
||||||
|
if (!ausweis) {
|
||||||
|
return Astro.redirect("/");
|
||||||
|
}
|
||||||
|
|
||||||
|
aufnahme = await caller.aufnahme._uid.GET.fetch(undefined, {
|
||||||
|
params: {
|
||||||
|
uid: ausweis.uid_aufnahme
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
objekt = await caller.objekt._uid.GET.fetch(undefined, {
|
||||||
|
params: {
|
||||||
|
uid: ausweis.uid_objekt
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
benutzer = await caller.user.self.GET.fetch(undefined, {
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const pdf = await pdfDatenblattVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, benutzer);
|
||||||
|
|
||||||
|
|
||||||
return new Response(pdf, {
|
return new Response(pdf, {
|
||||||
|
|||||||
Reference in New Issue
Block a user