diff --git a/docker-compose.yml b/docker-compose.yml index 0e9f0a47..cacf2010 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,16 +5,25 @@ services: container_name: online-energieausweis command: pnpm run dev --host links: - - db + - db:database environment: PORT: 3000 - DB_CONNECTION: postgres://user:secure1@db/main + DB_CONNECTION: database + DB_PORT: 5432 NODE_ENV: "development" ports: - 3000:3000 volumes: - ./:/online-energieausweis + networks: + - postgres db: build: ../database ports: - - "5436:5432" \ No newline at end of file + - "5436:5432" + networks: + - postgres + +networks: + postgres: + driver: bridge \ No newline at end of file diff --git a/src/components/Ausweis/AusweisPreviewContainer.astro b/src/components/Ausweis/AusweisPreviewContainer.svelte similarity index 84% rename from src/components/Ausweis/AusweisPreviewContainer.astro rename to src/components/Ausweis/AusweisPreviewContainer.svelte index 46d89b46..bf311003 100644 --- a/src/components/Ausweis/AusweisPreviewContainer.astro +++ b/src/components/Ausweis/AusweisPreviewContainer.svelte @@ -1,9 +1,8 @@ ---- -import AnsichtsausweisButton from "../AnsichtsausweisButton.svelte"; -import DatenblattButton from "../DatenblattButton.svelte"; -import HelpLabel from "../HelpLabel.astro"; - ---- +
diff --git a/src/components/Ausweis/Ausweisart.astro b/src/components/Ausweis/Ausweisart.svelte similarity index 72% rename from src/components/Ausweis/Ausweisart.astro rename to src/components/Ausweis/Ausweisart.svelte index d1c518b8..14823fff 100644 --- a/src/components/Ausweis/Ausweisart.astro +++ b/src/components/Ausweis/Ausweisart.svelte @@ -1,7 +1,11 @@ ---- -import HelpLabel from "../HelpLabel.astro"; +
@@ -10,43 +14,47 @@ import HelpLabel from "../HelpLabel.astro"; >Anlass für Energieausweis *
-
@@ -96,6 +104,7 @@ import HelpLabel from "../HelpLabel.astro"; required autocomplete="off" data-msg="Pflichtfeld" + bind:value={constructionYear} />
@@ -116,6 +125,7 @@ import HelpLabel from "../HelpLabel.astro"; required autocomplete="off" data-msg="Pflichtfeld" + bind:value={apartmentCount} maxlength="3" />
@@ -137,16 +147,27 @@ import HelpLabel from "../HelpLabel.astro"; name="IGsan" class="form-control" required - data-msg="Pflichtfeld" + bind:value={sanitationStatus} > - - + - - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/components/Ausweis/DaemmungImage.astro b/src/components/Ausweis/DaemmungImage.svelte similarity index 100% rename from src/components/Ausweis/DaemmungImage.astro rename to src/components/Ausweis/DaemmungImage.svelte diff --git a/src/components/Ausweis/FensterImage.astro b/src/components/Ausweis/FensterImage.svelte similarity index 100% rename from src/components/Ausweis/FensterImage.astro rename to src/components/Ausweis/FensterImage.svelte diff --git a/src/components/Ausweis/HeizungImage.astro b/src/components/Ausweis/HeizungImage.svelte similarity index 95% rename from src/components/Ausweis/HeizungImage.astro rename to src/components/Ausweis/HeizungImage.svelte index c77d2f9f..40bb67fd 100644 --- a/src/components/Ausweis/HeizungImage.astro +++ b/src/components/Ausweis/HeizungImage.svelte @@ -1,6 +1,6 @@
- +

WICHTIG: diff --git a/src/components/Ausweis/Hilfe.astro b/src/components/Ausweis/Hilfe.astro deleted file mode 100644 index e8f0edda..00000000 --- a/src/components/Ausweis/Hilfe.astro +++ /dev/null @@ -1,41 +0,0 @@ ---- -import HelpLabel from "../HelpLabel.astro"; - ---- - -Wir helfen Ihnen bei der Eingabe. Kurze Fragen zum Formular oder der Ausweisart werden kostenfrei telefonisch beantwortet (bis 5min). Bitte kontaktieren Sie uns unter 040/209339850. Gerne nehmen wir Ihnen die Arbeit ab - Fordern Sie unseren Offline Service an und klicken auf -Hilfe anfordern- - - -

