Merge pull request #230 from IBCornelsen/UMBE

upDate UMBE
This commit is contained in:
UMBENOMENA
2024-12-18 18:59:46 +01:00
committed by GitHub
13 changed files with 1665 additions and 1609 deletions

View File

@@ -24,19 +24,19 @@
var sanierungsoptionen =[
{"id":1,"name":"zentralheizung","value":"ZH","bindchecked":"gebaeude_aufnahme_allgemein.zentralheizung","label":"Zentral/Etage"},
{"id":2,"name":"einzelofen","value":"EO","bindchecked":"{gebaeude_aufnahme_allgemein.einzelofen}","label":"Einzelofen"},
{"id":3,"name":"durchlauf_erhitzer","value":"DH","bindchecked":"{gebaeude_aufnahme_allgemein.durchlauf_erhitzer}","label":"Durchlauferhitzer"},
{"id":4,"name":"standard_kessel","value":"SK","bindchecked":"{gebaeude_aufnahme_allgemein.standard_kessel}","label":"Standardkessel"},
{"id":5,"name":"solarsystem_warmwasser","value":"SSWW","bindchecked":"{gebaeude_aufnahme_allgemein.solarsystem_warmwasser}","label":"Solarsystem für Warmwasser"},
{"id":6,"name":"waermepumpe","value":"WP","bindchecked":"{gebaeude_aufnahme_allgemein.waermepumpe}","label":"Wärmepumpe"},
{"id":1,"name":"zentralheizung","value":"ZH","bindchecked":gebaeude_aufnahme_allgemein.zentralheizung,"label":"Zentral/Etage"},
{"id":2,"name":"einzelofen","value":"EO","bindchecked":gebaeude_aufnahme_allgemein.einzelofen,"label":"Einzelofen"},
{"id":3,"name":"durchlauf_erhitzer","value":"DH","bindchecked":gebaeude_aufnahme_allgemein.durchlauf_erhitzer,"label":"Durchlauferhitzer"},
{"id":4,"name":"standard_kessel","value":"SK","bindchecked":gebaeude_aufnahme_allgemein.standard_kessel,"label":"Standardkessel"},
{"id":5,"name":"solarsystem_warmwasser","value":"SSWW","bindchecked":gebaeude_aufnahme_allgemein.solarsystem_warmwasser,"label":"Solarsystem für Warmwasser"},
{"id":6,"name":"waermepumpe","value":"WP","bindchecked":gebaeude_aufnahme_allgemein.waermepumpe,"label":"Wärmepumpe"},
{"id":7,"name":"niedertemperatur_kessel","value":"NK","bindchecked":"{gebaeude_aufnahme_allgemein.niedertemperatur_kessel}","label":"Niedertemperaturkessel"},
{"id":8,"name":"brennwert_kessel","value":"BWK","bindchecked":"{gebaeude_aufnahme_allgemein.brennwert_kessel}","label":"Brennwertkessel"},
{"id":9,"name":"warmwasser_rohre_gedaemmt","value":"BWK","bindchecked":"{gebaeude_aufnahme_allgemein.warmwasser_rohre_gedaemmt}","label":"Warmwasserrohre gedämmt"},
{"id":10,"name":"heizungsrohre_gedaemmt","value":"HRGD","bindchecked":"{gebaeude_aufnahme_allgemein.heizungsrohre_gedaemmt}","label":"Heizungsrohre gedämmt"},
{"id":11,"name":"zirkulation","value":"ZK","bindchecked":"{gebaeude_aufnahme_allgemein.zirkulation}","label":"Zirkulation"},
{"id":12,"name":"raum_temperatur_regler","value":"RTR","bindchecked":"{gebaeude_aufnahme_allgemein.raum_temperatur_regler}","label":"Raumtemperaturregler"}
{"id":7,"name":"niedertemperatur_kessel","value":"NK","bindchecked":gebaeude_aufnahme_allgemein.niedertemperatur_kessel,"label":"Niedertemperaturkessel"},
{"id":8,"name":"brennwert_kessel","value":"BWK","bindchecked":gebaeude_aufnahme_allgemein.brennwert_kessel,"label":"Brennwertkessel"},
{"id":9,"name":"warmwasser_rohre_gedaemmt","value":"BWK","bindchecked":gebaeude_aufnahme_allgemein.warmwasser_rohre_gedaemmt,"label":"Warmwasserrohre gedämmt"},
{"id":10,"name":"heizungsrohre_gedaemmt","value":"HRGD","bindchecked":gebaeude_aufnahme_allgemein.heizungsrohre_gedaemmt,"label":"Heizungsrohre gedämmt"},
{"id":11,"name":"zirkulation","value":"ZK","bindchecked":gebaeude_aufnahme_allgemein.zirkulation,"label":"Zirkulation"},
{"id":12,"name":"raum_temperatur_regler","value":"RTR","bindchecked":gebaeude_aufnahme_allgemein.raum_temperatur_regler,"label":"Raumtemperaturregler"}
];
@@ -69,8 +69,6 @@ xl:grid-cols-2 xl:gap-x-8 xl:gap-y-8
</div>
{/each}
</div>

