staging nach main #558
@@ -13,6 +13,10 @@ export const createCaller = createCallerFactory({
|
||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
<<<<<<< Updated upstream
|
||||
=======
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
>>>>>>> Stashed changes
|
||||
"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"),
|
||||
@@ -33,6 +37,8 @@ export const createCaller = createCallerFactory({
|
||||
"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"),
|
||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
||||
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||
|
||||
@@ -257,6 +257,12 @@
|
||||
|
||||
let bedarfsausweisFileInput: HTMLInputElement;
|
||||
let bedarfsausweisAdditionalInput: HTMLInputElement;
|
||||
|
||||
let dropdownOpen = false;
|
||||
|
||||
function toggleDropdown() {
|
||||
dropdownOpen = !dropdownOpen;
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="relative bg-base-200 border border-base-300 rounded-lg p-4 mx-2">
|
||||
@@ -273,30 +279,41 @@
|
||||
{/if}
|
||||
<div class="card-body">
|
||||
<div
|
||||
class="flex justify-end mb-2 dropdown dropdown-bottom absolute top-4 right-4"
|
||||
class="mb-2 dropdown dropdown-bottom absolute top-4 right-4 bg-base-100"
|
||||
>
|
||||
<button class="rounded-full p-2.5 hover:bg-base-100">
|
||||
<button class="rounded-full p-2.5 hover:bg-base-100" on:click={toggleDropdown}>
|
||||
<DotsVertical size={15} />
|
||||
</button>
|
||||
</div>
|
||||
{#if dropdownOpen}
|
||||
<ul
|
||||
tabindex="-1"
|
||||
class="dropdown-content z-[1] menu p-2 shadow bg-base-100 rounded-box w-64 gap-2"
|
||||
class="z-[1] menu p-2 shadow bg-base-100 rounded-box w-64 gap-2 border"
|
||||
>
|
||||
<li>
|
||||
<button on:click={ausweisStornieren}
|
||||
><CrossCircled size={15} />Ausweis Stornieren</button
|
||||
<div>
|
||||
<button on:click={ausweisStornieren} class="flex items-center gap-2" disabled
|
||||
><CrossCircled size={15} />Stornieren</button
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<button><Pencil2 size={15} /> Als Vorlage benutzen</button>
|
||||
</li>
|
||||
<li>
|
||||
<button on:click={() => hilfeModal.showModal()}
|
||||
</div>
|
||||
<div>
|
||||
<button class="flex items-center gap-2" disabled
|
||||
><Pencil2 size={15} /> Als Vorlage</button>
|
||||
</div>
|
||||
<div>
|
||||
<button on:click={() => hilfeModal.showModal()} class="flex items-center gap-2" disabled
|
||||
><QuestionMarkCircled size={15} /> Hilfe Erhalten</button
|
||||
>
|
||||
</li>
|
||||
</div>
|
||||
{#if ausweis.bestellt && rechnung}
|
||||
<div>
|
||||
<a href="/dashboard/rechnung/aendern?rechnungid={rechnung.id}"><button> Rechnungsadresse ändern</button
|
||||
></a>
|
||||
</div>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<div class="flex flex-row flex-wrap items-center gap-2">
|
||||
{#if ausweis.ausgestellt}
|
||||
<span class="bg-green-600 px-2 py-0.5 text-sm font-semibold rounded-lg text-white">Ausgestellt</span>
|
||||
|
||||
@@ -46,9 +46,8 @@
|
||||
export let rechnung: RechnungClient | null = null;
|
||||
export let ausweisart: Enums.Ausweisart;
|
||||
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
|
||||
|
||||
export let partner_code: string;
|
||||
|
||||
export let nurRechnungsadresseUpdate: Boolean | null = false;
|
||||
|
||||
let email: string, vorname: string, name: string, empfaenger: string, strasse: string, plz: string, ort: string, zusatzzeile: string, telefon: string;
|
||||
|
||||
@@ -67,9 +66,18 @@
|
||||
vorname = impersonatedUser.vorname || "";
|
||||
name = impersonatedUser.name || "";
|
||||
telefon = impersonatedUser.telefon || "";
|
||||
email = impersonatedUser.email || "";
|
||||
if (rechnung){
|
||||
empfaenger = rechnung?.empfaenger || "";
|
||||
strasse = rechnung?.strasse || "";
|
||||
plz = rechnung?.plz || "";
|
||||
ort = rechnung?.ort || "";
|
||||
zusatzzeile = rechnung?.zusatzzeile || "";
|
||||
email = rechnung?.email || "";
|
||||
}
|
||||
}
|
||||
|
||||
let abweichende_versand_adresse = JSON.parse(localStorage.getItem("kundendaten.abweichende_versand_adresse") || "false")
|
||||
let abweichende_versand_adresse = rechnung?.abweichende_versand_adresse ?? JSON.parse(localStorage.getItem("kundendaten.abweichende_versand_adresse") || "false")
|
||||
|
||||
let versand_email: string | undefined,
|
||||
versand_zusatzzeile: string | undefined,
|
||||
@@ -77,16 +85,13 @@
|
||||
versand_strasse: string | undefined,
|
||||
versand_plz: string | undefined,
|
||||
versand_ort: string | undefined;
|
||||
$: {
|
||||
if (!abweichende_versand_adresse) {
|
||||
versand_email = email
|
||||
versand_zusatzzeile = zusatzzeile
|
||||
versand_empfaenger = empfaenger
|
||||
versand_strasse = strasse
|
||||
versand_plz = plz
|
||||
versand_ort = ort
|
||||
}
|
||||
}
|
||||
|
||||
versand_email = "";//Todo Datenbankfeld fehlt noch
|
||||
versand_zusatzzeile = rechnung?.versand_zusatzzeile ?? zusatzzeile;
|
||||
versand_empfaenger = rechnung?.versand_empfaenger ?? empfaenger;
|
||||
versand_strasse = rechnung?.versand_strasse ?? strasse;
|
||||
versand_plz = rechnung?.versand_plz ?? plz;
|
||||
versand_ort = rechnung?.versand_ort ?? ort;
|
||||
|
||||
$: {
|
||||
// Wir speichern jede Änderung an den Kundendaten im localStorage ab.
|
||||
@@ -274,6 +279,39 @@
|
||||
|
||||
resultUser = await benutzerSpeichern(benutzerObjekt);
|
||||
|
||||
|
||||
let id: string, checkout_url: string | undefined;
|
||||
|
||||
if (rechnung) {
|
||||
const result = await api.rechnung._id.PATCH.fetch({
|
||||
bezahlmethode: aktiveBezahlmethode,
|
||||
abweichende_versand_adresse: abweichende_versand_adresse,
|
||||
empfaenger: empfaenger,
|
||||
strasse: strasse,
|
||||
plz: plz,
|
||||
ort: ort,
|
||||
zusatzzeile: zusatzzeile,
|
||||
versand_empfaenger: versand_empfaenger,
|
||||
versand_strasse: versand_strasse,
|
||||
versand_plz: versand_plz,
|
||||
versand_ort: versand_ort,
|
||||
telefon: telefon,
|
||||
email: email,
|
||||
versand_zusatzzeile: versand_zusatzzeile
|
||||
}, {
|
||||
params: {
|
||||
id: rechnung.id
|
||||
},
|
||||
headers: {
|
||||
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
|
||||
},
|
||||
})
|
||||
|
||||
id = result.id
|
||||
checkout_url = result.checkout_url
|
||||
}
|
||||
|
||||
|
||||
} catch(e) {
|
||||
addNotification({
|
||||
dismissable: true,
|
||||
@@ -369,6 +407,7 @@
|
||||
strasse: strasse,
|
||||
plz: plz,
|
||||
ort: ort,
|
||||
zusatzzeile: zusatzzeile,
|
||||
versand_empfaenger: versand_empfaenger,
|
||||
versand_strasse: versand_strasse,
|
||||
versand_plz: versand_plz,
|
||||
@@ -399,13 +438,16 @@
|
||||
strasse: strasse,
|
||||
plz: plz,
|
||||
ort: ort,
|
||||
zusatzzeile: zusatzzeile,
|
||||
versand_empfaenger: versand_empfaenger,
|
||||
versand_strasse: versand_strasse,
|
||||
versand_plz: versand_plz,
|
||||
versand_ort: versand_ort,
|
||||
versand_zusatzzeile: versand_zusatzzeile,
|
||||
telefon: telefon,
|
||||
ausweis_id: ausweis.id,
|
||||
partner_code
|
||||
partner_code,
|
||||
abweichende_versand_adresse: abweichende_versand_adresse
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
@@ -445,6 +487,7 @@
|
||||
let form: HTMLFormElement;
|
||||
</script>
|
||||
|
||||
{#if !nurRechnungsadresseUpdate}
|
||||
<div
|
||||
id="skala"
|
||||
class="bg-white grid grid-cols-1 gap-x-8 gap-y-4 px-0 sm:p-4
|
||||
@@ -475,7 +518,7 @@
|
||||
<Progressbar active={1} {ausweisart} ausweistyp={ausweis.ausweistyp} anliegen={"Energieausweis erstellen"} />
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{/if}
|
||||
|
||||
<form id="formInput-2" bind:this={form}>
|
||||
<div id="formular-box" class="formular-boxen ring-0">
|
||||
@@ -780,7 +823,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
</div>
|
||||
|
||||
<!-- E-mail -->
|
||||
|
||||
<!-- Versand Email wird derzeit nicht verwendet
|
||||
<div class="input-standard order-12 md:order-12 xl:order-12">
|
||||
<InputLabel title="E-mail *"></InputLabel>
|
||||
|
||||
@@ -797,7 +840,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
</HelpLabel>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
-->
|
||||
<!-- Telefon
|
||||
|
||||
<div class="input-standard order-[13] md:order-[13] xl:order-[13]">
|
||||
@@ -821,7 +864,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
</Bereich
|
||||
>
|
||||
|
||||
{#if !gegAnfrage}
|
||||
{#if !gegAnfrage && !nurRechnungsadresseUpdate}
|
||||
<Bereich bereich="3" title="Bezahlmethode">
|
||||
<div
|
||||
id="bezahlung"
|
||||
@@ -932,7 +975,7 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center"
|
||||
{/if}
|
||||
|
||||
<!-- Falls wir es mit einem Ausweis zu tun haben und der Nutzer keine Hilfe bestellt hat dann zeigen wir eine Box mit sachen an die vielleicht unklar sind. -->
|
||||
{#if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen || ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) && (ausweis.ausweistyp === Enums.AusweisTyp.Standard || ausweis.ausweistyp === Enums.AusweisTyp.standardXL)}
|
||||
{#if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen || ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) && (ausweis.ausweistyp === Enums.AusweisTyp.Standard || ausweis.ausweistyp === Enums.AusweisTyp.standardXL) && (!nurRechnungsadresseUpdate)}
|
||||
<div class="grid grid-cols-1 sm:grid-cols-1 gap-x-6 my-6">
|
||||
<div class="pruefpunkte bereich-box bg-white">
|
||||
<h3>Bitte untenstehende Punkte bestätigen. Bitte gehen Sie gegebenenfalls zurück zum Formular und überprüfen bzw. korrigieren Ihre Eingaben.</h3>
|
||||
@@ -1115,29 +1158,31 @@ sm:grid-cols-[min-content_min-content_min-content] sm:justify-self-end sm:mt-8"
|
||||
|
||||
<button class="order-2 button" type="button" on:click={() => speichern()}>Speichern</button>
|
||||
|
||||
{#if rechnung && rechnung.status === "paid"}
|
||||
<!-- Von einer GEG Anfrage sollte man sowieso nicht noch mal auf die Kundendaten Seite gelangen, also brauchen wir das hier nicht. -->
|
||||
<button
|
||||
class="order-1 sm:order-2 button cursor-pointer"
|
||||
data-cy="bestellen"
|
||||
type="button"
|
||||
on:click={() => bestellen()}>Absenden</button
|
||||
>
|
||||
{:else}
|
||||
{#if gegAnfrage}
|
||||
{#if !nurRechnungsadresseUpdate}
|
||||
{#if rechnung && rechnung.status === "paid"}
|
||||
<!-- Von einer GEG Anfrage sollte man sowieso nicht noch mal auf die Kundendaten Seite gelangen, also brauchen wir das hier nicht. -->
|
||||
<button
|
||||
class="order-1 sm:order-2 button cursor-pointer"
|
||||
type="button"
|
||||
data-cy="bestellen"
|
||||
on:click={anfordern}>Angebot anfordern</button
|
||||
type="button"
|
||||
on:click={() => bestellen()}>Absenden</button
|
||||
>
|
||||
{:else}
|
||||
<button
|
||||
class="order-1 sm:order-2 button cursor-pointer"
|
||||
data-cy="bestellen"
|
||||
type="button"
|
||||
on:click={() => bestellen()}>Kostenpflichtig bestellen</button
|
||||
>
|
||||
{#if gegAnfrage}
|
||||
<button
|
||||
class="order-1 sm:order-2 button cursor-pointer"
|
||||
type="button"
|
||||
data-cy="bestellen"
|
||||
on:click={anfordern}>Angebot anfordern</button
|
||||
>
|
||||
{:else}
|
||||
<button
|
||||
class="order-1 sm:order-2 button cursor-pointer"
|
||||
data-cy="bestellen"
|
||||
type="button"
|
||||
on:click={() => bestellen()}>Kostenpflichtig bestellen</button
|
||||
>
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -16,12 +16,14 @@ export const PATCH = defineApiRoute({
|
||||
strasse: true,
|
||||
telefon: true,
|
||||
empfaenger: true,
|
||||
zusatzzeile: true,
|
||||
versand_empfaenger: true,
|
||||
versand_ort: true,
|
||||
versand_plz: true,
|
||||
versand_strasse: true,
|
||||
versand_zusatzzeile: true,
|
||||
abweichende_versand_adresse: true
|
||||
abweichende_versand_adresse: true,
|
||||
email: true
|
||||
}),
|
||||
output: z.object({
|
||||
checkout_url: z.string().optional(),
|
||||
@@ -31,22 +33,39 @@ export const PATCH = defineApiRoute({
|
||||
headers: authorizationHeaders,
|
||||
async fetch(input, context, user) {
|
||||
// Wir holen uns die Rechnung
|
||||
const rechnung = await prisma.rechnung.findUnique({
|
||||
where: {
|
||||
id: context.params.id,
|
||||
benutzer: {
|
||||
id: user.id
|
||||
let rechnung;
|
||||
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
||||
rechnung = await prisma.rechnung.findUnique({
|
||||
where: {
|
||||
id: context.params.id,
|
||||
benutzer: {
|
||||
id: user.id
|
||||
}
|
||||
},
|
||||
include: {
|
||||
bedarfsausweis_gewerbe: true,
|
||||
bedarfsausweis_wohnen: true,
|
||||
geg_nachweis_gewerbe: true,
|
||||
geg_nachweis_wohnen: true,
|
||||
verbrauchsausweis_gewerbe: true,
|
||||
verbrauchsausweis_wohnen: true
|
||||
}
|
||||
},
|
||||
include: {
|
||||
bedarfsausweis_gewerbe: true,
|
||||
bedarfsausweis_wohnen: true,
|
||||
geg_nachweis_gewerbe: true,
|
||||
geg_nachweis_wohnen: true,
|
||||
verbrauchsausweis_gewerbe: true,
|
||||
verbrauchsausweis_wohnen: true
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
rechnung = await prisma.rechnung.findUnique({
|
||||
where: {
|
||||
id: context.params.id
|
||||
},
|
||||
include: {
|
||||
bedarfsausweis_gewerbe: true,
|
||||
bedarfsausweis_wohnen: true,
|
||||
geg_nachweis_gewerbe: true,
|
||||
geg_nachweis_wohnen: true,
|
||||
verbrauchsausweis_gewerbe: true,
|
||||
verbrauchsausweis_wohnen: true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (!rechnung) {
|
||||
throw new APIError({
|
||||
@@ -66,12 +85,14 @@ export const PATCH = defineApiRoute({
|
||||
strasse: input.strasse,
|
||||
telefon: input.telefon,
|
||||
empfaenger: input.empfaenger,
|
||||
zusatzzeile: input.zusatzzeile,
|
||||
versand_empfaenger: input.versand_empfaenger,
|
||||
versand_ort: input.versand_ort,
|
||||
versand_plz: input.versand_plz,
|
||||
versand_strasse: input.versand_strasse,
|
||||
versand_zusatzzeile: input.versand_zusatzzeile,
|
||||
abweichende_versand_adresse: input.abweichende_versand_adresse,
|
||||
email: input.email
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
108
src/pages/dashboard/rechnung/aendern.astro
Normal file
108
src/pages/dashboard/rechnung/aendern.astro
Normal file
@@ -0,0 +1,108 @@
|
||||
---
|
||||
import { encodeToken } from "#lib/auth/token";
|
||||
import { TokenType } from "#lib/auth/types";
|
||||
import { API_ACCESS_TOKEN_COOKIE_NAME, API_REFRESH_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||
import { Enums, prisma } from "#lib/server/prisma";
|
||||
import moment from "moment";
|
||||
import { createCaller } from "src/astro-typesafe-api-caller";
|
||||
import KundendatenModule from "#modules/KundendatenModule.svelte";
|
||||
import AusweisLayout from "#layouts/AusweisLayoutPruefung.astro";
|
||||
import { getCurrentUser, getOtherUser } from "#lib/server/user";
|
||||
import { getAusweisartFromId } from "#components/Ausweis/types";
|
||||
import { getAufnahme, getBedarfsausweisWohnen, getBilder, getObjekt, getRechnung, getUnterlagen, getVerbrauchsausweisGewerbe, getVerbrauchsausweisWohnen } from "#lib/server/db";
|
||||
import { BenutzerClient } from "#components/Ausweis/types.js";
|
||||
|
||||
function getExistingAusweis(rechnung) {
|
||||
if (rechnung.verbrauchsausweis_wohnen) {
|
||||
return rechnung.verbrauchsausweis_wohnen;
|
||||
}
|
||||
if (rechnung.verbrauchsausweis_gewerbe) {
|
||||
return rechnung.verbrauchsausweis_gewerbe;
|
||||
}
|
||||
if (rechnung.bedarfsausweis_wohnen) {
|
||||
return rechnung.bedarfsausweis_wohnen ;
|
||||
}
|
||||
if (rechnung.bedarfsausweis_gewerbe) {
|
||||
return rechnung.bedarfsausweis_gewerbe;
|
||||
}
|
||||
if (rechnung.geg_nachweis_gewerbe) {
|
||||
return rechnung.geg_nachweis_gewerbe;
|
||||
}
|
||||
if (rechnung.geg_nachweis_wohnen) {
|
||||
return rechnung.geg_nachweis_wohnen;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
const user = await getCurrentUser(Astro);
|
||||
|
||||
if (!user) {
|
||||
return Astro.redirect("/auth/login")
|
||||
}
|
||||
|
||||
const rechnungid = Astro.url.searchParams.get("rechnungid")
|
||||
|
||||
if (!rechnungid) {
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
|
||||
let rechnung;
|
||||
|
||||
//Only Admin can read foreign invoices
|
||||
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
||||
rechnung = await prisma.rechnung.findUnique({
|
||||
where: {
|
||||
id: rechnungid,
|
||||
benutzer_id: user.id
|
||||
},
|
||||
include: {
|
||||
verbrauchsausweis_wohnen: true,
|
||||
verbrauchsausweis_gewerbe: true,
|
||||
bedarfsausweis_wohnen: true,
|
||||
bedarfsausweis_gewerbe: true,
|
||||
geg_nachweis_gewerbe: true,
|
||||
geg_nachweis_wohnen: true
|
||||
}
|
||||
})
|
||||
} else {
|
||||
rechnung = await prisma.rechnung.findUnique({
|
||||
where: {
|
||||
id: rechnungid,
|
||||
},
|
||||
include: {
|
||||
verbrauchsausweis_wohnen: true,
|
||||
verbrauchsausweis_gewerbe: true,
|
||||
bedarfsausweis_wohnen: true,
|
||||
bedarfsausweis_gewerbe: true,
|
||||
geg_nachweis_gewerbe: true,
|
||||
geg_nachweis_wohnen: true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (!rechnung) {
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
|
||||
const ausweis = getExistingAusweis(rechnung);
|
||||
const ausweisart = getAusweisartFromId(ausweis.id)
|
||||
|
||||
let aufnahme, objekt, bilder, unterlagen, partner_code;
|
||||
|
||||
aufnahme = await getAufnahme(ausweis.aufnahme_id)
|
||||
objekt = await getObjekt(aufnahme?.objekt_id)
|
||||
bilder = await getBilder(ausweis.aufnahme_id)
|
||||
unterlagen = await getUnterlagen(ausweis.aufnahme_id)
|
||||
|
||||
|
||||
let impersonatedUser: Partial<BenutzerClient> | null = null;
|
||||
|
||||
if (user){
|
||||
if (user.id !== ausweis.benutzer_id && ausweis.benutzer_id !== undefined){
|
||||
impersonatedUser = await getOtherUser(Astro, ausweis.benutzer_id) || {}
|
||||
}
|
||||
}
|
||||
---
|
||||
<AusweisLayout title="Kundendaten Aufnehmen - IBCornelsen">
|
||||
<KundendatenModule {user} {impersonatedUser} {ausweis} {objekt} {aufnahme} {bilder} {rechnung} {ausweisart} {unterlagen} {partner_code} aktiveBezahlmethode={Enums.Bezahlmethoden.paypal} nurRechnungsadresseUpdate={true} client:only ></KundendatenModule>
|
||||
</AusweisLayout>
|
||||
Reference in New Issue
Block a user