diff --git a/src/components/Ausweis/Bezahlung.svelte b/src/components/Ausweis/Bezahlung.svelte
deleted file mode 100644
index f710a792..00000000
--- a/src/components/Ausweis/Bezahlung.svelte
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/src/components/PaymentOption.svelte b/src/components/PaymentOption.svelte
index f5a11267..3a667aeb 100644
--- a/src/components/PaymentOption.svelte
+++ b/src/components/PaymentOption.svelte
@@ -1,33 +1,27 @@
+
(aktiveBezahlmethode = bezahlmethode)}
+ />
-
selectedPaymentType = paymentType} />
-
-
-
-
- {name}
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+ {name}
+
+
+
\ No newline at end of file
diff --git a/src/lib/constants.ts b/src/lib/constants.ts
index b587b006..9912380e 100644
--- a/src/lib/constants.ts
+++ b/src/lib/constants.ts
@@ -21,16 +21,42 @@ export enum VALID_UUID_PREFIXES {
"gnw" = "GEG Nachweis Wohnen"
}
+export enum AusweisTyp {
+ Standard,
+ Beratung,
+ Offline
+}
+
/**
* Ein Objekt welches alle definierten Preise für unsere Basisprodukte enthält.
*/
-export const PRICES: Record = {
+export const PRICES: Record> = {
// per E-Mail , inkl.Beratung, offline
- BedarfsausweisWohnen: [95, 125, 295],
- VerbrauchsausweisWohnen: [65, 95, 180],
- VerbrauchsausweisGewerbe: [95, 125, 360],
- BedarfsausweisGewerbe: [500, 700, 1000],
- GEGNachweisWohnen: [500, 700, 1000]
+ BedarfsausweisWohnen: {
+ [AusweisTyp.Standard]: 95,
+ [AusweisTyp.Beratung]: 125,
+ [AusweisTyp.Offline]: 295
+ },
+ VerbrauchsausweisWohnen: {
+ [AusweisTyp.Standard]: 65,
+ [AusweisTyp.Beratung]: 95,
+ [AusweisTyp.Offline]: 180
+ },
+ VerbrauchsausweisGewerbe: {
+ [AusweisTyp.Standard]: 95,
+ [AusweisTyp.Beratung]: 125,
+ [AusweisTyp.Offline]: 360
+ },
+ BedarfsausweisGewerbe: {
+ [AusweisTyp.Standard]: 500,
+ [AusweisTyp.Beratung]: 700,
+ [AusweisTyp.Offline]: 1000
+ },
+ GEGNachweisWohnen: {
+ [AusweisTyp.Standard]: 500,
+ [AusweisTyp.Beratung]: 700,
+ [AusweisTyp.Offline]: 1000
+ }
};
export const SERVICES: Record<
diff --git a/src/lib/server/mail/invoice.ts b/src/lib/server/mail/invoice.ts
index dc0faf3e..abcae55a 100644
--- a/src/lib/server/mail/invoice.ts
+++ b/src/lib/server/mail/invoice.ts
@@ -15,6 +15,8 @@ export async function sendInvoiceMail(
rechnung: Rechnung,
user: Benutzer
) {
+ console.log(ausweis);
+
const aufnahme = await prisma.aufnahme.findUnique({
where: {
id: ausweis.aufnahme_id,
diff --git a/src/modules/KundendatenModule.svelte b/src/modules/KundendatenModule.svelte
index 92e7311c..0bc2f207 100644
--- a/src/modules/KundendatenModule.svelte
+++ b/src/modules/KundendatenModule.svelte
@@ -4,12 +4,15 @@
import Bereich from "#components/labels/Bereich.svelte";
import Ansprechpartner from "#components/Ausweis/Ansprechpartner.svelte";
import Rechnungsadresse from "#components/Ausweis/Rechnungsadresse.svelte";
- import Bezahlung from "#components/Ausweis/Bezahlung.svelte";
import type { Bezahlmethoden } from "@ibcornelsen/database/client";
import { Enums } from "@ibcornelsen/database/client";
import { dialogs } from "svelte-dialogs";
import LoginDialog from "#components/LoginDialog.svelte";
- import { API_ACCESS_TOKEN_COOKIE_NAME, PRICES } from "#lib/constants.js";
+ import {
+ API_ACCESS_TOKEN_COOKIE_NAME,
+ AusweisTyp,
+ PRICES,
+ } from "#lib/constants.js";
import Cookies from "js-cookie";
import {
AufnahmeClient,
@@ -21,12 +24,15 @@
} from "#components/Ausweis/types.js";
import { validateAccessTokenClient } from "src/client/lib/validateAccessToken.js";
import { api } from "astro-typesafe-api/client";
-
+ import PaymentOption from "#components/PaymentOption.svelte";
+
export let user: BenutzerClient;
export let ausweis: VerbrauchsausweisWohnenClient;
export let aufnahme: AufnahmeClient;
export let objekt: ObjektClient;
export let ausweisart: Enums.Ausweisart;
+ export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
+ export let ausweis_typ: AusweisTyp = AusweisTyp.Standard;
let rechnung: Partial = {
email: user.email,
@@ -39,9 +45,14 @@
versand_plz: user.plz,
versand_ort: user.ort,
telefon: user.telefon,
- }
+ };
- let services: { name: string, id: Enums.Service, price: number, selected: boolean }[] = [
+ let services: {
+ name: string;
+ id: Enums.Service;
+ price: number;
+ selected: boolean;
+ }[] = [
{
name: "Qualitätsdruck per Post (zusätzlich zur PDF Version)",
id: Enums.Service.Qualitaetsdruck,
@@ -68,9 +79,6 @@
},
];
- export let bezahlmethode: Bezahlmethoden =
- Enums.Bezahlmethoden.paypal;
-
let prices = PRICES[ausweisart];
let basePrice: number = prices[0];
@@ -83,14 +91,21 @@
);
const zurueck = {
- [Enums.Ausweisart.VerbrauchsausweisWohnen]: `/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.uid}`,
- [Enums.Ausweisart.VerbrauchsausweisGewerbe]: `/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid=${ausweis.uid}`,
- [Enums.Ausweisart.BedarfsausweisWohnen]: `/energieausweis-erstellen/bedarfsausweis-wohnen?uid=${ausweis.uid}`,
- [Enums.Ausweisart.BedarfsausweisGewerbe]: `/energieausweis-erstellen/bedarfsausweis-gewerbe?uid=${ausweis.uid}`,
- [Enums.Ausweisart.GEGNachweisWohnen]: `/angebot-anfragen/geg-nachweis-wohnen-anfragen?uid=${ausweis.uid}`,
- [Enums.Ausweisart.GEGNachweisGewerbe]: `/angebot-anfragen/geg-nachweis-gewerbe-anfragen?uid=${ausweis.uid}`,
- [Enums.Ausweisart.GEGNachweisBedarfsausweis]: `/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?uid=${ausweis.uid}`,
- }[ausweisart]
+ [Enums.Ausweisart.VerbrauchsausweisWohnen]:
+ `/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.uid}`,
+ [Enums.Ausweisart.VerbrauchsausweisGewerbe]:
+ `/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid=${ausweis.uid}`,
+ [Enums.Ausweisart.BedarfsausweisWohnen]:
+ `/energieausweis-erstellen/bedarfsausweis-wohnen?uid=${ausweis.uid}`,
+ [Enums.Ausweisart.BedarfsausweisGewerbe]:
+ `/energieausweis-erstellen/bedarfsausweis-gewerbe?uid=${ausweis.uid}`,
+ [Enums.Ausweisart.GEGNachweisWohnen]:
+ `/angebot-anfragen/geg-nachweis-wohnen-anfragen?uid=${ausweis.uid}`,
+ [Enums.Ausweisart.GEGNachweisGewerbe]:
+ `/angebot-anfragen/geg-nachweis-gewerbe-anfragen?uid=${ausweis.uid}`,
+ [Enums.Ausweisart.GEGNachweisBedarfsausweis]:
+ `/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?uid=${ausweis.uid}`,
+ }[ausweisart];
async function speichern(e: SubmitEvent) {
e.preventDefault();
@@ -111,53 +126,58 @@
// uid: ausweis.uid,
// });
- localStorage.clear()
+ localStorage.clear();
window.location.href = `/kaufabschluss?uid=${ausweis.uid}`;
}
async function anfordern() {
// TODO Angebot anfordern
-
}
async function bestellen() {
- const ausweisart = getAusweisartFromUUID(ausweis.uid) as Enums.Ausweisart;
-
+ const ausweisart = getAusweisartFromUUID(
+ ausweis.uid
+ ) as Enums.Ausweisart;
+
try {
- const { uid, checkout_url } = await api.rechnung.PUT.fetch({
- ausweisart,
- bezahlmethode,
- services: services.filter(service => service.selected).map(service => service.id),
- email: rechnung.email,
- empfaenger: rechnung.empfaenger,
- strasse: rechnung.strasse,
- plz: rechnung.plz,
- ort: rechnung.ort,
- versand_empfaenger: rechnung.versand_empfaenger,
- versand_strasse: rechnung.versand_strasse,
- versand_plz: rechnung.versand_plz,
- versand_ort: rechnung.versand_ort,
- telefon: rechnung.telefon,
- ausweis_uid: ausweis.uid
- }, {
- headers: {
- Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
+ const { uid, checkout_url } = await api.rechnung.PUT.fetch(
+ {
+ ausweisart,
+ bezahlmethode: aktiveBezahlmethode,
+ services: services
+ .filter((service) => service.selected)
+ .map((service) => service.id),
+ email: rechnung.email,
+ empfaenger: rechnung.empfaenger,
+ strasse: rechnung.strasse,
+ plz: rechnung.plz,
+ ort: rechnung.ort,
+ versand_empfaenger: rechnung.versand_empfaenger,
+ versand_strasse: rechnung.versand_strasse,
+ versand_plz: rechnung.versand_plz,
+ versand_ort: rechnung.versand_ort,
+ telefon: rechnung.telefon,
+ ausweis_uid: ausweis.uid,
+ ausweis_typ,
+ },
+ {
+ headers: {
+ Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
+ },
}
- })
+ );
// Alle alten Ausweisdateien im localStorage löschen.
localStorage.clear();
-
- if (bezahlmethode === Enums.Bezahlmethoden.rechnung) {
- window.location.href = `/payment/success?r=${uid}&a=${ausweis.uid}`
+
+ if (aktiveBezahlmethode === Enums.Bezahlmethoden.rechnung) {
+ window.location.href = `/payment/success?r=${uid}&a=${ausweis.uid}`;
} else {
window.location.href = checkout_url as string;
}
- } catch(e) {
- }
+ } catch (e) {}
}
-
/**
* TODO
* Ausschlusskriterien: Neubau, Modernisierung
@@ -169,11 +189,26 @@
Fehlende Angaben zum Sanierungsstand (Bei F mindestens 2 Haken), (Bei G mindestens 1 Haken)
*/
let bestellenNichtMoeglich = false;
- if (((ausweis.ausstellgrund === "Neubau" || ausweis.ausstellgrund === "Modernisierung") && aufnahme.baujahr_gebaeude[0] < 1978 && aufnahme.saniert === false && aufnahme.einheiten && aufnahme.einheiten > 4) || (new Date().getFullYear() - aufnahme.baujahr_heizung[0] < 3) || (!ausweis.verbrauch_1 || !ausweis.verbrauch_2 || !ausweis.verbrauch_3) || (aufnahme.leerstand && aufnahme.leerstand > 30)) {
- bestellenNichtMoeglich = true
+ if (
+ ((ausweis.ausstellgrund === "Neubau" ||
+ ausweis.ausstellgrund === "Modernisierung") &&
+ aufnahme.baujahr_gebaeude[0] < 1978 &&
+ aufnahme.saniert === false &&
+ aufnahme.einheiten &&
+ aufnahme.einheiten > 4) ||
+ new Date().getFullYear() - aufnahme.baujahr_heizung[0] < 3 ||
+ !ausweis.verbrauch_1 ||
+ !ausweis.verbrauch_2 ||
+ !ausweis.verbrauch_3 ||
+ (aufnahme.leerstand && aufnahme.leerstand > 30)
+ ) {
+ bestellenNichtMoeglich = true;
}
-const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (ausweisart === Enums.Ausweisart.GEGNachweisBedarfsausweis) || (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe)
+ const gegAnfrage =
+ ausweisart === Enums.Ausweisart.GEGNachweisWohnen ||
+ ausweisart === Enums.Ausweisart.GEGNachweisBedarfsausweis ||
+ ausweisart === Enums.Ausweisart.GEGNachweisGewerbe;
-{#if !gegAnfrage}
-
-{/if}
+ {#if !gegAnfrage}
+
+ {/if}
Energiesausweis erstellen
- {ausweisart} {prices[0]} €
+ {ausweisart}
+ {prices[0]} €
{#if gegAnfrage}
-
+
{:else}
-
+
{/if}
@@ -224,72 +266,107 @@ const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (auswe
>
{#if !gegAnfrage}
-
-
-
-
-
Zusatzleistungen:
+
+
+
+
+
Zusatzleistungen:
- {#each services as service}
-
-
-
- {@html service.price} € inkl. Mwst
-
-
{@html service.name}
-
- {/each}
-
-
-
-
Kosten:
-
-
-
-
Netto-Preis Energieausweis
-
:
-
- {(price * 0.81).toFixed(2) + " €"}
-
-
-
-
-
Zusatzleistung (Prüfung Mehraufwand)
-
:
-
0.00 €
-
-
-
-
19% gesetzl. MwSt.
-
:
-
- {(price * 0.19).toFixed(2) + " €"}
-
-
-
-
Preis inkl. MwSt.
-
:
-
- {price.toFixed(2) + " €"}
-
-
-
-
Bezahlmethode
-
:
-
-
+
+
+ {@html service.price} € inkl. Mwst
+
+
{@html service.name}
+
+ {/each}
+
+
+
+
Kosten:
+
+
+
+
Netto-Preis Energieausweis
+
:
+
+ {(price * 0.81).toFixed(2) + " €"}
+
+
+
+
+
Zusatzleistung (Prüfung Mehraufwand)
+
:
+
0.00 €
+
+
+
+
19% gesetzl. MwSt.
+
:
+
+ {(price * 0.19).toFixed(2) + " €"}
+
+
+
+
Preis inkl. MwSt.
+
:
+
+ {price.toFixed(2) + " €"}
+
+
+
+
Bezahlmethode
+
:
+
+
+
-
{/if}
Speichern
{#if gegAnfrage}
- Angebot anfordern
+ Angebot anfordern
{:else}
- Kostenpflichtig bestellen
+ Kostenpflichtig bestellen
{/if}
-
-
-
+