View File

@@ -2,17 +2,17 @@
import HeaderLogin from "#header/headerLogin.svelte";
---
<header>
<header id="header">
<div class="grid relative bg-white items-center gap-4 pt-4 px-0
<div id="header-grid" class="grid relative bg-white items-center gap-x-4 pt-4 px-0
grid-cols-1
sm:grid-cols-1
md:grid-cols-1
lg:grid-cols-[1fr_minmax(450px,450px)] lg:gap-3 lg:px-4 lg:py-4
xl:grid-cols-[1fr_minmax(450px,450px)] xl:gap-4 xl:px-6 xl:py-4
2xl:grid-cols-[1fr_minmax(450px,450px)] 2xl:gap-5 2xl:px-6 2xl:py-4">
lg:grid-cols-[1fr_minmax(450px,450px)] lg:gap-x-3 lg:px-4 lg:py-4
xl:grid-cols-[1fr_minmax(450px,450px)] xl:gap-x-4 xl:px-6 xl:py-4
2xl:grid-cols-[1fr_minmax(450px,450px)] 2xl:gap-x-5 2xl:px-6 2xl:py-4">
<div class="justify-self-center xs:justify-self-start">
@@ -23,7 +23,7 @@ lg:px-0 lg:gap-x-4">
<div class="self-start justify-self-start">
<a href="/">
<img class="w-full
<img id="header-logo" class="w-full
xs:max-w-[64px]
sm:max-w-[64px]
md:max-w-[64px] md:ml-6
@@ -35,7 +35,8 @@ lg:px-0 lg:gap-x-4">
</div>
<div class="self-center justify-self-center md:justify-self-start xs:mt-[20px] md:mt-[18px]">
<div class="text-secondary justify-self-center
<div id="header-text-1"class="text-secondary justify-self-center
xs:[font-size:_clamp(15px,5vw,36px)] xs:justify-self-start xs:leading-[36px]
lg:[font-size:_clamp(15px,3vw,26px)]
@@ -43,7 +44,8 @@ lg:px-0 lg:gap-x-4">
xl:[font-size:_clamp(15px,3vw,36px)]
xl:leading-[4.5rem] pt-[0px]">
Energieausweis online erstellen</div>
<div class="text-primary justify-self-center
<div id="header-text-2"class="text-primary justify-self-center
xs:[font-size:_clamp(15px,4vw,28px)] xs:justify-self-start xs:leading-[20px]
lg:[font-size:_clamp(15px,3vw,20px)]
@@ -67,10 +69,8 @@ lg:px-0 lg:gap-x-4">
</div>
<div class="col-start-1 col-span-3">
<div class="px-2 flex flex-row w-full justify-end items-center bg-primary
lg:h-[12px] xl:h-[12px]"></div>
<div class="px-2 flex flex-row w-full justify-end items-center bg-secondary
lg:h-[0px] xl:h-[0px]"></div>
<div id="header-line" class="px-2 flex flex-row w-full justify-end items-center bg-primary
lg:h-[12px] xl:h-[12px]"></div>
</div>
</header>

View File

