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
@@ -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",
|
||||||
|
|||||||
BIN
persistent/images/img-03e4258e-2fb5-422d-b435-2a7129bcabf3.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-06b354f2-1314-4f66-8c6d-b8e4834a6090.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-12cefef0-5406-4fa5-8b47-cbdf5940b2b3.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-1cb30f8a-d662-47a1-8107-d09c0069a023.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-2944c8e8-6d98-4bed-8392-4f6d0d580aaa.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-29e650e4-c16a-4ad1-b136-967180359809.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-2d2dcc3f-2815-4294-a651-43248ba9585f.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-2d5c83d6-023e-4848-bef1-44fd988098c3.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-2db2d211-3119-4f2a-b6c4-2af1c0a29682.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-2e9e796c-2805-4c3c-b8aa-6fce85a44fc5.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-30288120-6f40-4419-87ba-a0efd59960b8.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-3af4bd33-ae3f-4a62-94f2-c43ffccb2fd1.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-3f384947-1020-41f7-bce0-7f0a496422c7.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-40d15e43-94a3-429c-86be-671f77666094.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-4219127e-38ad-4ef1-bdd7-6aaa1bba15e5.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-4387f4e8-4a93-4fc9-9ba4-e5129bb682cc.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-461f1e91-33b3-45a6-93d6-ca4ce423af34.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-486b00ac-5c3a-4f53-90de-8c0a2f9ad486.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-50622919-3829-4e97-b231-e32a32e5342c.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-54ad8b76-c545-4da3-9beb-2838c6f9b37a.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-5771a1f3-64bc-4ccc-8d8b-fd7eb91ab57b.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-61d719ce-8fca-4569-b094-1f23552078c5.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-69978803-a0f5-4f1e-97fb-05e7335a0212.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-6d6b2565-56a4-4ebd-a41d-3e41d356c9ab.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-6e61e1ec-b531-45fd-be65-70174cc3c7d3.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-6ea9fadd-975c-4189-be05-5b539b1a7321.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-7541c7d6-c2b3-4501-a671-e53d6bf0a6f2.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-790bb080-9041-4095-82a0-e7c7d8b84d84.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-7a27716e-f935-4677-ac38-e2db8f39e4ff.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-7a4aa035-c9b1-4126-b4ec-e7b5e93be812.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-7b84aae5-c90f-46c2-afd9-41c572b116bf.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-7ba05951-aebd-45e6-bcb7-b70a29fef512.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-7edbdd0b-dca8-4db8-8a82-3df2b451669b.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-87064632-ef07-4fb9-b02c-72521db6ac75.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-88d7a851-b49e-413f-aebd-1f4ca386c44a.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-8bae768b-e642-4672-ba74-88e0de619131.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-91a8a9df-de56-41f5-80cd-f60852c240d8.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-93040a69-8b48-4749-8c8d-581d76e74cae.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-9528ab28-6588-4703-bbc8-3509e3c97cd3.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-9b941945-bfbe-4ca9-b57b-240abc7ae6d4.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
persistent/images/img-a5e90e6b-9793-4127-a44c-3129abe91815.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-a6837d4d-87c7-4af5-8956-c2642f652b41.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-ab21f3f6-82c1-44c4-ba01-6d0ea32ba0b9.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
persistent/images/img-ade4310c-ac6c-49e1-9348-57b8ba155cc4.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-ae368fad-72ed-482d-a210-8319f5404b2c.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-b51adbda-0ca2-441e-a40d-b3e6027c23df.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-b5a715ac-38a8-4a2b-86d0-fb1d3b20213f.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-b9e2bf27-2330-45c9-afa1-e97429151eb8.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-bd5d3046-7f93-485b-8b7b-2f4844144736.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
persistent/images/img-c66402e7-1bc5-4d44-82c8-5d682ef9694e.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-d4c272b1-977c-4ce8-9821-ead67bce7cc4.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
persistent/images/img-e1c07d92-2272-45f6-a7c9-1e94022c5814.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-e2b2f430-4cd8-4042-accb-e4bef9eee68c.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-e813ba90-fa2d-4de9-85ee-5d9a4e26dfc6.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
persistent/images/img-f0c5a307-5901-4837-aba7-ab6379fa0163.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/images/formular/skala-verbrauchsausweis-gewerbe.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
35
public/images/immowelt/gewerbegebaeude_immowelt.svg
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 271 111.86">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #fc0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #222;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g id="Wellen">
|
||||||
|
<path class="cls-1" d="M271,66.01c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48Z"/>
|
||||||
|
<path class="cls-1" d="M0,87.93c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64Z"/>
|
||||||
|
</g>
|
||||||
|
<g id="Gewerbegebaeude">
|
||||||
|
<path class="cls-2" d="M102.42,67.26V.5l-34.28,10.84v54.01c11.44-.32,22.93.35,34.28,1.92Z"/>
|
||||||
|
<path class="cls-2" d="M254.81,65.15c-.02-6.59,0-45.44,0-45.44l-24.88-6.69v66.43s11.96-.84,24.22-12.71c.42-.41.66-.99.65-1.6Z"/>
|
||||||
|
<g>
|
||||||
|
<polygon class="cls-2" points="106.6 9.32 106.6 1.15 226.66 21.84 226.66 28.55 106.6 9.32"/>
|
||||||
|
<polygon class="cls-2" points="107.23 23.77 107.23 14.97 226.66 32.2 226.66 38.05 107.23 23.77"/>
|
||||||
|
<polygon class="cls-2" points="107.23 37.83 107.23 29.04 226.66 40.86 226.66 46.71 107.23 37.83"/>
|
||||||
|
<polygon class="cls-2" points="107.23 51.97 107.23 43.18 226.66 50.12 226.66 55.97 107.23 51.97"/>
|
||||||
|
<polygon class="cls-2" points="107.23 65.17 107.23 56.38 226.66 59.01 226.66 64.86 107.23 65.17"/>
|
||||||
|
<path class="cls-2" d="M122.76,70.93c3.1.69,6.21,1.48,9.24,2.28,1.2.32,2.39.63,3.57.94l91.08.55v-5.86l-119.43-.7h-.09c5.22.81,10.49,1.66,15.63,2.79Z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<polygon class="cls-2" points="9.35 50.25 9.23 44.5 65.3 21.2 65.3 40.63 9.35 50.25"/>
|
||||||
|
<polygon class="cls-2" points="65.3 55.68 9.61 61.46 9.44 53.85 65.3 44.92 65.3 55.68"/>
|
||||||
|
<path class="cls-2" d="M43.86,67.57c7.08-1.11,14.25-1.82,21.44-2.12v-5.15l-55.63,4.35.17,7.82,34.02-4.9Z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
BIN
public/images/immowelt/hero-desktop.webp
Normal file
|
After Width: | Height: | Size: 72 KiB |
1
public/images/immowelt/immowelt.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 109 32" xmlns="http://www.w3.org/2000/svg" class="css-1qno6kt"><title>immowelt Startseite</title><g fill-rule="evenodd" clip-rule="evenodd"><path fill="#323232" d="M12.736 4.664C5.568 4.664.664 9.384.664 16.008c0 6.608 4.92 11.328 12.072 11.328h35.16c7.152 0 12.273-4.72 12.273-11.328 0-6.624-5.104-11.344-12.273-11.344z"></path><path fill="#fc0" d="M47.896 4.664c7.169 0 12.273 4.72 12.273 11.344 0 6.608-5.12 11.328-12.273 11.328h48.2c7.153 0 12.241-4.72 12.241-11.328 0-6.624-5.072-11.344-12.24-11.344z"></path><path fill="#fff" d="M12.264 7.784c-.864 0-1.536.664-1.536 1.512 0 .808.672 1.464 1.536 1.464.848 0 1.52-.672 1.52-1.464a1.513 1.513 0 0 0-1.52-1.512zm39.153 5.952c1.431 0 2.351 1.008 2.351 2.552 0 1.52-.952 2.56-2.352 2.56-1.392 0-2.344-1.04-2.344-2.56 0-1.512.952-2.552 2.344-2.552zM10.975 11.64v9.288h2.56V11.64zm9.48-.248c-1.128 0-2.096.48-2.68 1.288v-1.04h-2.4v9.288h2.56v-6.096c.328-.656 1.024-1.112 1.712-1.112.896 0 1.536.704 1.536 1.728v5.48h2.56v-6.096c.28-.656 1-1.112 1.728-1.112.896 0 1.496.704 1.496 1.728v5.48h2.56v-5.96c0-2.184-1.408-3.576-3.6-3.576-1.144 0-2.08.424-2.84 1.36-.6-.904-1.504-1.36-2.632-1.36zm15.832 0c-1.128 0-2.096.48-2.68 1.288v-1.04h-2.4v9.288h2.56v-6.096c.336-.656 1.024-1.112 1.712-1.112.896 0 1.536.704 1.536 1.728v5.48h2.56v-6.096c.28-.656 1.008-1.112 1.728-1.112.904 0 1.504.704 1.504 1.728v5.48h2.552v-5.96c0-2.184-1.408-3.576-3.6-3.576-1.144 0-2.08.424-2.84 1.36-.6-.904-1.496-1.36-2.632-1.36zm15.128 0c-2.823 0-4.904 2.08-4.904 4.896 0 2.824 2.08 4.904 4.904 4.904 2.849 0 4.912-2.064 4.912-4.904 0-2.848-2.048-4.896-4.912-4.896z"></path><path fill="#323232" d="M90.977 17.792c0 .648.28.968.863.968.249 0 .497-.056.729-.16l.312 2.128c-.456.216-1.024.32-1.625.32-1.8 0-2.887-1.072-2.887-2.888V8.608h2.608zM71.192 11.64l2.129 5.488 1.735-5.488h2.592l-3.016 9.288h-2.575l-2.177-5.816-2.135 5.816h-2.577L62.12 11.64h2.736l1.72 5.512 2.128-5.512zm28.257 6.696c-.44.28-.88.424-1.392.424-.816 0-1.288-.44-1.288-1.184v-3.664h3.16V11.64h-3.16V9.4h-2.616v2.24h-1.76v2.272h1.76v3.896c0 2.08 1.376 3.384 3.567 3.384 1.009 0 1.873-.248 2.649-.76zm-21.697-2.048c0-2.816 2.072-4.88 4.857-4.88 2.72 0 4.504 1.904 4.504 4.848 0 .32 0 .632-.033.88h-6.792c.289 1.152 1.169 1.848 2.392 1.848.92 0 1.64-.384 2.104-1.104l1.785 1.424c-.784 1.16-2.192 1.888-3.872 1.888-2.84 0-4.945-2.096-4.945-4.904zm6.857-1.016c-.208-1.072-.984-1.712-2.048-1.712-1.08 0-1.904.664-2.224 1.712z"></path><path fill="#fff" d="M96.073 28H12.736c-3.72 0-6.912-1.232-9.176-3.368C1.296 22.496 0 19.48 0 16.008c0-3.48 1.296-6.496 3.56-8.64C5.816 5.232 9.008 4 12.736 4h83.337C103.553 4 109 8.968 109 16.008 109 23.032 103.536 28 96.072 28zm0-.664H12.736c-7.152 0-12.072-4.72-12.072-11.328 0-6.624 4.904-11.344 12.072-11.344h83.337c7.168 0 12.264 4.72 12.264 11.344 0 6.608-5.112 11.328-12.264 11.328z"></path></g></svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
40
public/images/immowelt/wohngebaeude_immowelt.svg
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 271 111.86">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #fc0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
fill: #c6c6c6;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g id="Wellen">
|
||||||
|
<path class="cls-1" d="M271,66.01c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48Z"/>
|
||||||
|
<path class="cls-1" d="M0,87.93c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64Z"/>
|
||||||
|
</g>
|
||||||
|
<g id="Wohngebaeude">
|
||||||
|
<g>
|
||||||
|
<path class="cls-2" d="M62.1,66.01L103.83,11.59l52.17,63.63s72.22,24.35,98.81-11.35l-26.6-38.82-27.22-4.45V0h-19.83v39.66h-7.08v-22.76L101.52,4.02l-39.42,61.99Z"/>
|
||||||
|
<polygon class="cls-2" points="72.53 39.06 91.66 14.16 47.37 14.16 10.07 72.88 49 19.22 72.53 39.06"/>
|
||||||
|
<g>
|
||||||
|
<rect class="cls-3" x="90.51" y="35.34" width="11.33" height="12.75"/>
|
||||||
|
<rect class="cls-3" x="103.26" y="35.34" width="11.33" height="12.75"/>
|
||||||
|
<rect class="cls-3" x="90.51" y="49.51" width="11.33" height="12.75"/>
|
||||||
|
<rect class="cls-3" x="103.26" y="49.51" width="11.33" height="12.75"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<rect class="cls-3" x="40.93" y="35.41" width="5.67" height="8.5"/>
|
||||||
|
<rect class="cls-3" x="48.02" y="35.41" width="5.67" height="8.5"/>
|
||||||
|
<rect class="cls-3" x="40.93" y="45.33" width="5.67" height="8.5"/>
|
||||||
|
<rect class="cls-3" x="48.02" y="45.33" width="5.67" height="8.5"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.5 KiB |
472
public/images/right-sidebar/promo-boxes_immowelt_CD.ai
Normal file
@@ -8,8 +8,8 @@ export const createCaller = createCallerFactory({
|
|||||||
"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"),
|
||||||
"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"),
|
||||||
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
||||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||||
@@ -19,6 +19,7 @@ export const createCaller = createCallerFactory({
|
|||||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.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,16 +1,17 @@
|
|||||||
|
|
||||||
import { api } from "astro-typesafe-api/client"
|
import { api } from "astro-typesafe-api/client"
|
||||||
|
|
||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
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 } from "#lib/constants.js";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
||||||
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
export async function verbrauchsausweisWohnenSpeichern(
|
export async function ausweisSpeichern(
|
||||||
ausweis: VerbrauchsausweisWohnenClient,
|
ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient,
|
||||||
objekt: ObjektClient,
|
objekt: ObjektClient,
|
||||||
aufnahme: AufnahmeClient,
|
aufnahme: AufnahmeClient,
|
||||||
bilder: (UploadedGebaeudeBild & { base64?: string })[]
|
bilder: (UploadedGebaeudeBild & { base64?: string })[],
|
||||||
|
ausweisart: Enums.Ausweisart
|
||||||
) {
|
) {
|
||||||
if (objekt.uid) {
|
if (objekt.uid) {
|
||||||
await api.objekt._uid.PATCH.fetch({
|
await api.objekt._uid.PATCH.fetch({
|
||||||
@@ -61,8 +62,21 @@ export async function verbrauchsausweisWohnenSpeichern(
|
|||||||
aufnahme.uid = uid
|
aufnahme.uid = uid
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let patchRoute: any;
|
||||||
|
let putRoute: any;
|
||||||
|
if (ausweisart == Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
|
patchRoute = api["verbrauchsausweis-wohnen"]._uid.PATCH
|
||||||
|
putRoute = api["verbrauchsausweis-wohnen"].PUT
|
||||||
|
} else if (ausweisart == Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
|
patchRoute = api["verbrauchsausweis-gewerbe"]._uid.PATCH
|
||||||
|
putRoute = api["verbrauchsausweis-gewerbe"].PUT
|
||||||
|
} else if (ausweisart == Enums.Ausweisart.BedarfsausweisWohnen) {
|
||||||
|
patchRoute = api["bedarfsausweis-wohnen"]._uid.PATCH
|
||||||
|
putRoute = api["bedarfsausweis-wohnen"].PUT
|
||||||
|
}
|
||||||
|
|
||||||
if (ausweis.uid) {
|
if (ausweis.uid) {
|
||||||
await api["verbrauchsausweis-wohnen"]._uid.PATCH.fetch({
|
await patchRoute.fetch({
|
||||||
...exclude(ausweis, ["uid"])
|
...exclude(ausweis, ["uid"])
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
@@ -73,7 +87,7 @@ export async function verbrauchsausweisWohnenSpeichern(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await api["verbrauchsausweis-wohnen"].PUT.fetch({
|
const { uid } = await putRoute.fetch({
|
||||||
ausweis,
|
ausweis,
|
||||||
uid_aufnahme: aufnahme.uid
|
uid_aufnahme: aufnahme.uid
|
||||||
}, {
|
}, {
|
||||||
@@ -1,13 +1,43 @@
|
|||||||
<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";
|
||||||
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
|
export let objekt: ObjektClient;
|
||||||
|
export let aufnahme: AufnahmeClient;
|
||||||
|
export let bilder: UploadedGebaeudeBild[];
|
||||||
|
export let ausweisart: Enums.Ausweisart
|
||||||
|
|
||||||
$: base64 = Buffer.from(JSON.stringify(ausweis), "utf-8").toString("base64")
|
function openWindowWithPost(url: string, data: Record<string, any>) {
|
||||||
|
var form = document.createElement("form");
|
||||||
|
form.target = "_blank";
|
||||||
|
form.method = "POST";
|
||||||
|
form.action = url;
|
||||||
|
form.style.display = "none";
|
||||||
|
|
||||||
|
for (var key in data) {
|
||||||
|
var input = document.createElement("input");
|
||||||
|
input.type = "hidden";
|
||||||
|
input.name = key;
|
||||||
|
input.value = data[key];
|
||||||
|
form.appendChild(input);
|
||||||
|
}
|
||||||
|
document.body.appendChild(form);
|
||||||
|
form.submit();
|
||||||
|
document.body.removeChild(form);
|
||||||
|
}
|
||||||
</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}">
|
<button class="border-2 rounded-lg bg-white text-center hover:shadow-md no-underline p-3 cursor-pointer" on:click={() => {
|
||||||
|
openWindowWithPost("/pdf/ansichtsausweis", {
|
||||||
|
ausweis: JSON.stringify(ausweis),
|
||||||
|
aufnahme: JSON.stringify(aufnahme),
|
||||||
|
objekt: JSON.stringify(objekt),
|
||||||
|
bilder: JSON.stringify(bilder),
|
||||||
|
ausweisart
|
||||||
|
})
|
||||||
|
}}>
|
||||||
<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>
|
</button>
|
||||||
|
|||||||
@@ -14,27 +14,17 @@ sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
|||||||
xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||||
">
|
">
|
||||||
|
|
||||||
<!-- Anrede *
|
<!-- Anrede * -->
|
||||||
|
<!--
|
||||||
<div class="input-standard order-3 md:order-3 xl:order-3">
|
<div class="input-standard order-3 md:order-3 xl:order-3">
|
||||||
<Inputlabel title="Anrede *"></Inputlabel>
|
<Inputlabel title="Anrede *"></Inputlabel>
|
||||||
|
|
||||||
<select name="anrede" bind:value={user.anrede}>
|
<select name="anrede" bind:value={user.anrede}>
|
||||||
<option>bitte auswählen</option>
|
<option disabled selected>bitte auswählen</option>
|
||||||
<option value="Herr">Herr</option>
|
<option value="Herr">Herr</option>
|
||||||
<option value="Frau">Frau</option>
|
<option value="Frau">Frau</option>
|
||||||
<option value="Frau">Frau</option>
|
|
||||||
</select>
|
</select>
|
||||||
|
</div> -->
|
||||||
<div class="help-label">
|
|
||||||
<HelpLabel>
|
|
||||||
Bitte geben Sie hier die beheizte Wohnfläche in m² ein.
|
|
||||||
Dabei handelt es sich um die Wohnfläche abzüglich
|
|
||||||
vorhandener Flächen die sich außerhalb des Gebäudes
|
|
||||||
befinden. (Balkone, Terassen,etc.).
|
|
||||||
</HelpLabel>
|
|
||||||
</div>
|
|
||||||
</div>-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Vorname * -->
|
<!-- Vorname * -->
|
||||||
|
|||||||
@@ -9,14 +9,19 @@
|
|||||||
} from "@ibcornelsen/database/client";
|
} from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
AufnahmeClient,
|
||||||
|
BedarfsausweisWohnenClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
|
export let objekt: ObjektClient;
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
|
export let ausweisart: Enums.Ausweisart;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-x-6 mt-6">
|
<div class="grid grid-cols-2 gap-x-6 mt-6">
|
||||||
@@ -29,7 +34,7 @@
|
|||||||
kategorie={Enums.BilderKategorie.Gebaeude}
|
kategorie={Enums.BilderKategorie.Gebaeude}
|
||||||
max={1}
|
max={1}
|
||||||
min={1}
|
min={1}
|
||||||
bind:gebaeude
|
bind:objekt
|
||||||
bind:images
|
bind:images
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
>
|
>
|
||||||
@@ -55,9 +60,9 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row gap-4 mt-4">
|
<div class="grid grid-cols-2 gap-4 mt-4">
|
||||||
<AnsichtsausweisButton {ausweis} />
|
<AnsichtsausweisButton {ausweis} {aufnahme} {objekt} bilder={images} {ausweisart} />
|
||||||
<DatenblattButton {ausweis} />
|
<DatenblattButton {ausweis} {aufnahme} {objekt} bilder={images} {ausweisart} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
required
|
required
|
||||||
bind:value={aufnahme.gebaeudetyp}
|
bind:value={aufnahme.gebaeudetyp}
|
||||||
>
|
>
|
||||||
<option disabled selected value={false}>Bitte auswählen</option>
|
<option disabled selected>Bitte auswählen</option>
|
||||||
|
|
||||||
{#if ausweisart=="VerbrauchsausweisWohnen"}
|
{#if ausweisart=="VerbrauchsausweisWohnen"}
|
||||||
<option value="Einfamilienhaus">Einfamilienhaus</option>
|
<option value="Einfamilienhaus">Einfamilienhaus</option>
|
||||||
|
|||||||
@@ -3,17 +3,21 @@
|
|||||||
import Hilfe from "#components/Ausweis/Hilfe.svelte";
|
import Hilfe from "#components/Ausweis/Hilfe.svelte";
|
||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
|
BedarfsausweisWohnenClient,
|
||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: UploadedGebaeudeBild[];
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
|
export let ausweisart: Enums.Ausweisart
|
||||||
|
|
||||||
export let spaeterWeitermachen;
|
export let spaeterWeitermachen;
|
||||||
</script>
|
</script>
|
||||||
@@ -36,6 +40,7 @@
|
|||||||
bind:user
|
bind:user
|
||||||
bind:objekt
|
bind:objekt
|
||||||
bind:aufnahme
|
bind:aufnahme
|
||||||
|
{ausweisart}
|
||||||
></AusweisWeiter>
|
></AusweisWeiter>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="w-full grid grid-cols-[min-content_1fr_min-content_min-content] grid-rows-[min_content_1fr] gap-x-2 self-start justify-self-end mt-8"
|
|
||||||
>
|
|
||||||
<button class="button justify-self-start">Zurück</button>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<button class="button">Speichern</button>
|
|
||||||
|
|
||||||
<button class="button">kostenpflichtig bestellen</button>
|
|
||||||
</div>
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums, type BedarfsausweisWohnen, type VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
import { ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-x-6 mt-6">
|
<div class="grid grid-cols-2 gap-x-6 mt-6">
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
kategorie={Enums.BilderKategorie.Daemmung}
|
kategorie={Enums.BilderKategorie.Daemmung}
|
||||||
bind:images
|
bind:images
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
bind:gebaeude
|
bind:objekt
|
||||||
>
|
>
|
||||||
TEXT FEHLT
|
TEXT FEHLT
|
||||||
</ImageGrid>
|
</ImageGrid>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums, type BedarfsausweisWohnen, type VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
import { ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-x-6 mt-6">
|
<div class="grid grid-cols-2 gap-x-6 mt-6">
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
kategorie={Enums.BilderKategorie.Fenster}
|
kategorie={Enums.BilderKategorie.Fenster}
|
||||||
bind:images
|
bind:images
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
bind:gebaeude
|
bind:objekt
|
||||||
>
|
>
|
||||||
TEXT FEHLT
|
TEXT FEHLT
|
||||||
</ImageGrid>
|
</ImageGrid>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums, type BedarfsausweisWohnen, type VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
import { ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let gebaeude: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
kategorie={Enums.BilderKategorie.Heizung}
|
kategorie={Enums.BilderKategorie.Heizung}
|
||||||
max={4}
|
max={4}
|
||||||
min={1}
|
min={1}
|
||||||
bind:gebaeude
|
bind:objekt={gebaeude}
|
||||||
bind:images
|
bind:images
|
||||||
bind:ausweis
|
bind:ausweis
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -9,12 +9,20 @@
|
|||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import ThickArrowUp from "radix-svelte-icons/src/lib/icons/ThickArrowUp.svelte";
|
import ThickArrowUp from "radix-svelte-icons/src/lib/icons/ThickArrowUp.svelte";
|
||||||
|
import { Enums } from "@ibcornelsen/database/client";
|
||||||
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
|
export let ausweisart: Enums.Ausweisart;
|
||||||
|
|
||||||
let maxPerformance = 250;
|
let maxPerformance = {
|
||||||
|
[Enums.Ausweisart.VerbrauchsausweisGewerbe]: 1000,
|
||||||
|
[Enums.Ausweisart.VerbrauchsausweisWohnen]: 250,
|
||||||
|
[Enums.Ausweisart.BedarfsausweisWohnen]: 250,
|
||||||
|
[Enums.Ausweisart.BedarfsausweisGewerbe]: 250
|
||||||
|
}[ausweisart];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We use linear interpolation to scale the value between the given boundaries.
|
* We use linear interpolation to scale the value between the given boundaries.
|
||||||
@@ -54,13 +62,12 @@
|
|||||||
let translation_2 = 0;
|
let translation_2 = 0;
|
||||||
$: {
|
$: {
|
||||||
(async () => {
|
(async () => {
|
||||||
const result = await endEnergieVerbrauchVerbrauchsausweis_2016({
|
let result;
|
||||||
...ausweis,
|
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen || ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
|
||||||
aufnahme: {
|
result = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||||
...aufnahme,
|
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
objekt: objekt,
|
result = await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis, aufnahme, objekt);
|
||||||
},
|
}
|
||||||
});
|
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
return;
|
return;
|
||||||
@@ -77,7 +84,11 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<div class="self-center relative">
|
<div class="self-center relative">
|
||||||
<img id="skalaImage" class="w-full" src="/images/formular/SKALA-910.png" alt="Energieeffizienz Skala" />
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen || ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
||||||
|
<img id="skalaImage" class="w-full" src="/images/formular/skala-verbrauchsausweis-wohnen.png" alt="Energieeffizienz Skala" />
|
||||||
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
|
<img id="skalaImage" class="w-full" src="/images/formular/skala-verbrauchsausweis-gewerbe.png" alt="Energieeffizienz Skala" />
|
||||||
|
{/if}
|
||||||
<ThickArrowDown
|
<ThickArrowDown
|
||||||
size={28}
|
size={28}
|
||||||
class="fill-base-content absolute top-0 transition-left duration-1000 ease-in-out"
|
class="fill-base-content absolute top-0 transition-left duration-1000 ease-in-out"
|
||||||
|
|||||||
@@ -6,19 +6,7 @@
|
|||||||
import { BenutzerClient, RechnungClient } from "./types.js";
|
import { BenutzerClient, RechnungClient } from "./types.js";
|
||||||
|
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient;
|
||||||
|
export let rechnung: Partial<RechnungClient>;
|
||||||
let rechnung: RechnungClient = {
|
|
||||||
email: user.email,
|
|
||||||
empfaenger: user.vorname + " " + user.name,
|
|
||||||
strasse: user.adresse,
|
|
||||||
plz: user.plz,
|
|
||||||
ort: user.ort,
|
|
||||||
versand_empfaenger: user.vorname + " " + user.name,
|
|
||||||
versand_strasse: user.adresse,
|
|
||||||
versand_plz: user.plz,
|
|
||||||
versand_ort: user.ort,
|
|
||||||
telefon: user.telefon,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +1,30 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
||||||
import Inputlabel from "#components/labels/InputLabel.svelte";
|
import Inputlabel from "#components/labels/InputLabel.svelte";
|
||||||
|
|
||||||
import FensterImage from "./FensterImage.svelte";
|
import FensterImage from "./FensterImage.svelte";
|
||||||
|
|
||||||
//import Label from "../Label.svelte";
|
//import Label from "../Label.svelte";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
} from "./types.js";
|
VerbrauchsausweisWohnenClient,
|
||||||
import { boolean } from "astro:schema";
|
} from "./types.js";
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte"
|
import { boolean } from "astro:schema";
|
||||||
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
export let gebaeude: ObjektClient;
|
|
||||||
export let aufnahme: AufnahmeClient;
|
export let objekt: ObjektClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient
|
export let aufnahme: AufnahmeClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
||||||
|
export let images: UploadedGebaeudeBild[];
|
||||||
|
</script>
|
||||||
</script>
|
|
||||||
|
<div
|
||||||
|
id="sanierungszustand"
|
||||||
|
class="bereich-box grid
|
||||||
grid-cols-1 gap-x-4 gap-y-2
|
grid-cols-1 gap-x-4 gap-y-2
|
||||||
|
|
||||||
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
||||||
@@ -30,26 +32,75 @@
|
|||||||
|
|
||||||
xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
|
xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
|
||||||
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
||||||
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
"
|
||||||
">
|
>
|
||||||
|
<SanierungsOption
|
||||||
<SanierungsOption label="Einfachglas" name="einfach_verglasung" help="" value="EG" bind:checked={aufnahme.einfach_verglasung}></SanierungsOption>
|
label="Einfachglas"
|
||||||
<SanierungsOption label="Doppelverglasung" name="doppel_verglasung" help="" value="DF" bind:checked={aufnahme.doppel_verglasung}></SanierungsOption>
|
name="einfach_verglasung"
|
||||||
<SanierungsOption label="Dreifachverglasung" name="dreifach_verglasung" help="" value="PHF" bind:checked={aufnahme.dreifach_verglasung}></SanierungsOption>
|
help=""
|
||||||
<SanierungsOption label="Isolierverglasung" name="isolier_verglasung" help="" value="IVG" bind:checked={aufnahme.isolier_verglasung}></SanierungsOption>
|
value="EG"
|
||||||
<SanierungsOption label="Alle Fenster dicht" name="fenster_dicht" help="" value="FD" bind:checked={aufnahme.fenster_dicht}></SanierungsOption>
|
bind:checked={aufnahme.einfach_verglasung}
|
||||||
<SanierungsOption label="Fenster teilweise undicht" name="fenster_teilweise_undicht" help="" value="FTUD" bind:checked={aufnahme.fenster_teilweise_undicht}></SanierungsOption>
|
></SanierungsOption>
|
||||||
<SanierungsOption label="Rollladenkästen gedämmt, luftdicht" name="rolllaeden_kaesten_gedaemmt" help="" value="TUD" bind:checked={aufnahme.rolllaeden_kaesten_gedaemmt}></SanierungsOption>
|
<SanierungsOption
|
||||||
<SanierungsOption label="Alle Türen dicht" name="tueren_dicht" help="" value="TD" bind:checked={aufnahme.tueren_dicht}></SanierungsOption>
|
label="Doppelverglasung"
|
||||||
<SanierungsOption label="Türen teilweise undicht" name="tueren_undicht" help="" value="TUD" bind:checked={aufnahme.tueren_undicht}></SanierungsOption>
|
name="doppel_verglasung"
|
||||||
|
help=""
|
||||||
</div>
|
value="DF"
|
||||||
|
bind:checked={aufnahme.doppel_verglasung}
|
||||||
<FensterImage bind:images bind:ausweis bind:gebaeude />
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
<style lang="postcss">
|
label="Dreifachverglasung"
|
||||||
|
name="dreifach_verglasung"
|
||||||
</style>
|
help=""
|
||||||
|
value="PHF"
|
||||||
|
bind:checked={aufnahme.dreifach_verglasung}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Isolierverglasung"
|
||||||
|
name="isolier_verglasung"
|
||||||
|
help=""
|
||||||
|
value="IVG"
|
||||||
|
bind:checked={aufnahme.isolier_verglasung}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Alle Fenster dicht"
|
||||||
|
name="fenster_dicht"
|
||||||
|
help=""
|
||||||
|
value="FD"
|
||||||
|
bind:checked={aufnahme.fenster_dicht}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Fenster teilweise undicht"
|
||||||
|
name="fenster_teilweise_undicht"
|
||||||
|
help=""
|
||||||
|
value="FTUD"
|
||||||
|
bind:checked={aufnahme.fenster_teilweise_undicht}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Rollladenkästen gedämmt, luftdicht"
|
||||||
|
name="rolllaeden_kaesten_gedaemmt"
|
||||||
|
help=""
|
||||||
|
value="TUD"
|
||||||
|
bind:checked={aufnahme.rolllaeden_kaesten_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Alle Türen dicht"
|
||||||
|
name="tueren_dicht"
|
||||||
|
help=""
|
||||||
|
value="TD"
|
||||||
|
bind:checked={aufnahme.tueren_dicht}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Türen teilweise undicht"
|
||||||
|
name="tueren_undicht"
|
||||||
|
help=""
|
||||||
|
value="TUD"
|
||||||
|
bind:checked={aufnahme.tueren_undicht}
|
||||||
|
></SanierungsOption>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<FensterImage bind:images bind:ausweis bind:objekt />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Wir benötigen diese Angaben um den allgemeinen Modernisierungsstand
|
Wir benötigen diese Angaben um den allgemeinen Modernisierungsstand
|
||||||
einschätzen zu können. Bitte setzen Sie den Haken wenn zutreffend.
|
einschätzen zu können. Bitte setzen Sie den Haken wenn zutreffend.
|
||||||
@@ -161,5 +212,6 @@
|
|||||||
<AusweisPreviewContainer bind:images bind:ausweis bind:gebaeude />
|
<AusweisPreviewContainer bind:images bind:ausweis bind:gebaeude />
|
||||||
|
|
||||||
-->
|
-->
|
||||||
-->
|
|
||||||
|
<style lang="postcss">
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -10,14 +10,15 @@
|
|||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { boolean } from "astro:schema";
|
import { boolean } from "astro:schema";
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
|
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: UploadedGebaeudeBild[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -119,7 +120,7 @@
|
|||||||
></SanierungsOption>
|
></SanierungsOption>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<HeizungImage bind:images bind:ausweis bind:gebaeude />
|
<HeizungImage bind:images bind:ausweis bind:gebaeude={objekt} />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,30 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
import DaemmungImage from "./DaemmungImage.svelte";
|
||||||
import Inputlabel from "#components/labels/InputLabel.svelte";
|
|
||||||
|
|
||||||
import DaemmungImage from "./DaemmungImage.svelte";
|
|
||||||
|
|
||||||
|
//import Label from "../Label.svelte";
|
||||||
//import Label from "../Label.svelte";
|
|
||||||
|
import {
|
||||||
import {
|
AufnahmeClient,
|
||||||
AufnahmeClient,
|
BedarfsausweisWohnenClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
UploadedGebaeudeBild,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
} from "./types.js";
|
VerbrauchsausweisWohnenClient,
|
||||||
import { boolean } from "astro:schema";
|
} from "./types.js";
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte"
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
|
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient
|
export let ausweis:
|
||||||
export let images: UploadedGebaeudeBild[];
|
| VerbrauchsausweisWohnenClient
|
||||||
|
| VerbrauchsausweisGewerbeClient
|
||||||
|
| BedarfsausweisWohnenClient;
|
||||||
</script>
|
export let images: UploadedGebaeudeBild[];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div
|
||||||
|
id="sanierungszustand"
|
||||||
|
class="bereich-box grid
|
||||||
grid-cols-1 gap-x-4 gap-y-2
|
grid-cols-1 gap-x-4 gap-y-2
|
||||||
|
|
||||||
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
|
||||||
@@ -31,21 +32,53 @@
|
|||||||
|
|
||||||
xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
|
xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
|
||||||
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
||||||
2xl:grid-cols-3 2xl:gap-x-8 2xl:gap-y-2
|
"
|
||||||
">
|
>
|
||||||
|
<SanierungsOption
|
||||||
<SanierungsOption label="Außenwand gedämmt" name="aussenwand_gedaemmt" help="" value="AWD" bind:checked={aufnahme.aussenwand_gedaemmt}></SanierungsOption>
|
label="Außenwand gedämmt"
|
||||||
<SanierungsOption label="Kelleraußenwand gedämmt" name="keller_wand_gedaemmt" help="" value="KWD" bind:checked={aufnahme.keller_wand_gedaemmt}></SanierungsOption>
|
name="aussenwand_gedaemmt"
|
||||||
<SanierungsOption label="Kellerdecke gedämmt" name="keller_decke_gedaemmt" help="" value="KDD" bind:checked={aufnahme.keller_decke_gedaemmt}></SanierungsOption>
|
help=""
|
||||||
<SanierungsOption label="Dachgeschoss gedämmt" name="dachgeschoss_gedaemmt" help="" value="DGD" bind:checked={aufnahme.dachgeschoss_gedaemmt}></SanierungsOption>
|
value="AWD"
|
||||||
<SanierungsOption label="Oberste Geschossdecke gedämmt" name="oberste_geschossdecke_gedaemmt" help="" value="DGD" bind:checked={aufnahme.oberste_geschossdecke_gedaemmt}></SanierungsOption>
|
bind:checked={aufnahme.aussenwand_gedaemmt}
|
||||||
<SanierungsOption label="Oberste Geschossdecke min. 12cm gedämmt" name="oberste_geschossdecke_min_12cm_gedaemmt" help="" value="DGD" bind:checked={aufnahme.oberste_geschossdecke_min_12cm_gedaemmt}></SanierungsOption>
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Kelleraußenwand gedämmt"
|
||||||
|
name="keller_wand_gedaemmt"
|
||||||
|
help=""
|
||||||
|
value="KWD"
|
||||||
|
bind:checked={aufnahme.keller_wand_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Kellerdecke gedämmt"
|
||||||
|
name="keller_decke_gedaemmt"
|
||||||
|
help=""
|
||||||
|
value="KDD"
|
||||||
|
bind:checked={aufnahme.keller_decke_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Dachgeschoss gedämmt"
|
||||||
|
name="dachgeschoss_gedaemmt"
|
||||||
|
help=""
|
||||||
|
value="DGD"
|
||||||
|
bind:checked={aufnahme.dachgeschoss_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Oberste Geschossdecke gedämmt"
|
||||||
|
name="oberste_geschossdecke_gedaemmt"
|
||||||
|
help=""
|
||||||
|
value="DGD"
|
||||||
|
bind:checked={aufnahme.oberste_geschossdecke_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
<SanierungsOption
|
||||||
|
label="Oberste Geschossdecke min. 12cm gedämmt"
|
||||||
|
name="oberste_geschossdecke_min_12cm_gedaemmt"
|
||||||
|
help=""
|
||||||
|
value="DGD"
|
||||||
|
bind:checked={aufnahme.oberste_geschossdecke_min_12cm_gedaemmt}
|
||||||
|
></SanierungsOption>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<DaemmungImage bind:images bind:ausweis bind:objekt />
|
||||||
<DaemmungImage bind:images bind:ausweis bind:gebaeude />
|
|
||||||
|
|
||||||
<style lang="postcss">
|
|
||||||
<!--
|
<!--
|
||||||
<div class="GRB3">
|
<div class="GRB3">
|
||||||
<div class="form-group col-md-12">
|
<div class="form-group col-md-12">
|
||||||
@@ -71,5 +104,6 @@
|
|||||||
<AusweisPreviewContainer bind:images bind:ausweis bind:gebaeude />
|
<AusweisPreviewContainer bind:images bind:ausweis bind:gebaeude />
|
||||||
|
|
||||||
-->
|
-->
|
||||||
-->
|
|
||||||
|
<style lang="postcss">
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { addNotification } from "#components/Notifications/shared.js";
|
import { addNotification } from "#components/Notifications/shared.js";
|
||||||
|
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisGewerbeClient;
|
||||||
|
|
||||||
// Wir dürfen bis zu 4.5 Jahre alte Klimafaktoren benutzen, also nehmen wir alle Monate seitdem und generieren daraus die Auswahl.
|
// Wir dürfen bis zu 4.5 Jahre alte Klimafaktoren benutzen, also nehmen wir alle Monate seitdem und generieren daraus die Auswahl.
|
||||||
// Allerdings müssen wir auch berücksichtigen, dass wir drei folgende Jahre brauchen, also
|
// Allerdings müssen wir auch berücksichtigen, dass wir drei folgende Jahre brauchen, also
|
||||||
@@ -48,12 +48,12 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
const startDate = moment(
|
const startDate = moment(
|
||||||
ausweis.aufnahme.erstellungsdatum || Date.now()
|
aufnahme.erstellungsdatum || Date.now()
|
||||||
)
|
)
|
||||||
.subtract(4, "years")
|
.subtract(4, "years")
|
||||||
.subtract(6, "months");
|
.subtract(6, "months");
|
||||||
const endDate = moment(
|
const endDate = moment(
|
||||||
ausweis.aufnahme.erstellungsdatum || Date.now()
|
aufnahme.erstellungsdatum || Date.now()
|
||||||
).subtract(3, "years");
|
).subtract(3, "years");
|
||||||
|
|
||||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$: abweichung = auditVerbrauchAbweichung(ausweis, gebaeude);
|
$: abweichung = auditVerbrauchAbweichung(ausweis, aufnahme);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -137,14 +137,15 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
>
|
>
|
||||||
{#if !ausweis.zusaetzliche_heizquelle}
|
{#if !ausweis.zusaetzliche_heizquelle}
|
||||||
<input
|
<input
|
||||||
id="zusaetzliche_heizquelle_1"
|
id="zusaetzliche_heizquelle"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="checkbox"
|
class="checkbox"
|
||||||
name="zusaetzliche_heizquelle_1"
|
name="zusaetzliche_heizquelle"
|
||||||
|
data-cy="zusaetzliche_heizquelle"
|
||||||
bind:checked={ausweis.zusaetzliche_heizquelle}
|
bind:checked={ausweis.zusaetzliche_heizquelle}
|
||||||
/>
|
/>
|
||||||
<label
|
<label
|
||||||
for="zusaetzliche_heizquelle_1"
|
for="zusaetzliche_heizquelle"
|
||||||
class="cursor-pointer">zusätzliche Heizquelle</label
|
class="cursor-pointer">zusätzliche Heizquelle</label
|
||||||
>
|
>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -236,6 +237,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
<select
|
<select
|
||||||
class="rounded-e-none"
|
class="rounded-e-none"
|
||||||
name="brennstoff_1"
|
name="brennstoff_1"
|
||||||
|
data-cy="brennstoff_1"
|
||||||
bind:value={aufnahme.brennstoff_1}
|
bind:value={aufnahme.brennstoff_1}
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
@@ -267,6 +269,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
<select
|
<select
|
||||||
class="rounded-s-none"
|
class="rounded-s-none"
|
||||||
name="einheit_1"
|
name="einheit_1"
|
||||||
|
data-cy="einheit_1"
|
||||||
bind:value={ausweis.einheit_1}
|
bind:value={ausweis.einheit_1}
|
||||||
disabled={!aufnahme.brennstoff_1}
|
disabled={!aufnahme.brennstoff_1}
|
||||||
required
|
required
|
||||||
@@ -416,6 +419,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
<select
|
<select
|
||||||
class="rounded-e-none"
|
class="rounded-e-none"
|
||||||
name="brennstoff_2"
|
name="brennstoff_2"
|
||||||
|
data-cy="brennstoff_2"
|
||||||
bind:value={aufnahme.brennstoff_2}
|
bind:value={aufnahme.brennstoff_2}
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
@@ -449,6 +453,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
<select
|
<select
|
||||||
class="rounded-s-none"
|
class="rounded-s-none"
|
||||||
name="einheit_2"
|
name="einheit_2"
|
||||||
|
data-cy="einheit_2"
|
||||||
bind:value={ausweis.einheit_2}
|
bind:value={ausweis.einheit_2}
|
||||||
disabled={!aufnahme.brennstoff_2}
|
disabled={!aufnahme.brennstoff_2}
|
||||||
required
|
required
|
||||||
@@ -655,19 +660,19 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
|
|
||||||
<!-- Enthält Stromverbrauch für: -->
|
<!-- Enthält Stromverbrauch für: -->
|
||||||
|
|
||||||
<SanierungsOption label="Heizung" name="stromverbrauch_enthaelt_heizung" help="" bind:checked={aufnahme.stromverbrauch_enthaelt_heizung}></SanierungsOption>
|
<SanierungsOption label="Heizung" name="stromverbrauch_enthaelt_heizung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_heizung}></SanierungsOption>
|
||||||
<SanierungsOption label="Warmwasser " name="stromverbrauch_enthaelt_warmwasser" help="" bind:checked={aufnahme.stromverbrauch_enthaelt_warmwasser}></SanierungsOption>
|
<SanierungsOption label="Warmwasser " name="stromverbrauch_enthaelt_warmwasser" help="" bind:checked={ausweis.stromverbrauch_enthaelt_warmwasser}></SanierungsOption>
|
||||||
<SanierungsOption label="Lüftung " name="stromverbrauch_enthaelt_lueftung" help="" bind:checked={aufnahme.stromverbrauch_enthaelt_lueftung}></SanierungsOption>
|
<SanierungsOption label="Lüftung " name="stromverbrauch_enthaelt_lueftung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_lueftung}></SanierungsOption>
|
||||||
<SanierungsOption label="Beleuchtung" name="stromverbrauch_enthaelt_beleuchtung" help="" bind:checked={aufnahme.stromverbrauch_enthaelt_beleuchtung}></SanierungsOption>
|
<SanierungsOption label="Beleuchtung" name="stromverbrauch_enthaelt_beleuchtung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_beleuchtung}></SanierungsOption>
|
||||||
<SanierungsOption label="Kühlung" name="stromverbrauch_enthaelt_kuehlung" help="" bind:checked={aufnahme.stromverbrauch_enthaelt_kuehlung}></SanierungsOption>
|
<SanierungsOption label="Kühlung" name="stromverbrauch_enthaelt_kuehlung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_kuehlung}></SanierungsOption>
|
||||||
|
|
||||||
<div class="input-standard">
|
<div class="input-standard">
|
||||||
<Inputlabel title="Sonstige"></Inputlabel>
|
<Inputlabel title="Sonstige"></Inputlabel>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
name="strom_3"
|
name="stromverbrauch_enthaelt_sonstige"
|
||||||
type="number"
|
type="number"
|
||||||
bind:value={ausweis.strom_3}
|
bind:value={ausweis.stromverbrauch_enthaelt_sonstige}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,6 @@
|
|||||||
import Inputlabel from "#components/labels/InputLabel.svelte";
|
import Inputlabel from "#components/labels/InputLabel.svelte";
|
||||||
import Verbrauchslabel from "#components/labels/VerbrauchsLabel.svelte";
|
import Verbrauchslabel from "#components/labels/VerbrauchsLabel.svelte";
|
||||||
import VerbrauchsHelpLabel from "#components/labels/VerbrauchsHelpLabel.svelte";
|
import VerbrauchsHelpLabel from "#components/labels/VerbrauchsHelpLabel.svelte";
|
||||||
|
|
||||||
import Label from "../Label.svelte";
|
|
||||||
|
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import fuelList from "./brennstoffListe.js";
|
import fuelList from "./brennstoffListe.js";
|
||||||
import { auditVerbrauchAbweichung } from "../Verbrauchsausweis/audits/VerbrauchAbweichung.js";
|
import { auditVerbrauchAbweichung } from "../Verbrauchsausweis/audits/VerbrauchAbweichung.js";
|
||||||
@@ -16,7 +13,7 @@
|
|||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { addNotification } from "#components/Notifications/shared.js";
|
import { addNotification } from "#components/Notifications/shared.js";
|
||||||
|
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
|
|
||||||
@@ -43,14 +40,13 @@
|
|||||||
"Dezember",
|
"Dezember",
|
||||||
];
|
];
|
||||||
|
|
||||||
const startDate = moment(
|
const startDate = moment(aufnahme.erstellungsdatum || Date.now())
|
||||||
aufnahme.erstellungsdatum || Date.now()
|
|
||||||
)
|
|
||||||
.subtract(4, "years")
|
.subtract(4, "years")
|
||||||
.subtract(6, "months");
|
.subtract(6, "months");
|
||||||
const endDate = moment(
|
const endDate = moment(aufnahme.erstellungsdatum || Date.now()).subtract(
|
||||||
aufnahme.erstellungsdatum || Date.now()
|
3,
|
||||||
).subtract(3, "years");
|
"years"
|
||||||
|
);
|
||||||
|
|
||||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||||
availableDates.push({
|
availableDates.push({
|
||||||
@@ -84,21 +80,28 @@
|
|||||||
|
|
||||||
$: {
|
$: {
|
||||||
console.log(month, year);
|
console.log(month, year);
|
||||||
|
|
||||||
if ((availableDates.filter(date => date.month === month && date.year === year).length === 0) && typeof month === "number" && typeof year === "number") {
|
if (
|
||||||
|
availableDates.filter(
|
||||||
|
(date) => date.month === month && date.year === year
|
||||||
|
).length === 0 &&
|
||||||
|
typeof month === "number" &&
|
||||||
|
typeof year === "number"
|
||||||
|
) {
|
||||||
addNotification({
|
addNotification({
|
||||||
message: "Monat nicht verfügbar.",
|
message: "Monat nicht verfügbar.",
|
||||||
subtext: "Der ausgewählte Monat ist in diesem Jahr nicht verfügbar, bitte wählen sie einen neuen Start Monat.",
|
subtext:
|
||||||
|
"Der ausgewählte Monat ist in diesem Jahr nicht verfügbar, bitte wählen sie einen neuen Start Monat.",
|
||||||
dismissable: true,
|
dismissable: true,
|
||||||
type: "warning",
|
type: "warning",
|
||||||
timeout: 0,
|
timeout: 0,
|
||||||
uid: "monat_nicht_verfuegbar",
|
uid: "monat_nicht_verfuegbar",
|
||||||
selector: "select[name='energieverbrauch_zeitraum_monat']"
|
selector: "select[name='energieverbrauch_zeitraum_monat']",
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$: abweichung = auditVerbrauchAbweichung(ausweis, gebaeude);
|
$: abweichung = auditVerbrauchAbweichung(ausweis, aufnahme);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -110,24 +113,37 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<!-- primäre Heizquellen -->
|
<!-- primäre Heizquellen -->
|
||||||
|
<div class="grid grid-cols-2 gap-x-4 order-2 md:order-2 xl:order-2">
|
||||||
|
<div class="input-standard">
|
||||||
|
<Inputlabel title="Heizquellen"></Inputlabel>
|
||||||
|
|
||||||
<div class="input-standard order-1 md:order-1 xl:order-1">
|
<div class="input-checkboxen">
|
||||||
<Inputlabel title="Heizquellen"></Inputlabel>
|
<div
|
||||||
|
class="grid grid-cols-[40px_max-content] items-center justify-items-start"
|
||||||
<div class="input-checkboxen">
|
>
|
||||||
<div
|
<input
|
||||||
class="grid grid-cols-[40px_max-content] items-center justify-items-start"
|
id="primaere_heizquelle"
|
||||||
>
|
type="checkbox"
|
||||||
<input
|
class="checkbox"
|
||||||
id="primaere_heizquelle"
|
name="primaere_heizquelle"
|
||||||
type="checkbox"
|
checked={true}
|
||||||
class="checkbox"
|
/>
|
||||||
name="primaere_heizquelle"
|
<label for="primaere_heizquelle">primäre Heizquelle</label>
|
||||||
checked={true}
|
</div>
|
||||||
/>
|
|
||||||
<label for="primaere_heizquelle">primäre Heizquelle</label>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="help-label">
|
||||||
|
<HelpLabel>Sie haben die Möglichkeit neben der Hauptheizung die <b>Verbräuche weiterer Heizquellen</b>
|
||||||
|
(z.B. Einzelöfen, Kamin, Nachtspeicher, Wärmepumpe, zweiter Heizkessel etc.) einzugeben.
|
||||||
|
Dazu setzen Sie den Haken bei zusätzlicher Heizquelle. Eine weiterer Bereich zur Eingabe der
|
||||||
|
Verbräuche öffnet sich dann.</HelpLabel>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-standard">
|
||||||
|
<Inputlabel title="Heizquellen"></Inputlabel>
|
||||||
|
<div class="input-checkboxen">
|
||||||
<div
|
<div
|
||||||
class="grid grid-cols-[40px_max-content] items-center justify-items-start"
|
class="grid grid-cols-[40px_max-content] items-center justify-items-start"
|
||||||
>
|
>
|
||||||
@@ -146,15 +162,14 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
>
|
>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="help-label">
|
||||||
<div class="help-label">
|
<HelpLabel>Bitte geben Sie das <b>Startjahr der ersten Verbrauchsperiode</b> ein. Weitere Zeitangaben müssen nichht
|
||||||
<HelpLabel>Sie haben die Möglichkeit neben der Hauptheizung die <b>Verbräuche weiterer Heizquellen</b>
|
gemacht werden, da alle 3 Verbrauchsjahre zusammenhängend sein sollen.</HelpLabel>
|
||||||
(z.B. Einzelöfen, Kamin, Nachtspeicher, Wärmepumpe, zweiter Heizkessel etc.) einzugeben.
|
</div>
|
||||||
Dazu setzen Sie den Haken bei zusätzlicher Heizquelle. Eine weiterer Bereich zur Eingabe der
|
|
||||||
Verbräuche öffnet sich dann.</HelpLabel>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- Zeitraum 1 -->
|
<!-- Zeitraum 1 -->
|
||||||
|
|
||||||
@@ -189,10 +204,13 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>Bitte geben Sie hier den <b>Startmonat der ersten Verbrauchsperiode</b> ein. Es sind nur Monate auswählbar,
|
<HelpLabel
|
||||||
die im zulässigen Zeitraum (Endzeitpunkt von Jahr 3 darf nicht älter als 18 Monate sein) liegen. Wählen Sie ein
|
>Bitte geben Sie hier den <b
|
||||||
aktuellerses Jahr um alle Monate zu sehen.
|
>Startmonat der ersten Verbrauchsperiode</b
|
||||||
</HelpLabel>
|
> ein. Es sind nur Monate auswählbar, die im zulässigen Zeitraum
|
||||||
|
(Endzeitpunkt von Jahr 3 darf nicht älter als 18 Monate sein)
|
||||||
|
liegen. Wählen Sie ein aktuellerses Jahr um alle Monate zu sehen.
|
||||||
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -218,8 +236,12 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>Bitte geben Sie das <b>Startjahr der ersten Verbrauchsperiode</b> ein. Weitere Zeitangaben müssen nichht
|
<HelpLabel
|
||||||
gemacht werden, da alle 3 Verbrauchsjahre zusammenhängend sein sollen.</HelpLabel>
|
>Bitte geben Sie das <b
|
||||||
|
>Startjahr der ersten Verbrauchsperiode</b
|
||||||
|
> ein. Weitere Zeitangaben müssen nichht gemacht werden, da alle
|
||||||
|
3 Verbrauchsjahre zusammenhängend sein sollen.</HelpLabel
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -244,16 +266,24 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<b>Heizöl:</b> Flüssiger fossiler Brennstoff.<br/>
|
<b>Heizöl:</b> Flüssiger fossiler Brennstoff.<br />
|
||||||
<b>Erdgas:</b> Gasförmiger fossiler Brennstoff.<br/>
|
<b>Erdgas:</b> Gasförmiger fossiler Brennstoff.<br />
|
||||||
<b>Flüssiggas:</b> Wie Erdgas fossiler Brennstoff - im Flüssiggastank gelagert<br/>
|
<b>Flüssiggas:</b> Wie Erdgas fossiler Brennstoff - im
|
||||||
<b>Braunkohle:</b> Fester fossiler Brennstoff<br/>
|
Flüssiggastank gelagert<br />
|
||||||
<b>Holz-Pellets:</b> Stäbchenförmige Pellets - erneuerbarer (nachwachsender) Brennstoff<br/>
|
<b>Braunkohle:</b> Fester fossiler Brennstoff<br />
|
||||||
<b>Holzhackschnitzel:</b>Wie Holz-Pellets<br/>
|
<b>Holz-Pellets:</b> Stäbchenförmige Pellets - erneuerbarer
|
||||||
<b>Fernwärme, Nahwärme:</b> kommunales Wärmenetz - <strong>erfragen Sie
|
(nachwachsender) Brennstoff<br />
|
||||||
den Primärenergiefaktor bei Ihrem Energieversorger</strong> (meistens mit regenartivem Anteil)<br/>
|
<b>Holzhackschnitzel:</b>Wie Holz-Pellets<br />
|
||||||
<b>Strommix:</b> Meist bei Wärmepumpe oder Nachtspeicher.<br/>
|
<b>Fernwärme, Nahwärme:</b> kommunales Wärmenetz -
|
||||||
<b>Koks:</b> stark kohlenstoffhaltiger fossiler Brennstoff.<br/>
|
<strong
|
||||||
|
>erfragen Sie den Primärenergiefaktor bei Ihrem
|
||||||
|
Energieversorger</strong
|
||||||
|
>
|
||||||
|
(meistens mit regenartivem Anteil)<br />
|
||||||
|
<b>Strommix:</b> Meist bei Wärmepumpe oder Nachtspeicher.<br
|
||||||
|
/>
|
||||||
|
<b>Koks:</b> stark kohlenstoffhaltiger fossiler Brennstoff.<br
|
||||||
|
/>
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -276,9 +306,10 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
Bitte geben Sie die Einheit ein. Die Liste passt sich entsprechend des ausgeählten Brennstoffes an.
|
Bitte geben Sie die Einheit ein. Die Liste passt sich
|
||||||
Erdgas wird meist auf der Abrechnung in kWh ausgewiesen. Heizöl liegt meistens in
|
entsprechend des ausgeählten Brennstoffes an. Erdgas wird
|
||||||
Litern vor. Pellets oder Brennholz in kg.
|
meist auf der Abrechnung in kWh ausgewiesen. Heizöl liegt
|
||||||
|
meistens in Litern vor. Pellets oder Brennholz in kg.
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -397,8 +428,13 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>Hier sind die <b>Verbräuche einer zusätzlichen Heizquelle</b>
|
<HelpLabel
|
||||||
(z.B. Einzelöfen, Kamin, Nachtspeicher, Wärmepumpe, zweiter Heizkessel etc.) einzugeben</HelpLabel>
|
>Hier sind die <b
|
||||||
|
>Verbräuche einer zusätzlichen Heizquelle</b
|
||||||
|
>
|
||||||
|
(z.B. Einzelöfen, Kamin, Nachtspeicher, Wärmepumpe, zweiter Heizkessel
|
||||||
|
etc.) einzugeben</HelpLabel
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -427,16 +463,24 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
<b>Heizöl:</b> Flüssiger fossiler Brennstoff.<br/>
|
<b>Heizöl:</b> Flüssiger fossiler Brennstoff.<br />
|
||||||
<b>Erdgas:</b> Gasförmiger fossiler Brennstoff.<br/>
|
<b>Erdgas:</b> Gasförmiger fossiler Brennstoff.<br />
|
||||||
<b>Flüssiggas:</b> Wie Erdgas fossiler Brennstoff - im Flüssiggastank gelagert<br/>
|
<b>Flüssiggas:</b> Wie Erdgas fossiler Brennstoff - im
|
||||||
<b>Braunkohle:</b> Fester fossiler Brennstoff<br/>
|
Flüssiggastank gelagert<br />
|
||||||
<b>Holz-Pellets:</b> Stäbchenförmige Pellets - erneuerbarer (nachwachsender) Brennstoff<br/>
|
<b>Braunkohle:</b> Fester fossiler Brennstoff<br />
|
||||||
<b>Holzhackschnitzel:</b>Wie Holz-Pellets<br/>
|
<b>Holz-Pellets:</b> Stäbchenförmige Pellets -
|
||||||
<b>Fernwärme, Nahwärme:</b> kommunales Wärmenetz - <strong>erfragen Sie
|
erneuerbarer (nachwachsender) Brennstoff<br />
|
||||||
den Primärenergiefaktor bei Ihrem Energieversorger</strong> (meistens mit regenartivem Anteil)<br/>
|
<b>Holzhackschnitzel:</b>Wie Holz-Pellets<br />
|
||||||
<b>Strommix:</b> Meist bei Wärmepumpe oder Nachtspeicher.<br/>
|
<b>Fernwärme, Nahwärme:</b> kommunales Wärmenetz -
|
||||||
<b>Koks:</b> stark kohlenstoffhaltiger fossiler Brennstoff.<br/>
|
<strong
|
||||||
|
>erfragen Sie den Primärenergiefaktor bei Ihrem
|
||||||
|
Energieversorger</strong
|
||||||
|
>
|
||||||
|
(meistens mit regenartivem Anteil)<br />
|
||||||
|
<b>Strommix:</b> Meist bei Wärmepumpe oder
|
||||||
|
Nachtspeicher.<br />
|
||||||
|
<b>Koks:</b> stark kohlenstoffhaltiger fossiler
|
||||||
|
Brennstoff.<br />
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -462,9 +506,11 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
|
|
||||||
<div class="help-label">
|
<div class="help-label">
|
||||||
<HelpLabel>
|
<HelpLabel>
|
||||||
Bitte geben Sie die Einheit ein. Die Liste passt sich entsprechend des ausgeählten Brennstoffes an.
|
Bitte geben Sie die Einheit ein. Die Liste passt sich
|
||||||
Erdgas wird meist auf der Abrechnung in kWh ausgewiesen. Heizöl liegt meistens in
|
entsprechend des ausgeählten Brennstoffes an. Erdgas
|
||||||
Litern vor. Pellets oder Brennholz in kg.
|
wird meist auf der Abrechnung in kWh ausgewiesen. Heizöl
|
||||||
|
liegt meistens in Litern vor. Pellets oder Brennholz in
|
||||||
|
kg.
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -51,7 +51,11 @@ export type VerbrauchsausweisWohnenClient = OmitKeys<
|
|||||||
export type VerbrauchsausweisGewerbeClient = OmitKeys<
|
export type VerbrauchsausweisGewerbeClient = OmitKeys<
|
||||||
VerbrauchsausweisGewerbe,
|
VerbrauchsausweisGewerbe,
|
||||||
"id" | "aufnahme_id" | "benutzer_id"
|
"id" | "aufnahme_id" | "benutzer_id"
|
||||||
>;
|
> & {
|
||||||
|
uid_objekt: string,
|
||||||
|
uid_aufnahme: string,
|
||||||
|
uid_benutzer?: string
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
||||||
@@ -66,7 +70,11 @@ export type VerbrauchsausweisGewerbeClient = OmitKeys<
|
|||||||
export type BedarfsausweisWohnenClient = OmitKeys<
|
export type BedarfsausweisWohnenClient = OmitKeys<
|
||||||
BedarfsausweisWohnen,
|
BedarfsausweisWohnen,
|
||||||
"id" | "aufnahme_id" | "benutzer_id"
|
"id" | "aufnahme_id" | "benutzer_id"
|
||||||
>;
|
> & {
|
||||||
|
uid_objekt: string,
|
||||||
|
uid_aufnahme: string,
|
||||||
|
uid_benutzer?: string
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für die Gebäude Stammdaten mit allen Feldern die
|
* Das ist der Typescript Type für die Gebäude Stammdaten mit allen Feldern die
|
||||||
|
|||||||
@@ -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 bg-white text-center hover:shadow-md no-underline p-3 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>
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import UploadImages from "./UploadImages.svelte";
|
import UploadImages from "./UploadImages.svelte";
|
||||||
import type { BedarfsausweisWohnen, Enums, VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import type { Enums } from "@ibcornelsen/database/client";
|
||||||
import { ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { RotateCounterClockwise, Trash, Upload } from "radix-svelte-icons";
|
import { RotateCounterClockwise, Trash, Upload } from "radix-svelte-icons";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let max: number = 4;
|
export let max: number = 4;
|
||||||
export let min: number = 1;
|
export let min: number = 1;
|
||||||
export let name: string = "";
|
export let name: string = "";
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let kategorie: Enums.BilderKategorie
|
export let kategorie: Enums.BilderKategorie
|
||||||
|
|
||||||
async function rotateImage(image: UploadedGebaeudeBild): Promise<UploadedGebaeudeBild> {
|
async function rotateImage(image: UploadedGebaeudeBild): Promise<UploadedGebaeudeBild> {
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
<UploadImages {name} {kategorie} {max} {min} bind:upload bind:gebaeude bind:images bind:ausweis><slot /></UploadImages>
|
<UploadImages {name} {kategorie} {max} {min} bind:upload bind:objekt bind:images bind:ausweis><slot /></UploadImages>
|
||||||
<div class="grid grid-cols-2 gap-2">
|
<div class="grid grid-cols-2 gap-2">
|
||||||
{#each images as image, i}
|
{#each images as image, i}
|
||||||
{#if image.kategorie == kategorie}
|
{#if image.kategorie == kategorie}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<input type="radio" data-test={paymentType} id={paymentType} name="paymentType" on:change={() => selectedPaymentType = paymentType} />
|
<input type="radio" data-cy={paymentType} id={paymentType} name="paymentType" on:change={() => selectedPaymentType = paymentType} />
|
||||||
|
|
||||||
<label for={paymentType}>
|
<label for={paymentType}>
|
||||||
<div class="grid grid-rows-[1fr_20px] justify-items-center items-center cursor-pointer">
|
<div class="grid grid-rows-[1fr_20px] justify-items-center items-center cursor-pointer">
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
||||||
import type { BedarfsausweisWohnen, Enums, VerbrauchsausweisGewerbe } from "@ibcornelsen/database/client";
|
import type { Enums } from "@ibcornelsen/database/client";
|
||||||
|
|
||||||
export let max: number = 2;
|
export let max: number = 2;
|
||||||
export let min: number = 1;
|
export let min: number = 1;
|
||||||
export let name: string = ""
|
export let name: string = ""
|
||||||
|
|
||||||
// Array of base64 encoded images read into the input.
|
// Array of base64 encoded images read into the input.
|
||||||
import { ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: UploadedGebaeudeBild[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let kategorie: Enums.BilderKategorie;
|
export let kategorie: Enums.BilderKategorie;
|
||||||
|
|
||||||
function getAllImages(this: HTMLInputElement) {
|
function getAllImages(this: HTMLInputElement) {
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
|
|
||||||
reader.onload = (ev) => {
|
reader.onload = () => {
|
||||||
if (reader.readyState != reader.DONE) {
|
if (reader.readyState != reader.DONE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,8 +1,8 @@
|
|||||||
import { AufnahmeClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import { AuditType, hidden } from "./hidden.js";
|
import { AuditType, hidden } from "./hidden.js";
|
||||||
|
|
||||||
export function auditVerbrauchAbweichung(ausweis: VerbrauchsausweisWohnenClient, gebaeude: AufnahmeClient): number[] {
|
export function auditVerbrauchAbweichung(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient): number[] {
|
||||||
if (gebaeude.leerstand && (gebaeude.leerstand > 0)) {
|
if (aufnahme.leerstand && (aufnahme.leerstand > 0)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div id="ProduktUebersichtBedarfssausweisGewerbe">
|
<div id="ProduktUebersichtBedarfssausweisGewerbe">
|
||||||
|
|
||||||
<div class="w-full sm:w-[80%] 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="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="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 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>
|
||||||
@@ -82,6 +82,6 @@
|
|||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price{@apply text-[1.15rem] sm:text-[1.5rem]}
|
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div id="ProduktUebersichtBedarfssausweisWohnen">
|
<div id="ProduktUebersichtBedarfssausweisWohnen">
|
||||||
|
|
||||||
<div class="w-full sm:w-[80%] 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="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="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 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>
|
||||||
@@ -82,6 +82,6 @@
|
|||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price{@apply text-[1.15rem] sm:text-[1.5rem]}
|
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div id="ProduktUebersichtVerbrauchsausweisGewerbe">
|
<div id="ProduktUebersichtVerbrauchsausweisGewerbe">
|
||||||
|
|
||||||
<div class="w-full sm:w-[80%] 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="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="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 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>
|
||||||
@@ -82,6 +82,6 @@
|
|||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price{@apply text-[1.15rem] sm:text-[1.5rem]}
|
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
@@ -26,7 +26,7 @@ bullets = [
|
|||||||
|
|
||||||
<div id="ProduktUebersichtVerbrauchsausweisWohnen">
|
<div id="ProduktUebersichtVerbrauchsausweisWohnen">
|
||||||
|
|
||||||
<div class="w-full sm:w-[80%] 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="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="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 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>
|
||||||
@@ -82,6 +82,6 @@ bullets = [
|
|||||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price{@apply text-[1.15rem] sm:text-[1.5rem]}
|
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
@@ -11,39 +11,41 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
{#if empfehlung=="ja"}
|
||||||
|
<div class="empfehlung">Empfehlung</div>
|
||||||
|
{/if}
|
||||||
|
<h2 class="titel sm:mb-2">{name}</h2>
|
||||||
<h2 class="titel">{name}</h2>
|
|
||||||
|
|
||||||
{#if empfehlung=="ja"}
|
|
||||||
<!--<div class="empfehlung">Empfehlung</div>-->
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="sumCent">
|
<div class="sumCent">
|
||||||
|
<div class="variante">{variant}</div>
|
||||||
<img
|
<img
|
||||||
class="image"
|
class="image"
|
||||||
{src}
|
{src}
|
||||||
{alt}
|
{alt}
|
||||||
/>
|
/>
|
||||||
<div class="justify-self-start">
|
<div class="justify-self-start">
|
||||||
<p class="promo">
|
<p class="price">
|
||||||
<span class="[font-family:Antique_Olive_Compact_bold]">
|
ab {price} €
|
||||||
ab {price} €
|
|
||||||
</span>
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="sumCent buttoncols">
|
||||||
|
<a
|
||||||
|
href="{href_buy}"
|
||||||
|
class="buttoncol">jetzt online erstellen</a
|
||||||
|
>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="{href_overview}"
|
||||||
|
class="buttoncol">Produkt-Übersicht</a
|
||||||
|
>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<!--<div class="sumCent variante justify-self-end">{variant}</div>-->
|
<div class="sumRows forServices">
|
||||||
|
|
||||||
<div class="sumCent sumRows forServices">
|
|
||||||
|
|
||||||
{#each services as [service, check]}
|
{#each services as [service, check]}
|
||||||
<div class="services">
|
<div class="services">
|
||||||
@@ -55,65 +57,46 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="sumCent buttoncols">
|
|
||||||
<a
|
|
||||||
href="{href_buy}"
|
|
||||||
class="buttoncol">jetzt online erstellen</a
|
|
||||||
>
|
|
||||||
|
|
||||||
<a
|
|
||||||
href="{href_overview}"
|
|
||||||
class="buttoncol">Produktübersicht</a
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="postcss">
|
<style lang="postcss">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.sumCent{@apply justify-self-center col-span-2 md:mb-6}
|
.sumCent{@apply justify-self-center col-span-2}
|
||||||
.sumRows{@apply hidden md:grid grid-rows-subgrid row-span-5}
|
.sumRows{@apply hidden sm:grid grid-rows-subgrid row-span-5 items-center}
|
||||||
.forServices{@apply w-full md:w-auto}
|
.forServices{@apply grid-rows-subgrid row-span-5 items-center col-span-2 justify-center px-6}
|
||||||
|
|
||||||
.image{@apply w-[75%] justify-self-center
|
.image{@apply w-[75%] justify-self-center
|
||||||
md:w-[75%] md:pl-12}
|
md:w-[75%] md:pl-12}
|
||||||
|
|
||||||
.buttoncols{@apply grid grid-cols-1 gap-x-10 w-full
|
.buttoncols{@apply grid grid-cols-1 gap-x-4 w-full mb-4
|
||||||
md:grid-cols-2 md:w-[auto]}
|
md:grid-cols-2 md:w-[auto]}
|
||||||
|
|
||||||
.buttoncol{@apply mt-[0.5rem] text-center text-white bg-secondary rounded-md px-3 py-1 no-underline
|
.buttoncol{@apply mt-2 md:mt-0 text-center text-black bg-[#ffcc00] rounded-md px-3 py-1 no-underline
|
||||||
hover:bg-primary}
|
hover:bg-[#222222] hover:text-white}
|
||||||
|
|
||||||
|
|
||||||
.promo{@apply tracking-tighter text-[1.75rem] text-gray-700 pl-0 m-0 -mt-4;
|
.price{@apply tracking-tighter text-[2rem] text-[#222222] pl-12 m-0 -mt-4 text-nowrap;
|
||||||
font-family: "Antique Olive Compact bold";}
|
font-family: "Antique Olive Compact bold";}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.titel {@apply col-span-2 text-center [font-size:_clamp(20px,2.5vw,28px)]}
|
.titel {@apply col-span-2 text-center [font-size:_clamp(20px,2.5vw,28px)]}
|
||||||
.empfehlung{@apply bg-red-700 text-[0.75rem] text-white px-2 py-1 rounded-sm rotate-[5deg]}
|
.empfehlung{@apply -mt-4 absolute justify-self-end rounded-md bg-red-700 text-white w-fit h-fit px-2 py-1 rotate-1 text-[0.65rem] ring-4 ring-white mr-6}
|
||||||
.variante {
|
.variante {
|
||||||
@apply col-span-2 -mt-2 text-xl w-fit text-black justify-self-end;
|
@apply italic col-span-2 -mt-2 -mb-4 text-[1rem] text-[#222222] justify-self-start ring-2 ring-[#ffcc00] rounded-md pl-[4px] pr-[6px] py-[0px];
|
||||||
}
|
}
|
||||||
|
|
||||||
.services {
|
.services {
|
||||||
@apply hidden w-full text-start py-1 md:grid grid-cols-[1fr_minmax(25px,50px)] items-center;
|
@apply hidden text-start py-1 md:grid grid-rows-subgrid row-span-1 items-center md:grid-cols-[1fr_50px]
|
||||||
}
|
}
|
||||||
.services:not(:last-child) {
|
.services:not(:last-child) {
|
||||||
@apply border-b-[1px] border-gray-200;
|
@apply border-b-[1px] border-gray-200;
|
||||||
}
|
}
|
||||||
.check {
|
.check {
|
||||||
@apply justify-self-end font-bold text-green-700;
|
@apply justify-self-end self-center font-bold text-green-700;
|
||||||
}
|
}
|
||||||
.check-no {
|
.check-no {
|
||||||
@apply justify-self-end font-bold text-red-700;
|
@apply justify-self-end self-center font-bold text-red-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
60
src/components/design/header/AusweisHeader_immowelt.astro
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
|
||||||
|
---
|
||||||
|
|
||||||
|
<header id="header" class="w-full bg-white h-[81px] sm:pl-8">
|
||||||
|
|
||||||
|
<div class="grid grid-cols-[min-content_1fr] items-center">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="w-[150px] h-[80px]">
|
||||||
|
<div class="w-full h-full grid grid-col-1 justify-items-center items-center">
|
||||||
|
<img class="w-[109px]" src="/images/immowelt/immowelt.svg" alt="immowelt"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<ul class="navlist">
|
||||||
|
<li><button>Verbrauchsausweis</button></li>
|
||||||
|
<li><button>Bedarfssausweis</button></li>
|
||||||
|
<li><button>Verbrauchsausweis Gewerbe</button></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="block w-full 2xl:h-[270px] lg:h-[148px] bg-cover" style="background-image: url('/images/immowelt/hero-desktop.webp');
|
||||||
|
background-repeat:no-repeat; background-position:right;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style lang="postcss">
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "immo Sans";
|
||||||
|
src: url('/fonts/Immo-Sans/immoSans-Regular.eot');
|
||||||
|
src: url('/fonts/Immo-Sans/immoSans-Regular.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('/fonts/Immo-Sans/immoSans-Regular.woff2') format('woff2'),
|
||||||
|
url('/fonts/Immo-Sans/immoSans-Regular.woff') format('woff');
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.header-button {
|
||||||
|
@apply px-4 py-2 text-primary-content font-medium text-lg tracking-normal hover:bg-secondary h-full;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navlist{@apply block sm:flex pl-[1.75rem];}
|
||||||
|
.navlist li{@apply flex md:pr-[6px]}
|
||||||
|
.navlist li button{@apply text-[0.75rem] md:text-[1rem] text-[#646464] sm:p-2 text-left
|
||||||
|
hover:rounded-[1rem] hover:bg-[rgba(50,50,50,0.1)];
|
||||||
|
font-family: "immo Sans";
|
||||||
|
font-weight:400;}
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
import { fade } from "svelte/transition";
|
import { fade } from "svelte/transition";
|
||||||
import WidgetCardTemplate from "#components/design/content/WidgetCardTemplate.svelte";
|
import WidgetCardTemplate from "#components/design/content/WidgetCardTemplate.svelte";
|
||||||
import { PRICES } from "#lib/constants.js";
|
import { PRICES } from "#lib/constants.js";
|
||||||
|
|
||||||
|
|
||||||
let gebaeudetyp: string = "bitte auswählen";
|
let gebaeudetyp: string = "bitte auswählen";
|
||||||
let anlass: string = "bitte auswählen";
|
let anlass: string = "bitte auswählen";
|
||||||
@@ -16,29 +15,66 @@
|
|||||||
const gewerbeHouse = ["Gewerbegebäude", "Mischgebäude"];
|
const gewerbeHouse = ["Gewerbegebäude", "Mischgebäude"];
|
||||||
|
|
||||||
|
|
||||||
|
let ausnahme: boolean = false;
|
||||||
|
let oneBOX: boolean = false;
|
||||||
|
let threeBOX: boolean = false;
|
||||||
|
|
||||||
function getBoxes(){
|
function getBoxes(){
|
||||||
if(twoBoxReason.includes(anlass)){
|
if(twoBoxReason.includes(anlass)){
|
||||||
|
|
||||||
document.getElementById('firstrow')?.classList.remove('md:grid-cols-2');
|
document.getElementById('firstrow')?.classList.remove('sm:grid-cols-2');
|
||||||
document.getElementById('firstrow')?.classList.add('md:grid-cols-3');
|
document.getElementById('firstrow')?.classList.add('sm:grid-cols-3');
|
||||||
}else{
|
}else{
|
||||||
|
document.getElementById('firstrow')?.classList.remove('sm:grid-cols-3');
|
||||||
|
document.getElementById('firstrow')?.classList.add('sm:grid-cols-2');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
document.getElementById('firstrow')?.classList.remove('md:grid-cols-3');
|
function getCount(){
|
||||||
document.getElementById('firstrow')?.classList.add('md:grid-cols-2');
|
if(oneBOX===true){
|
||||||
|
console.log('ONE');
|
||||||
|
document.getElementById('thirdrow')?.classList.remove('md:grid-cols-6');
|
||||||
|
document.getElementById('thirdrow')?.classList.remove('md:grid-cols-4');
|
||||||
|
document.getElementById('thirdrow')?.classList.add('grid-cols-1');
|
||||||
|
}else if(threeBOX===true){
|
||||||
|
console.log('THREE');
|
||||||
|
document.getElementById('thirdrow')?.classList.remove('grid-cols-1');
|
||||||
|
document.getElementById('thirdrow')?.classList.remove('md:grid-cols-4');
|
||||||
|
|
||||||
|
document.getElementById('thirdrow')?.classList.add('md:grid-cols-6');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
|
console.log('FOUR');
|
||||||
|
document.getElementById('thirdrow')?.classList.remove('grid-cols-1');
|
||||||
|
document.getElementById('thirdrow')?.classList.remove('md:grid-cols-6');
|
||||||
|
document.getElementById('thirdrow')?.classList.add('md:grid-cols-4');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let ausnahme: boolean = false
|
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
|
ausnahme = ((leerStand === "mehr als 30") || (heizungsAlter === "< 3") || (baujahr === "vor 1978" && einheiten === "bis 4 Wohneinheiten" && sanierungsstatus === "unsaniert"))
|
||||||
ausnahme = ((leerStand === "mehr als 30") || (heizungsAlter === "< 3") || (baujahr === "vor 1978" && einheiten === "bis 4 Wohneinheiten" && sanierungsstatus === "unsaniert"))
|
|
||||||
? true
|
? true
|
||||||
: false;
|
: false;
|
||||||
|
|
||||||
|
oneBOX = ((ausnahme === true) && (gebaeudetyp != "Gewerbegebäude")) && (gebaeudetyp != "Mischgebäude") ||
|
||||||
|
((!twoBoxReason.includes(anlass)) && (gebaeudetyp != "Mischgebäude")) ||
|
||||||
|
((gebaeudetyp === "Gewerbegebäude") && (leerStand === "mehr als 30"))
|
||||||
|
? true
|
||||||
|
: false;
|
||||||
|
|
||||||
|
threeBOX = ((ausnahme === true) && (gebaeudetyp === "Mischgebäude") && (twoBoxReason.includes(anlass) && (leerStand != "mehr als 30")))
|
||||||
|
? true
|
||||||
|
: false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
@@ -56,7 +92,7 @@ $: {
|
|||||||
<select
|
<select
|
||||||
id="anlass"
|
id="anlass"
|
||||||
class="selectfeld"
|
class="selectfeld"
|
||||||
bind:value={anlass} on:change={getBoxes}
|
bind:value={anlass} on:change={getBoxes} on:change={getCount}
|
||||||
>
|
>
|
||||||
<option selected disabled>bitte auswählen</option>
|
<option selected disabled>bitte auswählen</option>
|
||||||
<option value="Vermietung/Verkauf"
|
<option value="Vermietung/Verkauf"
|
||||||
@@ -74,7 +110,7 @@ $: {
|
|||||||
<div class="titel">Gebäudetyp</div>
|
<div class="titel">Gebäudetyp</div>
|
||||||
<select
|
<select
|
||||||
class="selectfeld"
|
class="selectfeld"
|
||||||
bind:value={gebaeudetyp} on:change={getBoxes}
|
bind:value={gebaeudetyp} on:change={getBoxes} on:change={getCount}
|
||||||
>
|
>
|
||||||
<option selected disabled>bitte auswählen</option>
|
<option selected disabled>bitte auswählen</option>
|
||||||
<option value="Einfamilienhaus">Einfamilienhaus</option>
|
<option value="Einfamilienhaus">Einfamilienhaus</option>
|
||||||
@@ -90,7 +126,7 @@ $: {
|
|||||||
<div class="titel">Sanierungsstand</div>
|
<div class="titel">Sanierungsstand</div>
|
||||||
<select
|
<select
|
||||||
class="selectfeld"
|
class="selectfeld"
|
||||||
bind:value={sanierungsstatus} on:change={getBoxes}
|
bind:value={sanierungsstatus} on:change={getBoxes} on:change={getCount}
|
||||||
|
|
||||||
>
|
>
|
||||||
<option selected disabled>bitte auswählen</option>
|
<option selected disabled>bitte auswählen</option>
|
||||||
@@ -109,7 +145,7 @@ $: {
|
|||||||
<select
|
<select
|
||||||
id="baujahr"
|
id="baujahr"
|
||||||
class="selectfeld"
|
class="selectfeld"
|
||||||
bind:value={baujahr}
|
bind:value={baujahr} on:change={getCount}
|
||||||
|
|
||||||
>
|
>
|
||||||
<option selected disabled>bitte auswählen</option>
|
<option selected disabled>bitte auswählen</option>
|
||||||
@@ -122,7 +158,7 @@ $: {
|
|||||||
<div class="titel">Heizungsalter</div>
|
<div class="titel">Heizungsalter</div>
|
||||||
<select
|
<select
|
||||||
class="selectfeld"
|
class="selectfeld"
|
||||||
bind:value={heizungsAlter}
|
bind:value={heizungsAlter} on:change={getCount}
|
||||||
>
|
>
|
||||||
<option selected disabled>bitte auswählen</option>
|
<option selected disabled>bitte auswählen</option>
|
||||||
<option value="< 3">jünger als 3 Jahre</option>
|
<option value="< 3">jünger als 3 Jahre</option>
|
||||||
@@ -134,7 +170,7 @@ $: {
|
|||||||
<div class="titel">Wohneinheiten</div>
|
<div class="titel">Wohneinheiten</div>
|
||||||
<select
|
<select
|
||||||
class="selectfeld"
|
class="selectfeld"
|
||||||
bind:value={einheiten}
|
bind:value={einheiten} on:change={getCount}
|
||||||
>
|
>
|
||||||
<option selected disabled>bitte auswählen</option>
|
<option selected disabled>bitte auswählen</option>
|
||||||
<option value="bis 4 Wohneinheiten"
|
<option value="bis 4 Wohneinheiten"
|
||||||
@@ -150,7 +186,7 @@ $: {
|
|||||||
<div class="titel">Leerstand</div>
|
<div class="titel">Leerstand</div>
|
||||||
<select
|
<select
|
||||||
class="selectfeld ausnahmen"
|
class="selectfeld ausnahmen"
|
||||||
bind:value={leerStand}
|
bind:value={leerStand} on:change={getCount}
|
||||||
>
|
>
|
||||||
<option selected disabled>bitte auswählen</option>
|
<option selected disabled>bitte auswählen</option>
|
||||||
<option value="bis 30">bis 30%</option>
|
<option value="bis 30">bis 30%</option>
|
||||||
@@ -165,12 +201,12 @@ $: {
|
|||||||
|
|
||||||
<div
|
<div
|
||||||
class="produktbox"
|
class="produktbox"
|
||||||
transition:fade={{ duration: 200 }}
|
transition:fade={{ duration: 0 }}
|
||||||
>
|
>
|
||||||
<WidgetCardTemplate
|
<WidgetCardTemplate
|
||||||
name="Verbrauchsausweis Wohngebäude"
|
name="Verbrauchsausweis Wohngebäude"
|
||||||
price={PRICES.VerbrauchsausweisWohnen[0]}
|
price={PRICES.VerbrauchsausweisWohnen[0]}
|
||||||
src="/images/right-sidebar/wohngebaeude.svg"
|
src="/images/immowelt/wohngebaeude_immowelt.svg"
|
||||||
alt="Wohnhaus Verbrauchsausweis"
|
alt="Wohnhaus Verbrauchsausweis"
|
||||||
variant="einfach"
|
variant="einfach"
|
||||||
empfehlung="nein"
|
empfehlung="nein"
|
||||||
@@ -190,12 +226,12 @@ $: {
|
|||||||
{#if twoBoxReason.includes(anlass) && (gebaeudetyp != "Gewerbegebäude")}
|
{#if twoBoxReason.includes(anlass) && (gebaeudetyp != "Gewerbegebäude")}
|
||||||
<div
|
<div
|
||||||
class="produktbox"
|
class="produktbox"
|
||||||
transition:fade={{ duration: 200 }}
|
transition:fade={{ duration: 0 }}
|
||||||
>
|
>
|
||||||
<WidgetCardTemplate
|
<WidgetCardTemplate
|
||||||
name="Bedarfsausweis Wohngebäude"
|
name="Bedarfsausweis Wohngebäude"
|
||||||
price={PRICES.BedarfsausweisWohnen[0]}
|
price={PRICES.BedarfsausweisWohnen[0]}
|
||||||
src="/images/right-sidebar/wohngebaeude.svg"
|
src="/images/immowelt/wohngebaeude_immowelt.svg"
|
||||||
alt="Wohnhaus Bedarfsausweis"
|
alt="Wohnhaus Bedarfsausweis"
|
||||||
variant="fundiert"
|
variant="fundiert"
|
||||||
empfehlung="ja"
|
empfehlung="ja"
|
||||||
@@ -212,21 +248,21 @@ $: {
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp) && (ausnahme === false)}
|
{#if twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp) && (leerStand != "mehr als 30")}
|
||||||
<div
|
<div
|
||||||
class="produktbox"
|
class="produktbox"
|
||||||
transition:fade={{ duration: 200 }}
|
transition:fade={{ duration: 0 }}
|
||||||
>
|
>
|
||||||
<WidgetCardTemplate
|
<WidgetCardTemplate
|
||||||
name="Verbrauchsausweis Gewerbegebäude"
|
name="Verbrauchsausweis Gewerbegebäude"
|
||||||
price={PRICES.VerbrauchsausweisGewerbe[0]}
|
price={PRICES.VerbrauchsausweisGewerbe[0]}
|
||||||
src="/images/right-sidebar/gewerbegebaeude.svg"
|
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||||
alt="Gewerbe Verbrauchsausweis"
|
alt="Gewerbe Verbrauchsausweis"
|
||||||
variant="einfach"
|
variant="einfach"
|
||||||
empfehlung="nein"
|
empfehlung="nein"
|
||||||
services={[
|
services={[
|
||||||
|
|
||||||
["3 Jahresverbräuche von Heizung Gebäudestrom nötig.", true],
|
["3 Jahresverbräuche von Heizung Gebäudestrom nötig.", true],
|
||||||
["Zulässig bei Vermietung oder Verkauf.", true],
|
["Zulässig bei Vermietung oder Verkauf.", true],
|
||||||
["Für bauliche und energetische Maßnahmen ungeeignet.", false],
|
["Für bauliche und energetische Maßnahmen ungeeignet.", false],
|
||||||
["Wird nicht immer bei den Banken akzeptiert.", false],
|
["Wird nicht immer bei den Banken akzeptiert.", false],
|
||||||
@@ -242,12 +278,12 @@ $: {
|
|||||||
{#if twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp)}
|
{#if twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp)}
|
||||||
<div
|
<div
|
||||||
class="produktbox"
|
class="produktbox"
|
||||||
transition:fade={{ duration: 200 }}
|
transition:fade={{ duration: 0 }}
|
||||||
>
|
>
|
||||||
<WidgetCardTemplate
|
<WidgetCardTemplate
|
||||||
name="Bedarfsausweis Gewerbegebäude"
|
name="Bedarfsausweis Gewerbegebäude"
|
||||||
price={PRICES.BedarfsausweisGewerbe[0]}
|
price={PRICES.BedarfsausweisGewerbe[0]}
|
||||||
src="/images/right-sidebar/gewerbegebaeude.svg"
|
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||||
alt="Gewerbe Bedarfsausweis"
|
alt="Gewerbe Bedarfsausweis"
|
||||||
variant="fundiert"
|
variant="fundiert"
|
||||||
empfehlung="ja"
|
empfehlung="ja"
|
||||||
@@ -268,12 +304,12 @@ $: {
|
|||||||
{#if (anlass != "bitte auswählen") && !twoBoxReason.includes(anlass) && (gebaeudetyp != "Gewerbegebäude")}
|
{#if (anlass != "bitte auswählen") && !twoBoxReason.includes(anlass) && (gebaeudetyp != "Gewerbegebäude")}
|
||||||
<div
|
<div
|
||||||
class="produktbox"
|
class="produktbox"
|
||||||
transition:fade={{ duration: 200 }}
|
transition:fade={{ duration: 0 }}
|
||||||
>
|
>
|
||||||
<WidgetCardTemplate
|
<WidgetCardTemplate
|
||||||
name="GEG-Nachweis Wohngebäude"
|
name="GEG-Nachweis Wohngebäude"
|
||||||
price={PRICES.BedarfsausweisGewerbe[0]}
|
price={PRICES.BedarfsausweisGewerbe[0]}
|
||||||
src="/images/right-sidebar/gewerbegebaeude.svg"
|
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||||
alt="Gewerbe Bedarfsausweis"
|
alt="Gewerbe Bedarfsausweis"
|
||||||
variant="Bauvorlage"
|
variant="Bauvorlage"
|
||||||
empfehlung="nein"
|
empfehlung="nein"
|
||||||
@@ -285,7 +321,8 @@ $: {
|
|||||||
["xxx", false],
|
["xxx", false],
|
||||||
["xxx", false],
|
["xxx", false],
|
||||||
]}
|
]}
|
||||||
href="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
href_buy="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
||||||
|
href_overview="/energieausweis-erstellen/bedarfsausweis-gewerbe/produkt-uebersicht/"
|
||||||
|
|
||||||
></WidgetCardTemplate>
|
></WidgetCardTemplate>
|
||||||
|
|
||||||
@@ -295,12 +332,12 @@ $: {
|
|||||||
{#if (anlass != "bitte auswählen") && !twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp)}
|
{#if (anlass != "bitte auswählen") && !twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp)}
|
||||||
<div
|
<div
|
||||||
class="produktbox"
|
class="produktbox"
|
||||||
transition:fade={{ duration: 200 }}
|
transition:fade={{ duration: 0 }}
|
||||||
>
|
>
|
||||||
<WidgetCardTemplate
|
<WidgetCardTemplate
|
||||||
name="GEG-Nachweis Gewerbegebäude"
|
name="GEG-Nachweis Gewerbegebäude"
|
||||||
price={PRICES.BedarfsausweisGewerbe[0]}
|
price={PRICES.BedarfsausweisGewerbe[0]}
|
||||||
src="/images/right-sidebar/gewerbegebaeude.svg"
|
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||||
alt="Gewerbe Bedarfsausweis"
|
alt="Gewerbe Bedarfsausweis"
|
||||||
variant="Bauvorlage"
|
variant="Bauvorlage"
|
||||||
empfehlung="nein"
|
empfehlung="nein"
|
||||||
@@ -312,7 +349,8 @@ $: {
|
|||||||
["xxx", false],
|
["xxx", false],
|
||||||
["xxx", false],
|
["xxx", false],
|
||||||
]}
|
]}
|
||||||
href="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
href_buy="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
||||||
|
href_overview="/energieausweis-erstellen/bedarfsausweis-gewerbe/produkt-uebersicht/"
|
||||||
></WidgetCardTemplate>
|
></WidgetCardTemplate>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -324,14 +362,6 @@ $: {
|
|||||||
|
|
||||||
<style lang="postcss">
|
<style lang="postcss">
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Heron';
|
|
||||||
font-weight: 700;
|
|
||||||
font-style: normal;
|
|
||||||
font-display:swap;
|
|
||||||
src: url("/fonts/HeronSans-Regular.woff2") format('woff2');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Antique Olive Compact bold';
|
font-family: 'Antique Olive Compact bold';
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@@ -340,8 +370,26 @@ $: {
|
|||||||
src: url("/fonts/Antique Olive Std Compact.woff2") format('woff2');
|
src: url("/fonts/Antique Olive Std Compact.woff2") format('woff2');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "immo Sans";
|
||||||
|
src: url('/fonts/Immo-Sans/immoSans-Regular.eot');
|
||||||
|
src: url('/fonts/Immo-Sans/immoSans-Regular.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('/fonts/Immo-Sans/immoSans-Regular.woff2') format('woff2'),
|
||||||
|
url('/fonts/Immo-Sans/immoSans-Regular.woff') format('woff');
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
*{font-family: "Heron";}
|
@font-face {
|
||||||
|
font-family: "immo Sans Bold";
|
||||||
|
src: url('/fonts/Immo-Sans/immoSans-Bold.eot');
|
||||||
|
src: url('/fonts/Immo-Sans/immoSans-Bold.eot?#iefix') format('embedded-opentype'), url('../../Fonts/Immo-Sans/immoSans-Bold.woff2') format('woff2'), url('../../Fonts/Immo-Sans/immoSans-Bold.woff') format('woff');
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
*{font-family: "immo Sans";}
|
||||||
|
|
||||||
#OEA_widget {
|
#OEA_widget {
|
||||||
@apply min-w-[320px] max-w-[1920px] p-[4px]
|
@apply min-w-[320px] max-w-[1920px] p-[4px]
|
||||||
@@ -350,7 +398,7 @@ $: {
|
|||||||
.firstrow{@apply grid grid-cols-1 gap-x-4 gap-y-2
|
.firstrow{@apply grid grid-cols-1 gap-x-4 gap-y-2
|
||||||
sm:grid-cols-2 sm:gap-x-4 sm:gap-y-2;
|
sm:grid-cols-2 sm:gap-x-4 sm:gap-y-2;
|
||||||
|
|
||||||
.titel{@apply text-white font-sans font-bold bg-[#444f94] px-2 py-1 rounded-[0.25rem];}
|
.titel{@apply text-black font-bold bg-[#ffcc00] px-2 py-1 rounded-[0.25rem];}
|
||||||
|
|
||||||
.selectfeld{@apply w-full px-2 py-1 min-h-[38px] ring-1 ring-black/15}
|
.selectfeld{@apply w-full px-2 py-1 min-h-[38px] ring-1 ring-black/15}
|
||||||
|
|
||||||
@@ -359,13 +407,15 @@ $: {
|
|||||||
.secondrow{@apply grid grid-cols-2 gap-x-4 gap-y-2 mt-4
|
.secondrow{@apply grid grid-cols-2 gap-x-4 gap-y-2 mt-4
|
||||||
sm:grid-cols-4 sm:gap-x-4 sm:gap-y-2;
|
sm:grid-cols-4 sm:gap-x-4 sm:gap-y-2;
|
||||||
|
|
||||||
.titel{@apply text-black font-sans font-bold bg-[#cccccc] px-2 py-1 rounded-[0.25rem];}
|
.titel{@apply text-black font-bold bg-[#cccccc] px-2 py-1 rounded-[0.25rem];}
|
||||||
|
|
||||||
.selectfeld{@apply w-full px-2 py-1 min-h-[38px] ring-1 ring-black/15}
|
.selectfeld{@apply w-full px-2 py-1 min-h-[38px] ring-1 ring-black/15}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.thirdrow{@apply grid grid-cols-2 gap-x-4 gap-y-2
|
#OEA_input{@apply grid}
|
||||||
|
|
||||||
|
.thirdrow{@apply grid grid-cols-1 gap-x-4 gap-y-2 col-start-1
|
||||||
md:grid-cols-4 md:gap-x-4 md:gap-y-2;
|
md:grid-cols-4 md:gap-x-4 md:gap-y-2;
|
||||||
|
|
||||||
.produktbox{@apply grid grid-cols-subgrid col-span-2 grid-rows-subgrid row-span-3 md:row-span-12 bg-black/5 rounded-lg
|
.produktbox{@apply grid grid-cols-subgrid col-span-2 grid-rows-subgrid row-span-3 md:row-span-12 bg-black/5 rounded-lg
|
||||||
|
|||||||