-
- -
- Gerne helfen wir Ihnen wenn Sie nicht weiterkommen oder Fragen haben. Kurze Fragen zum Formular oder der Ausweisart werden kostenfrei telefonisch unter 040/209339850 beantwortet (bis 5min). Sollten Sie Unterstützung bei der Erstellung benötgen oder lieber die Arbeit von unserem Ingenieurbüro erledigen lassen, bieten wir Ihnen folgende Hilfen an. Bitte treffen Sie Ihre Auswahl und klicken auf weiter: -
- -
-
Verbrauchsausweis online inkl. ausführlicher telefonischer Beratung für 60 € inkl. MwSt.
-
-
-
-
Verbrauchsausweis offline für 180 € inkl. MwSt. (Sie schicken uns 3 Verbrauchsabrechnungen zu)
-
-
-
-
Bedarfsausweis offline für 290 € inkl. MwSt. (Sie schicken uns Grundriss- und Ansichtspläne zu)
-
-
- -
- -
- -
-
\ No newline at end of file diff --git a/src/components/Ausweis/Hilfe.svelte b/src/components/Ausweis/Hilfe.svelte new file mode 100644 index 00000000..3bcdc54d --- /dev/null +++ b/src/components/Ausweis/Hilfe.svelte @@ -0,0 +1,74 @@ + + +
+ + + {#if showHelp} +
+
+ Gerne helfen wir Ihnen wenn Sie nicht weiterkommen oder Fragen + haben. Kurze Fragen zum Formular oder der Ausweisart werden + kostenfrei telefonisch unter 040/209339850 beantwortet (bis 5min). Sollten Sie Unterstützung bei der Erstellung + benötgen oder lieber die Arbeit von unserem Ingenieurbüro erledigen + lassen, bieten wir Ihnen folgende Hilfen an. Bitte treffen Sie Ihre + Auswahl und klicken auf weiter: +
+ +
+
+ Verbrauchsausweis online inkl. ausführlicher telefonischer + Beratung für 60 € inkl. MwSt. +
+
+ +
+
+
+
+ Verbrauchsausweis offline für 180 € inkl. MwSt. (Sie + schicken uns 3 Verbrauchsabrechnungen zu) +
+
+ +
+
+
+
+ Bedarfsausweis offline für 290 € inkl. MwSt. (Sie schicken + uns Grundriss- und Ansichtspläne zu) +
+
+ +
+
+ +
+ +
+
+ {/if} +
diff --git a/src/components/Ausweis/PerformanceScore.svelte b/src/components/Ausweis/PerformanceScore.svelte index 5ee6c326..c636e5bb 100644 --- a/src/components/Ausweis/PerformanceScore.svelte +++ b/src/components/Ausweis/PerformanceScore.svelte @@ -1,15 +1,22 @@ + +
Energieeffizienz Skala pfeil pfeil
\ No newline at end of file diff --git a/src/components/Ausweis/ProgressBar.astro b/src/components/Ausweis/Progressbar.svelte similarity index 89% rename from src/components/Ausweis/ProgressBar.astro rename to src/components/Ausweis/Progressbar.svelte index 93fed638..463faafa 100644 --- a/src/components/Ausweis/ProgressBar.astro +++ b/src/components/Ausweis/Progressbar.svelte @@ -1,10 +1,6 @@ ---- -export type Props = { - progress: number -} - -const { progress } = Astro.props; ---- +
diff --git a/src/components/Ausweis/Verbrauch.astro b/src/components/Ausweis/Verbrauch.astro deleted file mode 100644 index e92151d2..00000000 --- a/src/components/Ausweis/Verbrauch.astro +++ /dev/null @@ -1,331 +0,0 @@ ---- -import HelpLabel from "../HelpLabel.astro"; ---- - -
-
-
- - Bitte geben Sie drei zusammenhängende Verbrauchsjahre der - Heizungsanlage ein. Wenn eine weitere Heizquelle vorhanden sein - sollte geben Sie diese rechts bei 'zusätzliche Heizquelle' ein. - - -
- -
- - Wenn eine zusätzliche Heizquelle vorhanden geben Sie hier drei - zusammenhängende Verbrauchsjahre ein. Es sollen die gleichen - Verbrauchszeiträume wie bei der primären Heizung verwendet - werden. - -
- -
- - Heizöl: Flüssiger Brennstoff; Heizöl wird aus schwer entflammbaren - Anteilen des Erdöls hergestellt.

- Erdgas H, Erdgas L: Brennbares Naturgas das in unterirdischen - Lagerstätten vorkommt. Erdgas H hat im Vergleich zu Erdgas L einen - leicht höheren Methangehalt, und daher einen etwas besseren Brennwert.

- Flüssiggas: Meist Propan, Butan und deren Gemische, die bei - Raumtemperatur unter vergleichsweise geringem Druck flüssig bleiben.

- Braunkohle: Durch Druck und Luftabschluss von organischen - Substanzen entstandenes, bräunlich-schwarzes Sedimentgestein.

- Holz-Pellets: Stäbchenförmige Pellets die vollständig oder - überwiegend aus Holz oder Sägenebenprodukten hergestellt werden.

- Holzhackschnitzel: Mit schneidenden Werkzeugen zerkleinertes - Holz.

- Nahwärme, Fernwärme: Versorgung von thermischer Energie über - wärmegedämmte Rohrsysteme. Die Wärme wird dabei örtlich von Heizwerken - produziert oder besteht aus Prozesswärme von BHKW's. Im Unterschied - zu Fernwärme wird Nahwärme in kleineren Einheiten dezentral realisiert.

- Strommix: Heizen mit Strom (Nachtspeicher).

- Koks: Stark kohlenstoffhaltiger Brennstoff.

-
-
- -
-
- -
- - Bitte geben Sie die Einheit ein. Erdgas wird meist auf der - Abrechnung in kWh ausgewiesen. Heizöl liegt meistens in Litern - vor. Pellets oder Brennholz in SRm (Schüttraummetern). - -
- -
-
- -
- -
- -
-
- -
- -
- -
-
-
- -
-
- von - - - -
- -
- bis - -
- -
- Verbrauch - -
- -
- Verbrauch - -
-
- -
-
- von - -
- -
- bis - -
- -
- Verbrauch - -
- -
- Verbrauch - -
-
- -
-
- von - -
- -
- bis - -
- -
- Verbrauch - -
- -
- Verbrauch - -
-
-
- - diff --git a/src/components/Ausweis/Verbrauch.svelte b/src/components/Ausweis/Verbrauch.svelte new file mode 100644 index 00000000..7924e2ab --- /dev/null +++ b/src/components/Ausweis/Verbrauch.svelte @@ -0,0 +1,324 @@ + + +
+
+
+ + Wenn eine zusätzliche Heizquelle vorhanden geben Sie hier drei + zusammenhängende Verbrauchsjahre ein. Es sollen die gleichen + Verbrauchszeiträume wie bei der primären Heizung verwendet + werden. + + +
+ +
+ + Heizöl: Flüssiger Brennstoff; Heizöl wird aus schwer + entflammbaren Anteilen des Erdöls hergestellt.

+ Erdgas H, Erdgas L: Brennbares Naturgas das in + unterirdischen Lagerstätten vorkommt. Erdgas H hat im Vergleich + zu Erdgas L einen leicht höheren Methangehalt, und daher einen + etwas besseren Brennwert.

+ Flüssiggas: Meist Propan, Butan und deren Gemische, die + bei Raumtemperatur unter vergleichsweise geringem Druck flüssig + bleiben.

+ Braunkohle: Durch Druck und Luftabschluss von organischen + Substanzen entstandenes, bräunlich-schwarzes Sedimentgestein.

+ Holz-Pellets: Stäbchenförmige Pellets die vollständig + oder überwiegend aus Holz oder Sägenebenprodukten hergestellt + werden.

+ Holzhackschnitzel: Mit schneidenden Werkzeugen + zerkleinertes Holz.

+ Nahwärme, Fernwärme: Versorgung von thermischer Energie + über wärmegedämmte Rohrsysteme. Die Wärme wird dabei örtlich von + Heizwerken produziert oder besteht aus Prozesswärme von BHKW's. + Im Unterschied zu Fernwärme wird Nahwärme in kleineren Einheiten + dezentral realisiert.

+ Strommix: Heizen mit Strom (Nachtspeicher).

+ Koks: Stark kohlenstoffhaltiger Brennstoff.

+
+
+ +
+
+ +
+ + Bitte geben Sie die Einheit ein. Erdgas wird meist auf der + Abrechnung in kWh ausgewiesen. Heizöl liegt meistens in Litern + vor. Pellets oder Brennholz in SRm (Schüttraummetern). + +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+
+
+ von + + + +
+
+ von + +
+
+ von + +
+
+
+
+ bis + +
+
+ bis + +
+
+ bis + +
+
+
+
+ Verbrauch + +
+
+ Verbrauch + +
+
+ Verbrauch + +
+
+
+
+ Verbrauch + +
+
+ Verbrauch + +
+
+ Verbrauch + +
+
+
+
+ + diff --git a/src/components/Ausweis/fuelList.ts b/src/components/Ausweis/fuelList.ts new file mode 100644 index 00000000..d4bc9978 --- /dev/null +++ b/src/components/Ausweis/fuelList.ts @@ -0,0 +1,290 @@ +export default [ + { + energietraeger: "Heizöl EL", + einheit: "l", + umrechnungsfaktor: 10.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.06, + coe: 0.310, + }, + { + energietraeger: "Erdgas H", + einheit: "m³", + umrechnungsfaktor: 10.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.11, + coe: 0.240, + }, + { + energietraeger: "Holz-Pellets", + einheit: "kg", + umrechnungsfaktor: 5.0, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Brennholz", + einheit: "kg", + umrechnungsfaktor: 4.1, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Flüssiggas", + einheit: "kg", + umrechnungsfaktor: 13.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.09, + coe: 0.270, + }, + { + energietraeger: "Braunkohle", + einheit: "kg", + umrechnungsfaktor: 5.5, + primärenergiefaktor: 1.2, + heizwertfaktor: 1.07, + coe: 0.430, + }, + { + energietraeger: "Holzhackschnitzel", + einheit: "SRm", + umrechnungsfaktor: 650.0, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Strommix", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 2.4, + heizwertfaktor: 1.00, + coe: 0.560, + }, + { + energietraeger: "Fernwärme KWK FB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.7, + heizwertfaktor: 1.00, + coe: 0.300, + }, + { + energietraeger: "Nahwärme KWK FB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.7, + heizwertfaktor: 1.00, + coe: 0.300, + }, + { + energietraeger: "Heizöl EL", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.06, + coe: 0.310, + }, + { + energietraeger: "Erdgas H", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.11, + coe: 0.240, + }, + { + energietraeger: "Holz-Pellets", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Brennholz", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Flüssiggas", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.09, + coe: 0.270, + }, + { + energietraeger: "Braunkohle", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.2, + heizwertfaktor: 1.07, + coe: 0.430, + }, + { + energietraeger: "Holzhackschnitzel", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Flüssiggas", + einheit: "l", + umrechnungsfaktor: 7.3, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.09, + coe: 0.270, + }, + { + energietraeger: "Brennholz", + einheit: "m³", + umrechnungsfaktor: 2000.0, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Flüssiggas", + einheit: "m³", + umrechnungsfaktor: 26.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.09, + coe: 0.270, + }, + { + energietraeger: "Erdgas L", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.11, + coe: 0.240, + }, + { + energietraeger: "Brennholz", + einheit: "SRm", + umrechnungsfaktor: 800.0, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Koks", + einheit: "kg", + umrechnungsfaktor: 8.3, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.02, + coe: 0.400, + }, + { + energietraeger: "Erdgas L", + einheit: "m³", + umrechnungsfaktor: 9.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.11, + coe: 0.240, + }, + { + energietraeger: "Koks", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.02, + coe: 0.400, + }, + { + energietraeger: "Holzhackschnitzel", + einheit: "kg", + umrechnungsfaktor: 3.8, + primärenergiefaktor: 0.2, + heizwertfaktor: 1.08, + coe: 0.020, + }, + { + energietraeger: "Nahwärme HKW EB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.1, + heizwertfaktor: 1.00, + coe: 0.060, + }, + { + energietraeger: "Nahwärme HKW FB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.3, + heizwertfaktor: 1.00, + coe: 0.400, + }, + { + energietraeger: "Nahwärme KWK EB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.0, + heizwertfaktor: 1.00, + coe: 0.040, + }, + { + energietraeger: "Fernwärme KWK EB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.0, + heizwertfaktor: 1.00, + coe: 0.040, + }, + { + energietraeger: "Fernwärme HKW FB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.3, + heizwertfaktor: 1.00, + coe: 0.400, + }, + { + energietraeger: "Fernwärme HKW EB", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 0.1, + heizwertfaktor: 1.00, + coe: 0.060, + }, + { + energietraeger: "Erdgas", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.11, + coe: 0.240, + }, + { + energietraeger: "Heizöl", + einheit: "kWh", + umrechnungsfaktor: 1.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.06, + coe: 0.310, + }, + { + energietraeger: "Heizöl", + einheit: "l", + umrechnungsfaktor: 10.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.06, + coe: 0.310, + }, + { + energietraeger: "Erdgas", + einheit: "m³", + umrechnungsfaktor: 9.0, + primärenergiefaktor: 1.1, + heizwertfaktor: 1.11, + coe: 0.240, + }, +]; diff --git a/src/components/HelpLabel.astro b/src/components/HelpLabel.svelte similarity index 86% rename from src/components/HelpLabel.astro rename to src/components/HelpLabel.svelte index 909137ef..c68895f9 100644 --- a/src/components/HelpLabel.astro +++ b/src/components/HelpLabel.svelte @@ -1,10 +1,7 @@ ---- -export type Props = { - title: string; -}; - -const { tooltip, title } = Astro.props; ---- +
diff --git a/src/components/Label.svelte b/src/components/Label.svelte new file mode 100644 index 00000000..ae687cb1 --- /dev/null +++ b/src/components/Label.svelte @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/src/components/Verbrauchsausweis/VerbrauchsausweisContent.svelte b/src/components/Verbrauchsausweis/VerbrauchsausweisContent.svelte new file mode 100644 index 00000000..b63efda2 --- /dev/null +++ b/src/components/Verbrauchsausweis/VerbrauchsausweisContent.svelte @@ -0,0 +1,823 @@ + + +
+
+

Verbrauchsausweis erstellen - 45€

+ +
+ + +
+ +
+
+ + +
+ +
+ +
+ + + +
+
+ + Der Bedarfsausweis ist die etwas umfangreichere Berechnung. + Sie benötigen z.B. Länge, Breite und Geschoßhöhe des + Gebäudes. Auch müssen genauere Angaben zur Anlagentechnik + gemacht werden. + +
+ + +
+ +
+ +
+ +
+ +
+
+ +
+ + Bitte geben Sie hier die Straße und Hausnummer des + Gebäudes ein. + +
+ +
+
+ + +
+ + Bitte geben Sie hier die PLZ des Gebäudes ein. + +
+ +
+
+
+ + +
+ + Ort des Gebäudes wird automatisch ermittelt. + +
+ +
+
+ +
+ + 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.). + +
+ +
+
+ + +
+ +
+ +
+
+ + +
+ +
+ +
+
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+ + +
+ + Wenn bekannt geben Sie den Anteil der Warmwasser-Versorgung + hier ein. Standardmäßig wird ein Anteil von 18% angenommen. + + + +
+ +
+ + Wenn bekannt geben Sie den Anteil der Warmwasser-Versorgung + von der zusätzlichen Heizquelle hier ein. Standardmäßig wird + ein Anteil von 18% angenommen. + + +
+ + +
+ + Bitte setzen Sie den Haken falls nachhaltige CO2-Effiziente + Heizungssysteme vorhanden sind. Das wäre beispielsweise bei + Pelletofen, Wärmepumpe, BHKW, Solarsystem, etc. der Fall. + +
+ + + + +
+
+
+ +
+ +
+ +
+ +
+ +
+ + Bitte wählen Sie hier den Gebäudetyp aus. + +
+ +
+
+ + +
+ + Bitte geben Sie hier den Gebäudeteil ein. In den meisten + Fällen handelt es sich um das Gesamtgebäude. Sollte es sich + allerdings um ein Gebäude mit mehr als 10% Gewerbeanteil + handeln, so sollten 2 Ausweise erstellt werden. In diesem + Fall wählen Sie Gebäudeteil 'Wohnen' bzw. Gebäudeteil + 'Gewerbe'. + +
+ +
+
+ + +
+ + Bitte geben Sie hier ein ob über die Fenster natürlich + belüftet wird oder über eine Lüftungsanlage. + +
+ +
+
+ + +
+ + Bitte geben Sie an ob das Gebäude im Sommer zusätzlich + gekühlt wird. + +
+ +
+
+ + +
+ + Bitte geben Sie hier den Leerstand in % des Gesamtzeitraumes + (3 Jahre) ein. Zum Beispiel 4 Monate Leerstand in 36 Monaten + wären dann ca. 11%. + +
+ +
+
+
+ +
+ +
+ +
+ +
+ + Wir benötigen diese Angaben um den allgemeinen + Modernisierungsstand einschätzen zu können. Bitte setzen Sie den + Haken wenn zutreffend. Das seit Mai 2021 gültige GEG erfordert + eine genauere Prüfung anhand von Fotos. Bitte laden Sie ein oder + mehrere Fotos der Heizungsanlage bzw. des Heizungsraums hoch. + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+ + + +
+ +
+ + Wir benötigen diese Angaben um den allgemeinen + Modernisierungsstand einschätzen zu können. Bitte setzen Sie den + Haken wenn zutreffend. + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+ + + +
+ +
+
+ + Wir benötigen diese Angaben um den allgemeinen + Modernisierungsstand einschätzen zu können. Bitte setzen Sie + den Haken wenn zutreffend. Das seit Mai 2021 gültige GEG + erfordert eine genauere Prüfung anhand von Fotos. Bitte + laden Sie ein oder mehrere Fotos der Außenwand und des + Dachbereiches hoch. + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+
+ + diff --git a/src/components/Verbrauchsausweis/energyPerformanceCalculation.ts b/src/components/Verbrauchsausweis/energyPerformanceCalculation.ts new file mode 100644 index 00000000..6b011e5b --- /dev/null +++ b/src/components/Verbrauchsausweis/energyPerformanceCalculation.ts @@ -0,0 +1,39 @@ + +/** + * + * @param energyConsumption Ein Array aus allen Verbräuchen der drei Verbrauchsjahre für die primäre Energiequelle + * @param additionalEnergyConsumption Ein Array aus allen Verbräuchen der drei Verbrauchsjahre für die sekundäre Energiequelle + * @param waterHeatingPortion Der Anteil den Warmwasser am Energieverbrauch ausgemacht hat + * @param climateFactors Ein Array aus drei Klimafaktoren für die Verbrauchsjahre + * @param area Die Nutzfläche des Gebäudes + * @param conversionFactor Der Umrechnungsfaktor des Energieträgers + * @param calorificValueFactor Der Heizwertfaktor des Energieträgers + * @returns Den Performance Wert den das Gebäude erzielt hat. + */ +export function calculateEnergyPerformanceScore( + energyConsumption: number[], + additionalEnergyConsumption: number[], + waterHeatingPortion: number, + climateFactors: number[], + area: number, + conversionFactor: number, + calorificValueFactor: number +): number { + // Alle Werte müssen in kWh umgerechnet werden. + let energyConsumptionKWh = energyConsumption.map((x) => convertEnergyConsumptionToKWh(x, conversionFactor, calorificValueFactor)) + let additionalEnergyConsumptionKWh = additionalEnergyConsumption.map((x) => convertEnergyConsumptionToKWh(x, conversionFactor, calorificValueFactor)) + let heatingPortion = 1 - (waterHeatingPortion / 100); + + return (heatingPortion * (energyConsumptionKWh[0] + additionalEnergyConsumptionKWh[0]) * climateFactors[0] + + (waterHeatingPortion / 100) * (energyConsumptionKWh[0] + additionalEnergyConsumptionKWh[0]) + + heatingPortion * (energyConsumptionKWh[1] + additionalEnergyConsumptionKWh[1]) * climateFactors[1] + + (waterHeatingPortion / 100) * (energyConsumptionKWh[1] + additionalEnergyConsumptionKWh[1]) + + heatingPortion * (energyConsumptionKWh[2] + additionalEnergyConsumptionKWh[2]) * climateFactors[2] + + (waterHeatingPortion / 100) * (energyConsumptionKWh[2] + additionalEnergyConsumptionKWh[2])) / + 3 / + area; +} + +function convertEnergyConsumptionToKWh(consumption: number, conversionFactor: number, calorificValueFactor: number): number { + return (consumption * conversionFactor) / calorificValueFactor; +} diff --git a/src/components/Verbrauchsausweis/index.ts b/src/components/Verbrauchsausweis/index.ts new file mode 100644 index 00000000..e2d49acd --- /dev/null +++ b/src/components/Verbrauchsausweis/index.ts @@ -0,0 +1 @@ +export { default as VerbrauchsausweisContent } from "./VerbrauchsausweisContent.svelte" \ No newline at end of file diff --git a/src/layouts/AusweisLayout.astro b/src/layouts/AusweisLayout.astro index 1433329a..39107da9 100644 --- a/src/layouts/AusweisLayout.astro +++ b/src/layouts/AusweisLayout.astro @@ -101,7 +101,7 @@ const schema = JSON.stringify({ min-height: 100vh; } - button, .button { + button, .button, button[type="button"] { @apply px-8 py-2 bg-secondary rounded-lg text-white font-medium hover:shadow-lg transition-all hover:underline active:bg-blue-900 text-center; color: #fff !important; } @@ -110,11 +110,15 @@ const schema = JSON.stringify({ @apply text-xl font-medium mt-6 mb-4; } - input { - @apply py-2 px-4 w-full outline-none text-lg text-slate-800 border; + input, select, textarea { + @apply py-1.5 px-2.5 rounded-lg w-full outline-none text-base text-slate-800 border; + } + + input:disabled, input:read-only, select:disabled { + @apply bg-gray-200 border-gray-300; } input:disabled { - @apply bg-gray-100 border-gray-300; + text-indent: -9999px; } diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 12203746..8484783b 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -112,7 +112,7 @@ const schema = JSON.stringify({ } input { - @apply py-2 px-4 w-full outline-none text-lg text-slate-800 border; + @apply py-1 px-2 w-full rounded-lg outline-none text-lg text-slate-800 border; } label { diff --git a/src/lib/Klimafaktoren/getClimateFactor.ts b/src/lib/Klimafaktoren/getClimateFactor.ts new file mode 100644 index 00000000..085add1c --- /dev/null +++ b/src/lib/Klimafaktoren/getClimateFactor.ts @@ -0,0 +1,29 @@ +import moment, { Moment } from "moment"; +import { db } from "../shared"; + +export async function getClimateFactor(dates: Moment[], zip: string): Promise { + const formattedDates = dates.map(date => { + let d = moment(date).format("MM_YYYY"); + return `d_${d} as ${d}` + }); + + if (dates.length == 0) { + return null; + } + if (zip.length !== 5 && zip.length !== 4) { + return null; + } + + let result; + try { + result = await db("climate_factors").select(formattedDates).where("zip", zip).first(); + } catch(e) { + return null; + } + + if (!result) { + return null; + } + + return result; +} \ No newline at end of file diff --git a/src/lib/Klimafaktoren/index.ts b/src/lib/Klimafaktoren/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/lib/shared.ts b/src/lib/shared.ts index d3c21152..db24ef35 100644 --- a/src/lib/shared.ts +++ b/src/lib/shared.ts @@ -4,8 +4,8 @@ export function dbOpen(): Knex { const db = knex({ client: 'pg', connection: { - host : '127.0.0.1', - port : 5436, + host : process.env.DB_CONNECTION, + port : Number(process.env.DB_PORT), user : 'main', password : 'hHMP8cd^N3SnzGRR', database : 'main' diff --git a/src/pages/api/climate_factor/index.ts b/src/pages/api/climate_factor/index.ts new file mode 100644 index 00000000..70bd64e4 --- /dev/null +++ b/src/pages/api/climate_factor/index.ts @@ -0,0 +1,54 @@ +import type { APIRoute } from "astro"; +import moment from "moment"; +import { ActionFailedError, InvalidDataError, MissingPropertyError, error, success } from "src/lib/APIResponse"; +import { getClimateFactor } from "src/lib/Klimafaktoren/getClimateFactor"; + +export const get: APIRoute = async function({ request }) { + const body = Object.fromEntries(new URLSearchParams(request.url.split("?")[1])) + + if (!body.start || !body.end) { + return MissingPropertyError(["start", "end"]); + } + + let accuracy = body.accuracy || "months"; + + if (accuracy !== "months" && accuracy !== "years") { + return error(["Accuracy must be either 'months' or 'years'."]) + } + + if (!body.zip) { + return error(["Invalid ZIP Code, must be 4 or 5 characters long."]) + } + + let start = moment(body.start); + let end = moment(body.end); + + if (!start.isValid()) { + return error(["Invalid start date given."]); + } + + if (!end.isValid()) { + return error(["Invalid end date given."]); + } + + if (start.isSameOrAfter(end)) { + return error(["Start date not before end date."]) + } + + const intervals = []; + + let currentDate = start.clone(); + while (currentDate.isSameOrBefore(end)) { + let copy = currentDate.clone(); + intervals.push(copy); + currentDate.add(1, accuracy); + } + + const climateFactors = await getClimateFactor(intervals, body.zip); + + if (!climateFactors) { + return ActionFailedError(); + } + + return success(climateFactors); +} \ No newline at end of file diff --git a/src/pages/verbrauchsausweis/erstellen.astro b/src/pages/verbrauchsausweis/erstellen.astro new file mode 100644 index 00000000..bd041097 --- /dev/null +++ b/src/pages/verbrauchsausweis/erstellen.astro @@ -0,0 +1,3 @@ +--- +console.log(Object.fromEntries(new URLSearchParams(await Astro.request.text()))) +--- \ No newline at end of file diff --git a/src/pages/verbrauchsausweis/index.astro b/src/pages/verbrauchsausweis/index.astro index cad8cfbb..5304bab1 100644 --- a/src/pages/verbrauchsausweis/index.astro +++ b/src/pages/verbrauchsausweis/index.astro @@ -1,15 +1,6 @@ --- -import PerformanceScore from "~/components/Ausweis/PerformanceScore.svelte"; -import ProgressBar from "~/components/Ausweis/ProgressBar.astro"; -import Hilfe from "~/components/Ausweis/Hilfe.astro"; import AusweisLayout from "~/layouts/AusweisLayout.astro"; -import HelpLabel from "~/components/HelpLabel.astro"; -import Verbrauch from "~/components/Ausweis/Verbrauch.astro"; -import Ausweisart from "~/components/Ausweis/Ausweisart.astro"; -import HeizungImage from "~/components/Ausweis/HeizungImage.astro"; -import FensterImage from "~/components/Ausweis/FensterImage.astro"; -import DaemmungImage from "~/components/Ausweis/DaemmungImage.astro"; -import AusweisPreviewContainer from "~/components/Ausweis/AusweisPreviewContainer.astro"; +import VerbrauchsausweisContent from "~/components/Verbrauchsausweis/VerbrauchsausweisContent.svelte"; /** * include('scripts/dbcon.php'); ini_set('session.cookie_secure', "1"); @@ -59,879 +50,5 @@ if ($_SESSION["username"] == TEST_USER_NAME) { --- -
-
-

Verbrauchsausweis erstellen - 45€

- -
- - -
- -
-
- - -
- -
- -
- - - -
-
- - Der Bedarfsausweis ist die etwas umfangreichere - Berechnung. Sie benötigen z.B. Länge, Breite und - Geschoßhöhe des Gebäudes. Auch müssen genauere Angaben - zur Anlagentechnik gemacht werden. - -
- - -
- -
- -
- -
- -
-
- -
- - Bitte geben Sie hier die Straße und Hausnummer des - Gebäudes ein. - -
- -
-
- - -
- - Bitte geben Sie hier die PLZ des Gebäudes ein. - -
- -
-
-
- - -
- - Ort des Gebäudes wird automatisch ermittelt. - -
- -
-
- -
- - 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.). - -
- -
-
- - -
- -
- -
-
- - -
- -
- -
-
-
-
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- - -
-
- - -
- - Wenn bekannt geben Sie den Anteil der - Warmwasser-Versorgung hier ein. Standardmäßig wird ein - Anteil von 18% angenommen. - - - -
- -
- - Wenn bekannt geben Sie den Anteil der - Warmwasser-Versorgung von der zusätzlichen Heizquelle - hier ein. Standardmäßig wird ein Anteil von 18% - angenommen. - - -
- - -
- - Bitte setzen Sie den Haken falls nachhaltige - CO2-Effiziente Heizungssysteme vorhanden sind. Das wäre - beispielsweise bei Pelletofen, Wärmepumpe, BHKW, - Solarsystem, etc. der Fall. - -
- - - - -
-
-
- -
- -
- -
- -
- -
- - Bitte wählen Sie hier den Gebäudetyp aus. - -
- -
-
- - -
- - Bitte geben Sie hier den Gebäudeteil ein. In den meisten - Fällen handelt es sich um das Gesamtgebäude. Sollte es - sich allerdings um ein Gebäude mit mehr als 10% - Gewerbeanteil handeln, so sollten 2 Ausweise erstellt - werden. In diesem Fall wählen Sie Gebäudeteil 'Wohnen' - bzw. Gebäudeteil 'Gewerbe'. - -
- -
-
- - -
- - Bitte geben Sie hier ein ob über die Fenster natürlich - belüftet wird oder über eine Lüftungsanlage. - -
- -
-
- - -
- - Bitte geben Sie an ob das Gebäude im Sommer zusätzlich - gekühlt wird. - -
- -
-
- - -
- - Bitte geben Sie hier den Leerstand in % des - Gesamtzeitraumes (3 Jahre) ein. Zum Beispiel 4 Monate - Leerstand in 36 Monaten wären dann ca. 11%. - -
- -
-
-
- -
- -
- -
- -
- - Wir benötigen diese Angaben um den allgemeinen - Modernisierungsstand einschätzen zu können. Bitte setzen Sie - den Haken wenn zutreffend. Das seit Mai 2021 gültige GEG - erfordert eine genauere Prüfung anhand von Fotos. Bitte - laden Sie ein oder mehrere Fotos der Heizungsanlage bzw. des - Heizungsraums hoch. - -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -
- - - -
- -
- - Wir benötigen diese Angaben um den allgemeinen - Modernisierungsstand einschätzen zu können. Bitte setzen Sie - den Haken wenn zutreffend. - -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -
- - - -
- -
-
- - Wir benötigen diese Angaben um den allgemeinen - Modernisierungsstand einschätzen zu können. Bitte setzen - Sie den Haken wenn zutreffend. Das seit Mai 2021 gültige - GEG erfordert eine genauere Prüfung anhand von Fotos. - Bitte laden Sie ein oder mehrere Fotos der Außenwand und - des Dachbereiches hoch. - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -
- - - -
- -
- -
- - - -
- - -
-
+
- - diff --git a/src/pages/verbrauchsausweis/kaufabschluss.astro b/src/pages/verbrauchsausweis/kaufabschluss.astro index 0c882a7e..12a0f225 100644 --- a/src/pages/verbrauchsausweis/kaufabschluss.astro +++ b/src/pages/verbrauchsausweis/kaufabschluss.astro @@ -1,5 +1,5 @@ --- -import ProgressBar from "~/components/Ausweis/ProgressBar.astro"; +import ProgressBar from "~/components/Ausweis/Progressbar.svelte"; import PerformanceScore from "~/components/Ausweis/PerformanceScore.svelte"; import AusweisLayout from "~/layouts/AusweisLayout.astro"; import PriceContainer from "~/components/Kaufabschluss/PriceContainer.svelte"; diff --git a/src/pages/verbrauchsausweis/kundendaten.astro b/src/pages/verbrauchsausweis/kundendaten.astro index 6c19b003..6a8032e9 100644 --- a/src/pages/verbrauchsausweis/kundendaten.astro +++ b/src/pages/verbrauchsausweis/kundendaten.astro @@ -1,7 +1,7 @@ --- import PerformanceScore from "~/components/Ausweis/PerformanceScore.svelte"; -import ProgressBar from "~/components/Ausweis/ProgressBar.astro"; -import HelpLabel from "~/components/HelpLabel.astro"; +import ProgressBar from "~/components/Ausweis/Progressbar.svelte"; +import HelpLabel from "~/components/HelpLabel.svelte"; import AusweisLayout from "~/layouts/AusweisLayout.astro"; ---