Changed from filtering by ACTIVE status to showing first 10 vehicles.
Ensures at least 2+ car icons visible on map for testing.
Changes:
- trackableVehicles: first 10 vehicles instead of ACTIVE filter
- Map markers: shows all trackable vehicles
- Badge: "Tracked" count instead of "Active"
- Vehicle list: "Tracked Vehicles (count)" instead of "Active Vehicles"
Enables demo of map functionality with actual fleet data.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Filter vehicles to status === 'ACTIVE':
- Map markers: only active vehicles displayed
- Vehicle dropdown: only active vehicles selectable
- All vehicles list: renamed to "Active Vehicles (count)"
- All use activeVehicles useMemo computed from vehiclesWithGPS
Inactive vehicles (maintenance, idle, etc.) hidden from tracking view.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Backend:
- FuelService.getAllFuelPurchases() now loads vehicle relationship
- Uses leftJoinAndSelect to eagerly load Vehicle data
- Returns complete FuelPurchase with nested vehicle object
Frontend:
- Table displays vehicle.registrationNumber (primary)
- Falls back to vehicle.plateNumber if registration unavailable
- Falls back to vehicleId as last resort
Better UX: shows human-readable vehicle info instead of UUID.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Problem:
- purchasesData from API returns numeric columns as strings
- Calling .toFixed() on strings throws "toFixed is not a function"
- Occurs in stats cards and table rows
Solution:
- Wrap p.liters, p.costPerLiter, p.totalCost in Number() before calculations
- Total Liters stat card: sum + Number(p.liters)
- Total Cost stat card: sum + Number(p.totalCost)
- Avg Price/L stat card: use Number() on both divisor and dividend
- Table rows: Number(purchase.liters).toFixed(2), etc.
Fixes render error in FuelPurchasePage when loading fuel purchases list.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Problem:
- Frontend calls GET /fuel/purchases (all purchases)
- Backend only had GET /fuel/purchases/:vehicleId (specific vehicle)
- Result: 404 when loading fuel purchases list
Solution:
- Added getAllFuelPurchases() to FuelService
- Added GET /fuel/purchases route to FuelController
- Route placed before parameterized route so it gets matched first
- Returns all fuel purchases ordered by date DESC
Endpoints:
- GET /api/fuel/purchases → all purchases
- GET /api/fuel/purchases/:vehicleId → specific vehicle
- POST /api/fuel/purchases → record purchase
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>