diff --git a/frontend/src/pages/BestellungDetail.tsx b/frontend/src/pages/BestellungDetail.tsx
index c6d802e..eee931b 100644
--- a/frontend/src/pages/BestellungDetail.tsx
+++ b/frontend/src/pages/BestellungDetail.tsx
@@ -250,12 +250,12 @@ export default function BestellungDetail() {
e.target.value = '';
}
- // Compute totals
- const totalCost = positionen.reduce((sum, p) => sum + (p.einzelpreis ?? 0) * p.menge, 0);
+ // Compute totals (NUMERIC columns come as strings from PostgreSQL — parse to float)
+ const totalCost = positionen.reduce((sum, p) => sum + (parseFloat(String(p.einzelpreis)) || 0) * (parseFloat(String(p.menge)) || 0), 0);
const totalReceived = positionen.length > 0
- ? positionen.reduce((sum, p) => sum + p.erhalten_menge, 0)
+ ? positionen.reduce((sum, p) => sum + (parseFloat(String(p.erhalten_menge)) || 0), 0)
: 0;
- const totalOrdered = positionen.reduce((sum, p) => sum + p.menge, 0);
+ const totalOrdered = positionen.reduce((sum, p) => sum + (parseFloat(String(p.menge)) || 0), 0);
const receivedPercent = totalOrdered > 0 ? Math.round((totalReceived / totalOrdered) * 100) : 0;
// ── Loading / Error ──
@@ -371,7 +371,12 @@ export default function BestellungDetail() {
Lieferfortschritt: {totalReceived} / {totalOrdered} ({receivedPercent}%)
-
+ = 100 ? 'success' : 'primary'}
+ sx={{ height: 8, borderRadius: 4 }}
+ />
)}