@@ -61,7 +61,7 @@
<div class="grid grid-cols-1 lg:grid-cols-[3fr_2fr] gap-2">
<div id="passwort-vergessen" class="grid grid-cols-1 lg:grid-cols-[3fr_2fr] gap-2">
<div class="w-full text-left self-center">

View File

@@ -12,9 +12,67 @@ export interface Props {
}
const { title } = Astro.props;
---
<script>
window.addEventListener("scroll", (event) => {
let scroll = window.scrollY;
if(scroll>=144){
console.log(scroll);
document.getElementById('header').style.position = 'fixed';
document.getElementById('header').style.zIndex = '1000';
document.getElementById('header').style.width = '100%';
document.getElementById('header').style.top = '0';
document.getElementById('header-grid')?.classList.add('2xl:py-0');
document.getElementById('header-grid')?.classList.remove('2xl:py-4')
document.getElementById('header-grid')?.classList.remove('bg-white');
document.getElementById('header-grid')?.classList.add('bg-secondary');
document.getElementById('header-text-1')?.classList.add('text-white');
document.getElementById('header-text-1')?.classList.add('hidden');
document.getElementById('header-text-2')?.classList.add('hidden');
document.getElementById('header-line')?.classList.add('xl:h-[6px]');
document.getElementById('header-logo').style.height = '62px';
document.getElementById('header-logo')?.classList.add('xl:bg-white','xl:px-2');
;
document.getElementById('card-login')?.classList.remove('lg:ring-2');
document.getElementById('passwort-vergessen')?.classList.add('hidden');
document.getElementById('main').style.marginTop = '211px';
}else{
document.getElementById('header').style.position = 'relative';
document.getElementById('header').style.zIndex = '0';
document.getElementById('header').style.top = '0';
document.getElementById('header-grid')?.classList.add('2xl:py-4');
document.getElementById('header-grid')?.classList.remove('2xl:py-0');
document.getElementById('header-grid')?.classList.add('bg-white');
document.getElementById('header-grid')?.classList.remove('bg-secondary');
document.getElementById('header-text-1')?.classList.remove('text-white');
document.getElementById('header-text-1')?.classList.remove('hidden');
document.getElementById('header-text-2')?.classList.remove('hidden');
document.getElementById('header-line')?.classList.remove('xl:h-[6px]');
document.getElementById('header-logo').style.height = '107.53px';
document.getElementById('header-logo')?.classList.remove('xl:bg-white','xl:px-2');
document.getElementById('card-login')?.classList.add('lg:ring-2');
document.getElementById('passwort-vergessen')?.classList.remove('hidden');
document.getElementById('main').style.marginTop = '0px';
}
});
</script>
<!DOCTYPE html>
<html lang="de">
<head>
@@ -34,7 +92,7 @@ const { title } = Astro.props;
<Header />
<main
<main id="main"
class="w-full p-0 grid
xs:grid-cols-[minmax(1fr,1fr)] xs:gap-1 xs:p-0
sm:grid-cols-[minmax(1fr,1fr)] sm:gap-1 sm:p-0

View File

