diff --git a/shop/components/admin/orders-table.tsx b/shop/components/admin/orders-table.tsx index 4702e5c..f294763 100644 --- a/shop/components/admin/orders-table.tsx +++ b/shop/components/admin/orders-table.tsx @@ -456,55 +456,75 @@ export function OrdersTable({ initialOrders }: OrdersTableProps) { - {/* Geräte & Produktauswahl (Snapshot Aufteilung) */} + {/* Geräte & Produktauswahl (Nach Kassen / Boxen gruppiert) */}
- Konfigurierte Kassen & Module ({(selectedOrder.order_data?.items || []).length}) + Konfigurierte Kassen ({selectedOrder.order_data?.items?.length || 0})
-
- {(selectedOrder.order_data?.items || []).map((item: any, idx: number) => ( -
-
-
- - {item.device_name || `Kasse #${idx + 1}`} +
+ {(selectedOrder.order_data?.items || []).map((item: any, idx: number) => { + const devName = item.device_name || `Kasse #${idx + 1}` + const licNum = item.license_number + const modules = item.selected_modules || [] + + return ( +
+ {/* Box Header für die Kasse */} +
+
+ + {devName} + + {licNum && ( + + Lizenz: + {licNum} + + )} +
+ + {item.billing_interval === 'one_time' ? 'Kauf' : 'Abo'} - {item.product_name}
- {item.price && ( - - {new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(item.price)} - + + {/* Inhalt der Kasse: Hauptprodukt + Preis */} +
+ {item.product_name} + {(item.price || item.base_price) && ( + + {new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(item.price || item.base_price)} + + )} +
+ + {/* Module dieser Kasse */} + {modules.length > 0 && ( +
+
+ + Enthaltene Module ({modules.length}): +
+
+ {modules.map((mod: any, mIdx: number) => ( +
+ + + {mod.module_name || mod.name} {mod.quantity > 1 ? `(${mod.quantity}x)` : ''} + + {mod.price && ( + + +{new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(mod.price)} + + )} +
+ ))} +
+
)}
- - {/* Ausgewählte Module & Lizenzen */} - {item.selected_modules?.length > 0 && ( -
-
- - Zusatzmodule ({item.selected_modules.length}): -
-
- {item.selected_modules.map((mod: any, mIdx: number) => ( -
- - {mod.module_name || mod.name} - - {mod.price && ( - - +{new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(mod.price)} - - )} -
- ))} -
-
- )} -
- ))} + ) + })}