Verbrauchsausweis Gewerbe
This commit is contained in:
@@ -21,8 +21,8 @@
|
|||||||
"@astrojs/node": "^5.1.4",
|
"@astrojs/node": "^5.1.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/api": "link:@ibcornelsen/api",
|
|
||||||
"@ibcornelsen/ui": "^0.0.2",
|
"@ibcornelsen/ui": "^0.0.2",
|
||||||
"@mollie/api-client": "^3.7.0",
|
"@mollie/api-client": "^3.7.0",
|
||||||
"@trpc/client": "^10.45.0",
|
"@trpc/client": "^10.45.0",
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
"@types/body-scroll-lock": "^3.1.2",
|
"@types/body-scroll-lock": "^3.1.2",
|
||||||
"astro": "^2.5.1",
|
"astro": "^2.5.1",
|
||||||
"astro-i18next": "1.0.0-beta.21",
|
"astro-i18next": "1.0.0-beta.21",
|
||||||
|
"astro-spa": "^1.3.9",
|
||||||
"body-scroll-lock": "^4.0.0-beta.0",
|
"body-scroll-lock": "^4.0.0-beta.0",
|
||||||
"buffer": "^6.0.3",
|
"buffer": "^6.0.3",
|
||||||
"bun": "^1.0.2",
|
"bun": "^1.0.2",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, GebaeudeStammdaten, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
export let gebaeude: GebaeudeStammdaten;
|
export let gebaeude: GebaeudeStammdaten;
|
||||||
|
|
||||||
let base64: string = "";
|
let base64: string = "";
|
||||||
|
|||||||
@@ -3,11 +3,11 @@
|
|||||||
import DatenblattButton from "#components/DatenblattButton.svelte";
|
import DatenblattButton from "#components/DatenblattButton.svelte";
|
||||||
import HelpLabel from "#components/HelpLabel.svelte";
|
import HelpLabel from "#components/HelpLabel.svelte";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
export let gebaeude: GebaeudeStammdaten;
|
export let gebaeude: GebaeudeStammdaten;
|
||||||
|
|
||||||
import ImageGrid from "../ImageGrid.svelte";
|
import ImageGrid from "../ImageGrid.svelte";
|
||||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, GebaeudeStammdaten, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
let images: (File & { data: string })[] = [];
|
let images: (File & { data: string })[] = [];
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -4,76 +4,44 @@
|
|||||||
import { addNotification, deleteNotification } from "@ibcornelsen/ui";
|
import { addNotification, deleteNotification } from "@ibcornelsen/ui";
|
||||||
import TagInput from "../TagInput.svelte";
|
import TagInput from "../TagInput.svelte";
|
||||||
import { writable } from "svelte/store";
|
import { writable } from "svelte/store";
|
||||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import {
|
||||||
|
BedarfsausweisWohnen,
|
||||||
|
Enums,
|
||||||
|
GebaeudeStammdaten,
|
||||||
|
VerbrauchsausweisGewerbe,
|
||||||
|
VerbrauchsausweisWohnen,
|
||||||
|
} from "@ibcornelsen/database";
|
||||||
|
|
||||||
export let gebaeude: GebaeudeStammdaten;
|
export let gebaeude: GebaeudeStammdaten;
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
|
|
||||||
$: baujahrHeizung = writable(gebaeude.baujahr_heizung || [])
|
$: baujahrHeizung = writable(gebaeude.baujahr_heizung || []);
|
||||||
$: baujahr = writable(gebaeude.baujahr_gebaeude || []);
|
$: baujahr = writable(gebaeude.baujahr_gebaeude || []);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="GRB">
|
<div class="GRB">
|
||||||
<!-- Anlass für Energieausweis -->
|
<!-- Anlass für Energieausweis -->
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<span
|
<span>Anlass für Energieausweis * </span>
|
||||||
>Anlass für Energieausweis *
|
<div class="grid grid-cols-2 gap-x-2 items-center lg:grid-cols-3">
|
||||||
</span>
|
{#each Object.entries(Enums.Ausstellgrund) as [name, ausstellgrund]}
|
||||||
<div
|
<label class="radio-inline">
|
||||||
class="grid grid-cols-2 gap-x-2 items-center lg:grid-cols-3"
|
<input
|
||||||
>
|
type="radio"
|
||||||
<label class="radio-inline">
|
value={ausstellgrund}
|
||||||
<input
|
bind:group={ausweis.ausstellgrund}
|
||||||
type="radio"
|
/>{name}</label
|
||||||
value="Neubau"
|
>
|
||||||
name="IGanlass"
|
{/each}
|
||||||
bind:group={ausweis.ausstellgrund}
|
|
||||||
/>Neubau</label
|
|
||||||
>
|
|
||||||
<label class="radio-inline"
|
|
||||||
><input
|
|
||||||
type="radio"
|
|
||||||
value="Vermietung"
|
|
||||||
checked
|
|
||||||
name="IGanlass"
|
|
||||||
bind:group={ausweis.ausstellgrund}
|
|
||||||
/>Vermietung</label
|
|
||||||
>
|
|
||||||
<label class="radio-inline"
|
|
||||||
><input
|
|
||||||
type="radio"
|
|
||||||
value="Verkauf"
|
|
||||||
name="IGanlass"
|
|
||||||
bind:group={ausweis.ausstellgrund}
|
|
||||||
/>Verkauf</label
|
|
||||||
>
|
|
||||||
<label class="radio-inline"
|
|
||||||
><input
|
|
||||||
type="radio"
|
|
||||||
value="Modernisierung"
|
|
||||||
name="IGanlass"
|
|
||||||
bind:group={ausweis.ausstellgrund}
|
|
||||||
/>Modernisierung</label
|
|
||||||
>
|
|
||||||
<label class="radio-inline"
|
|
||||||
><input
|
|
||||||
type="radio"
|
|
||||||
value="Sonstiges"
|
|
||||||
name="IGanlass"
|
|
||||||
bind:group={ausweis.ausstellgrund}
|
|
||||||
/>Sonstiges</label
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Baujahr Heizung -->
|
<!-- Baujahr Heizung -->
|
||||||
<div class="form-group col-md-2">
|
<div class="form-group col-md-2">
|
||||||
<HelpLabel title="Baujahr Heizung *">
|
<HelpLabel title="Baujahr Heizung *">
|
||||||
Bitte geben Sie hier das Baujahr der
|
Bitte geben Sie hier das Baujahr der Heizungsanlage ein. Sollten
|
||||||
Heizungsanlage ein. Sollten
|
unterschiedliche Baujahre vorliegen, dann geben Sie einen
|
||||||
unterschiedliche Baujahre vorliegen,
|
Zeitbereich ein <br />z.B. 1994-2001.
|
||||||
dann geben Sie einen Zeitbereich ein <br
|
|
||||||
/>z.B. 1994-2001.
|
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
<div>
|
<div>
|
||||||
<TagInput
|
<TagInput
|
||||||
@@ -83,17 +51,20 @@
|
|||||||
onFocusIn={() => {
|
onFocusIn={() => {
|
||||||
addNotification({
|
addNotification({
|
||||||
message: "Info",
|
message: "Info",
|
||||||
subtext: "Wussten sie, dass sie mehrere Jahre angeben können in denen z.B. Renovierungen an ihrer Heizung durchgeführt wurden. Drücken sie dafür einfach <kbd>Enter</kbd> oder <kbd>Space</kbd> nach jedem Jahr.",
|
subtext:
|
||||||
|
"Wussten sie, dass sie mehrere Jahre angeben können in denen z.B. Renovierungen an ihrer Heizung durchgeführt wurden. Drücken sie dafür einfach <kbd>Enter</kbd> oder <kbd>Space</kbd> nach jedem Jahr.",
|
||||||
dismissable: true,
|
dismissable: true,
|
||||||
uid: "HEIZUNG_BAUJAHR",
|
uid: "HEIZUNG_BAUJAHR",
|
||||||
timeout: 0,
|
timeout: 0,
|
||||||
type: "info"
|
type: "info",
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
onFocusOut={() => {
|
onFocusOut={() => {
|
||||||
deleteNotification("HEIZUNG_BAUJAHR")
|
deleteNotification("HEIZUNG_BAUJAHR");
|
||||||
}}
|
}}
|
||||||
className="{auditHeizungGebaeudeBaujahr(gebaeude) ? "linked" : ""}"
|
className={auditHeizungGebaeudeBaujahr(gebaeude)
|
||||||
|
? "linked"
|
||||||
|
: ""}
|
||||||
bind:tags={baujahrHeizung}
|
bind:tags={baujahrHeizung}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -102,12 +73,9 @@
|
|||||||
<!-- Baujahr -->
|
<!-- Baujahr -->
|
||||||
<div class="form-group col-md-2">
|
<div class="form-group col-md-2">
|
||||||
<HelpLabel title="Baujahr Gebäude *">
|
<HelpLabel title="Baujahr Gebäude *">
|
||||||
Bitte geben Sie hier das Baujahr des
|
Bitte geben Sie hier das Baujahr des Gebäudes ein. Sollte eine eine
|
||||||
Gebäudes ein. Sollte eine eine
|
grundlegende Sanierung von Dach, Fenster und Heizung stattgefunden
|
||||||
grundlegende Sanierung von Dach,
|
haben, dann berücksichtigen Sie das in dem Sie bei Sanierungsstatus
|
||||||
Fenster und Heizung stattgefunden
|
|
||||||
haben, dann berücksichtigen Sie das
|
|
||||||
in dem Sie bei Sanierungsstatus
|
|
||||||
-saniert- angeben.
|
-saniert- angeben.
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
<div>
|
<div>
|
||||||
@@ -118,17 +86,20 @@
|
|||||||
onFocusIn={() => {
|
onFocusIn={() => {
|
||||||
addNotification({
|
addNotification({
|
||||||
message: "Info",
|
message: "Info",
|
||||||
subtext: "Wussten sie, dass sie mehrere Jahre angeben können in denen z.B. Renovierungen an ihrem Gebäude durchgeführt wurden. Drücken sie dafür einfach <kbd>Enter</kbd> oder <kbd>Space</kbd> nach jedem Jahr.",
|
subtext:
|
||||||
|
"Wussten sie, dass sie mehrere Jahre angeben können in denen z.B. Renovierungen an ihrem Gebäude durchgeführt wurden. Drücken sie dafür einfach <kbd>Enter</kbd> oder <kbd>Space</kbd> nach jedem Jahr.",
|
||||||
dismissable: true,
|
dismissable: true,
|
||||||
uid: "GEBAEUDE_BAUJAHR",
|
uid: "GEBAEUDE_BAUJAHR",
|
||||||
timeout: 0,
|
timeout: 0,
|
||||||
type: "info"
|
type: "info",
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
onFocusOut={() => {
|
onFocusOut={() => {
|
||||||
deleteNotification("GEBAEUDE_BAUJAHR")
|
deleteNotification("GEBAEUDE_BAUJAHR");
|
||||||
}}
|
}}
|
||||||
className="{auditHeizungGebaeudeBaujahr(gebaeude) ? "linked" : ""}"
|
className={auditHeizungGebaeudeBaujahr(gebaeude)
|
||||||
|
? "linked"
|
||||||
|
: ""}
|
||||||
bind:tags={baujahr}
|
bind:tags={baujahr}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -137,9 +108,8 @@
|
|||||||
<!-- Anzahl der Wohnungen -->
|
<!-- Anzahl der Wohnungen -->
|
||||||
<div class="form-group col-md-2">
|
<div class="form-group col-md-2">
|
||||||
<HelpLabel title="Anzahl Wohnungen *">
|
<HelpLabel title="Anzahl Wohnungen *">
|
||||||
Bitte geben Sie hier die Anzahl der
|
Bitte geben Sie hier die Anzahl der Wohnungen ein, die sich im
|
||||||
Wohnungen ein, die sich im Gebäude
|
Gebäude befinden.
|
||||||
befinden.
|
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
<div>
|
<div>
|
||||||
<input
|
<input
|
||||||
@@ -159,12 +129,9 @@
|
|||||||
<!-- Dachgeschoss -->
|
<!-- Dachgeschoss -->
|
||||||
<div class="form-group col-md-2">
|
<div class="form-group col-md-2">
|
||||||
<HelpLabel title="Sanierungsstatus *">
|
<HelpLabel title="Sanierungsstatus *">
|
||||||
Bitte geben Sie an ob das Gebäude
|
Bitte geben Sie an ob das Gebäude energetisch saniert oder unsaniert
|
||||||
energetisch saniert oder unsaniert
|
ist. Wenn das Dach mindestens 12 cm gedämmt und Heizung sowie
|
||||||
ist. Wenn das Dach mindestens 12 cm
|
Fenster nicht älter als 30 Jahre sind, können Sie saniert auswählen.
|
||||||
gedämmt und Heizung sowie Fenster
|
|
||||||
nicht älter als 30 Jahre sind,
|
|
||||||
können Sie saniert auswählen.
|
|
||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
<div>
|
<div>
|
||||||
<select
|
<select
|
||||||
@@ -175,12 +142,8 @@
|
|||||||
bind:value={gebaeude.saniert}
|
bind:value={gebaeude.saniert}
|
||||||
>
|
>
|
||||||
<option disabled>Bitte auswählen</option>
|
<option disabled>Bitte auswählen</option>
|
||||||
<option value={true}
|
<option value={true}>saniert</option>
|
||||||
>saniert</option
|
<option value={false}>unsaniert</option>
|
||||||
>
|
|
||||||
<option value={false}
|
|
||||||
>unsaniert</option
|
|
||||||
>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
import DaemmungImage from "./DaemmungImage.svelte";
|
import DaemmungImage from "./DaemmungImage.svelte";
|
||||||
import FensterImage from "./FensterImage.svelte";
|
import FensterImage from "./FensterImage.svelte";
|
||||||
import Label from "../Label.svelte";
|
import Label from "../Label.svelte";
|
||||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, GebaeudeStammdaten, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
export let gebaeude: GebaeudeStammdaten;
|
export let gebaeude: GebaeudeStammdaten;
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
let images: (File & { data: string })[] = [];
|
let images: (File & { data: string })[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-4">
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
let images: (File & { data: string })[] = [];
|
let images: (File & { data: string })[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-4">
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
let images: (File & { data: string })[] = [];
|
let images: (File & { data: string })[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-4">
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
import Label from "../Label.svelte";
|
import Label from "../Label.svelte";
|
||||||
import fuelList from "./fuelList";
|
import fuelList from "./fuelList";
|
||||||
import { auditVerbrauchAbweichung } from "../Verbrauchsausweis/audits/VerbrauchAbweichung";
|
import { auditVerbrauchAbweichung } from "../Verbrauchsausweis/audits/VerbrauchAbweichung";
|
||||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { GebaeudeStammdaten, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
let availableYears = [
|
let availableYears = [
|
||||||
2018, 2019,
|
2018, 2019,
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
export let gebaeude: GebaeudeStammdaten;
|
export let gebaeude: GebaeudeStammdaten;
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe;
|
||||||
|
|
||||||
const fuelMap: Record<string, string[]> = {};
|
const fuelMap: Record<string, string[]> = {};
|
||||||
for (const fuel of fuelList) {
|
for (const fuel of fuelList) {
|
||||||
|
|||||||
@@ -10,8 +10,9 @@
|
|||||||
import BilderZusatzsysteme from "../Ausweis/BilderZusatzsysteme.svelte";
|
import BilderZusatzsysteme from "../Ausweis/BilderZusatzsysteme.svelte";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { BitChecker } from "src/lib/BitChecker";
|
import { BitChecker } from "src/lib/BitChecker";
|
||||||
|
import { BedarfsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
let ausweis = new Bedarfsausweis();
|
let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
|
||||||
|
|
||||||
let daemmungsBreiten = [0, 0.02, 0.05, 0.08, 0.12, 0.16, 0.2, 0.3, 0.4];
|
let daemmungsBreiten = [0, 0.02, 0.05, 0.08, 0.12, 0.16, 0.2, 0.3, 0.4];
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, GebaeudeStammdaten, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
export let gebaeude: GebaeudeStammdaten;
|
export let gebaeude: GebaeudeStammdaten;
|
||||||
|
|
||||||
let base64: string = "";
|
let base64: string = "";
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import UploadImages from "./UploadImages.svelte";
|
import UploadImages from "./UploadImages.svelte";
|
||||||
import { VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
export let images: (File & { data: string })[] = [];
|
export let images: (File & { data: string })[] = [];
|
||||||
export let max: number = 4;
|
export let max: number = 4;
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let prices: number[];
|
import { PRICES } from "#lib/constants";
|
||||||
|
import { BedarfsausweisWohnen, Enums, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
|
|
||||||
|
const prices = PRICES[ausweis.ausweisart];
|
||||||
|
|
||||||
|
export let services: { name: string, price: number, selected: boolean, id: Enums.Service }[] = [];
|
||||||
|
|
||||||
let basePrice: number = prices[0];
|
let basePrice: number = prices[0];
|
||||||
let Printing: boolean;
|
|
||||||
let Aushang: boolean;
|
|
||||||
let SameDayService: boolean;
|
|
||||||
let TelephoneAdvice: boolean;
|
|
||||||
|
|
||||||
$: price =
|
$: price =
|
||||||
basePrice +
|
basePrice + services.reduce((acc, service) => (service.selected && acc + service.price) || acc, 0)
|
||||||
(Printing ? 9 : 0) +
|
|
||||||
(Aushang ? 10 : 0) +
|
|
||||||
(SameDayService ? 29 : 0) +
|
|
||||||
(TelephoneAdvice ? 75 : 0);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -180,62 +179,20 @@
|
|||||||
<table>
|
<table>
|
||||||
<strong>Zusatzleistungen:<br /></strong>
|
<strong>Zusatzleistungen:<br /></strong>
|
||||||
|
|
||||||
<tr>
|
{#each services as service}
|
||||||
<td
|
<tr>
|
||||||
>Qualitätsdruck per Post (zusätzlich zur PDF Version) für 9€
|
<td
|
||||||
inkl. MwSt.</td
|
>{service.name}</td
|
||||||
>
|
>
|
||||||
<td
|
<td
|
||||||
><input
|
><input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="IGZusatzleistung"
|
class="IGZusatzleistung"
|
||||||
bind:checked={Printing}
|
bind:checked={service.selected}
|
||||||
name="QD"
|
/>
|
||||||
/>
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
{/each}
|
||||||
<tr>
|
|
||||||
<td
|
|
||||||
>Aushang (für öffentliche Gebäude gesetzlich vorgeschrieben)
|
|
||||||
für 10€ inkl. MwSt.</td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
><input
|
|
||||||
type="checkbox"
|
|
||||||
class="IGZusatzleistung"
|
|
||||||
bind:checked={Aushang}
|
|
||||||
name="AH"
|
|
||||||
/>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td
|
|
||||||
>Same Day Service (Bestellung Werktags vor 12:00 Uhr -
|
|
||||||
Ausstellung bis 18:00 Uhr am gleichen Tag) für 29€ inkl.
|
|
||||||
MwSt.</td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
><input
|
|
||||||
type="checkbox"
|
|
||||||
class="IGZusatzleistung"
|
|
||||||
bind:checked={SameDayService}
|
|
||||||
name="SD"
|
|
||||||
/>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td
|
|
||||||
>Telefonische Energieeffizienzberatung für 75€ inkl. MwSt.</td
|
|
||||||
>
|
|
||||||
<td
|
|
||||||
><input
|
|
||||||
type="checkbox"
|
|
||||||
class="IGZusatzleistung"
|
|
||||||
bind:checked={TelephoneAdvice}
|
|
||||||
name="NA"
|
|
||||||
/>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
|
||||||
export let max: number = 2;
|
export let max: number = 2;
|
||||||
|
|
||||||
// Array of base64 encoded images read into the input.
|
// Array of base64 encoded images read into the input.
|
||||||
export let images: (File & { data: string })[] = [];
|
export let images: (File & { data: string })[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
|
|
||||||
function getAllImages(this: HTMLInputElement) {
|
function getAllImages(this: HTMLInputElement) {
|
||||||
const files = this.files || [];
|
const files = this.files || [];
|
||||||
|
|||||||
@@ -1 +1,33 @@
|
|||||||
|
import { Enums } from "@ibcornelsen/database";
|
||||||
|
|
||||||
export const API_ACCESS_TOKEN_COOKIE_NAME = "accessToken";
|
export const API_ACCESS_TOKEN_COOKIE_NAME = "accessToken";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ein Objekt welches alle definierten Preise für unsere Basisprodukte enthält.
|
||||||
|
*/
|
||||||
|
export const PRICES: Record<Enums.Ausweisart, [number, number, number]> = {
|
||||||
|
BedarfsausweisWohnen: [135, 145, 290],
|
||||||
|
VerbrauchsausweisWohnen: [45, 55, 180],
|
||||||
|
VerbrauchsausweisGewerbe: [65, 75, 360],
|
||||||
|
};
|
||||||
|
|
||||||
|
export const SERVICES: Record<Enums.Ausweisart, Record<Enums.Service, number>> = {
|
||||||
|
BedarfsausweisWohnen: {
|
||||||
|
Qualitaetsdruck: 9,
|
||||||
|
Aushang: 10,
|
||||||
|
SameDay: 29,
|
||||||
|
Telefonberatung: 30,
|
||||||
|
},
|
||||||
|
VerbrauchsausweisWohnen: {
|
||||||
|
Qualitaetsdruck: 9,
|
||||||
|
Aushang: 10,
|
||||||
|
SameDay: 29,
|
||||||
|
Telefonberatung: 20,
|
||||||
|
},
|
||||||
|
VerbrauchsausweisGewerbe: {
|
||||||
|
Qualitaetsdruck: 9,
|
||||||
|
Aushang: 10,
|
||||||
|
SameDay: 29,
|
||||||
|
Telefonberatung: 25,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { AppRoute } from "@ibcornelsen/api";
|
import { AppRouter } from "@ibcornelsen/api";
|
||||||
import { inferProcedureOutput } from "@trpc/server";
|
import { inferProcedureOutput } from "@trpc/server";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { client } from "src/trpc"
|
import { client } from "src/trpc"
|
||||||
|
|||||||
@@ -14,13 +14,18 @@
|
|||||||
import { AuditType, hidden } from "#components/Verbrauchsausweis/audits/hidden";
|
import { AuditType, hidden } from "#components/Verbrauchsausweis/audits/hidden";
|
||||||
import { auditBedarfsausweisBenoetigt } from "#components/Verbrauchsausweis/audits/BedarfsausweisBenoetigt";
|
import { auditBedarfsausweisBenoetigt } from "#components/Verbrauchsausweis/audits/BedarfsausweisBenoetigt";
|
||||||
import { auditVerbrauchAbweichung } from "#components/Verbrauchsausweis/audits/VerbrauchAbweichung";
|
import { auditVerbrauchAbweichung } from "#components/Verbrauchsausweis/audits/VerbrauchAbweichung";
|
||||||
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { Enums, GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
import { client } from "src/trpc";
|
import { client } from "src/trpc";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||||
import Overlay from "#components/Overlay.svelte";
|
import Overlay from "#components/Overlay.svelte";
|
||||||
|
|
||||||
export let uid: string | null = null;
|
export let uid: string | null = null;
|
||||||
|
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
||||||
|
export let ausweis: VerbrauchsausweisWohnen = {
|
||||||
|
ausweisart: Enums.Ausweisart.VerbrauchsausweisWohnen
|
||||||
|
} as VerbrauchsausweisWohnen;
|
||||||
|
export let showLoginPage: boolean = false;
|
||||||
|
|
||||||
async function spaeterWeitermachen() {
|
async function spaeterWeitermachen() {
|
||||||
|
|
||||||
@@ -28,6 +33,7 @@
|
|||||||
// Wir prüfen also ob wir eingeloggt sind und leiten den Nutzer ggf. auf die Login Seite weiter.
|
// Wir prüfen also ob wir eingeloggt sind und leiten den Nutzer ggf. auf die Login Seite weiter.
|
||||||
if (!Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)) {
|
if (!Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)) {
|
||||||
loginOverlayHidden = false;
|
loginOverlayHidden = false;
|
||||||
|
showLoginPage = true;
|
||||||
|
|
||||||
const getEvent = (event: MessageEvent) => {
|
const getEvent = (event: MessageEvent) => {
|
||||||
if (event.data == "AUTHORIZED") {
|
if (event.data == "AUTHORIZED") {
|
||||||
@@ -80,8 +86,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
|
||||||
export let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
|
|
||||||
if (uid) {
|
if (uid) {
|
||||||
// NOTE: Funktioniert nicht mehr
|
// NOTE: Funktioniert nicht mehr
|
||||||
async () => {
|
async () => {
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
let email: string;
|
let email: string;
|
||||||
let passwort: string;
|
let passwort: string;
|
||||||
|
|
||||||
|
export let onLogin: (response: Awaited<ReturnType<typeof loginClient>>) => void;
|
||||||
|
|
||||||
async function login() {
|
async function login() {
|
||||||
const response = await loginClient(email, passwort)
|
const response = await loginClient(email, passwort)
|
||||||
|
|
||||||
@@ -18,6 +20,7 @@
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
parent.postMessage("AUTHORIZED", "*");
|
parent.postMessage("AUTHORIZED", "*");
|
||||||
|
onLogin(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -4,14 +4,36 @@
|
|||||||
import ZipSearch from "../components/ZIPSearch.svelte";
|
import ZipSearch from "../components/ZIPSearch.svelte";
|
||||||
import Label from "../components/Label.svelte";
|
import Label from "../components/Label.svelte";
|
||||||
import PriceContainer from "#components/Kaufabschluss/PriceContainer.svelte";
|
import PriceContainer from "#components/Kaufabschluss/PriceContainer.svelte";
|
||||||
import { Benutzer, Bezahlmethoden, Enums, Rechnungen, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
import { BedarfsausweisWohnen, Benutzer, Bezahlmethoden, Enums, Rechnungen, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
import PaymentOption from "#components/PaymentOption.svelte";
|
import PaymentOption from "#components/PaymentOption.svelte";
|
||||||
import { client } from "src/trpc";
|
import { client } from "src/trpc";
|
||||||
|
|
||||||
export let user: Benutzer;
|
export let user: Benutzer;
|
||||||
export let ausweis: VerbrauchsausweisWohnen
|
export let ausweis: VerbrauchsausweisWohnen | BedarfsausweisWohnen | VerbrauchsausweisGewerbe;
|
||||||
let rechnung: Rechnungen = {} as Rechnungen;
|
let rechnung: Rechnungen = {} as Rechnungen;
|
||||||
|
|
||||||
|
let services = [{
|
||||||
|
name: "Qualitätsdruck per Post (zusätzlich zur PDF Version) für 9€ inkl. MwSt.",
|
||||||
|
id: Enums.Service.Qualitaetsdruck,
|
||||||
|
price: 9,
|
||||||
|
selected: false
|
||||||
|
}, {
|
||||||
|
name: "Aushang (für öffentliche Gebäude gesetzlich vorgeschrieben) für 10€ inkl. MwSt.",
|
||||||
|
id: Enums.Service.Aushang,
|
||||||
|
price: 10,
|
||||||
|
selected: false
|
||||||
|
}, {
|
||||||
|
name: "Same Day Service (Bestellung Werktags vor 12:00 Uhr - Ausstellung bis 18:00 Uhr am gleichen Tag) für 29€ inkl. MwSt.",
|
||||||
|
id: Enums.Service.SameDay,
|
||||||
|
price: 29,
|
||||||
|
selected: false
|
||||||
|
}, {
|
||||||
|
name: "Telefonische Energieeffizienzberatung für 75€ inkl. MwSt.",
|
||||||
|
id: Enums.Service.Telefonberatung,
|
||||||
|
price: 75,
|
||||||
|
selected: false
|
||||||
|
}]
|
||||||
|
|
||||||
export let selectedPaymentType: Bezahlmethoden = Enums.Bezahlmethoden.PAYPAL;
|
export let selectedPaymentType: Bezahlmethoden = Enums.Bezahlmethoden.PAYPAL;
|
||||||
|
|
||||||
let agbAkzeptiert: boolean;
|
let agbAkzeptiert: boolean;
|
||||||
@@ -19,10 +41,10 @@
|
|||||||
|
|
||||||
async function createPayment() {
|
async function createPayment() {
|
||||||
const response = await client.v1.rechnungen.erstellen.mutate({
|
const response = await client.v1.rechnungen.erstellen.mutate({
|
||||||
ausweisart: "VerbrauchsausweisWohnen",
|
ausweisart: ausweis.ausweisart,
|
||||||
uid: ausweis.uid,
|
uid: ausweis.uid,
|
||||||
payment_method: selectedPaymentType,
|
payment_method: selectedPaymentType,
|
||||||
services: []
|
services: services.filter(service => service.selected).map(service => service.id)
|
||||||
})
|
})
|
||||||
|
|
||||||
window.location.href = response.checkout_url
|
window.location.href = response.checkout_url
|
||||||
@@ -328,7 +350,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="w-2/5">
|
<div class="w-2/5">
|
||||||
<PriceContainer prices={[45, 60, 160]} />
|
<PriceContainer {ausweis} bind:services />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,65 +6,56 @@
|
|||||||
import Verbrauch from "#components/Ausweis/Verbrauch.svelte";
|
import Verbrauch from "#components/Ausweis/Verbrauch.svelte";
|
||||||
import Label from "#components/Label.svelte";
|
import Label from "#components/Label.svelte";
|
||||||
import Ausweisart from "#components/Ausweis/Ausweisart.svelte";
|
import Ausweisart from "#components/Ausweis/Ausweisart.svelte";
|
||||||
import ZipSearch from "../ZIPSearch.svelte";
|
import ZipSearch from "../../components/ZIPSearch.svelte";
|
||||||
import { buildingTypes } from "./BuildingTypes";
|
import { buildingTypes } from "./BuildingTypes";
|
||||||
import BilderZusatzsysteme from "../Ausweis/BilderZusatzsysteme.svelte";
|
import BilderZusatzsysteme from "../../components/Ausweis/BilderZusatzsysteme.svelte";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { VerbrauchsausweisGewerbe } from "@ibcornelsen/database";
|
import { Enums, GebaeudeStammdaten, VerbrauchsausweisGewerbe } from "@ibcornelsen/database";
|
||||||
|
|
||||||
let ausweis: VerbrauchsausweisGewerbe = {};
|
export let uid: string | null = null;
|
||||||
|
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
||||||
|
export let ausweis: VerbrauchsausweisGewerbe = {
|
||||||
|
ausweisart: Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||||
|
} as VerbrauchsausweisGewerbe;
|
||||||
|
|
||||||
let additionalHeating: boolean = false;
|
let additionalHeating: boolean = false;
|
||||||
let heatedWaterIncluded: boolean = false;
|
let heatedWaterIncluded: boolean = false;
|
||||||
let heatedWaterPortion: number = 18;
|
let heatedWaterPortion: number = 18;
|
||||||
let hasCellar: boolean = false;
|
|
||||||
|
|
||||||
let area = 0;
|
|
||||||
let zip: string = "";
|
|
||||||
let city: string = "";
|
|
||||||
|
|
||||||
let baujahrGebaeude: number;
|
|
||||||
let baujahrHeizungsAnlage: number;
|
|
||||||
let apartmentCount: number;
|
|
||||||
let certificateReason:
|
|
||||||
| "Vermietung"
|
|
||||||
| "Neubau"
|
|
||||||
| "Verkauf"
|
|
||||||
| "Modernisierung"
|
|
||||||
| "Sonstiges";
|
|
||||||
let sanitationStatus: boolean;
|
|
||||||
|
|
||||||
let needsRequirementCertificate: boolean = false;
|
let needsRequirementCertificate: boolean = false;
|
||||||
|
|
||||||
$: needsRequirementCertificate =
|
$: needsRequirementCertificate =
|
||||||
(ausweis.baujahr_gebaeude < 1978 &&
|
(gebaeude.baujahr_gebaeude[0] < 1978 &&
|
||||||
ausweis.anzahl_einheiten <= 4 &&
|
(gebaeude.einheiten || 0) <= 4 &&
|
||||||
ausweis.objekt_saniert == false &&
|
gebaeude.saniert == false &&
|
||||||
(ausweis.ausstellgrund == "Vermietung" ||
|
(ausweis.ausstellgrund == "Vermietung" ||
|
||||||
ausweis.ausstellgrund == "Sonstiges")) ||
|
ausweis.ausstellgrund == "Sonstiges")) ||
|
||||||
ausweis.ausstellgrund == "Neubau" ||
|
ausweis.ausstellgrund == "Neubau" ||
|
||||||
ausweis.ausstellgrund == "Modernisierung" ||
|
ausweis.ausstellgrund == "Modernisierung" ||
|
||||||
ausweis.ausstellgrund == "Verkauf";
|
ausweis.ausstellgrund == "Verkauf";
|
||||||
|
|
||||||
function automatischAusfüllen() {
|
function automatischAusfüllen() {
|
||||||
ausweis.baujahr_gebaeude = 1962;
|
gebaeude.baujahr_gebaeude = [1962];
|
||||||
ausweis.baujahr_anlage = 1974;
|
gebaeude.baujahr_heizung = [1952];
|
||||||
ausweis.objekt_saniert = true;
|
gebaeude.saniert = true;
|
||||||
ausweis.anzahl_einheiten = 1;
|
gebaeude.einheiten = 1;
|
||||||
ausweis.ausstellgrund = "Vermietung";
|
ausweis.ausstellgrund = "Vermietung";
|
||||||
ausweis.energieverbrauch_1_heizquelle_1 = 15000;
|
ausweis.verbrauch_1 = 15000;
|
||||||
ausweis.energieverbrauch_2_heizquelle_1 = 14000;
|
ausweis.verbrauch_2 = 14000;
|
||||||
ausweis.energieverbrauch_3_heizquelle_1 = 16000;
|
ausweis.verbrauch_3 = 16000;
|
||||||
ausweis.wohnflaeche = 152;
|
gebaeude.flaeche = 152;
|
||||||
ausweis.keller_beheizt = true;
|
ausweis.keller_beheizt = true;
|
||||||
ausweis.energietraeger_1 = "Erdgas H";
|
ausweis.brennstoff_1 = "Erdgas H";
|
||||||
ausweis.energietraeger_einheit_heizquelle_1 = "kWh";
|
ausweis.einheit_1 = "kWh";
|
||||||
ausweis.warmwasser_enthalten = true;
|
|
||||||
ausweis.anteil_warmwasser_1 = 18;
|
ausweis.anteil_warmwasser_1 = 18;
|
||||||
ausweis.energieverbrauch_zeitraum = moment("12.01.2019");
|
ausweis.startdatum = moment("12.01.2019").toDate();
|
||||||
ausweis.objekt_plz = "21039";
|
gebaeude.plz = "21039";
|
||||||
ausweis.objekt_ort = "Hamburg";
|
gebaeude.ort = "Hamburg";
|
||||||
ausweis.objekt_strasse = "Curslacker Deich 170";
|
gebaeude.adresse = "Curslacker Deich 170";
|
||||||
|
gebaeude.gebaeudeteil = "Gesamtgebäude";
|
||||||
|
|
||||||
|
gebaeude = gebaeude;
|
||||||
|
ausweis = ausweis;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -97,7 +88,7 @@
|
|||||||
|
|
||||||
<Label>A - Prüfung der Ausweisart</Label>
|
<Label>A - Prüfung der Ausweisart</Label>
|
||||||
|
|
||||||
<Ausweisart bind:ausweis />
|
<Ausweisart bind:ausweis bind:gebaeude />
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="flex flex-col p-4"
|
class="flex flex-col p-4"
|
||||||
@@ -144,7 +135,7 @@
|
|||||||
required
|
required
|
||||||
data-msg-minlength="min. 5 Zeichen"
|
data-msg-minlength="min. 5 Zeichen"
|
||||||
data-msg-maxlength="max. 40 Zeichen"
|
data-msg-maxlength="max. 40 Zeichen"
|
||||||
bind:value={ausweis.objekt_strasse}
|
bind:value={gebaeude.adresse}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -152,8 +143,8 @@
|
|||||||
<!-- PLZ -->
|
<!-- PLZ -->
|
||||||
<div class="form-group col-md-4 PLZ">
|
<div class="form-group col-md-4 PLZ">
|
||||||
<ZipSearch
|
<ZipSearch
|
||||||
bind:zip={ausweis.objekt_plz}
|
bind:zip={gebaeude.plz}
|
||||||
bind:city={ausweis.objekt_ort}
|
bind:city={gebaeude.ort}
|
||||||
name="zip"
|
name="zip"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -168,7 +159,7 @@
|
|||||||
name="IGort"
|
name="IGort"
|
||||||
|
|
||||||
readonly={true}
|
readonly={true}
|
||||||
bind:value={ausweis.objekt_ort}
|
bind:value={gebaeude.ort}
|
||||||
type="text"
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -190,7 +181,7 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
data-rule-minlength="2"
|
data-rule-minlength="2"
|
||||||
data-msg-minlength="min. 2 Zeichen"
|
data-msg-minlength="min. 2 Zeichen"
|
||||||
bind:value={ausweis.wohnflaeche}
|
bind:value={gebaeude.flaeche}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -202,7 +193,7 @@
|
|||||||
<select
|
<select
|
||||||
name="IGkeller"
|
name="IGkeller"
|
||||||
required
|
required
|
||||||
bind:value={ausweis.keller_beheizt}
|
bind:value={gebaeude.keller}
|
||||||
>
|
>
|
||||||
<option>Bitte auswählen</option>
|
<option>Bitte auswählen</option>
|
||||||
<option value={false}>nicht vorhanden</option>
|
<option value={false}>nicht vorhanden</option>
|
||||||
@@ -232,7 +223,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="GRB">
|
<div class="GRB">
|
||||||
<Verbrauch bind:ausweis />
|
<Verbrauch bind:ausweis bind:gebaeude />
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
<hr />
|
||||||
<div>
|
<div>
|
||||||
@@ -434,7 +425,7 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<BilderZusatzsysteme {ausweis} />
|
<BilderZusatzsysteme {ausweis} {gebaeude} />
|
||||||
|
|
||||||
<div class="flex flex-row justify-between">
|
<div class="flex flex-row justify-between">
|
||||||
<Hilfe />
|
<Hilfe />
|
||||||
64
src/modules/VerbrauchsausweisWohnenFlowModule.svelte
Normal file
64
src/modules/VerbrauchsausweisWohnenFlowModule.svelte
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database";
|
||||||
|
import VerbrauchsausweisWohnenModule from "./Ausweise/VerbrauchsausweisWohnenModule.svelte";
|
||||||
|
import EmbeddedLoginModule from "./EmbeddedLoginModule.svelte";
|
||||||
|
import { client } from "src/trpc";
|
||||||
|
import { addNotification } from "@ibcornelsen/ui";
|
||||||
|
|
||||||
|
export let uid: string | null = null;
|
||||||
|
export let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
|
||||||
|
export let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
|
||||||
|
|
||||||
|
let showLoginPage = false;
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if !showLoginPage}
|
||||||
|
<VerbrauchsausweisWohnenModule {uid} {gebaeude} {ausweis} bind:showLoginPage></VerbrauchsausweisWohnenModule>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if showLoginPage}
|
||||||
|
<EmbeddedLoginModule onLogin={async (response) => {
|
||||||
|
if (uid) {
|
||||||
|
// Anscheinend wurde der Ausweis bereits erstellt und hat eine UID.
|
||||||
|
// Jetzt müssen wir ihn nun nur noch abspeichern.
|
||||||
|
try {
|
||||||
|
await client.v1.verbrauchsausweisWohnen[2016].speichern.mutate({
|
||||||
|
...ausweis,
|
||||||
|
gebaeude_stammdaten: gebaeude,
|
||||||
|
uid
|
||||||
|
})
|
||||||
|
|
||||||
|
window.location.href = `/ausweis-gespeichert?uid=${uid}`;
|
||||||
|
} catch (e) {
|
||||||
|
showLoginPage = false;
|
||||||
|
addNotification({
|
||||||
|
dismissable: false,
|
||||||
|
message: "Ausweis konnte nicht gespeichert werden, bitte versuchen sie es erneut.",
|
||||||
|
subtext: "Sollte das Problem weiterhin bestehen, kontaktieren sie bitte den Support.",
|
||||||
|
timeout: 6000,
|
||||||
|
type: "error"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Wir speichern den Ausweis ab und leiten auf die "ausweis-gespeichert" Seite weiter.
|
||||||
|
try {
|
||||||
|
const { uid } = await client.v1.verbrauchsausweisWohnen[2016].erstellen.mutate({
|
||||||
|
...ausweis,
|
||||||
|
gebaeude_stammdaten: gebaeude
|
||||||
|
})
|
||||||
|
window.location.href = `/ausweis-gespeichert?uid=${uid}`;
|
||||||
|
} catch (e) {
|
||||||
|
showLoginPage = false;
|
||||||
|
addNotification({
|
||||||
|
dismissable: false,
|
||||||
|
message: "Ausweis konnte nicht gespeichert werden, bitte versuchen sie es erneut.",
|
||||||
|
subtext: "Sollte das Problem weiterhin bestehen, kontaktieren sie bitte den Support.",
|
||||||
|
timeout: 6000,
|
||||||
|
type: "error"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}}></EmbeddedLoginModule>
|
||||||
|
{/if}
|
||||||
10
src/pages/payment/success.astro
Normal file
10
src/pages/payment/success.astro
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
import Layout from "../../layouts/Layout.astro";
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<Layout title="Zahlung Erfolgreich - IBCornelsen">
|
||||||
|
Supa! Hat geklappt ne!
|
||||||
|
</Layout>
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
import AusweisLayout from "#layouts/AusweisLayout.astro";
|
import AusweisLayout from "#layouts/AusweisLayout.astro";
|
||||||
import VerbrauchsausweisGewerbeContent from "#components/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeContent.svelte";
|
import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen">
|
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen">
|
||||||
<VerbrauchsausweisGewerbeContent client:load></VerbrauchsausweisGewerbeContent>
|
<VerbrauchsausweisGewerbeModule client:load></VerbrauchsausweisGewerbeModule>
|
||||||
</AusweisLayout>
|
</AusweisLayout>
|
||||||
Reference in New Issue
Block a user