diff --git a/src/lib/server/invoice.ts b/src/lib/server/invoice.ts index ae659d6b..1181dccc 100644 --- a/src/lib/server/invoice.ts +++ b/src/lib/server/invoice.ts @@ -281,6 +281,24 @@ export async function createInvoice( }; } +export async function getLexOfficeVoucherNumber(rechnung: Rechnung) { + const request = await fetch( + `https://api.lexoffice.io/v1/invoices/${rechnung.lex_office_id}`, + { + method: "GET", + headers: { + Accept: `application/json`, + Authorization: `Bearer ${LEX_OFFICE_API_KEY}`, + "Content-Type": "application/json", + }, + } + ); + + const response = await request.json(); + + return response["voucherNumber"] +} + /** diff --git a/src/pages/api/admin/ausstellen.ts b/src/pages/api/admin/ausstellen.ts index aa77088f..b013bb27 100644 --- a/src/pages/api/admin/ausstellen.ts +++ b/src/pages/api/admin/ausstellen.ts @@ -20,7 +20,7 @@ import { BASE_URI } from "#lib/constants.js"; import { getAnsichtsausweis, getDatenblatt } from "#lib/server/ausweis.js"; import { PutObjectCommand } from "@aws-sdk/client-s3"; import { s3Client } from "#lib/s3.js"; -import { createInvoice, getLexOfficeRechnung } from "#lib/server/invoice.js"; +import { createInvoice, getLexOfficeRechnung, getLexOfficeVoucherNumber } from "#lib/server/invoice.js"; import { tryCatch } from "#lib/tryCatch.js"; import SFTPClient from 'ssh2-sftp-client'; import { @@ -95,6 +95,7 @@ export const GET = defineApiRoute({ }); } + let voucherNumber: string = ""; if (!rechnung.lex_office_id) { const [result, error] = await tryCatch( createInvoice(ausweis, rechnung) @@ -109,7 +110,9 @@ export const GET = defineApiRoute({ }); } - const { id, voucherNumber } = result; + const { id, voucherNumber: lexOfficeVoucherNumber } = result; + + voucherNumber = lexOfficeVoucherNumber; await prisma.rechnung.update({ where: { @@ -119,6 +122,8 @@ export const GET = defineApiRoute({ lex_office_id: id, }, }); + } else { + voucherNumber = await getLexOfficeVoucherNumber(rechnung) } const pdfAusweis = await getAnsichtsausweis( @@ -283,7 +288,7 @@ export const GET = defineApiRoute({ IBAN:\t DE81 2004 0000 0348 6008 00 BIC:\t COBADEFFXXX Betrag:\t ${rechnung.betrag}€ - Verwendungszweck:\t ${rechnung.lex_office_id} + Verwendungszweck:\t ${voucherNumber}