From 068a7b81d5f52793c97d0fc7130220fb901bcd4d Mon Sep 17 00:00:00 2001 From: Thomas Reitz Date: Wed, 11 Mar 2026 18:37:23 +0100 Subject: [PATCH] =?UTF-8?q?fix(crm):=20fix=20voucher=20ID=20mapping=20?= =?UTF-8?q?=E2=80=94=20Lexware=20API=20returns=20'id'=20not=20'voucherId'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The voucherlist endpoint returns items with 'id' field, but our interface defined it as 'voucherId', causing undefined IDs when fetching voucher details. Co-Authored-By: Claude Opus 4.6 --- .../src/lexware/interfaces/lexware-api.interfaces.ts | 7 ++++++- .../crm-service/src/lexware/lexware-vouchers.service.ts | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/crm-service/src/lexware/interfaces/lexware-api.interfaces.ts b/packages/crm-service/src/lexware/interfaces/lexware-api.interfaces.ts index 715d516..c7245a1 100644 --- a/packages/crm-service/src/lexware/interfaces/lexware-api.interfaces.ts +++ b/packages/crm-service/src/lexware/interfaces/lexware-api.interfaces.ts @@ -101,15 +101,20 @@ export interface LexwareContactCreateResponse { // -------------------------------------------------------- export interface LexwareVoucherListItem { - voucherId: string; + id: string; voucherType: string; voucherNumber: string; voucherDate: string; voucherStatus: string; totalAmount: number; + openAmount?: number; currency: string; contactId?: string; contactName?: string; + dueDate?: string; + createdDate?: string; + updatedDate?: string; + archived?: boolean; } export interface LexwareVoucherListResponse { diff --git a/packages/crm-service/src/lexware/lexware-vouchers.service.ts b/packages/crm-service/src/lexware/lexware-vouchers.service.ts index a0fe278..a6cdadc 100644 --- a/packages/crm-service/src/lexware/lexware-vouchers.service.ts +++ b/packages/crm-service/src/lexware/lexware-vouchers.service.ts @@ -78,7 +78,7 @@ export class LexwareVouchersService { const endpoint = voucherTypeToLexwareEndpoint(crmVoucherType); const detail = await this.lexwareClient.get( - `/v1/${endpoint}/${item.voucherId}`, + `/v1/${endpoint}/${item.id}`, ); const cacheData = voucherDetailToCacheData( @@ -92,12 +92,12 @@ export class LexwareVouchersService { where: { tenantId_lexwareVoucherId: { tenantId, - lexwareVoucherId: item.voucherId, + lexwareVoucherId: item.id, }, }, create: { tenantId, - lexwareVoucherId: item.voucherId, + lexwareVoucherId: item.id, ...cacheData, companyId: companyId || undefined, contactId: contactId || undefined, @@ -114,7 +114,7 @@ export class LexwareVouchersService { totalUpserted++; } catch (error) { this.logger.warn( - `Fehler beim Laden von Beleg ${item.voucherId}: ${error instanceof Error ? error.message : 'Unbekannt'}`, + `Fehler beim Laden von Beleg ${item.id}: ${error instanceof Error ? error.message : 'Unbekannt'}`, ); } }