Rechnungsadresse ändern
This commit is contained in:
@@ -13,6 +13,10 @@ export const createCaller = createCallerFactory({
|
|||||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.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/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.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"),
|
"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"),
|
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||||
"user": await import("../src/pages/api/user/index.ts"),
|
"user": await import("../src/pages/api/user/index.ts"),
|
||||||
"user/self": await import("../src/pages/api/user/self.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/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
||||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||||
|
|||||||
@@ -257,6 +257,12 @@
|
|||||||
|
|
||||||
let bedarfsausweisFileInput: HTMLInputElement;
|
let bedarfsausweisFileInput: HTMLInputElement;
|
||||||
let bedarfsausweisAdditionalInput: HTMLInputElement;
|
let bedarfsausweisAdditionalInput: HTMLInputElement;
|
||||||
|
|
||||||
|
let dropdownOpen = false;
|
||||||
|
|
||||||
|
function toggleDropdown() {
|
||||||
|
dropdownOpen = !dropdownOpen;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="relative bg-base-200 border border-base-300 rounded-lg p-4 mx-2">
|
<div class="relative bg-base-200 border border-base-300 rounded-lg p-4 mx-2">
|
||||||
@@ -273,30 +279,41 @@
|
|||||||
{/if}
|
{/if}
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div
|
<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} />
|
<DotsVertical size={15} />
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
|
{#if dropdownOpen}
|
||||||
<ul
|
<ul
|
||||||
tabindex="-1"
|
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>
|
<div>
|
||||||
<button on:click={ausweisStornieren}
|
<button on:click={ausweisStornieren} class="flex items-center gap-2" disabled
|
||||||
><CrossCircled size={15} />Ausweis Stornieren</button
|
><CrossCircled size={15} />Stornieren</button
|
||||||
>
|
>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
<div>
|
||||||
<button><Pencil2 size={15} /> Als Vorlage benutzen</button>
|
<button class="flex items-center gap-2" disabled
|
||||||
</li>
|
><Pencil2 size={15} /> Als Vorlage</button>
|
||||||
<li>
|
</div>
|
||||||
<button on:click={() => hilfeModal.showModal()}
|
<div>
|
||||||
|
<button on:click={() => hilfeModal.showModal()} class="flex items-center gap-2" disabled
|
||||||
><QuestionMarkCircled size={15} /> Hilfe Erhalten</button
|
><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>
|
</ul>
|
||||||
</div>
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
<div class="flex flex-row flex-wrap items-center gap-2">
|
<div class="flex flex-row flex-wrap items-center gap-2">
|
||||||
{#if ausweis.ausgestellt}
|
{#if ausweis.ausgestellt}
|
||||||
<span class="bg-green-600 px-2 py-0.5 text-sm font-semibold rounded-lg text-white">Ausgestellt</span>
|
<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 rechnung: RechnungClient | null = null;
|
||||||
export let ausweisart: Enums.Ausweisart;
|
export let ausweisart: Enums.Ausweisart;
|
||||||
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
|
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
|
||||||
|
|
||||||
export let partner_code: string;
|
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;
|
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 || "";
|
vorname = impersonatedUser.vorname || "";
|
||||||
name = impersonatedUser.name || "";
|
name = impersonatedUser.name || "";
|
||||||
telefon = impersonatedUser.telefon || "";
|
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,
|
let versand_email: string | undefined,
|
||||||
versand_zusatzzeile: string | undefined,
|
versand_zusatzzeile: string | undefined,
|
||||||
@@ -77,16 +85,13 @@
|
|||||||
versand_strasse: string | undefined,
|
versand_strasse: string | undefined,
|
||||||
versand_plz: string | undefined,
|
versand_plz: string | undefined,
|
||||||
versand_ort: string | undefined;
|
versand_ort: string | undefined;
|
||||||
$: {
|
|
||||||
if (!abweichende_versand_adresse) {
|
versand_email = "";//Todo Datenbankfeld fehlt noch
|
||||||
versand_email = email
|
versand_zusatzzeile = rechnung?.versand_zusatzzeile ?? zusatzzeile;
|
||||||
versand_zusatzzeile = zusatzzeile
|
versand_empfaenger = rechnung?.versand_empfaenger ?? empfaenger;
|
||||||
versand_empfaenger = empfaenger
|
versand_strasse = rechnung?.versand_strasse ?? strasse;
|
||||||
versand_strasse = strasse
|
versand_plz = rechnung?.versand_plz ?? plz;
|
||||||
versand_plz = plz
|
versand_ort = rechnung?.versand_ort ?? ort;
|
||||||
versand_ort = ort
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
// Wir speichern jede Änderung an den Kundendaten im localStorage ab.
|
// Wir speichern jede Änderung an den Kundendaten im localStorage ab.
|
||||||
@@ -274,6 +279,39 @@
|
|||||||
|
|
||||||
resultUser = await benutzerSpeichern(benutzerObjekt);
|
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) {
|
} catch(e) {
|
||||||
addNotification({
|
addNotification({
|
||||||
dismissable: true,
|
dismissable: true,
|
||||||
@@ -369,6 +407,7 @@
|
|||||||
strasse: strasse,
|
strasse: strasse,
|
||||||
plz: plz,
|
plz: plz,
|
||||||
ort: ort,
|
ort: ort,
|
||||||
|
zusatzzeile: zusatzzeile,
|
||||||
versand_empfaenger: versand_empfaenger,
|
versand_empfaenger: versand_empfaenger,
|
||||||
versand_strasse: versand_strasse,
|
versand_strasse: versand_strasse,
|
||||||
versand_plz: versand_plz,
|
versand_plz: versand_plz,
|
||||||
@@ -399,13 +438,16 @@
|
|||||||
strasse: strasse,
|
strasse: strasse,
|
||||||
plz: plz,
|
plz: plz,
|
||||||
ort: ort,
|
ort: ort,
|
||||||
|
zusatzzeile: zusatzzeile,
|
||||||
versand_empfaenger: versand_empfaenger,
|
versand_empfaenger: versand_empfaenger,
|
||||||
versand_strasse: versand_strasse,
|
versand_strasse: versand_strasse,
|
||||||
versand_plz: versand_plz,
|
versand_plz: versand_plz,
|
||||||
versand_ort: versand_ort,
|
versand_ort: versand_ort,
|
||||||
|
versand_zusatzzeile: versand_zusatzzeile,
|
||||||
telefon: telefon,
|
telefon: telefon,
|
||||||
ausweis_id: ausweis.id,
|
ausweis_id: ausweis.id,
|
||||||
partner_code
|
partner_code,
|
||||||
|
abweichende_versand_adresse: abweichende_versand_adresse
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
@@ -445,6 +487,7 @@
|
|||||||
let form: HTMLFormElement;
|
let form: HTMLFormElement;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
{#if !nurRechnungsadresseUpdate}
|
||||||
<div
|
<div
|
||||||
id="skala"
|
id="skala"
|
||||||
class="bg-white grid grid-cols-1 gap-x-8 gap-y-4 px-0 sm:p-4
|
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"} />
|
<Progressbar active={1} {ausweisart} ausweistyp={ausweis.ausweistyp} anliegen={"Energieausweis erstellen"} />
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
<form id="formInput-2" bind:this={form}>
|
<form id="formInput-2" bind:this={form}>
|
||||||
<div id="formular-box" class="formular-boxen ring-0">
|
<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>
|
</div>
|
||||||
|
|
||||||
<!-- E-mail -->
|
<!-- E-mail -->
|
||||||
|
<!-- Versand Email wird derzeit nicht verwendet
|
||||||
<div class="input-standard order-12 md:order-12 xl:order-12">
|
<div class="input-standard order-12 md:order-12 xl:order-12">
|
||||||
<InputLabel title="E-mail *"></InputLabel>
|
<InputLabel title="E-mail *"></InputLabel>
|
||||||
|
|
||||||
@@ -797,7 +840,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
|||||||
</HelpLabel>
|
</HelpLabel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
<!-- Telefon
|
<!-- Telefon
|
||||||
|
|
||||||
<div class="input-standard order-[13] md:order-[13] xl:order-[13]">
|
<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
|
</Bereich
|
||||||
>
|
>
|
||||||
|
|
||||||
{#if !gegAnfrage}
|
{#if !gegAnfrage && !nurRechnungsadresseUpdate}
|
||||||
<Bereich bereich="3" title="Bezahlmethode">
|
<Bereich bereich="3" title="Bezahlmethode">
|
||||||
<div
|
<div
|
||||||
id="bezahlung"
|
id="bezahlung"
|
||||||
@@ -932,7 +975,7 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center"
|
|||||||
{/if}
|
{/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. -->
|
<!-- 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="grid grid-cols-1 sm:grid-cols-1 gap-x-6 my-6">
|
||||||
<div class="pruefpunkte bereich-box bg-white">
|
<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>
|
<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>
|
<button class="order-2 button" type="button" on:click={() => speichern()}>Speichern</button>
|
||||||
|
|
||||||
{#if rechnung && rechnung.status === "paid"}
|
{#if !nurRechnungsadresseUpdate}
|
||||||
<!-- Von einer GEG Anfrage sollte man sowieso nicht noch mal auf die Kundendaten Seite gelangen, also brauchen wir das hier nicht. -->
|
{#if rechnung && rechnung.status === "paid"}
|
||||||
<button
|
<!-- Von einer GEG Anfrage sollte man sowieso nicht noch mal auf die Kundendaten Seite gelangen, also brauchen wir das hier nicht. -->
|
||||||
class="order-1 sm:order-2 button cursor-pointer"
|
|
||||||
data-cy="bestellen"
|
|
||||||
type="button"
|
|
||||||
on:click={() => bestellen()}>Absenden</button
|
|
||||||
>
|
|
||||||
{:else}
|
|
||||||
{#if gegAnfrage}
|
|
||||||
<button
|
<button
|
||||||
class="order-1 sm:order-2 button cursor-pointer"
|
class="order-1 sm:order-2 button cursor-pointer"
|
||||||
type="button"
|
|
||||||
data-cy="bestellen"
|
data-cy="bestellen"
|
||||||
on:click={anfordern}>Angebot anfordern</button
|
type="button"
|
||||||
|
on:click={() => bestellen()}>Absenden</button
|
||||||
>
|
>
|
||||||
{:else}
|
{:else}
|
||||||
<button
|
{#if gegAnfrage}
|
||||||
class="order-1 sm:order-2 button cursor-pointer"
|
<button
|
||||||
data-cy="bestellen"
|
class="order-1 sm:order-2 button cursor-pointer"
|
||||||
type="button"
|
type="button"
|
||||||
on:click={() => bestellen()}>Kostenpflichtig bestellen</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}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,14 @@ export const PATCH = defineApiRoute({
|
|||||||
strasse: true,
|
strasse: true,
|
||||||
telefon: true,
|
telefon: true,
|
||||||
empfaenger: true,
|
empfaenger: true,
|
||||||
|
zusatzzeile: true,
|
||||||
versand_empfaenger: true,
|
versand_empfaenger: true,
|
||||||
versand_ort: true,
|
versand_ort: true,
|
||||||
versand_plz: true,
|
versand_plz: true,
|
||||||
versand_strasse: true,
|
versand_strasse: true,
|
||||||
versand_zusatzzeile: true,
|
versand_zusatzzeile: true,
|
||||||
abweichende_versand_adresse: true
|
abweichende_versand_adresse: true,
|
||||||
|
email: true
|
||||||
}),
|
}),
|
||||||
output: z.object({
|
output: z.object({
|
||||||
checkout_url: z.string().optional(),
|
checkout_url: z.string().optional(),
|
||||||
@@ -31,22 +33,39 @@ export const PATCH = defineApiRoute({
|
|||||||
headers: authorizationHeaders,
|
headers: authorizationHeaders,
|
||||||
async fetch(input, context, user) {
|
async fetch(input, context, user) {
|
||||||
// Wir holen uns die Rechnung
|
// Wir holen uns die Rechnung
|
||||||
const rechnung = await prisma.rechnung.findUnique({
|
let rechnung;
|
||||||
where: {
|
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
||||||
id: context.params.id,
|
rechnung = await prisma.rechnung.findUnique({
|
||||||
benutzer: {
|
where: {
|
||||||
id: user.id
|
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: {
|
} else {
|
||||||
bedarfsausweis_gewerbe: true,
|
rechnung = await prisma.rechnung.findUnique({
|
||||||
bedarfsausweis_wohnen: true,
|
where: {
|
||||||
geg_nachweis_gewerbe: true,
|
id: context.params.id
|
||||||
geg_nachweis_wohnen: true,
|
},
|
||||||
verbrauchsausweis_gewerbe: true,
|
include: {
|
||||||
verbrauchsausweis_wohnen: true
|
bedarfsausweis_gewerbe: true,
|
||||||
}
|
bedarfsausweis_wohnen: true,
|
||||||
})
|
geg_nachweis_gewerbe: true,
|
||||||
|
geg_nachweis_wohnen: true,
|
||||||
|
verbrauchsausweis_gewerbe: true,
|
||||||
|
verbrauchsausweis_wohnen: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if (!rechnung) {
|
if (!rechnung) {
|
||||||
throw new APIError({
|
throw new APIError({
|
||||||
@@ -66,12 +85,14 @@ export const PATCH = defineApiRoute({
|
|||||||
strasse: input.strasse,
|
strasse: input.strasse,
|
||||||
telefon: input.telefon,
|
telefon: input.telefon,
|
||||||
empfaenger: input.empfaenger,
|
empfaenger: input.empfaenger,
|
||||||
|
zusatzzeile: input.zusatzzeile,
|
||||||
versand_empfaenger: input.versand_empfaenger,
|
versand_empfaenger: input.versand_empfaenger,
|
||||||
versand_ort: input.versand_ort,
|
versand_ort: input.versand_ort,
|
||||||
versand_plz: input.versand_plz,
|
versand_plz: input.versand_plz,
|
||||||
versand_strasse: input.versand_strasse,
|
versand_strasse: input.versand_strasse,
|
||||||
versand_zusatzzeile: input.versand_zusatzzeile,
|
versand_zusatzzeile: input.versand_zusatzzeile,
|
||||||
abweichende_versand_adresse: input.abweichende_versand_adresse,
|
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