Kundendaten
This commit is contained in:
@@ -5,7 +5,6 @@ export const createCaller = createCallerFactory({
|
||||
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
||||
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
||||
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
|
||||
@@ -13,20 +12,24 @@ export const createCaller = createCallerFactory({
|
||||
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||
"bedarfsausweis-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
|
||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"bedarfsausweis-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"),
|
||||
"geg-nachweis-gewerbe/[uid]": await import("../src/pages/api/geg-nachweis-gewerbe/[uid].ts"),
|
||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||
"geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"),
|
||||
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
|
||||
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
||||
"rechnung/[uid]": await import("../src/pages/api/rechnung/[uid].ts"),
|
||||
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||
"user": await import("../src/pages/api/user/index.ts"),
|
||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||
@@ -34,9 +37,6 @@ export const createCaller = createCallerFactory({
|
||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
||||
"verbrauchsausweis-wohnen/[uid]": await import("../src/pages/api/verbrauchsausweis-wohnen/[uid].ts"),
|
||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||
"rechnung/[uid]": await import("../src/pages/api/rechnung/[uid].ts"),
|
||||
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
||||
"aufnahme/[uid]/bilder": await import("../src/pages/api/aufnahme/[uid]/bilder.ts"),
|
||||
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid]/index.ts"),
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import Sqids from "sqids";
|
||||
import { writable, Writable } from "svelte/store";
|
||||
import { ZodEffects, ZodNullable, ZodOptional, ZodType } from "zod";
|
||||
|
||||
|
||||
@@ -27,12 +27,10 @@
|
||||
import { addNotification } from "#components/Notifications/shared.js";
|
||||
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
|
||||
import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js";
|
||||
import { localStorageSync, writableSync } from "#client/lib/helpers.js";
|
||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
||||
import InputLabel from "#components/labels/InputLabel.svelte";
|
||||
import PlzSuche from "#components/PlzSuche.svelte";
|
||||
import { writable } from "svelte/store";
|
||||
|
||||
|
||||
export let user: Partial<BenutzerClient>;
|
||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||
export let aufnahme: AufnahmeClient;
|
||||
@@ -44,39 +42,32 @@
|
||||
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
|
||||
export let ausweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard;
|
||||
|
||||
const email = localStorageSync(user.email || "", "kundendaten.email")
|
||||
const vorname = localStorageSync(user.vorname || "", "kundendaten.vorname")
|
||||
const name = localStorageSync(user.name || "", "kundendaten.name")
|
||||
const empfaenger = localStorageSync(`${user.vorname} ${user.name}`, "kundendaten.empfaenger", JSON.parse, JSON.stringify)
|
||||
const strasse = localStorageSync(user.adresse || "", "kundendaten.strasse")
|
||||
const plz = localStorageSync(user.plz || "", "kundendaten.plz")
|
||||
const ort = localStorageSync(user.ort || "", "kundendaten.ort")
|
||||
const zusatzzeile = localStorageSync("", "kundendaten.zusatzzeile")
|
||||
const telefon = localStorageSync(user.telefon || "", "kundendaten.telefon")
|
||||
let email = localStorage.getItem("kundendaten.email") || user.email;
|
||||
let vorname = localStorage.getItem("kundendaten.vorname") || user.vorname;
|
||||
let name = localStorage.getItem("kundendaten.name") || user.name;
|
||||
let empfaenger = localStorage.getItem("kundendaten.empfaenger") || `${user.vorname} ${user.name}`
|
||||
let strasse = localStorage.getItem("kundendaten.strasse") || user.adresse;
|
||||
let plz = localStorage.getItem("kundendaten.plz") || user.plz;
|
||||
let ort = localStorage.getItem("kundendaten.ort") || user.ort;
|
||||
let zusatzzeile = localStorage.getItem("kundendaten.zusatzzeile")
|
||||
let telefon = localStorage.getItem("kundendaten.telefon") || user.telefon;
|
||||
|
||||
const abweichende_versand_adresse = localStorageSync(false, "kundendaten.abweichende_versand_adresse", JSON.parse, JSON.stringify)
|
||||
let abweichende_versand_adresse = JSON.parse(localStorage.getItem("kundendaten.abweichende_versand_adresse") || "false")
|
||||
|
||||
let versand_email,
|
||||
versand_zusatzzeile,
|
||||
versand_empfaenger,
|
||||
versand_strasse,
|
||||
versand_plz,
|
||||
versand_ort;
|
||||
let versand_email: string,
|
||||
versand_zusatzzeile: string,
|
||||
versand_empfaenger: string,
|
||||
versand_strasse: string,
|
||||
versand_plz: string,
|
||||
versand_ort: string;
|
||||
$: {
|
||||
if ($abweichende_versand_adresse) {
|
||||
versand_email = writable($email)
|
||||
versand_zusatzzeile = writable($zusatzzeile)
|
||||
versand_empfaenger = writable($empfaenger)
|
||||
versand_strasse = writable($strasse)
|
||||
versand_plz = writable($plz)
|
||||
versand_ort = writable($ort)
|
||||
} else {
|
||||
versand_email = writableSync(email)
|
||||
versand_zusatzzeile = writableSync(zusatzzeile)
|
||||
versand_empfaenger = writableSync(empfaenger)
|
||||
versand_strasse = writableSync(strasse)
|
||||
versand_plz = writableSync(plz)
|
||||
versand_ort = writableSync(ort)
|
||||
if (!abweichende_versand_adresse) {
|
||||
versand_email = email
|
||||
versand_zusatzzeile = zusatzzeile
|
||||
versand_empfaenger = empfaenger
|
||||
versand_strasse = strasse
|
||||
versand_plz = plz
|
||||
versand_ort = ort
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,16 +165,16 @@
|
||||
try {
|
||||
const { uid } = await api.rechnung.anfordern.PUT.fetch(
|
||||
{
|
||||
email: $email,
|
||||
empfaenger: $empfaenger,
|
||||
strasse: $strasse,
|
||||
plz: $plz,
|
||||
ort: $ort,
|
||||
versand_empfaenger: $versand_empfaenger,
|
||||
versand_strasse: $versand_strasse,
|
||||
versand_plz: $versand_plz,
|
||||
versand_ort: $versand_ort,
|
||||
telefon: $telefon,
|
||||
email: email,
|
||||
empfaenger: empfaenger,
|
||||
strasse: strasse,
|
||||
plz: plz,
|
||||
ort: ort,
|
||||
versand_empfaenger: versand_empfaenger,
|
||||
versand_strasse: versand_strasse,
|
||||
versand_plz: versand_plz,
|
||||
versand_ort: versand_ort,
|
||||
telefon: telefon,
|
||||
nachweis_uid: result.uid_nachweis,
|
||||
},
|
||||
{
|
||||
@@ -296,17 +287,17 @@
|
||||
if (rechnung) {
|
||||
const result = await api.rechnung._uid.PATCH.fetch({
|
||||
bezahlmethode: aktiveBezahlmethode,
|
||||
abweichende_versand_adresse: $abweichende_versand_adresse,
|
||||
empfaenger: $empfaenger,
|
||||
strasse: $strasse,
|
||||
plz: $plz,
|
||||
ort: $ort,
|
||||
versand_empfaenger: $versand_empfaenger,
|
||||
versand_strasse: $versand_strasse,
|
||||
versand_plz: $versand_plz,
|
||||
versand_ort: $versand_ort,
|
||||
telefon: $telefon,
|
||||
versand_zusatzzeile: $versand_zusatzzeile
|
||||
abweichende_versand_adresse: abweichende_versand_adresse,
|
||||
empfaenger: empfaenger,
|
||||
strasse: strasse,
|
||||
plz: plz,
|
||||
ort: ort,
|
||||
versand_empfaenger: versand_empfaenger,
|
||||
versand_strasse: versand_strasse,
|
||||
versand_plz: versand_plz,
|
||||
versand_ort: versand_ort,
|
||||
telefon: telefon,
|
||||
versand_zusatzzeile: versand_zusatzzeile
|
||||
}, {
|
||||
params: {
|
||||
uid: rechnung.uid
|
||||
@@ -326,16 +317,16 @@
|
||||
services: services
|
||||
.filter((service) => service.selected)
|
||||
.map((service) => service.id),
|
||||
email: $email,
|
||||
empfaenger: $empfaenger,
|
||||
strasse: $strasse,
|
||||
plz: $plz,
|
||||
ort: $ort,
|
||||
versand_empfaenger: $versand_empfaenger,
|
||||
versand_strasse: $versand_strasse,
|
||||
versand_plz: $versand_plz,
|
||||
versand_ort: $versand_ort,
|
||||
telefon: $telefon,
|
||||
email: email,
|
||||
empfaenger: empfaenger,
|
||||
strasse: strasse,
|
||||
plz: plz,
|
||||
ort: ort,
|
||||
versand_empfaenger: versand_empfaenger,
|
||||
versand_strasse: versand_strasse,
|
||||
versand_plz: versand_plz,
|
||||
versand_ort: versand_ort,
|
||||
telefon: telefon,
|
||||
ausweis_uid: ausweis.uid,
|
||||
ausweistyp,
|
||||
},
|
||||
@@ -455,7 +446,7 @@
|
||||
<div class="input-standard order-1 md:order-1 xl:order-1">
|
||||
<InputLabel title="Vorname *"></InputLabel>
|
||||
|
||||
<input name="vorname" type="text" bind:value={$vorname} required />
|
||||
<input name="vorname" type="text" bind:value={vorname} required />
|
||||
|
||||
<div class="help-label">
|
||||
<HelpLabel>
|
||||
@@ -469,7 +460,7 @@
|
||||
<div class="input-standard order-2 md:order-2 xl:order-2">
|
||||
<InputLabel title="Nachname *"></InputLabel>
|
||||
|
||||
<input name="name" type="text" bind:value={$name} required />
|
||||
<input name="name" type="text" bind:value={name} required />
|
||||
|
||||
<div class="help-label">
|
||||
<HelpLabel>
|
||||
@@ -484,7 +475,7 @@
|
||||
<div class="input-standard order-3 md:order-3 xl:order-3">
|
||||
<InputLabel title="Telefonnummer *"></InputLabel>
|
||||
|
||||
<input name="telefon" bind:value={$telefon} type="text" required />
|
||||
<input name="telefon" bind:value={telefon} type="text" required />
|
||||
|
||||
<div class="help-label">
|
||||
<HelpLabel>
|
||||
@@ -513,7 +504,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<input
|
||||
name="rechnung_empfaenger"
|
||||
type="text"
|
||||
bind:value={$empfaenger}
|
||||
bind:value={empfaenger}
|
||||
required
|
||||
data-rule-maxlength="100"
|
||||
data-msg-maxlength="max. 100 Zeichen"
|
||||
@@ -534,7 +525,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
|
||||
<input
|
||||
name="rechnung_strasse"
|
||||
bind:value={$strasse}
|
||||
bind:value={strasse}
|
||||
type="text"
|
||||
required
|
||||
data-rule-maxlength="40"
|
||||
@@ -556,8 +547,8 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<InputLabel title="PLZ *"></InputLabel>
|
||||
<PlzSuche
|
||||
name="rechnung_plz"
|
||||
bind:zip={$plz}
|
||||
bind:city={$ort}
|
||||
bind:zip={plz}
|
||||
bind:city={ort}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -568,7 +559,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
name="rechnung_ort"
|
||||
type="text"
|
||||
required
|
||||
bind:value={$ort}
|
||||
bind:value={ort}
|
||||
/>
|
||||
|
||||
<div class="help-label">
|
||||
@@ -587,7 +578,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
|
||||
<input
|
||||
name="rechnung_zusatzzeile"
|
||||
bind:value={$zusatzzeile}
|
||||
bind:value={zusatzzeile}
|
||||
type="text"
|
||||
data-rule-maxlength="80"
|
||||
data-msg-maxlength="max. 80 Zeichen"
|
||||
@@ -606,7 +597,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<div class="input-standard order-5 md:order-5 xl:order-5">
|
||||
<InputLabel title="E-mail *"></InputLabel>
|
||||
|
||||
<input name="rechnung_email" bind:value={$email} type="email" />
|
||||
<input name="rechnung_email" bind:value={email} type="email" />
|
||||
|
||||
<div class="help-label">
|
||||
<HelpLabel>
|
||||
@@ -625,7 +616,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
class="w-[15px] h-[15px]"
|
||||
type="checkbox"
|
||||
name="abweichende_versand_adresse"
|
||||
bind:checked={$abweichende_versand_adresse}
|
||||
bind:checked={abweichende_versand_adresse}
|
||||
/>
|
||||
|
||||
<label for="abweichende_versand_adresse" class="cursor-pointer"
|
||||
@@ -634,7 +625,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{#if $abweichende_versand_adresse}
|
||||
{#if abweichende_versand_adresse}
|
||||
<!-- Versand Empfänger * -->
|
||||
|
||||
<div class="input-standard order-8 md:order-8 xl:order-8">
|
||||
@@ -643,8 +634,8 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<input
|
||||
name="versand_empfaenger"
|
||||
type="text"
|
||||
readonly={!$abweichende_versand_adresse}
|
||||
bind:value={$versand_empfaenger}
|
||||
readonly={!abweichende_versand_adresse}
|
||||
bind:value={versand_empfaenger}
|
||||
required
|
||||
data-rule-maxlength="100"
|
||||
data-msg-maxlength="max. 100 Zeichen"
|
||||
@@ -665,8 +656,8 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<input
|
||||
name="versand_strasse"
|
||||
type="text"
|
||||
readonly={!$abweichende_versand_adresse}
|
||||
bind:value={$versand_strasse}
|
||||
readonly={!abweichende_versand_adresse}
|
||||
bind:value={versand_strasse}
|
||||
required
|
||||
data-rule-maxlength="40"
|
||||
data-msg-maxlength="max. 40 Zeichen"
|
||||
@@ -689,9 +680,9 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<InputLabel title="PLZ *"></InputLabel>
|
||||
<PlzSuche
|
||||
name="versand_plz"
|
||||
readonly={!$abweichende_versand_adresse}
|
||||
bind:zip={$versand_plz}
|
||||
bind:city={$versand_ort}
|
||||
readonly={!abweichende_versand_adresse}
|
||||
bind:zip={versand_plz}
|
||||
bind:city={versand_ort}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -703,7 +694,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
type="text"
|
||||
readonly
|
||||
required
|
||||
bind:value={$versand_ort}
|
||||
bind:value={versand_ort}
|
||||
/>
|
||||
|
||||
<div class="help-label">
|
||||
@@ -723,8 +714,8 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<input
|
||||
name="versand_zusatzzeile"
|
||||
type="text"
|
||||
readonly={!$abweichende_versand_adresse}
|
||||
bind:value={$versand_zusatzzeile}
|
||||
readonly={!abweichende_versand_adresse}
|
||||
bind:value={versand_zusatzzeile}
|
||||
data-rule-maxlength="80"
|
||||
data-msg-maxlength="max. 80 Zeichen"
|
||||
/>
|
||||
@@ -744,7 +735,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
|
||||
<input
|
||||
name="versand_email"
|
||||
bind:value={$versand_email}
|
||||
bind:value={versand_email}
|
||||
type="email"
|
||||
/>
|
||||
|
||||
@@ -929,7 +920,7 @@ sm:grid-cols-[min-content_min-content_min-content] sm:justify-self-end sm:mt-8"
|
||||
|
||||
<Overlay bind:hidden={loginOverlayHidden}>
|
||||
<div class="bg-white w-full max-w-screen-sm py-8">
|
||||
<EmbeddedAuthFlowModule onLogin={loginAction} email={$email}></EmbeddedAuthFlowModule>
|
||||
<EmbeddedAuthFlowModule onLogin={loginAction} email={email}></EmbeddedAuthFlowModule>
|
||||
</div>
|
||||
</Overlay>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user