@@ -1,265 +1,265 @@
<script lang="ts">
//import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
//import Progressbar from "#components/Ausweis/Progressbar.svelte";
import Hilfe from "#components/Ausweis/Hilfe.svelte";
import BereichLabel from "#labels/BereichLabel.svelte";
//import HelpLabel from "#labels/HelpLabel.svelte";
//import Inputlabel from "#labels/InputLabel.svelte";
//import Label from "#components/Label.svelte";
import Ausweisart from "#components/Ausweis/Ausweisart.svelte";
import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
import Warmwasseranteil from "#components/Ausweis/Warmwasseranteil.svelte";
import Verbrauch from "#components/Ausweis/Verbrauch.svelte";
import LueftungundLeerstand from "#components/Ausweis/LueftungundLeerstand.svelte";
//import ZipSearch from "#components/PlzSuche.svelte";
import moment from "moment";
import BilderZusatzsysteme from "#components/Ausweis/BilderZusatzsysteme.svelte";
import {
RawNotificationWrapper,
RawNotification,
notifications,
} from "#components/Notifications/index.js";
import { auditHeizungGebaeudeBaujahr } from "#components/Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js";
import { auditHeizungJuengerDreiJahre } from "#components/Verbrauchsausweis/audits/HeizungJuengerDreiJahre.js";
import { auditZeitraumAktuell } from "#components/Verbrauchsausweis/audits/ZeitraumAktuell.js";
import { auditKlimaFaktoren } from "#components/Verbrauchsausweis/audits/KlimaFaktoren.js";
import { auditWohnFlaeche } from "#components/Verbrauchsausweis/audits/WohnFlaeche.js";
import { auditWarmWasser } from "#components/Verbrauchsausweis/audits/WarmWasser.js";
import { auditLeerStand } from "#components/Verbrauchsausweis/audits/LeerStand.js";
import { auditPlzNichtErkannt } from "#components/Verbrauchsausweis/audits/PlzNichtErkannt.js";
import {
AuditType,
hidden,
} from "#components/Verbrauchsausweis/audits/hidden.js";
import { auditBedarfsausweisBenoetigt } from "#components/Verbrauchsausweis/audits/BedarfsausweisBenoetigt.js";
import { auditVerbrauchAbweichung } from "#components/Verbrauchsausweis/audits/VerbrauchAbweichung.js";
import { auditEndEnergie } from "#components/Verbrauchsausweis/audits/EndEnergie.js";
import { auditWohnflaecheGroesserGesamtflaeche } from "#components/Verbrauchsausweis/audits/WohnflaecheGroesserGesamtflaeche.js";
//import { Enums } from "@ibcornelsen/database/client"
import Overlay from "#components/Overlay.svelte";
import AusweisGespeichertModule from "#modules/Ausweise/AusweisGespeichertModule.svelte";
import {
VerbrauchsausweisWohnenClient,
BenutzerClient,
UploadedGebaeudeBild,
} from "#components/Ausweis/types.js";
import { verbrauchsausweisWohnenSpeichern } from "src/client/lib/verbrauchsausweisWohnenSpeichern.js";
// TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann
// wenn gebaeude_aufnahme_allgemein oder gebaeude_stammdaten nicht existiert...
export let ausweis: VerbrauchsausweisWohnenClient;
export let user: BenutzerClient = {} as BenutzerClient;
let gebaeude_aufnahme_allgemein = ausweis.gebaeude_aufnahme_allgemein || {};
let gebaeude =
ausweis.gebaeude_aufnahme_allgemein?.gebaeude_stammdaten || {};
let images: (UploadedGebaeudeBild & { base64?: string })[] =
ausweis.gebaeude_aufnahme_allgemein?.gebaeude_stammdaten
?.gebaeude_bilder || [];
async function spaeterWeitermachen() {
const result = await verbrauchsausweisWohnenSpeichern(
ausweis,
gebaeude,
gebaeude_aufnahme_allgemein,
images,
user
);
if (result !== null) {
// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// Sonst müsste er alles neu eingeben...
ausweis.uid = result.uid;
gebaeude.uid = result.gebaeude_uid;
gebaeude_aufnahme_allgemein.uid = result.gebaeude_aufnahme_uid;
window.history.pushState(
{},
"",
`${location.pathname}?uid=${result.uid}`
);
speichernOverlayHidden = false;
}
}
function automatischAusfüllen() {
gebaeude_aufnahme_allgemein.baujahr_gebaeude = [1962];
gebaeude_aufnahme_allgemein.baujahr_heizung = [1952];
gebaeude_aufnahme_allgemein.saniert = true;
gebaeude_aufnahme_allgemein.einheiten = 1;
ausweis.ausstellgrund = "Vermietung";
ausweis.verbrauch_1 = 15000;
ausweis.verbrauch_2 = 14000;
ausweis.verbrauch_3 = 16000;
gebaeude_aufnahme_allgemein.flaeche = 152;
gebaeude_aufnahme_allgemein.nutzflaeche = 172;
ausweis.keller_beheizt = true;
gebaeude_aufnahme_allgemein.brennstoff_1 = "Erdgas H";
ausweis.einheit_1 = "kWh";
ausweis.anteil_warmwasser_1 = 18;
ausweis.startdatum = moment("01.01.2019").toDate();
gebaeude_aufnahme_allgemein.plz = "21039";
gebaeude_aufnahme_allgemein.ort = "Hamburg";
gebaeude_aufnahme_allgemein.adresse = "Curslacker Deich 170";
gebaeude_aufnahme_allgemein.gebaeudeteil = "Gesamtgebäude";
gebaeude = gebaeude;
ausweis = ausweis;
}
async function ausweisAbschicken(e: SubmitEvent) {
if (e && e.preventDefault) e.preventDefault();
const result = await verbrauchsausweisWohnenSpeichern(
ausweis,
gebaeude,
gebaeude_aufnahme_allgemein,
images,
user
);
if (result !== null) {
// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// Sonst müsste er alles neu eingeben...
ausweis.uid = result.uid;
gebaeude.uid = result.gebaeude_uid;
gebaeude_aufnahme_allgemein.uid = result.gebaeude_aufnahme_uid;
window.history.pushState(
{},
"",
`${location.pathname}?uid=${result.uid}`
);
window.location.href = `/kundendaten?uid=${result.uid}`;
}
}
let waitOverlayHidden = true;
let speichernOverlayHidden = true;
$: {
if (
gebaeude_aufnahme_allgemein.saniert &&
gebaeude_aufnahme_allgemein.oberste_geschossdecke_gedaemmt ===
undefined &&
gebaeude_aufnahme_allgemein.dachgeschoss_gedaemmt === undefined
) {
gebaeude_aufnahme_allgemein.oberste_geschossdecke_gedaemmt = true;
gebaeude_aufnahme_allgemein.dachgeschoss_gedaemmt = true;
}
}
</script>
<Overlay bind:hidden={speichernOverlayHidden}>
<div class="bg-white w-full max-w-screen-sm py-8 px-8">
<AusweisGespeichertModule uid={ausweis.uid}></AusweisGespeichertModule>
</div>
</Overlay>
<Overlay bind:hidden={waitOverlayHidden}>
<p class="text-white font-semibold text-4xl">
Bitte warten sie, ihr Ausweis wird nun erstellt.
</p>
</Overlay>
<form on:submit={ausweisAbschicken} name="ausweis" data-test="ausweis">
<div id="formular-box" class="formular-boxen ring-0">
<!-- Später weitermachen / Hilfe anfordern -->
<div
class="w-full grid gap-x-4 gap-y-2
grid-cols-1
xs:grid-cols-2
"
>
<div class="md:justify-self-start">
<button
class="button"
type="button"
on:click={spaeterWeitermachen}>Später Weitermachen</button
>
</div>
<div class="md:justify-self-end"><Hilfe /></div>
</div>
<div class="mt-2">
<button
class="button hidden"
on:click={automatischAusfüllen}
type="button">Automatisch Ausfüllen</button
>
</div>
<!-- A Prüfung der Ausweisart -->
<BereichLabel bereich="A">Prüfung der Ausweisart</BereichLabel>
<div class="collapseBereich">
<Ausweisart
bind:gebaeude
bind:gebaeude_aufnahme_allgemein
bind:ausweis
/>
</div>
<!-- B Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss -->
<BereichLabel bereich="B">Eingabe&nbsp;der&nbsp;Gebäudeadresse - Angaben&nbsp;zu&nbsp;Wohnfläche, Keller&nbsp;und&nbsp;Dachgeschoss</BereichLabel>
<div class="collapseBereich">
<GebaeudeDaten
bind:gebaeude_aufnahme_allgemein
/>
</div>
<!-- C Eingabe von 3 zusammenhängenden Verbrauchsjahren -->
<BereichLabel bereich="C">Eingabe von 3&nbsp;zusammenhängenden Verbrauchsjahren</BereichLabel>
<div class="collapseBereich">
<Verbrauch
bind:gebaeude
bind:gebaeude_aufnahme_allgemein
bind:ausweis
/>
</div>
<!-- D Eingabe Warmwasseranteil und Verwendung von alternativen Energieversorgungssystemen -->
<BereichLabel bereich="D">Eingabe&nbsp;Warmwasseranteil und&nbsp;Verwendung&nbsp;von&nbsp;alternativen Energieversorgungssystemen</BereichLabel>
<div class="collapseBereich">
<Warmwasseranteil
bind:ausweis
/>
</div>
<!-- E Eingabe von Gebäudeteil, Lüftung, Kühlung und Leerstand -->
<BereichLabel bereich="E">Eingabe&nbsp;von&nbsp;Gebäudeteil, Lüftung,&nbsp;Kühlung&nbsp;und&nbsp;Leerstand</BereichLabel>
<div class="collapseBereich">
<LueftungundLeerstand
bind:gebaeude_aufnahme_allgemein
/>
</div>
<!-- F Angaben zum Sanierungszustand des Gebäudes -->
<BereichLabel bereich="F">Angaben zum Sanierungszustand des Gebäudes</BereichLabel>
<div class="collapseBereich">
<BilderZusatzsysteme
bind:images
bind:gebaeude
bind:gebaeude_aufnahme_allgemein
bind:ausweis
/>
</div>
</div>
</form>
<style lang="scss">
</style>
<script lang="ts">
//import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
//import Progressbar from "#components/Ausweis/Progressbar.svelte";
import Hilfe from "#components/Ausweis/Hilfe.svelte";
import BereichLabel from "#labels/BereichLabel.svelte";
//import HelpLabel from "#labels/HelpLabel.svelte";
//import Inputlabel from "#labels/InputLabel.svelte";
//import Label from "#components/Label.svelte";
import Ausweisart from "#components/Ausweis/Ausweisart.svelte";
import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
import Warmwasseranteil from "#components/Ausweis/Warmwasseranteil.svelte";
import Verbrauch from "#components/Ausweis/Verbrauch.svelte";
import LueftungundLeerstand from "#components/Ausweis/LueftungundLeerstand.svelte";
//import ZipSearch from "#components/PlzSuche.svelte";
import moment from "moment";
import BilderZusatzsysteme from "#components/Ausweis/BilderZusatzsysteme.svelte";
import {
RawNotificationWrapper,
RawNotification,
notifications,
} from "#components/Notifications/index.js";
import { auditHeizungGebaeudeBaujahr } from "#components/Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js";
import { auditHeizungJuengerDreiJahre } from "#components/Verbrauchsausweis/audits/HeizungJuengerDreiJahre.js";
import { auditZeitraumAktuell } from "#components/Verbrauchsausweis/audits/ZeitraumAktuell.js";
import { auditKlimaFaktoren } from "#components/Verbrauchsausweis/audits/KlimaFaktoren.js";
import { auditWohnFlaeche } from "#components/Verbrauchsausweis/audits/WohnFlaeche.js";
import { auditWarmWasser } from "#components/Verbrauchsausweis/audits/WarmWasser.js";
import { auditLeerStand } from "#components/Verbrauchsausweis/audits/LeerStand.js";
import { auditPlzNichtErkannt } from "#components/Verbrauchsausweis/audits/PlzNichtErkannt.js";
import {
AuditType,
hidden,
} from "#components/Verbrauchsausweis/audits/hidden.js";
import { auditBedarfsausweisBenoetigt } from "#components/Verbrauchsausweis/audits/BedarfsausweisBenoetigt.js";
import { auditVerbrauchAbweichung } from "#components/Verbrauchsausweis/audits/VerbrauchAbweichung.js";
import { auditEndEnergie } from "#components/Verbrauchsausweis/audits/EndEnergie.js";
import { auditWohnflaecheGroesserGesamtflaeche } from "#components/Verbrauchsausweis/audits/WohnflaecheGroesserGesamtflaeche.js";
//import { Enums } from "@ibcornelsen/database/client"
import Overlay from "#components/Overlay.svelte";
import AusweisGespeichertModule from "#modules/Ausweise/AusweisGespeichertModule.svelte";
import {
VerbrauchsausweisWohnenClient,
BenutzerClient,
UploadedGebaeudeBild,
} from "#components/Ausweis/types.js";
import { verbrauchsausweisWohnenSpeichern } from "src/client/lib/verbrauchsausweisWohnenSpeichern.js";
// TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann
// wenn gebaeude_aufnahme_allgemein oder gebaeude_stammdaten nicht existiert...
export let ausweis: VerbrauchsausweisWohnenClient;
export let user: BenutzerClient = {} as BenutzerClient;
let gebaeude_aufnahme_allgemein = ausweis.gebaeude_aufnahme_allgemein || {};
let gebaeude =
ausweis.gebaeude_aufnahme_allgemein?.gebaeude_stammdaten || {};
let images: (UploadedGebaeudeBild & { base64?: string })[] =
ausweis.gebaeude_aufnahme_allgemein?.gebaeude_stammdaten
?.gebaeude_bilder || [];
async function spaeterWeitermachen() {
const result = await verbrauchsausweisWohnenSpeichern(
ausweis,
gebaeude,
gebaeude_aufnahme_allgemein,
images,
user
);
if (result !== null) {
// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// Sonst müsste er alles neu eingeben...
ausweis.uid = result.uid;
gebaeude.uid = result.gebaeude_uid;
gebaeude_aufnahme_allgemein.uid = result.gebaeude_aufnahme_uid;
window.history.pushState(
{},
"",
`${location.pathname}?uid=${result.uid}`
);
speichernOverlayHidden = false;
}
}
function automatischAusfüllen() {
gebaeude_aufnahme_allgemein.baujahr_gebaeude = [1962];
gebaeude_aufnahme_allgemein.baujahr_heizung = [1952];
gebaeude_aufnahme_allgemein.saniert = true;
gebaeude_aufnahme_allgemein.einheiten = 1;
ausweis.ausstellgrund = "Vermietung";
ausweis.verbrauch_1 = 15000;
ausweis.verbrauch_2 = 14000;
ausweis.verbrauch_3 = 16000;
gebaeude_aufnahme_allgemein.flaeche = 152;
gebaeude_aufnahme_allgemein.nutzflaeche = 172;
ausweis.keller_beheizt = true;
gebaeude_aufnahme_allgemein.brennstoff_1 = "Erdgas H";
ausweis.einheit_1 = "kWh";
ausweis.anteil_warmwasser_1 = 18;
ausweis.startdatum = moment("01.01.2019").toDate();
gebaeude_aufnahme_allgemein.plz = "21039";
gebaeude_aufnahme_allgemein.ort = "Hamburg";
gebaeude_aufnahme_allgemein.adresse = "Curslacker Deich 170";
gebaeude_aufnahme_allgemein.gebaeudeteil = "Gesamtgebäude";
gebaeude = gebaeude;
ausweis = ausweis;
}
async function ausweisAbschicken(e: SubmitEvent) {
if (e && e.preventDefault) e.preventDefault();
const result = await verbrauchsausweisWohnenSpeichern(
ausweis,
gebaeude,
gebaeude_aufnahme_allgemein,
images,
user
);
if (result !== null) {
// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// Sonst müsste er alles neu eingeben...
ausweis.uid = result.uid;
gebaeude.uid = result.gebaeude_uid;
gebaeude_aufnahme_allgemein.uid = result.gebaeude_aufnahme_uid;
window.history.pushState(
{},
"",
`${location.pathname}?uid=${result.uid}`
);
window.location.href = `/kundendaten?uid=${result.uid}`;
}
}
let waitOverlayHidden = true;
let speichernOverlayHidden = true;
$: {
if (
gebaeude_aufnahme_allgemein.saniert &&
gebaeude_aufnahme_allgemein.oberste_geschossdecke_gedaemmt ===
undefined &&
gebaeude_aufnahme_allgemein.dachgeschoss_gedaemmt === undefined
) {
gebaeude_aufnahme_allgemein.oberste_geschossdecke_gedaemmt = true;
gebaeude_aufnahme_allgemein.dachgeschoss_gedaemmt = true;
}
}
</script>
<Overlay bind:hidden={speichernOverlayHidden}>
<div class="bg-white w-full max-w-screen-sm py-8 px-8">
<AusweisGespeichertModule uid={ausweis.uid}></AusweisGespeichertModule>
</div>
</Overlay>
<Overlay bind:hidden={waitOverlayHidden}>
<p class="text-white font-semibold text-4xl">
Bitte warten sie, ihr Ausweis wird nun erstellt.
</p>
</Overlay>
<form on:submit={ausweisAbschicken} name="ausweis" data-test="ausweis">
<div id="formular-box" class="formular-boxen ring-0">
<!-- Später weitermachen / Hilfe anfordern -->
<div
class="w-full grid gap-x-4 gap-y-2
grid-cols-1
xs:grid-cols-2
"
>
<div class="md:justify-self-start">
<button
class="button"
type="button"
on:click={spaeterWeitermachen}>Später Weitermachen</button
>
</div>
<div class="md:justify-self-end"><Hilfe /></div>
</div>
<div class="mt-2">
<button
class="button hidden"
on:click={automatischAusfüllen}
type="button">Automatisch Ausfüllen</button
>
</div>
<!-- A Prüfung der Ausweisart -->
<BereichLabel bereich="A">Prüfung der Ausweisart</BereichLabel>
<div class="collapseBereich">
<Ausweisart
bind:gebaeude
bind:gebaeude_aufnahme_allgemein
bind:ausweis
/>
</div>
<!-- B Eingabe der Gebäudeadresse - Angaben zu Wohnfläche, Keller und Dachgeschoss -->
<BereichLabel bereich="B">Eingabe&nbsp;der&nbsp;Gebäudeadresse - Angaben&nbsp;zu&nbsp;Wohnfläche, Keller&nbsp;und&nbsp;Dachgeschoss</BereichLabel>
<div class="collapseBereich">
<GebaeudeDaten
bind:gebaeude_aufnahme_allgemein
/>
</div>
<!-- C Eingabe von 3 zusammenhängenden Verbrauchsjahren -->
<BereichLabel bereich="C">Eingabe von 3&nbsp;zusammenhängenden Verbrauchsjahren</BereichLabel>
<div class="collapseBereich">
<Verbrauch
bind:gebaeude
bind:gebaeude_aufnahme_allgemein
bind:ausweis
/>
</div>
<!-- D Eingabe Warmwasseranteil und Verwendung von alternativen Energieversorgungssystemen -->
<BereichLabel bereich="D">Eingabe&nbsp;Warmwasseranteil und&nbsp;Verwendung&nbsp;von&nbsp;alternativen Energieversorgungssystemen</BereichLabel>
<div class="collapseBereich">
<Warmwasseranteil
bind:ausweis
/>
</div>
<!-- E Eingabe von Gebäudeteil, Lüftung, Kühlung und Leerstand -->
<BereichLabel bereich="E">Eingabe&nbsp;von&nbsp;Gebäudeteil, Lüftung,&nbsp;Kühlung&nbsp;und&nbsp;Leerstand</BereichLabel>
<div class="collapseBereich">
<LueftungundLeerstand
bind:gebaeude_aufnahme_allgemein
/>
</div>
<!-- F Angaben zum Sanierungszustand des Gebäudes -->
<BereichLabel bereich="F">Angaben zum Sanierungszustand des Gebäudes</BereichLabel>
<div class="collapseBereich">
<BilderZusatzsysteme
bind:images
bind:gebaeude
bind:gebaeude_aufnahme_allgemein
bind:ausweis
/>
</div>
</div>
</form>
<style lang="scss">
</style>

View File

@@ -1,7 +1,7 @@
---
import AusweisLayout from "#layouts/AusweisLayout.astro";
import BedarfsausweisContent from "#components/Bedarfsausweis/BedarfsausweisContent.svelte";
import BedarfsausweisContent from "#modules/BedarfsausweisWohnen/BedarfsausweisContent.svelte";
import { BedarfsausweisWohnenClient } from "#components/Ausweis/types";
import { createCaller } from "#lib/caller";

View File

@@ -1,6 +1,6 @@
---
import AusweisLayout from "#layouts/AusweisLayout.astro";
import VerbrauchsausweisWohnenModule from "#modules/Ausweise/VerbrauchsausweisWohnenModule.svelte";
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { createCaller } from "#lib/caller";