diff --git a/shop/app/my-orders/MyOrdersClient.tsx b/shop/app/my-orders/MyOrdersClient.tsx index 6d0ca95..9afb86d 100644 --- a/shop/app/my-orders/MyOrdersClient.tsx +++ b/shop/app/my-orders/MyOrdersClient.tsx @@ -224,43 +224,70 @@ export function MyOrdersClient({ orders, error }: MyOrdersClientProps) { - {/* Kassen & Produkte Detail-Übersicht */} + {/* Kassen & Produkte Detail-Übersicht (Separate Container-Box je Kasse) */} {items.length > 0 && ( -
+

- Enthaltene Kassen ({items.length}): + Kassenaufstellung ({items.length} {items.length === 1 ? 'Kasse' : 'Kassen'}):

-
- {items.map((item, idx) => ( -
-
- - - {item.device_name || `Kasse ${idx + 1}`} - - - {item.billing_interval === 'one_time' ? 'Kauf' : 'Abo'} - -
-

{item.product_name}

- {item.license_number && ( -

Lizenz: {item.license_number}

- )} - {item.selected_modules && item.selected_modules.length > 0 && ( -
- {item.selected_modules.map((mod: any, mIdx: number) => ( - - + {mod.module_name || mod.name} {mod.quantity > 1 ? `(${mod.quantity}x)` : ''} +
+ {items.map((item, idx) => { + const devName = item.device_name || `K${idx + 1}` + const licNum = item.license_number + const modules = item.selected_modules || [] + + return ( +
+ {/* Kassen Container Header: Name + Lizenznummer daneben */} +
+
+ + {devName} - ))} + {licNum && ( + + Lizenz: + {licNum} + + )} +
+ + {item.billing_interval === 'one_time' ? 'Kauf' : 'Abo'} +
- )} -
- ))} + + {/* Inhalt: Hauptprodukt & Module nach Kategorien */} +
+
+ {item.product_name} + {((item as any).price || item.base_price) && ( + {fmt((item as any).price || item.base_price)} + )} +
+ + {modules.length > 0 && ( +
+ + Enthaltene Zusatzmodule: + +
+ {modules.map((mod: any, mIdx: number) => ( + + + {mod.module_name || mod.name} + {mod.quantity > 1 ? ({mod.quantity}x) : ''} + + ))} +
+
+ )} +
+
+ ) + })}
)} diff --git a/shop/components/customer-accordion-list.tsx b/shop/components/customer-accordion-list.tsx index bdbce0a..72373b3 100644 --- a/shop/components/customer-accordion-list.tsx +++ b/shop/components/customer-accordion-list.tsx @@ -68,13 +68,22 @@ function DeviceCard({ `&device_id=${encodeURIComponent(device.deviceId)}` return ( -
+
{/* Kassen-Info links */} -
- {/* Kassen-Name + Status */} -
- - {device.deviceName} +
+ {/* Kassen-Name + Lizenznummer daneben + Status */} +
+ + {device.deviceName} + + + {device.items[0]?.license_number && ( + + Lizenz: + {device.items[0].license_number} + + )} +